wlzboy
2026-01-24 2f09efc660bf2cc94cbc5291ad25ca06fc9bdadf
ruoyi-system/src/main/resources/mapper/system/VehicleGpsSegmentMileageMapper.xml
@@ -62,10 +62,26 @@
    </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}
          AND segment_start_time between #{startDate} and #{endDate}
          AND segment_end_time &gt;= #{startDate}
          AND segment_distance &gt;0
    </select>
    <!-- 查询车辆在指定时间范围内的分段里程 -->
    <select id="selectSegmentsByTimeRange" resultMap="VehicleGpsSegmentMileageResult">
        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, gps_ids, task_id, task_code, calculate_method
        FROM tb_vehicle_gps_segment_mileage
        WHERE vehicle_id = #{vehicleId}
          AND segment_start_time &lt;= #{endTime}
          AND segment_end_time &gt;= #{startTime}
          AND segment_distance &gt; 0
        ORDER BY segment_start_time
    </select>
    
@@ -154,4 +170,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>