Explorar o código

原矿运输
1、接单执行中的状态校验

donglang hai 4 semanas
pai
achega
71018ea03e

+ 4 - 4
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillV1Enum.java

@@ -84,10 +84,10 @@ public enum CarWaybillV1Enum {
      */
     UNLOADING_WAIT_RELEASE(21, "卸货待放行"),
 
-    /**
-     * 卸货已放行待离场 (只有友盛在用)  弃用
-     */
-    UNLOADING_RELEASED_WAIT_LEAVE(22, "卸货已放行待离场"),
+//    /**
+//     * 卸货已放行待离场 (只有友盛在用)  弃用
+//     */
+//    UNLOADING_RELEASED_WAIT_LEAVE(22, "卸货已放行待离场"),
 
     /**
      * 已卸货

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

@@ -107,7 +107,7 @@ public class LiftRodReleaseHandler extends AbstractWaybillOrderHandler<WaybillOr
     private void creatGatekeeperUnLoadingOrder(KwtWaybillOrder waybillOrder) {
         // 只有原矿运输的才会新增卸货门卫订单
         KwtLogisticsOrder logisticsOrder = getLogisticsOrder(waybillOrder.getLOrderId());
-        if (!Objects.equals(1, logisticsOrder.getStatus())) {
+        if (!Objects.equals(1, logisticsOrder.getOrderType())) {
             return;
         }
 

+ 31 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java

@@ -66,6 +66,27 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
             CarWaybillV1Enum.REVIEW_REJECTION.getCode()
     );
 
+    // 定义禁止运单接单的状态集合
+    private static final List<Integer> RAW_ORE_FORBIDDEN_STATUSES = Arrays.asList(
+            CarWaybillV1Enum.PENDING_VEHICLE.getCode(),
+            CarWaybillV1Enum.REFUSE_TRAFFIC.getCode(),
+            CarWaybillV1Enum.EXIT_COMPLETED.getCode(),
+            CarWaybillV1Enum.EMPTY_WAIT_LEAVE.getCode(),
+            CarWaybillV1Enum.WAIT_LEAVE.getCode(),
+            CarWaybillV1Enum.UNLOADING.getCode(),
+            CarWaybillV1Enum.WAIT_RELEASE.getCode(),
+            CarWaybillV1Enum.REPLENISHING.getCode(),
+            CarWaybillV1Enum.REPLENISH_FINISH.getCode(),
+            CarWaybillV1Enum.RELEASED_NOT_EXITED.getCode(),
+            CarWaybillV1Enum.WAIT_LOADING.getCode(),
+
+            CarWaybillV1Enum.UNLOADING_POINT.getCode(),
+            CarWaybillV1Enum.UNLOADING_WAIT_LEAVE.getCode(),
+            CarWaybillV1Enum.UNLOADING_WAIT_RELEASE.getCode(),
+
+            CarWaybillV1Enum.REVIEW_REJECTION.getCode()
+    );
+
 
     @Override
     protected KwtWaybillOrder getWaybillOrder(OrderCirculateTakingQueryParam param) {
@@ -87,7 +108,7 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
         // 5.校验车辆
         RTruckVo truck = checkTruck(param);
         // 6.校验车辆是否已有未完成运单
-        checkTruckUnfinished(param);
+        checkTruckUnfinished(param, logOrder);
 
         // 存储到线程上下文
         BusinessContext.set("logOrder", logOrder);
@@ -280,8 +301,15 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
      * 校验车辆是否已有未完成运单(不可继续接单状态:已接单、已入场、已装货、已离场、审核驳回)
      * @param param
      */
-    private void checkTruckUnfinished(OrderCirculateTakingQueryParam param) {
-        List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), FORBIDDEN_STATUSES);
+    private void checkTruckUnfinished(OrderCirculateTakingQueryParam param, KwtLogisticsOrder logOrder) {
+        // 原矿运输
+        List<KwtWaybillOrder> wbOrderByTruckNo;
+        if (Objects.equals(1, logOrder.getOrderType())) {
+            wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), RAW_ORE_FORBIDDEN_STATUSES);
+        } else {
+            // 正常流程
+            wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), FORBIDDEN_STATUSES);
+        }
         if (CollectionUtils.isNotEmpty(wbOrderByTruckNo)) {
             throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_UNFINISHED, "当前车辆有未完成的状态,不可继续接单");
         }