| | |
| | | <select id="selectVehicleGpsList" parameterType="VehicleGps" resultMap="VehicleGpsResult"> |
| | | <include refid="selectVehicleGpsVo"/> |
| | | <where> |
| | | <if test="vehicleNo != null and vehicleNo != ''"> and vehicle_no = #{vehicleNo}</if> |
| | | <if test="vehicleNo != null and vehicleNo != ''"> and v.vehicle_no like concat('%', #{vehicleNo}, '%')</if> |
| | | <if test="longitude != null "> and longitude = #{longitude}</if> |
| | | <if test="latitude != null "> and latitude = #{latitude}</if> |
| | | <if test="speed != null "> and speed = #{speed}</if> |
| | |
| | | <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} |
| | | </select> |
| | | |
| | | <!-- 查询活跃车辆ID(优化:使用GROUP BY替代DISTINCT,提升性能) --> |
| | | <select id="selectActiveVehicleIds" resultType="Long"> |
| | | select vehicle_id |
| | | from tb_vehicle_gps |
| | | where collect_time >= #{startTime} |
| | | </select> |
| | | |
| | | <!-- 查询未被计算的GPS坐标(优化:使用NOT EXISTS替代LEFT JOIN ... IS NULL) --> |
| | | <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 |
| | | INNER JOIN tb_vehicle_info v ON g.vehicle_id = v.vehicle_id |
| | | WHERE g.vehicle_id = #{vehicleId} |
| | | AND g.collect_time >= #{startTime} |
| | | AND g.collect_time <= #{endTime} |
| | | AND NOT EXISTS ( |
| | | SELECT 1 FROM tb_vehicle_gps_calculated c |
| | | WHERE c.gps_id = g.gps_id |
| | | ) |
| | | ORDER BY g.collect_time |
| | | </select> |
| | | </mapper> |