Browse Source

运单处理器优化

donglang 1 month ago
parent
commit
75d2fe183a

+ 16 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/AbstractWaybillOrderHandler.java

@@ -69,7 +69,7 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
             // 4. 核心业务
             doBusiness(param, waybillOrder);
             // 5. 更新状态
-            updateStatus(param, waybillOrder);
+            updateStatus(waybillOrder);
             // 6. 生成节点轨迹
             createNodeTrace(param, waybillOrder);
             // 7. 后置处理
@@ -111,7 +111,20 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
     protected abstract void doBusiness(T param, KwtWaybillOrder waybillOrder);
 
     // 5. 更新状态
-    protected abstract void updateStatus(T param, KwtWaybillOrder waybillOrder);
+    protected void updateStatus(KwtWaybillOrder waybillOrder) {
+        if (waybillOrder == null) {
+            //接单已经初始化了,无需额外更新
+            return;
+        }
+        // 修改运单状态
+        waybillOrder.setStatus(getStatus());
+        waybillOrderRepository.updateById(waybillOrder);
+
+        //修改子运单状态
+        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
+        waybillSubtask.setStatus(getStatus());
+        waybillOrderSubtaskRepository.updateById(waybillSubtask);
+    }
 
     // 6. 生成节点轨迹
     protected void createNodeTrace(T param, KwtWaybillOrder waybillOrder) {
@@ -151,6 +164,7 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
 
     protected abstract String getProcessName();
 
+    protected abstract Integer getStatus();
 
     protected abstract String getRemark(T param, KwtWaybillOrder waybillOrder);
 

+ 4 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/CancelHandler.java

@@ -110,19 +110,13 @@ public class CancelHandler extends AbstractWaybillOrderHandler<WaybillOrderCance
     }
 
     @Override
-    protected void updateStatus(WaybillOrderCancelParam param, KwtWaybillOrder waybill) {
-        // 已取消状态
-        waybill.setStatus(CarWaybillV1Enum.APPROVAL_TREAT.getCode());
-        waybillOrderRepository.updateById(waybill);
-
-        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybill.getId());
-        waybillSubtask.setStatus(CarWaybillV1Enum.APPROVAL_TREAT.getCode());
-        waybillOrderSubtaskRepository.updateById(waybillSubtask);
+    protected String getProcessName() {
+        return "取消接单";
     }
 
     @Override
-    protected String getProcessName() {
-        return "取消接单";
+    protected Integer getStatus() {
+        return CarWaybillV1Enum.APPROVAL_TREAT.getCode();
     }
 
     @Override

+ 4 - 11
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -68,20 +68,13 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
     }
 
     @Override
-    protected void updateStatus(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
-        // 到达装货地点状态
-        waybillOrder.setStatus(CarWaybillV1Enum.REFUSE_TRAFFIC.getCode());
-        waybillOrderRepository.updateById(waybillOrder);
-
-        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
-        waybillSubtask.setStatus(CarWaybillV1Enum.REFUSE_TRAFFIC.getCode());
-        waybillOrderSubtaskRepository.updateById(waybillSubtask);
+    protected String getProcessName() {
+        return "到达装货地点";
     }
 
-
     @Override
-    protected String getProcessName() {
-        return "到达装货地点";
+    protected Integer getStatus() {
+        return CarWaybillV1Enum.REFUSE_TRAFFIC.getCode();
     }
 
     @Override

+ 4 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LeaveHandler.java

@@ -50,19 +50,13 @@ public class LeaveHandler extends AbstractWaybillOrderHandler<WaybillOrderLeaveP
     }
 
     @Override
-    protected void updateStatus(WaybillOrderLeaveParam param, KwtWaybillOrder waybill) {
-        // 已离场状态
-        waybill.setStatus(CarWaybillV1Enum.WAIT_LOADING.getCode());
-        waybillOrderRepository.updateById(waybill);
-
-        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybill.getId());
-        waybillSubtask.setStatus(CarWaybillV1Enum.WAIT_LOADING.getCode());
-        waybillOrderSubtaskRepository.updateById(waybillSubtask);
+    protected String getProcessName() {
+        return "离场";
     }
 
     @Override
-    protected String getProcessName() {
-        return "离场";
+    protected Integer getStatus() {
+        return CarWaybillV1Enum.WAIT_LOADING.getCode();
     }
 
     @Override

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

@@ -104,15 +104,16 @@ public class LeaveMockHandler extends AbstractWaybillOrderHandler<WaybillOrderLe
     }
 
     @Override
-    protected void updateStatus(WaybillOrderLeaveMockParam param, KwtWaybillOrder waybill) {
-        // 离场过磅不更新状态
+    protected String getProcessName() {
+        return "离场过磅";
     }
 
     @Override
-    protected String getProcessName() {
-        return "离场过磅(计算毛重和净重)";
+    protected Integer getStatus() {
+        return CarWaybillV1Enum.WEIGHT_TRAFFIC.getCode();
     }
 
+
     @Override
     protected String getRemark(WaybillOrderLeaveMockParam param, KwtWaybillOrder waybillOrder) {
         return "[" + param.getWeighbridgeName() + "]称重[" + param.getGrossAmount() + "吨]";

+ 4 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/LoadingHandler.java

@@ -40,19 +40,13 @@ public class LoadingHandler extends AbstractWaybillOrderHandler<WaybillOrderLoad
     }
 
     @Override
-    protected void updateStatus(WaybillOrderLoadingParam param, KwtWaybillOrder waybillOrder) {
-        // 已装货状态
-        waybillOrder.setStatus(CarWaybillV1Enum.EXIT_COMPLETED.getCode());
-        waybillOrderRepository.updateById(waybillOrder);
-
-        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
-        waybillSubtask.setStatus(CarWaybillV1Enum.EXIT_COMPLETED.getCode());
-        waybillOrderSubtaskRepository.updateById(waybillSubtask);
+    protected String getProcessName() {
+        return "已装货";
     }
 
     @Override
-    protected String getProcessName() {
-        return "已装货";
+    protected Integer getStatus() {
+        return CarWaybillV1Enum.EXIT_COMPLETED.getCode();
     }
 
     @Override

+ 4 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java

@@ -496,14 +496,13 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
     }
 
     @Override
-    protected void updateStatus(OrderCirculateTakingQueryParam param, KwtWaybillOrder waybillOrder) {
-        // 状态已在 createWaybillOrder 中初始化为 PENDING_VEHICLE,无需额外更新
+    protected String getProcessName() {
+        return "接单";
     }
 
-
     @Override
-    protected String getProcessName() {
-        return "接单";
+    protected Integer getStatus() {
+        return null;
     }
 
     @Override

+ 4 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/UnloadingHandler.java

@@ -57,19 +57,13 @@ public class UnloadingHandler extends AbstractWaybillOrderHandler<WaybillOrderUn
     }
 
     @Override
-    protected void updateStatus(WaybillOrderUnloadParam param, KwtWaybillOrder waybill) {
-        // 已卸货状态
-        waybill.setStatus(CarWaybillV1Enum.COMPLETION_LOADING.getCode());
-        waybillOrderRepository.updateById(waybill);
-
-        KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybill.getId());
-        waybillSubtask.setStatus(CarWaybillV1Enum.COMPLETION_LOADING.getCode());
-        waybillOrderSubtaskRepository.updateById(waybillSubtask);
+    protected String getProcessName() {
+        return "卸货";
     }
 
     @Override
-    protected String getProcessName() {
-        return "卸货";
+    protected Integer getStatus() {
+        return CarWaybillV1Enum.COMPLETION_LOADING.getCode();
     }
 
     @Override