Sfoglia il codice sorgente

修改线路管理查询

chenxiaofei 2 mesi fa
parent
commit
62b4f6e4cf

+ 4 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/model/vo/RTruckRouteVo.java

@@ -63,4 +63,8 @@ public class RTruckRouteVo {
      * 车辆id
      */
     private Long truckId;
+    /**
+     * 点位信息
+     */
+    private String pointInfo;
 }

+ 2 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -229,8 +229,9 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         kwfTruckRoute.setStartPoint(params.getStartPoint());
         kwfTruckRoute.setUnloadingPoint(params.getUnloadingPoint());
         kwfTruckRoute.setShortestTime(params.getShortestTime());
+        kwfTruckRoute.setPointInfo(params.getPointInfo());
 
-        KwfTruckRoute truckRoute = kwfTruckRouteRepository.findOneByDriverId(params.getDriverId());
+        KwfTruckRoute truckRoute = kwfTruckRouteRepository.findOneByDriverIdAndPoint(params.getDriverId(),params.getStartPoint(),params.getUnloadingPoint());
         if (Objects.isNull(truckRoute)){
             kwfTruckRouteRepository.saveTruckRoute(kwfTruckRoute);
             return;

+ 6 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruckRoute.java

@@ -70,7 +70,12 @@ public class KwfTruckRoute {
      * 是否删除(0未删除,1删除)
      */
     @TableField("del_flag")
-    @TableLogic
     private Integer delFlag;
 
+    /****
+     * 点位信息
+     */
+    @TableField("point_info")
+    private String pointInfo;
+
 }

+ 8 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckRoteDetailReq.java

@@ -25,4 +25,12 @@ public class TruckRoteDetailReq extends PageReq implements Serializable {
     @NotNull(message = "司机id不能为空")
     @Schema(description = "司机id")
     private Long driverId;
+    /**
+     * 装货点
+     */
+    private String startPoint;
+    /**
+     * 卸货点
+     */
+    private String unloadingPoint;
 }

+ 1 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/QueryTruckRoteVo.java

@@ -58,4 +58,5 @@ public class QueryTruckRoteVo implements Serializable {
      */
     @Schema(description = "最快耗时")
     private String sortedTime;
+    private String id;
 }

+ 20 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/TruckRoteDetailVo.java

@@ -10,6 +10,8 @@ import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * @author PC
@@ -28,4 +30,22 @@ public class TruckRoteDetailVo implements Serializable {
      */
     @Schema(description = "卸货点")
     private String unloadingPoint;
+    List<TruckRoteDetail> truckRoteDetails;
+    @Data
+    public static class TruckRoteDetail {
+        /**
+         * 时间戳
+         */
+        private LocalDateTime ts;
+
+        /**
+         * 经度
+         */
+        private String longitude;
+
+        /**
+         * 纬度
+         */
+        private String latitude;
+    }
 }

+ 8 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/repository/KwfTruckRouteRepository.java

@@ -52,4 +52,12 @@ public class KwfTruckRouteRepository extends ServiceImpl<KwfTruckRouteMapper, Kw
     public Boolean updateTruckRoute(KwfTruckRoute kwfTruckRoute) {
        return updateById(kwfTruckRoute);
     }
+
+    public KwfTruckRoute findOneByDriverIdAndPoint(Long driverId, String startPoint, String unloadingPoint) {
+        return getOne(Wrappers.<KwfTruckRoute>lambdaQuery()
+                .eq(KwfTruckRoute::getDriverId, driverId)
+                .eq(KwfTruckRoute::getStartPoint, startPoint)
+                .eq(KwfTruckRoute::getUnloadingPoint, unloadingPoint)
+                .eq(KwfTruckRoute::getDelFlag,0));
+    }
 }

+ 6 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckRouteService.java

@@ -130,6 +130,7 @@ public class KwfTruckRouteService {
      */
     private static QueryTruckRoteVo getQueryTruckRoteVo(KwfTruckRoute r, Map<Long, KwfFleet> fleetIdAndFleetMap, Map<Long, KwfDriver> driverIdAndDriverMap) {
         QueryTruckRoteVo queryTruckRoteVo = new QueryTruckRoteVo();
+        queryTruckRoteVo.setId(String.valueOf(r.getId()));
         queryTruckRoteVo.setTruckNo("");
         queryTruckRoteVo.setStartPoint(r.getStartPoint());
         queryTruckRoteVo.setUnloadingPoint(r.getUnloadingPoint());
@@ -152,13 +153,16 @@ public class KwfTruckRouteService {
 
     public TruckRoteDetailVo truckRouteDetail(@Valid TruckRoteDetailReq req) {
         log.info("查询车辆惯用路线详情,请求参数 :{}", JSON.toJSONString(req));
-        KwfTruckRoute kwfTruckRoute = truckRouteRepository.findOneByDriverId(req.getDriverId());
-        if (Objects.isNull(kwfTruckRoute)){
+        KwfTruckRoute kwfTruckRoute = truckRouteRepository.findOneByDriverIdAndPoint(req.getDriverId(),req.getStartPoint(),req.getUnloadingPoint());
+        if (Objects.isNull(kwfTruckRoute) || StringUtils.isBlank(kwfTruckRoute.getPointInfo())){
             return new TruckRoteDetailVo();
         }
+        String pointInfo = kwfTruckRoute.getPointInfo();
+        List<TruckRoteDetailVo.TruckRoteDetail> truckRoteDetails = JSON.parseArray(pointInfo, TruckRoteDetailVo.TruckRoteDetail.class);
         TruckRoteDetailVo truckRoteDetailVo = new TruckRoteDetailVo();
         truckRoteDetailVo.setStartPoint(kwfTruckRoute.getStartPoint());
         truckRoteDetailVo.setUnloadingPoint(kwfTruckRoute.getUnloadingPoint());
+        truckRoteDetailVo.setTruckRoteDetails(truckRoteDetails);
         return truckRoteDetailVo;
     }
 }

+ 32 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/VehicleRouteData.java

@@ -0,0 +1,32 @@
+package com.sckw.transport.model.dto;
+
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+
+/**
+ * @author PC
+ */
+@Data
+public class VehicleRouteData {
+
+    /**
+     * 时间戳
+     */
+    private LocalDateTime ts;
+
+
+    /**
+     * 经度
+     */
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    private String latitude;
+
+
+}

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

@@ -6,8 +6,10 @@ import com.alibaba.fastjson2.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.constant.NumberConstant;
+import com.sckw.core.model.constant.UrlConstants;
 import com.sckw.core.model.enums.*;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
@@ -33,6 +35,7 @@ import com.sckw.system.api.model.dto.res.AreaTreeFrontResDto;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import com.sckw.transport.common.config.UrlConfigProperties;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.dto.*;
@@ -106,6 +109,8 @@ public class KwtWaybillOrderV1Service {
     KwtWaybillOrderSubtaskService waybillOrderSubtaskService;
     @Autowired
     KwtCommonService commonService;
+    @Resource
+    private UrlConfigProperties urlConfigProperties;
     private final KwtWaybillOrderAddressRepository waybillOrderAddressRepository;
     private final KwtWaybillOrderTrackRepository kwtWaybillOrderTrackRepository;
     @Resource
@@ -2160,6 +2165,22 @@ public class KwtWaybillOrderV1Service {
                 });
                 Long shortestTime = DateUtil.getDifferenceInMillis(unloadingTime.get(), startTime.get());
                 rTruckRouteVo.setShortestTime(Objects.isNull(shortestTime) ? null: String.valueOf(shortestTime));
+
+                //从中台查询轨迹信息
+                VehicleDataDTO vehicleDataDTO = new VehicleDataDTO();
+                vehicleDataDTO.setWOrderNo(waybillOrder.getWOrderNo());
+                String s;
+                try {
+                    s = HttpUtil.postJson(urlConfigProperties.getApiBaseUrl()+ UrlConstants.QUERY_TRACE_URL, com.alibaba.fastjson.JSON.toJSONString(vehicleDataDTO), null);
+                } catch (Exception e) {
+                    log.error("查询任务轨迹异常",e);
+                    throw new BusinessException("查询任务轨迹异常");
+                }
+                if (org.apache.commons.lang3.StringUtils.isNotBlank(s)){
+                    List<VehicleRouteData> vehicleReturnData = com.alibaba.fastjson.JSON.parseArray(s, VehicleRouteData.class);
+                    rTruckRouteVo.setPointInfo(com.alibaba.fastjson.JSON.toJSONString(vehicleReturnData));
+                }
+
                 remoteFleetService.saveOrUpdate(rTruckRouteVo);
             }
         } catch (Exception e) {