wlzboy
2026-01-01 5aede4ab0ab997a78416116ead9260f93b9c17b9
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>
    
    <!-- 按任务ID查询分段里程列表 -->
@@ -154,4 +157,15 @@
    <select id="selectGpsCalculatedSegmentId" resultType="Long">
        SELECT segment_id FROM tb_vehicle_gps_calculated WHERE gps_id = #{gpsId} LIMIT 1
    </select>
    <!-- 查询车辆在指定时间之前最后一个已处理的GPS坐标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>