Эх сурвалжийг харах

接单上传运单相关业务优化

donglang 1 сар өмнө
parent
commit
55641b7473
20 өөрчлөгдсөн 110 нэмэгдсэн , 190 устгасан
  1. 5 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  2. 19 4
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/AbstractWaybillOrderHandler.java
  3. 0 14
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/BusinessContext.java
  4. 23 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java
  5. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LeaveMockHandler.java
  6. 2 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LoadingHandler.java
  7. 18 30
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java
  8. 2 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/UnloadingHandler.java
  9. 1 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderNode.java
  10. 5 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderSubtask.java
  11. 0 12
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/OrderCirculateTakingQueryParam.java
  12. 0 6
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderCancelParam.java
  13. 0 28
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderCmeIntoWeighParam.java
  14. 0 7
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderLeaveMockParam.java
  15. 0 21
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderLeaveParam.java
  16. 1 25
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderLoadingParam.java
  17. 12 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderProcessParam.java
  18. 0 21
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderUnloadParam.java
  19. 2 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderRepository.java
  20. 19 13
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

+ 5 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -911,7 +911,11 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
 
     @Override
     public EntTypeResDto queryEntTypeById(Long entId) {
-        return remoteBaseService.queryEntTypeById(entId).get(0);
+        List<EntTypeResDto> entTypeResDtoList = remoteBaseService.queryEntTypeById(entId);
+        if (entTypeResDtoList.isEmpty()) {
+            return null;
+        }
+        return entTypeResDtoList.get(0);
     }
 
 }

+ 19 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/AbstractWaybillOrderHandler.java

@@ -10,6 +10,8 @@ import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.KwtWaybillOrderNode;
 import com.sckw.transport.model.KwtWaybillOrderSubtask;
 import com.sckw.transport.model.param.OrderCirculateTakingQueryParam;
+import com.sckw.transport.model.param.WaybillOrderCmeIntoWeighParam;
+import com.sckw.transport.model.param.WaybillOrderLeaveMockParam;
 import com.sckw.transport.model.param.WaybillOrderProcessParam;
 import com.sckw.transport.repository.*;
 import lombok.extern.slf4j.Slf4j;
@@ -91,6 +93,12 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
         if (!(param instanceof OrderCirculateTakingQueryParam) && param.getWaybillOrderId() == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "运单ID不能为空");
         }
+        // 过磅校验
+        if (param instanceof WaybillOrderCmeIntoWeighParam || param instanceof WaybillOrderLeaveMockParam) {
+            if (param.getWeighbridgeId() == null || param.getWeighbridgeName() == null) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "地磅信息不能为空");
+            }
+        }
     }
 
     // 2. 获取运单
@@ -106,11 +114,18 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
     protected abstract void updateStatus(T param, KwtWaybillOrder waybillOrder);
 
     // 6. 生成节点轨迹
-    private void createNodeTrace(T param, KwtWaybillOrder waybillOrder) {
+    protected void createNodeTrace(T param, KwtWaybillOrder waybillOrder) {
         if (waybillOrder == null) {
             return;
         }
+        KwtWaybillOrderNode node = getWaybillOrderNode(param, waybillOrder);
+        node.setRemark(getRemark(param, waybillOrder));
+        waybillOrderNodeRepository.save(node);
+        log.info("记录{}节点轨迹成功,节点ID:{}", getProcessName(), node.getId());
+    }
 
+
+    public KwtWaybillOrderNode getWaybillOrderNode(T param, KwtWaybillOrder waybillOrder) {
         log.info("创建车辆运单-节点轨迹入参参数:{}", JSON.toJSONString(param));
         KwtWaybillOrderSubtask subtask = getWaybillSubtask(waybillOrder.getId());
         KwtWaybillOrderNode node = new KwtWaybillOrderNode();
@@ -121,11 +136,11 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
         node.setTruckNo(waybillOrder.getTruckNo());
         node.setDriverId(waybillOrder.getDriverId());
         node.setDriverName(waybillOrder.getDriverName());
+        node.setWeighbridgeId(param.getWeighbridgeId());
+        node.setWeighbridgeName(param.getWeighbridgeName());
         node.setLng(param.getLng());
         node.setLat(param.getLat());
-        node.setRemark(getRemark(param, waybillOrder));
-        waybillOrderNodeRepository.save(node);
-        log.info("记录{}节点轨迹成功,节点ID:{}", getProcessName(), node.getId());
+        return node;
     }
 
     // 7. 后置处理(子类可选实现)

+ 0 - 14
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/BusinessContext.java

@@ -59,18 +59,4 @@ public class BusinessContext  {
         CONTEXT.get().clear();
         CONTEXT.remove();
     }
-
-    /**
-     * 检查是否包含指定键
-     */
-    public static boolean contains(String key) {
-        return CONTEXT.get().containsKey(key);
-    }
-
-    /**
-     * 获取整个上下文Map(只读)
-     */
-    public static Map<String, Object> getAll() {
-        return new HashMap<>(CONTEXT.get());
-    }
 }

+ 23 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -9,9 +9,11 @@ import com.sckw.core.model.enums.AddressTypeEnum;
 import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.transport.model.KwtWaybillOrder;
+import com.sckw.transport.model.KwtWaybillOrderNode;
 import com.sckw.transport.model.KwtWaybillOrderTicket;
 import com.sckw.transport.model.param.WaybillOrderCmeIntoWeighParam;
 import com.sckw.transport.repository.KwtWaybillOrderTicketRepository;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,7 +25,7 @@ import java.util.Objects;
  * Des: 到达装货地点Handler
  * Version: 1.0
  */
-
+@Slf4j
 @Service
 public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCmeIntoWeighParam>{
 
@@ -78,6 +80,25 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
 
     @Override
     protected String getRemark(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
-        return "车辆[" + waybillOrder.getTruckNo() + "]已到达装货点";
+        return "";
+    }
+
+    /**
+     * 重写 createNodeTrace,生成两条轨迹记录
+     */
+    @Override
+    protected void createNodeTrace(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
+        // 第一条:装载完成
+        KwtWaybillOrderNode node1 = getWaybillOrderNode(param, waybillOrder);
+        node1.setRemark("车辆[" + waybillOrder.getTruckNo() + "]已到达装货点");
+        waybillOrderNodeRepository.save(node1);
+        log.info("记录【已装货】节点轨迹成功,节点ID:{}", node1.getId());
+
+        // 第二条:称重信息
+        KwtWaybillOrderNode node2 = getWaybillOrderNode(param, waybillOrder);
+        node2.setRemark("[" + param.getWeighbridgeName() + "]称重[" + param.getTareAmount() + "吨]");
+        waybillOrderNodeRepository.save(node2);
+        log.info("记录【称重】节点轨迹成功,节点ID:{}", node2.getId());
     }
+
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LeaveMockHandler.java

@@ -115,6 +115,6 @@ public class LeaveMockHandler extends AbstractWaybillOrderHandler<WaybillOrderLe
 
     @Override
     protected String getRemark(WaybillOrderLeaveMockParam param, KwtWaybillOrder waybillOrder) {
-        return "[地磅]称重[" + param.getGrossAmount() + "吨]";
+        return "[" + param.getWeighbridgeName() + "]称重[" + param.getGrossAmount() + "吨]";
     }
 }

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LoadingHandler.java

@@ -6,6 +6,7 @@ import com.sckw.core.exception.BusinessPlatfromException;
 import com.sckw.core.model.enums.CarWaybillV1Enum;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.param.WaybillOrderLoadingParam;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.Objects;
@@ -16,7 +17,7 @@ import java.util.Objects;
  * Des: 已装货 -手动推推送数据
  * Version: 1.0
  */
-
+@Slf4j
 @Service
 public class LoadingHandler extends AbstractWaybillOrderHandler<WaybillOrderLoadingParam>{
 

+ 18 - 30
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java

@@ -104,6 +104,8 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
         //6、更新上游订单:回写物流订单
         updateLogOrder(logOrder, truckLoadVolume);
 
+        BusinessContext.set("createdWaybillOrder", waybillOrder);
+
         log.info("物流订单接单完成,运单ID:{}", waybillOrder.getId());
     }
 
@@ -161,6 +163,11 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
         if (truckNo == null || truckNo.getStatus() == Global.NUMERICAL_ONE) {
             throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "当前车辆已锁定");
         }
+        //核定载重
+        if (truckNo.getActualWeight() == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.RESOURCE_NOT_FOUND, "车辆核定载重不能为空!");
+        }
+
         return truckNo;
     }
 
@@ -169,10 +176,8 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
      * @param param
      */
     private void checkTruckUnfinished(OrderCirculateTakingQueryParam param) {
-        List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNo(param.getTruckNo());
-        boolean hasForbidden  = wbOrderByTruckNo.stream()
-                .anyMatch(order -> order != null && FORBIDDEN_STATUSES.contains(order.getStatus()));
-        if (hasForbidden) {
+        List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), FORBIDDEN_STATUSES);
+        if (CollectionUtils.isNotEmpty(wbOrderByTruckNo)) {
             throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_UNFINISHED, "当前车辆有未完成的状态,不可继续接单");
         }
     }
@@ -192,9 +197,6 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
     private BigDecimal queryCurTruckLoadVolume(RTruckVo truckNo, OrderDetailVo tradeOrder) {
         //核定载重
         BigDecimal actualWeight = truckNo.getActualWeight();
-        if (actualWeight == null) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.RESOURCE_NOT_FOUND, "车辆核定载重不能为空!");
-        }
         log.info("车辆核定载重:{}", actualWeight);
         //首次皮重
         BigDecimal tareWeight = truckNo.getTareWeight();
@@ -237,7 +239,7 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
             taskAmount = loadVolume;
             log.info("订单余量适中,按基础任务量接单,最终任务量: {}", taskAmount);
         }
-        log.info("最终任务量:{}", remainingAmount);
+        log.info("最终任务量:{}", taskAmount);
         return taskAmount;
     }
 
@@ -250,7 +252,7 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
         log.info("创建物流运单入参参数:{}", JSON.toJSONString(param));
         KwtWaybillOrder waybillOrder = new KwtWaybillOrder();
         waybillOrder.setEntId(param.getEntId());
-        waybillOrder.setWOrderNo(null);
+        waybillOrder.setWOrderNo(null); //TODO donglang
         waybillOrder.setType(1);
         waybillOrder.setTruckId(truckNo.getId());
         waybillOrder.setTruckNo(param.getTruckNo());
@@ -467,7 +469,7 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
 
     @Override
     protected void updateStatus(OrderCirculateTakingQueryParam param, KwtWaybillOrder waybillOrder) {
-        // 接单时运单已创建并设置初始状态(PENDING_VEHICLE)
+        // 状态已在 createWaybillOrder 中初始化为 PENDING_VEHICLE,无需额外更新
     }
 
 
@@ -478,29 +480,15 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
 
     @Override
     protected String getRemark(OrderCirculateTakingQueryParam param, KwtWaybillOrder waybillOrder) {
-        KwtWaybillOrderSubtask subtask = getWaybillSubtask(waybillOrder.getId());
-        return  "司机[" + waybillOrder.getDriverName() + "]接单成功,预计任务量[" + subtask.getEntrustAmount() + "吨]";
+        KwtWaybillOrder actualOrder = BusinessContext.get("createdWaybillOrder");
+        KwtWaybillOrderSubtask subtask = getWaybillSubtask(actualOrder.getId());
+        return  "司机[" + actualOrder.getDriverName() + "]接单成功,预计任务量[" + subtask.getEntrustAmount() + "吨]";
     }
 
-    // 7. 接单单独创建接单轨迹数据
+    // 7. 接单需要单独创建接单轨迹数据
     protected void afterProcess(OrderCirculateTakingQueryParam param, KwtWaybillOrder waybillOrder) {
-        log.info("创建车辆运单-节点轨迹入参参数:{}", JSON.toJSONString(param));
-        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
-        KwtWaybillOrderNode orderNode = new KwtWaybillOrderNode();
-        orderNode.setWOrderId(waybillOrder.getId());
-        orderNode.setWSubtaskId(waybillSubtask.getWOrderId());
-        orderNode.setOrderStatus(waybillOrder.getStatus());
-        orderNode.setTruckId(waybillOrder.getTruckId());
-        orderNode.setTruckNo(waybillOrder.getTruckNo());
-        orderNode.setDriverId(waybillOrder.getDriverId());
-        orderNode.setDriverName(waybillOrder.getDriverName());
-        orderNode.setLng(param.getLng());
-        orderNode.setLat(param.getLat());
-
-        String remark = getRemark(param, waybillOrder);
-        orderNode.setRemark(remark);
-        waybillOrderNodeRepository.save(orderNode);
-        log.info("创建车辆运单-节点轨迹成功,节点轨迹ID:{}", orderNode.getId());
+        KwtWaybillOrder actualOrder = BusinessContext.get("createdWaybillOrder");
+        createNodeTrace(param, actualOrder);
     }
 
 

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/UnloadingHandler.java

@@ -50,6 +50,7 @@ public class UnloadingHandler extends AbstractWaybillOrderHandler<WaybillOrderUn
         KwtWaybillOrderSubtask subtask = getWaybillSubtask(waybill.getId());
         subtask.setUnloadAmount(param.getUnloadAmount());
         subtask.setUnloadTime(new Date());
+        subtask.setUnloadUrl(param.getUnloadUrl());
         waybillOrderSubtaskRepository.updateById(subtask);
     }
 
@@ -62,7 +63,7 @@ public class UnloadingHandler extends AbstractWaybillOrderHandler<WaybillOrderUn
 
     @Override
     protected String getProcessName() {
-        return "卸货";
+        return "卸货";
     }
 
     @Override

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderNode.java

@@ -7,6 +7,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrderSubtask.java

@@ -75,4 +75,9 @@ public class KwtWaybillOrderSubtask extends BaseModel {
      * 亏吨扣款
      */
     private BigDecimal deficitPrice;
+
+    /**
+     * 卸货凭证
+     */
+    private String unloadUrl;
 }

+ 0 - 12
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/OrderCirculateTakingQueryParam.java

@@ -48,16 +48,4 @@ public class OrderCirculateTakingQueryParam extends WaybillOrderProcessParam imp
     @NotNull(message = "司机id不能为空!")
     private Long driverId;
 
-    /**
-     * 经度
-     */
-    @NotBlank(message = "经度不能为空!")
-    private String lng;
-
-    /**
-     * 纬度
-     */
-    @NotBlank(message = "纬度不能为空!")
-    private String lat;
-
 }

+ 0 - 6
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderCancelParam.java

@@ -27,11 +27,5 @@ public class WaybillOrderCancelParam extends WaybillOrderProcessParam implements
     @NotNull(message = "物流订单id不能为空!")
     private Long logOrderId;
 
-    /**
-     * 运单id
-     */
-    @Schema(description = "运单id")
-    @NotBlank(message = "运单id不能为空!")
-    private Long waybillOrderId;
 
 }

+ 0 - 28
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderCmeIntoWeighParam.java

@@ -21,13 +21,6 @@ public class WaybillOrderCmeIntoWeighParam extends WaybillOrderProcessParam impl
     @Serial
     private static final long serialVersionUID = 1038619782660342061L;
 
-    /**
-     * 运单id
-     */
-    @Schema(description = "运单id")
-    @NotNull(message = "运单id不能为空")
-    private Long waybillOrderId;
-
     /**
      * 车辆号
      */
@@ -42,27 +35,6 @@ public class WaybillOrderCmeIntoWeighParam extends WaybillOrderProcessParam impl
     @NotNull(message = "皮重不能为空")
     private BigDecimal tareAmount;
 
-    /**
-     * 毛重
-     */
-    @Schema(description = "毛重")
-    @NotNull(message = "毛重不能为空")
-    private BigDecimal grossAmount;
-
-    /**
-     * 经度
-     */
-    @Schema(description = "经度")
-    @NotBlank(message = "经度不能为空")
-    private String lng;
-
-    /**
-     * 纬度
-     */
-    @Schema(description = "纬度")
-    @NotBlank(message = "纬度不能为空")
-    private String lat;
-
 
 
 }

+ 0 - 7
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderLeaveMockParam.java

@@ -20,13 +20,6 @@ public class WaybillOrderLeaveMockParam extends WaybillOrderProcessParam impleme
     @Serial
     private static final long serialVersionUID = 5785738912828986952L;
 
-    /**
-     * 运单id
-     */
-    @Schema(description = "运单id")
-    @NotNull(message = "运单id不能为空")
-    private Long waybillOrderId;
-
     /**
      * 毛重
      */

+ 0 - 21
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderLeaveParam.java

@@ -27,25 +27,4 @@ public class WaybillOrderLeaveParam extends WaybillOrderProcessParam implements
     @NotNull(message = "物流订单id不能为空!")
     private Long logOrderId;
 
-    /**
-     * 运单id
-     */
-    @Schema(description = "运单id")
-    @NotBlank(message = "运单id不能为空!")
-    private Long waybillOrderId;
-
-    /**
-     * 经度
-     */
-    @Schema(description = "经度")
-    @NotBlank(message = "经度不能为空!")
-    private String lng;
-
-    /**
-     * 纬度
-     */
-    @Schema(description = "纬度")
-    @NotBlank(message = "纬度不能为空!")
-    private String lat;
-
 }

+ 1 - 25
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderLoadingParam.java

@@ -1,8 +1,6 @@
 package com.sckw.transport.model.param;
 
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
+
 import lombok.Data;
 
 import java.io.Serial;
@@ -20,27 +18,5 @@ public class WaybillOrderLoadingParam extends WaybillOrderProcessParam implement
     @Serial
     private static final long serialVersionUID = 1038619782660342061L;
 
-    /**
-     * 运单id
-     */
-    @Schema(description = "运单id")
-    @NotNull(message = "运单id不能为空")
-    private Long waybillOrderId;
-
-    /**
-     * 经度
-     */
-    @Schema(description = "经度")
-    @NotBlank(message = "经度不能为空")
-    private String lng;
-
-    /**
-     * 纬度
-     */
-    @Schema(description = "纬度")
-    @NotBlank(message = "纬度不能为空")
-    private String lat;
-
-
 
 }

+ 12 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderProcessParam.java

@@ -2,7 +2,6 @@ package com.sckw.transport.model.param;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serial;
@@ -24,7 +23,6 @@ public class WaybillOrderProcessParam implements Serializable {
      * 运单id
      */
     @Schema(description = "运单id")
-    @NotNull(message = "运单id不能为空")
     private Long waybillOrderId;
 
     /**
@@ -41,4 +39,16 @@ public class WaybillOrderProcessParam implements Serializable {
     @NotBlank(message = "纬度不能为空")
     private String lat;
 
+    /**
+     * 过磅id
+     */
+    @Schema(description = "过磅id")
+    private Long weighbridgeId;
+
+    /**
+     * 过磅名称
+     */
+    @Schema(description = "过磅名称")
+    private String weighbridgeName;
+
 }

+ 0 - 21
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/param/WaybillOrderUnloadParam.java

@@ -28,27 +28,6 @@ public class WaybillOrderUnloadParam extends WaybillOrderProcessParam implements
     @NotNull(message = "物流订单id不能为空!")
     private Long logOrderId;
 
-    /**
-     * 运单id
-     */
-    @Schema(description = "运单id")
-    @NotBlank(message = "运单id不能为空!")
-    private Long waybillOrderId;
-
-    /**
-     * 经度
-     */
-    @Schema(description = "经度")
-    @NotBlank(message = "经度不能为空!")
-    private String lng;
-
-    /**
-     * 纬度
-     */
-    @Schema(description = "纬度")
-    @NotBlank(message = "纬度不能为空!")
-    private String lat;
-
     /**
      * 卸货净重
      */

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtWaybillOrderRepository.java

@@ -148,10 +148,11 @@ public class KwtWaybillOrderRepository extends ServiceImpl<KwtWaybillOrderMapper
         );
     }
 
-    public List<KwtWaybillOrder> findWbOrderByTruckNo(String truckNo) {
+    public List<KwtWaybillOrder> findWbOrderByTruckNoAndStatus(String truckNo,List<Integer> status) {
         return list(Wrappers.<KwtWaybillOrder>lambdaQuery()
                 .eq(KwtWaybillOrder::getDelFlag,0)
                 .eq(KwtWaybillOrder::getTruckNo,truckNo)
+                .in(KwtWaybillOrder::getStatus,status)
                 .orderByDesc(KwtWaybillOrder::getId));
     }
 

+ 19 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -192,7 +192,7 @@ public class WaybillOrderService {
 //        List<KwtWaybillOrderAddress> waybillOrderAdderessList = createWaybillOrderAddress(param, waybillOrder, waybillOrderSubtask);
 //
 //        //4、生成车辆运单-装卸货信息
-//        createWaybillOrderTicket(param, logOrder, waybillOrder, waybillOrderSubtask, waybillOrderAdderessList, truckNo);
+//        createWaybillOrderTicket(logOrder, waybillOrder, waybillOrderSubtask, waybillOrderAdderessList, truckNo);
 //
 //        //5.生成车运单接单节点轨迹
 //        createWaybillOrderNode(param, waybillOrder, waybillOrderSubtask);
@@ -259,6 +259,10 @@ public class WaybillOrderService {
 //        if (truckNo == null || truckNo.getStatus() == Global.NUMERICAL_ONE) {
 //            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "当前车辆已锁定");
 //        }
+//        //核定载重
+//        if (truckNo.getActualWeight() == null) {
+//            throw new BusinessPlatfromException(ErrorCodeEnum.RESOURCE_NOT_FOUND, "车辆核定载重不能为空!");
+//        }
 //        return truckNo;
 //    }
 //
@@ -267,7 +271,7 @@ public class WaybillOrderService {
 //     * @param param
 //     */
 //    private void checkTruckUnfinished(OrderCirculateTakingQueryParam param) {
-//        List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNo(param.getTruckNo());
+//        List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), FORBIDDEN_STATUSES);
 //        boolean hasForbidden  = wbOrderByTruckNo.stream()
 //                .anyMatch(order -> order != null && FORBIDDEN_STATUSES.contains(order.getStatus()));
 //        if (hasForbidden) {
@@ -287,17 +291,14 @@ public class WaybillOrderService {
 //     *
 //     * @param param
 //     */
-//    private BigDecimal queryCurTruckLoadVolume(RTruckVo truckNo, OrderDetailVo orderDetailVo) {
+//    private BigDecimal queryCurTruckLoadVolume(RTruckVo truckNo, OrderDetailVo tradeOrder) {
 //        //核定载重
 //        BigDecimal actualWeight = truckNo.getActualWeight();
-//        if (actualWeight == null) {
-//            throw new BusinessPlatfromException(ErrorCodeEnum.RESOURCE_NOT_FOUND, "车辆核定载重不能为空!");
-//        }
 //        log.info("车辆核定载重:{}", actualWeight);
 //        //首次皮重
 //        BigDecimal tareWeight = truckNo.getTareWeight();
 //        //任务量
-//        BigDecimal loadVolume = BigDecimal.ZERO;
+//        BigDecimal loadVolume;
 //        if (tareWeight != null) {
 //            // 有皮重:任务量 = 核定载重 - 皮重
 //            loadVolume = actualWeight.subtract(tareWeight);
@@ -310,9 +311,9 @@ public class WaybillOrderService {
 //        }
 //
 //        //订单分配总量
-//        BigDecimal entrustAmount = orderDetailVo.getEntrustAmount();
+//        BigDecimal entrustAmount = tradeOrder.getEntrustAmount();
 //        //订单实际交付量
-//        BigDecimal actualAmount = orderDetailVo.getActualAmount();
+//        BigDecimal actualAmount = tradeOrder.getActualAmount();
 //        if (entrustAmount == null || actualAmount == null) {
 //            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "订单分配总量或订单实际交付量不能为空!");
 //        }
@@ -335,7 +336,7 @@ public class WaybillOrderService {
 //            taskAmount = loadVolume;
 //            log.info("订单余量适中,按基础任务量接单,最终任务量: {}", taskAmount);
 //        }
-//        log.info("最终任务量:{}", remainingAmount);
+//        log.info("最终任务量:{}", taskAmount);
 //        return taskAmount;
 //    }
 //
@@ -478,10 +479,10 @@ public class WaybillOrderService {
 //     * @param param
 //     * @param waybillOrder
 //     */
-//    private void createWaybillOrderTicket(OrderCirculateTakingQueryParam param, KwtLogisticsOrder logOrder,
+//    private void createWaybillOrderTicket(KwtLogisticsOrder logOrder,
 //                                          KwtWaybillOrder waybillOrder, KwtWaybillOrderSubtask waybillOrderSubtask,
 //                                          List<KwtWaybillOrderAddress> waybillOrderAddresses, RTruckVo truckNo) {
-//        log.info("创建车辆运单-装卸货信息入参参数:{}", JSON.toJSONString(param));
+//        log.info("创建车辆运单-装卸货信息入参参数, 运单ID{}",logOrder.getLOrderNo());
 //
 //        //装货地址
 //        KwtWaybillOrderAddress shipmentAddress = getWaybillOrderAddress(waybillOrderAddresses, AddressTypeEnum.SHIPMENT);
@@ -490,7 +491,7 @@ public class WaybillOrderService {
 //
 //        //卸货地址
 //        KwtWaybillOrderAddress takeAddress = getWaybillOrderAddress(waybillOrderAddresses, AddressTypeEnum.TAKE);
-//        createTicket(waybillOrder, waybillOrderSubtask, shipmentAddress, logOrder, truckNo);
+//        createTicket(waybillOrder, waybillOrderSubtask, takeAddress, logOrder, truckNo);
 //        log.info("创建车辆运单-装卸货信息成功!");
 //
 //    }
@@ -606,6 +607,7 @@ public class WaybillOrderService {
 //        //3.更新上游订单:更新贸易订单运输量
 //        updateTradeOrder(logOrder, entrustAmount);
 //
+//
 //        log.info("取消接单成功!");
 //    }
 //
@@ -627,6 +629,10 @@ public class WaybillOrderService {
 //        //车辆本次运输量
 //        KwtWaybillOrderSubtask orderSubtask = waybillOrderSubtaskRepository.queryByWOrderId(waybillOrder.getId());
 //        BigDecimal entrustAmount = orderSubtask.getEntrustAmount();
+//
+//        //生成取消接单节点轨迹
+//        createEnteredWaybillOrderNode(param.getLng(), param.getLat(), waybillOrder, CarWaybillV1Enum.APPROVAL_TREAT);
+//
 //        return entrustAmount;
 //    }
 //