| | |
| | | * 同步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()); |
| | | |
| | | 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) { |
| | |
| | | } |
| | | } |
| | | |
| | | log.info("GPS数据同步完成"); |
| | | // log.info("GPS数据同步完成"); |
| | | } catch (Exception e) { |
| | | log.error("GPS数据同步失败: {}", e.getMessage()); |
| | | } finally { |
| | | // 显式清空大对象引用,帮助GC |
| | | vehicleList = null; |
| | | } |
| | | } |
| | | |