wlzboy
2025-12-25 ae478a3d5dab28dd598d39f27429e4a544b15ad2
ruoyi-system/src/main/resources/mapper/system/VehicleGpsSegmentMileageMapper.xml
@@ -62,11 +62,15 @@
    </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 &lt;= #{endDate}
          AND segment_end_time &gt;= #{startDate}
          AND segment_distance &gt;0
    </select>
    
    <!-- 按任务ID查询分段里程列表 -->
@@ -154,4 +158,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>