From f67945d53b20f6a45ae50b27d74c966eb1355bb4 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 16 十一月 2025 22:53:54 +0800
Subject: [PATCH] feat: 增加分段GPS计算行程距离
---
ruoyi-system/src/main/resources/mapper/system/VehicleGpsMapper.xml | 41 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/ruoyi-system/src/main/resources/mapper/system/VehicleGpsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/VehicleGpsMapper.xml
index 98a65fe..3abe287 100644
--- a/ruoyi-system/src/main/resources/mapper/system/VehicleGpsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/VehicleGpsMapper.xml
@@ -110,4 +110,45 @@
<select id="getVehicleIdByNo" parameterType="String" resultType="Long">
select vehicle_id from tb_vehicle_info where vehicle_no = #{vehicleNo}
</select>
+
+ <delete id="deleteVehicleGpsBeforeDate">
+ delete g from tb_vehicle_gps g
+ where g.collect_time < (
+ select date_sub(max(collect_time), interval 2 day)
+ from tb_vehicle_gps g2
+ where g2.vehicle_id = g.vehicle_id
+ )
+ </delete>
+
+ <select id="selectGpsDataByTimeRange" resultMap="VehicleGpsResult">
+ select gps_id, vehicle_id, device_id, longitude, latitude, altitude, speed, direction,
+ collect_time, device_report_time, platform_process_time, create_time
+ from tb_vehicle_gps
+ where vehicle_id = #{vehicleId}
+ and collect_time >= #{startTime}
+ and collect_time <= #{endTime}
+ order by collect_time
+ </select>
+
+ <select id="selectActiveVehicleIds" resultType="Long">
+ select distinct vehicle_id
+ from tb_vehicle_gps
+ where collect_time >= DATE_SUB(NOW(), INTERVAL 7 DAY)
+ order by vehicle_id
+ </select>
+
+ <!-- 鏌ヨ鏈璁$畻鐨凣PS鍧愭爣锛堜笉鍦╰b_vehicle_gps_calculated琛ㄤ腑鐨勮褰曪級 -->
+ <select id="selectUncalculatedGps" resultMap="VehicleGpsResult">
+ SELECT g.gps_id, g.vehicle_id, g.device_id, g.longitude, g.latitude, g.altitude,
+ g.speed, g.direction, g.collect_time, g.device_report_time,
+ g.platform_process_time, g.create_time, v.vehicle_no
+ FROM tb_vehicle_gps g
+ LEFT JOIN tb_vehicle_info v ON g.vehicle_id = v.vehicle_id
+ LEFT JOIN tb_vehicle_gps_calculated c ON g.gps_id = c.gps_id
+ WHERE g.vehicle_id = #{vehicleId}
+ AND g.collect_time >= #{startTime}
+ AND g.collect_time <= #{endTime}
+ AND c.gps_id IS NULL -- 鏈璁$畻鐨凣PS鐐�
+ ORDER BY g.collect_time
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1