wlzboy
2026-01-24 2f09efc660bf2cc94cbc5291ad25ca06fc9bdadf
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/GpsSyncTask.java
@@ -40,17 +40,36 @@
     * 同步GPS位置
     */
    public void syncGpsData() {
        List<VehicleInfo> vehicleList = null;
        try {
//            log.info("开始同步GPS数据...");
            // 1. 获取所有车辆信息
            List<VehicleInfo> vehicleList = vehicleInfoService.selectVehicleInfoList(new VehicleInfo());
            vehicleList = vehicleInfoService.selectVehicleInfoList(new VehicleInfo());
            List<String> deviceIds = vehicleList.stream().map(VehicleInfo::getDeviceId).collect(Collectors.toList());
            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最后位置
            GpsLastPositionRequest request = new GpsLastPositionRequest();
//            request.setDeviceids(deviceIds);
            GpsLastPositionResponse gpsLastPositionResponse = gpsCollectService.getLastPosition(request);
            if (gpsLastPositionResponse == null || gpsLastPositionResponse.getRecords() == null) {
                log.warn("GPS服务返回空数据");
                return;
            }
            // 3. 遍历车辆列表,获取每个车辆的GPS位置
            for (VehicleInfo vehicle : vehicleList) {
@@ -71,6 +90,9 @@
//            log.info("GPS数据同步完成");
        } catch (Exception e) {
            log.error("GPS数据同步失败: {}", e.getMessage());
        } finally {
            // 显式清空大对象引用,帮助GC
            vehicleList = null;
        }
    }