jinpengyong
2023-11-13 471f693ac87a6ed6a2b00e93472b025266c0271f
screen-manage/src/main/resources/mapper/HistorySecondCruiserMapper.xml
@@ -20,4 +20,54 @@
        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>