wlzboy
2026-03-19 c5ac97682e3b4ca748541ace97cb37a2295bd81e
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;
        }
    }
@@ -114,9 +140,9 @@
            // 保存GPS位置信息
            vehicleGpsService.insertVehicleGps(gps);
            log.info("车辆[{}]GPS位置已更新: 经度={}, 纬度={}, 设备时间={}, 处理时间={}",
                    vehicle.getVehicleNo(), position.getCallon(), position.getCallat(),
                    gps.getDeviceReportTime(), gps.getPlatformProcessTime());
//            log.info("车辆[{}]GPS位置已更新: 经度={}, 纬度={}, 设备时间={}, 处理时间={}",
//                    vehicle.getVehicleNo(), position.getCallon(), position.getCallat(),
//                    gps.getDeviceReportTime(), gps.getPlatformProcessTime());
        } catch (Exception e) {
            log.error("更新车辆[{}]GPS位置失败: {}", vehicle.getVehicleNo(), e.getMessage());
        }