From 53443db90d66094124dbbeebbcf763032a2333d0 Mon Sep 17 00:00:00 2001 From: wzp <2040239371@qq.com> Date: 星期五, 23 五月 2025 18:27:37 +0800 Subject: [PATCH] fix: 修复订单详情知情书的显示 --- ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/GpsSyncTask.java | 100 +++++++++++++------------------------------------- 1 files changed, 26 insertions(+), 74 deletions(-) diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/GpsSyncTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/GpsSyncTask.java index 8c7c1ee..692c14f 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/GpsSyncTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/GpsSyncTask.java @@ -4,15 +4,11 @@ import java.util.Date; import java.util.List; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import com.ruoyi.system.domain.GpsDevice; -import com.ruoyi.system.domain.GpsDeviceListResponse; -import com.ruoyi.system.domain.GpsGroup; import com.ruoyi.system.domain.GpsLastPosition; import com.ruoyi.system.domain.GpsLastPositionRequest; import com.ruoyi.system.domain.GpsLastPositionResponse; @@ -40,21 +36,16 @@ private IVehicleGpsService vehicleGpsService; /** - * 鍚屾璁惧鍒楄〃鍜孏PS浣嶇疆 + * 鍚屾GPS浣嶇疆 */ public void syncGpsData() { try { log.info("寮�濮嬪悓姝PS鏁版嵁..."); - // 1. 鑾峰彇璁惧鍒楄〃锛岃繖浼氳嚜鍔ㄦ洿鏂拌溅杈嗕俊鎭腑鐨勮澶嘔D - GpsDeviceListResponse response = gpsCollectService.getDeviceList(); - // 鏇存柊杞﹁締璁惧ID - updateVehicleDeviceIds(response); - - // 2. 鑾峰彇鎵�鏈夎溅杈嗕俊鎭� + // 1. 鑾峰彇鎵�鏈夎溅杈嗕俊鎭� List<VehicleInfo> vehicleList = vehicleInfoService.selectVehicleInfoList(new VehicleInfo()); - //鍦ㄨ繖閲岃幏寰楁墍鏈夎溅杈嗙殑GPS鏈�鍚庝綅缃� + // 2. 鑾峰彇鎵�鏈夎溅杈嗙殑GPS鏈�鍚庝綅缃� GpsLastPositionResponse gpsLastPositionResponse = gpsCollectService.getLastPosition(new GpsLastPositionRequest()); // 3. 閬嶅巻杞﹁締鍒楄〃锛岃幏鍙栨瘡涓溅杈嗙殑GPS浣嶇疆 @@ -62,11 +53,11 @@ if (vehicle.getDeviceId() != null && !vehicle.getDeviceId().isEmpty()) { try { // 鑾峰彇杞﹁締鐨勬渶鍚庝綅缃� - gpsLastPositionResponse.getRecords().stream().filter(e->e.getDeviceid().equals(vehicle.getDeviceId())).forEach(record -> { + gpsLastPositionResponse.getRecords().stream() + .filter(e -> e.getDeviceid().equals(vehicle.getDeviceId())) + .forEach(record -> { updateVehicleGpsPositions(vehicle, record); - - }); - + }); } catch (Exception e) { log.error("鑾峰彇杞﹁締[{}]GPS浣嶇疆澶辫触: {}", vehicle.getVehicleNo(), e.getMessage()); } @@ -77,53 +68,6 @@ } catch (Exception e) { log.error("GPS鏁版嵁鍚屾澶辫触: {}", e.getMessage()); } - } - - /** - * 鏇存柊杞﹁締璁惧ID - */ - private void updateVehicleDeviceIds(GpsDeviceListResponse response) { - if (response.getStatus() != 0 || response.getGroups() == null) { - return; - } - - for (GpsGroup group : response.getGroups()) { - for (GpsDevice device : group.getDevices()) { - String deviceName = device.getDevicename(); - String remark = device.getRemark(); - String deviceId = device.getDeviceid(); - - if (StringUtils.isNotEmpty(deviceName) || StringUtils.isNotEmpty(remark)) { - String plateNumber = extractPlateNumber(deviceName, remark); - if (StringUtils.isNotEmpty(plateNumber)) { - VehicleInfo vehicleInfo = vehicleInfoService.selectVehicleInfoByPlateNumber(plateNumber); - if (vehicleInfo != null) { - vehicleInfo.setDeviceId(deviceId); - vehicleInfoService.updateVehicleInfo(vehicleInfo); - } else { - VehicleInfo newVehicle = new VehicleInfo(); - newVehicle.setVehicleNo(plateNumber); - newVehicle.setDeviceId(deviceId); - newVehicle.setStatus("0"); - vehicleInfoService.insertVehicleInfo(newVehicle); - } - } - } - } - } - } - - /** - * 浠庤澶囧悕绉板拰澶囨敞涓彁鍙栬溅鐗屽彿 - */ - private String extractPlateNumber(String deviceName, String remark) { - if (StringUtils.isNotEmpty(deviceName)) { - return deviceName; - } - if (StringUtils.isNotEmpty(remark)) { - return remark; - } - return null; } /** @@ -140,23 +84,32 @@ gps.setSpeed(position.getSpeed()); gps.setDirection(Double.valueOf(position.getCourse())); - //devicetime 杩欎釜鏄竴涓猯inux鏃堕棿鎴筹紝瑕佽浆鎹㈡垚鍖椾含鏃堕棿锛屽啀杞垚yyyy-MM-dd HH:mm:ss鏍煎紡 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - + + // 澶勭悊鍒拌揪鏃堕棿 + long arrivedTime = position.getArrivedtime(); + Date arrivedDate; + if (arrivedTime > 0) { + arrivedDate = new Date(arrivedTime); + arrivedDate.setTime(arrivedDate.getTime() - 8 * 60 * 60 * 1000); + } else { + arrivedDate = new Date(); + } + gps.setPlatformProcessTime(sdf.format(arrivedDate)); + // 璁惧涓婃姤鏃堕棿 long deviceTime = position.getDevicetime(); - if (deviceTime > 0 && deviceTime < 4102444800L) { // 2100-01-01 00:00:00 - gps.setDeviceReportTime(sdf.format(new Date(deviceTime * 1000L))); + Date date; + if (deviceTime > 0) { + date = new Date(deviceTime); + date.setTime(date.getTime() - 8 * 60 * 60 * 1000); } else { - log.warn("杞﹁締[{}]鐨勮澶囨椂闂存埑[{}]鏃犳晥锛屼娇鐢ㄥ綋鍓嶆椂闂�", vehicle.getVehicleNo(), deviceTime); - gps.setDeviceReportTime(sdf.format(new Date())); + date = arrivedDate; } - - // 骞冲彴澶勭悊鏃堕棿锛堝綋鍓嶆椂闂达級 - gps.setPlatformProcessTime(sdf.format(new Date())); + gps.setDeviceReportTime(sdf.format(date)); // 閲囬泦鏃堕棿锛堜娇鐢ㄨ澶囦笂鎶ユ椂闂达級 - gps.setCollectTime(gps.getDeviceReportTime()); + gps.setCollectTime(sdf.format(new Date())); // 淇濆瓨GPS浣嶇疆淇℃伅 vehicleGpsService.insertVehicleGps(gps); @@ -168,5 +121,4 @@ log.error("鏇存柊杞﹁締[{}]GPS浣嶇疆澶辫触: {}", vehicle.getVehicleNo(), e.getMessage()); } } - } -- Gitblit v1.9.1