| | |
| | | order by time |
| | | </select> |
| | | |
| | | <select id="cruiserList" resultType="com.moral.api.pojo.dto.cruiser.CruiserListDTO"> |
| | | WITH zb AS ( |
| | | SELECT |
| | | DATE_FORMAT( `time`, '%Y-%m-%d %H:%i:%s' ) AS time,VALUE->> '$.flylat' AS flyLat,VALUE->> '$.flylon' AS flyLon |
| | | FROM |
| | | history_second_cruiser |
| | | WHERE |
| | | mac = #{mac} |
| | | AND `time` <![CDATA[>=]]> #{time1} |
| | | AND `time` <![CDATA[<=]]> #{time2} |
| | | ORDER BY |
| | | time |
| | | ), |
| | | resultList AS ( |
| | | SELECT |
| | | t1.time, |
| | | t1.flyLat, |
| | | t1.flyLon |
| | | FROM |
| | | zb t1 |
| | | INNER JOIN ( SELECT flyLon, flyLat, MAX( time ) AS max_time FROM zb GROUP BY flyLat, flyLon ) t2 ON t1.flyLon = t2.flyLon |
| | | AND t1.flyLat = t2.flyLat |
| | | AND t1.time = t2.max_time |
| | | ), |
| | | mx AS ( |
| | | SELECT t2.latitude, |
| | | t2.longitude, |
| | | t2.state, |
| | | t2.coordinate_id ,max(t2.id) id |
| | | FROM |
| | | manage_coordinate t1 |
| | | LEFT JOIN manage_coordinate_detail t2 ON t1.coordinate_id = t2.coordinate_id |
| | | LEFT JOIN special_device t3 ON t1.organization_id = t3.organization_id |
| | | WHERE |
| | | t1.is_del = 0 |
| | | AND t3.mac = #{mac} group by t2.latitude, |
| | | t2.longitude, |
| | | t2.state, |
| | | t2.coordinate_id |
| | | ) SELECT |
| | | tt.time, |
| | | tt.flyLat, |
| | | tt.flyLon, |
| | | COALESCE ( tt1.state, 0 ) AS state ,tt1.coordinate_id,tt1.id as id |
| | | FROM |
| | | resultList tt |
| | | LEFT JOIN mx tt1 ON tt.flyLat = tt1.latitude |
| | | AND tt.flyLon = tt1.longitude |
| | | </select> |
| | | |
| | | </mapper> |