From 5aede4ab0ab997a78416116ead9260f93b9c17b9 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 01 一月 2026 16:29:37 +0800
Subject: [PATCH] feat: segment

---
 ruoyi-system/src/main/resources/mapper/system/VehicleGpsSegmentMileageMapper.xml |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/ruoyi-system/src/main/resources/mapper/system/VehicleGpsSegmentMileageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/VehicleGpsSegmentMileageMapper.xml
index 43b5fb3..6282f5d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/VehicleGpsSegmentMileageMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/VehicleGpsSegmentMileageMapper.xml
@@ -62,11 +62,14 @@
     </select>
 
     <select id="selectSegmentsByDateRange" resultMap="VehicleGpsSegmentMileageResult">
-        <include refid="selectVehicleGpsSegmentMileageVo"/>
+        SELECT segment_id, vehicle_id, vehicle_no, segment_start_time, segment_end_time,
+        start_longitude, start_latitude, end_longitude, end_latitude,
+        segment_distance, gps_point_count, task_id, task_code
+        FROM tb_vehicle_gps_segment_mileage
         WHERE vehicle_id = #{vehicleId}
-          AND segment_start_time &gt;= #{startDate}
-          AND segment_end_time &lt;= #{endDate}
-        ORDER BY segment_start_time
+          AND segment_start_time between #{startDate} and #{endDate}
+          AND segment_end_time &gt;= #{startDate}
+          AND segment_distance &gt;0
     </select>
     
     <!-- 鎸変换鍔D鏌ヨ鍒嗘閲岀▼鍒楄〃 -->
@@ -154,4 +157,15 @@
     <select id="selectGpsCalculatedSegmentId" resultType="Long">
         SELECT segment_id FROM tb_vehicle_gps_calculated WHERE gps_id = #{gpsId} LIMIT 1
     </select>
+    
+    <!-- 鏌ヨ杞﹁締鍦ㄦ寚瀹氭椂闂翠箣鍓嶆渶鍚庝竴涓凡澶勭悊鐨凣PS鍧愭爣ID -->
+    <select id="selectLastCalculatedGpsId" resultType="Long">
+        SELECT c.gps_id 
+        FROM tb_vehicle_gps_calculated c
+        INNER JOIN tb_vehicle_gps g ON c.gps_id = g.gps_id
+        WHERE c.vehicle_id = #{vehicleId}
+          AND STR_TO_DATE(g.collect_time, '%Y-%m-%d %H:%i:%s') &lt; #{beforeTime}
+        ORDER BY STR_TO_DATE(g.collect_time, '%Y-%m-%d %H:%i:%s') DESC
+        LIMIT 1
+    </select>
 </mapper>

--
Gitblit v1.9.1