wlzboy
2026-04-01 c459808efab29dc1b8439fbb90556bdb16f4c88b
ruoyi-system/src/main/resources/mapper/system/VehicleGpsMapper.xml
@@ -112,13 +112,19 @@
    </select>
    <delete id="deleteVehicleGpsBeforeDate">
        delete g from tb_vehicle_gps g
        where g.collect_time &lt; (
            select date_sub(max(collect_time), interval 2 day)
            from tb_vehicle_gps g2
            where g2.vehicle_id = g.vehicle_id
        )
        delete from tb_vehicle_gps
        where collect_time &lt; DATE_SUB(NOW(), INTERVAL 2 MONTH)
    </delete>
    <delete id="deleteVehicleGpsBeforeDateBatch">
        delete from tb_vehicle_gps
        where collect_time &lt; DATE_SUB(NOW(), INTERVAL 2 MONTH)
        LIMIT #{batchSize}
    </delete>
    <update id="optimizeVehicleGpsTable">
        OPTIMIZE TABLE tb_vehicle_gps
    </update>
    <select id="selectGpsDataByTimeRange" resultMap="VehicleGpsResult">
        select gps_id, vehicle_id, device_id, longitude, latitude, altitude, speed, direction, 
@@ -127,7 +133,6 @@
        where vehicle_id = #{vehicleId}
          and collect_time &gt;= #{startTime}
          and collect_time &lt;= #{endTime}
        order by collect_time
    </select>
    <!-- 查询活跃车辆ID(优化:使用GROUP BY替代DISTINCT,提升性能) -->
@@ -135,8 +140,6 @@
        select vehicle_id
        from tb_vehicle_gps
        where collect_time &gt;= #{startTime}
        group by vehicle_id
        order by vehicle_id
    </select>
    
    <!-- 查询未被计算的GPS坐标(优化:使用NOT EXISTS替代LEFT JOIN ... IS NULL) -->