wlzboy
2026-01-12 45d90d1e7ba86286e998d1ac4d2cba8e98cd059b
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/GpsSyncTask.java
@@ -3,6 +3,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,14 +40,36 @@
     * 同步GPS位置
     */
    public void syncGpsData() {
        List<VehicleInfo> vehicleList = null;
        try {
            log.info("开始同步GPS数据...");
//            log.info("开始同步GPS数据...");
            // 1. 获取所有车辆信息
            List<VehicleInfo> vehicleList = vehicleInfoService.selectVehicleInfoList(new VehicleInfo());
            vehicleList = vehicleInfoService.selectVehicleInfoList(new VehicleInfo());
            if (vehicleList == null || vehicleList.isEmpty()) {
                log.info("没有找到车辆信息");
                return;
            }
            List<String> deviceIds = vehicleList.stream()
                    .map(VehicleInfo::getDeviceId)
                    .filter(id -> id != null && !id.isEmpty())
                    .collect(Collectors.toList());
            if (deviceIds.isEmpty()) {
                log.info("没有有效的设备ID");
                return;
            }
            // 2. 获取所有车辆的GPS最后位置
            GpsLastPositionResponse gpsLastPositionResponse = gpsCollectService.getLastPosition(new GpsLastPositionRequest());
            GpsLastPositionRequest request = new GpsLastPositionRequest();
            GpsLastPositionResponse gpsLastPositionResponse = gpsCollectService.getLastPosition(request);
            if (gpsLastPositionResponse == null || gpsLastPositionResponse.getRecords() == null) {
                log.warn("GPS服务返回空数据");
                return;
            }
            // 3. 遍历车辆列表,获取每个车辆的GPS位置
            for (VehicleInfo vehicle : vehicleList) {
@@ -64,9 +87,12 @@
                }
            }
            log.info("GPS数据同步完成");
//            log.info("GPS数据同步完成");
        } catch (Exception e) {
            log.error("GPS数据同步失败: {}", e.getMessage());
        } finally {
            // 显式清空大对象引用,帮助GC
            vehicleList = null;
        }
    }