Ver Fonte

提交全图监控

chenxiaofei há 1 mês atrás
pai
commit
b501f48a58

+ 3 - 2
sckw-modules-api/sckw-transport-api/src/main/java/com/sckw/transport/api/model/dto/VehicleReturnData.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.time.LocalDateTime;
 
 /**
@@ -23,8 +24,8 @@ public class VehicleReturnData implements Serializable {
      * IoT平台返回ISO 8601格式:2025-12-05T00:00:00.000+00:00
      * 使用自定义反序列化器支持带时区的格式
      */
-    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
-    private LocalDateTime ts;
+   // @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    private Timestamp ts;
 
     /**
      * 车牌号

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/VehiclesTrajectoryReq.java

@@ -7,6 +7,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.sql.Timestamp;
 
 /**
  * @author PC
@@ -16,7 +17,7 @@ public class VehiclesTrajectoryReq implements Serializable {
     
     @Serial
     private static final long serialVersionUID = 1L;
-    private String ts;
+    private Timestamp ts;
     /**
      * 手机号
      */

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -2213,7 +2213,7 @@ public class KwtWaybillOrderV1Service {
                         List<com.sckw.transport.api.model.dto.VehicleReturnData> vehicleReturn = result.getData();
                         List<VehicleRouteData> vehicleReturnData = vehicleReturn.stream().map(x->{
                             VehicleRouteData vehicleRouteData = new VehicleRouteData();
-                            vehicleRouteData.setTs(x.getTs());
+                            vehicleRouteData.setTs(Objects.nonNull(x.getTs()) ? x.getTs().toLocalDateTime() : null);
                             vehicleRouteData.setLongitude(x.getLongitude());
                             vehicleRouteData.setLatitude(x.getLatitude());
                             return vehicleRouteData;

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/VehicleExceptionService.java

@@ -150,7 +150,7 @@ public class VehicleExceptionService {
                     VehicleReturnData vehicleData = result.getData();
                     
                     // 判断30分钟内有定位数据为在线
-                    if (vehicleData.getTs() != null && vehicleData.getTs().isAfter(thirtyMinutesAgo)) {
+                    if (vehicleData.getTs() != null && vehicleData.getTs().toLocalDateTime().isAfter(thirtyMinutesAgo)) {
                         locationStatus = 1;
                     }
                 }

+ 13 - 9
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/kwfTruckTraceService.java

@@ -65,6 +65,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.text.SimpleDateFormat;
@@ -74,6 +75,7 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import lombok.Data;
+import org.springframework.transaction.annotation.Transactional;
 
 
 /**
@@ -307,7 +309,7 @@ public class kwfTruckTraceService {
         truckDto.setLongitude(vehicleReturnData.getLongitude());
         truckDto.setLatitude(vehicleReturnData.getLatitude());
         if (Objects.nonNull(vehicleReturnData.getTs())){
-            LocalDateTime ts = vehicleReturnData.getTs();
+            LocalDateTime ts = vehicleReturnData.getTs().toLocalDateTime();
             Date date = Date.from(ts.toInstant(ZoneOffset.UTC));
             truckDto.setLocationTime(DateUtils.format(date, DateUtils.DATE_TIME_PATTERN));
         }
@@ -375,7 +377,7 @@ public class kwfTruckTraceService {
         truckInfoVo.setGpsStatus(String.valueOf(vehicleReturn.getSpeed()));
         truckInfoVo.setLongitude(vehicleReturn.getLongitude());
         truckInfoVo.setLatitude(vehicleReturn.getLatitude());
-        truckInfoVo.setLocationTime(Objects.isNull(vehicleReturn.getTs())? "" : DateUtils.format(vehicleReturn.getTs(),DateUtils.DATE_TIME_PATTERN));
+        truckInfoVo.setLocationTime(Objects.isNull(vehicleReturn.getTs())? "" : DateUtils.format(vehicleReturn.getTs().toLocalDateTime(),DateUtils.DATE_TIME_PATTERN));
         KwtWaybillOrder order = kwtWaybillOrderRepository.findOneByTruckId(truckId);
         if (Objects.nonNull(order)){
             truckInfoVo.setTruckNo(order.getTruckNo());
@@ -563,7 +565,7 @@ public class kwfTruckTraceService {
         CurrentTaskTraceReqVo.CurrentTaskTrace currentTaskTrace = new CurrentTaskTraceReqVo.CurrentTaskTrace();
         currentTaskTrace.setLongitude(e.getLongitude());
         currentTaskTrace.setLatitude(e.getLatitude());
-        currentTaskTrace.setLocationTime(Objects.isNull(e.getTs()) ? "" : DateUtils.format(e.getTs(), DateUtils.DATE_TIME_PATTERN));
+        currentTaskTrace.setLocationTime(Objects.isNull(e.getTs()) ? "" : DateUtils.format(e.getTs().toLocalDateTime(), DateUtils.DATE_TIME_PATTERN));
         return currentTaskTrace;
     }
 
@@ -739,7 +741,7 @@ public class kwfTruckTraceService {
                 }
 
                 // 30分钟内为在线
-                if (vehicleData.getTs().isAfter(thirtyMinutesAgo)) {
+                if (vehicleData.getTs().toLocalDateTime().isAfter(thirtyMinutesAgo)) {
                     truckLocationStatusMap.put(truckNo, 1);
                 } else {
                     truckLocationStatusMap.put(truckNo, 0);
@@ -1068,7 +1070,7 @@ public class kwfTruckTraceService {
                     VehicleReturnData vehicleData = result.getData();
                     
                     // 判断定位状态
-                    if (vehicleData.getTs() != null && vehicleData.getTs().isAfter(thirtyMinutesAgo)) {
+                    if (vehicleData.getTs() != null && vehicleData.getTs().toLocalDateTime().isAfter(thirtyMinutesAgo)) {
                         locationInfo.setLocationStatus(1);
                     } else {
                         locationInfo.setLocationStatus(0);
@@ -1077,7 +1079,7 @@ public class kwfTruckTraceService {
                     locationInfo.setLongitude(vehicleData.getLongitude());
                     locationInfo.setLatitude(vehicleData.getLatitude());
                     if (vehicleData.getTs() != null) {
-                        locationInfo.setLocationTime(vehicleData.getTs().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                        locationInfo.setLocationTime(vehicleData.getTs().toLocalDateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
                     }
                     locationInfo.setStatus(vehicleData.getStatus());
                 } else {
@@ -1234,7 +1236,7 @@ public class kwfTruckTraceService {
         RTruckVo truckVo = truckIdMap.getOrDefault(order.getTruckId(), new RTruckVo());
         vo.setEnergyType(Objects.isNull(truckVo.getEnergyType())? "":String.valueOf(truckVo.getEnergyType()));
         SysDictResDto dictResDto = energyTypeMap.getOrDefault(String.valueOf(truckVo.getEnergyType()), new SysDictResDto());
-        vo.setEnergyType(dictResDto.getLabel());
+        vo.setEnergyTypeDesc(dictResDto.getLabel());
         return vo;
     }
     
@@ -1273,6 +1275,7 @@ public class kwfTruckTraceService {
      * 生成车辆轨迹数据
      * @param req 生成轨迹请求
      */
+    @Transactional(rollbackFor = Exception.class)
     public void generateTrace(GenerateTraceReq req) {
         log.info("生成车辆轨迹参数:{}", JSON.toJSONString(req));
         
@@ -1304,6 +1307,7 @@ public class kwfTruckTraceService {
 
         try {
             // 调用数据中台保存轨迹数据
+            log.info("调用数据中台保存车辆轨迹数据:{}", JSON.toJSONString(vehiclesTrajectoryReq));
             BaseIotResult<Void> result = vehicleTraceClient.saveVehicleData(vehiclesTrajectoryReq);
             if (!Objects.equals(result.getCode(), "0")) {
                 log.error("保存车辆轨迹数据失败:{}", result.getMessage());
@@ -1357,8 +1361,8 @@ public class kwfTruckTraceService {
         // 输入的日期字符串
         LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
         LocalDateTime dateTime = date.atTime(LocalTime.now());
-        String result = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-        vehiclesTrajectoryReq.setTs(result);
+        Timestamp timestamp = Timestamp.valueOf(dateTime);
+        vehiclesTrajectoryReq.setTs(timestamp);
         vehiclesTrajectoryReq.setMobile(order.getDriverPhone());
         vehiclesTrajectoryReq.setTruckNo(req.getTruckNo());
         vehiclesTrajectoryReq.setLongitude(longitude);