فهرست منبع

Merge remote-tracking branch 'origin/dev_20251130' into dev_20251130

donglang 1 ماه پیش
والد
کامیت
5817ac9d9e

+ 38 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/LogisticsOrderDetailResp.java

@@ -2,6 +2,7 @@ package com.sckw.transport.model.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.apache.commons.math3.util.RandomPivotingStrategy;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -44,6 +45,11 @@ public class LogisticsOrderDetailResp implements Serializable {
      */
     @Schema(description = "履约信息")
     private PerformanceInfoVO performanceInfoVO;
+    /**
+     * 物流订单信息
+     */
+    @Schema(description = "物流订单信息")
+    private LogisticOrderInfo logisticOrderInfo;
 
 
     @Data
@@ -145,6 +151,11 @@ public class LogisticsOrderDetailResp implements Serializable {
          */
         @Schema(description = "卸货联系电话")
         private String unloadPhone;
+        /**
+         * 参考距离
+         */
+        @Schema(description = "参考距离")
+        private String  referenceDistance;
     }
     @Data
     public static class PerformanceInfoVO implements Serializable{
@@ -191,4 +202,31 @@ public class LogisticsOrderDetailResp implements Serializable {
         @Schema(description = "订单余量")
         private String surplusAmount;
     }
+    @Data
+    public static class LogisticOrderInfo implements Serializable {
+        @Serial
+        private static final long serialVersionUID = 2605319098769354575L;
+        /**
+         * 物流订单状态
+         */
+        @Schema(description = "物流订单状态")
+        private String logisticsOrderStatus;
+        /**
+         * 订单状态描述
+         */
+        @Schema(description = "订单状态描述")
+        private String logisticsOrderStatusDesc;
+
+        /**
+         * 开始时间
+         */
+        @Schema(description = "开始时间")
+        private String  startTime;
+        /**
+         * 结束时间
+         */
+        @Schema(description = "结束时间")
+        private String  endTime;
+
+    }
 }

+ 21 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -2539,9 +2539,22 @@ public class KwtLogisticsConsignmentService {
 
         //设置履约信息
         setPerformInfo(logisticsOrder, waybillOrderSubtasks, logisticsOrderDetailResp);
+
+        //设置物流信息
+        setLogisticInfo(logisticsOrder,logisticsOrderDetailResp);
+
         return logisticsOrderDetailResp;
     }
 
+    private static void setLogisticInfo(KwtLogisticsOrder logisticsOrder,LogisticsOrderDetailResp logisticsOrderDetailResp) {
+        LogisticsOrderDetailResp.LogisticOrderInfo logisticOrderInfo = new LogisticsOrderDetailResp.LogisticOrderInfo();
+        logisticOrderInfo.setLogisticsOrderStatus(String.valueOf(logisticsOrder.getStatus()));
+        logisticOrderInfo.setLogisticsOrderStatusDesc(LogisticsOrderV1Enum.getDesc(logisticsOrder.getStatus()));
+        logisticOrderInfo.setStartTime(DateUtils.format(logisticsOrder.getStartTime(),DateUtils.FORMAT9));
+        logisticOrderInfo.setEndTime(DateUtils.format(logisticsOrder.getEndTime(),DateUtils.FORMAT9));
+        logisticsOrderDetailResp.setLogisticOrderInfo(logisticOrderInfo);
+    }
+
     private static void setPerformInfo(KwtLogisticsOrder logisticsOrder, List<KwtWaybillOrderSubtask> waybillOrderSubtasks, LogisticsOrderDetailResp logisticsOrderDetailResp) {
         LogisticsOrderDetailResp.PerformanceInfoVO performanceInfoVO = new LogisticsOrderDetailResp.PerformanceInfoVO();
         performanceInfoVO.setBillingMode(logisticsOrder.getBillingMode());
@@ -2592,6 +2605,12 @@ public class KwtLogisticsConsignmentService {
         loadingInfoVO.setUnloadAddress(unloadAdd.getDetailAddress());
         loadingInfoVO.setUnloadContacts(unloadAdd.getContacts());
         loadingInfoVO.setUnloadPhone(unloadAdd.getPhone());
+        double distanceKm = DistanceUtils.calculateDistance(
+                Optional.ofNullable(loadAdd.getLng()).map(Double::valueOf).orElse(null),
+                Optional.ofNullable(loadAdd.getLat()).map(Double::valueOf).orElse(null),
+                Optional.ofNullable(unloadAdd.getLng()).map(Double::valueOf).orElse(null),
+                Optional.ofNullable(unloadAdd.getLat()).map(Double::valueOf).orElse(null));
+        loadingInfoVO.setReferenceDistance(String.valueOf(distanceKm));
         logisticsOrderDetailResp.setLoadingInfoVO(loadingInfoVO);
     }
 
@@ -2819,8 +2838,8 @@ public class KwtLogisticsConsignmentService {
         if (Objects.isNull(logisticsOrder)){
             throw new BusinessException("未找到该物流订单信息");
         }
-
-        if (!Objects.equals(logisticsOrder.getStatus(),LogisticsOrderV1Enum.WAIT_DELIVERY.getCode())){
+        List<Integer> status = Arrays.asList(LogisticsOrderV1Enum.WAIT_DELIVERY.getCode(), LogisticsOrderV1Enum.IN_TRANSIT.getCode());
+        if (!status.contains(logisticsOrder.getStatus())){
             throw new BusinessException("该物流订单状态不能进行派车");
         }
         //车牌id去重