소스 검색

自动转载生成节点轨迹

donglang 1 일 전
부모
커밋
95e64c9cf7
1개의 변경된 파일51개의 추가작업 그리고 19개의 파일을 삭제
  1. 51 19
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

+ 51 - 19
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -286,10 +286,10 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         }
 
         // 1. 铲车司机接单
-        createForkliftWaybillOrder(forkliftWaybillOrder);
+        createForkliftWaybillOrder(waybillOrder, forkliftWaybillOrder);
 
         // 2. 铲车司机完成装载
-        loadingCompleted(forkliftWaybillOrder);
+        loadingCompleted(waybillOrder, forkliftWaybillOrder);
 
         waybillOrder.setIsAutoCompleteLoading(Boolean.TRUE);
     }
@@ -298,7 +298,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * 铲车司机接单
      * @param forkliftWaybillOrder
      */
-    public void createForkliftWaybillOrder(KwtForkliftWaybillOrder forkliftWaybillOrder) {
+    public void createForkliftWaybillOrder(KwtWaybillOrder waybillOrder, KwtForkliftWaybillOrder forkliftWaybillOrder) {
         log.info("[自动接单]铲车订单接单,铲车订单id:{}", JSON.toJSONString(forkliftWaybillOrder.getId()));
         if (!ForkliftStatusEnum.PENDING_ORDERS.getCode().equals(forkliftWaybillOrder.getStatus())) {
             throw new BusinessPlatfromException(ErrorCodeEnum.FORKLIFT_ORDER_STATUS_ERROR, "当前铲车订单状态异常,不能接单!");
@@ -306,33 +306,24 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
 
         forkliftWaybillOrder.setStatus(ForkliftStatusEnum.ORDER_TAKING.getCode());
         forkliftWaybillOrder.setDriverId(defaultDriverId);
-        forkliftWaybillOrder.setDriverPhone(defaultDriverName);
-        forkliftWaybillOrder.setDriverName(defaultDriverPhone);
+        forkliftWaybillOrder.setDriverPhone(defaultDriverPhone);
+        forkliftWaybillOrder.setDriverName(defaultDriverName);
         forkliftWaybillOrder.setForkliftAcceptTime(new Date());
         forkliftWaybillOrderRepository.updateById(forkliftWaybillOrder);
 
-        log.info("[自动接单]铲车接单成功,铲车订单ID:{}", forkliftWaybillOrder.getWOrderId());
-    }
-
-    /**
-     * 修改司机状态
-     * @param forkliftWaybillOrder
-     */
-    private void updateWaybillOrder(KwtForkliftWaybillOrder forkliftWaybillOrder, CarWaybillV1Enum waybillV1Enum) {
-        // 修改运单状态
-        updateWaybillStatus(forkliftWaybillOrder, waybillV1Enum);
+        // 创建自动节点铲车节点轨迹
+        String remark = "装载员[" + defaultDriverName + "]已接单,装载单号[" + forkliftWaybillOrder.getFOrderNo() + "]";
+        creatWaybillOrderNode(waybillOrder, forkliftWaybillOrder, CarWaybillV1Enum.REFUSE_TRAFFIC, remark);
 
-        // 修改子运单状态
-        updateWaybillSubtaskStatus(forkliftWaybillOrder, waybillV1Enum);
+        log.info("[自动接单]铲车接单成功,铲车订单ID:{}", forkliftWaybillOrder.getWOrderId());
     }
 
-
     /**
      * 装载完成
      * @param forkliftWaybillOrder
      * @return
      */
-    public void loadingCompleted(KwtForkliftWaybillOrder forkliftWaybillOrder) {
+    public void loadingCompleted(KwtWaybillOrder waybillOrder, KwtForkliftWaybillOrder forkliftWaybillOrder) {
         log.info("[自动接单]铲车司机装载完成, 铲车订单id:{}", JSON.toJSONString(forkliftWaybillOrder.getId()));
         if (!ForkliftStatusEnum.ORDER_TAKING.getCode().equals(forkliftWaybillOrder.getStatus())) {
             throw new BusinessPlatfromException(ErrorCodeEnum.FORKLIFT_ORDER_STATUS_ERROR, "当前铲车订单状态异常,不能装载完成!");
@@ -344,9 +335,25 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
 
         //更新司机运单状态:已装货
         updateWaybillOrder(forkliftWaybillOrder, CarWaybillV1Enum.EXIT_COMPLETED);
+
+        //创建自动装载完成节点轨迹
+        String remark = "装载员[" + forkliftWaybillOrder.getDriverName() + "]已完成装载,装载单号[" + forkliftWaybillOrder.getFOrderNo() + "]";
+        creatWaybillOrderNode(waybillOrder, forkliftWaybillOrder,  CarWaybillV1Enum.EXIT_COMPLETED, remark);
         log.info("[自动接单]铲车装载成功,铲车订单ID:{}", forkliftWaybillOrder.getWOrderId());
     }
 
+    /**
+     * 修改司机状态
+     * @param forkliftWaybillOrder
+     */
+    private void updateWaybillOrder(KwtForkliftWaybillOrder forkliftWaybillOrder, CarWaybillV1Enum waybillV1Enum) {
+        // 修改运单状态
+        updateWaybillStatus(forkliftWaybillOrder, waybillV1Enum);
+
+        // 修改子运单状态
+        updateWaybillSubtaskStatus(forkliftWaybillOrder, waybillV1Enum);
+    }
+
 
     /**
      * 修改运单状态
@@ -375,6 +382,31 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         waybillOrderSubtaskRepository.updateById(waybillSubtask);
     }
 
+    /**
+     * 创建日子轨迹记录
+     * @param forkliftWaybillOrder
+     * @return
+     */
+    public void creatWaybillOrderNode(KwtWaybillOrder waybillOrder, KwtForkliftWaybillOrder forkliftWaybillOrder,
+                                      CarWaybillV1Enum CarWaybillV1Enum, String remark) {
+        log.info("[自动接单]铲车接单-节点轨迹入参参数:{}", JSON.toJSONString(forkliftWaybillOrder));
+        // 查询子运单
+        KwtWaybillOrderSubtask subtask = waybillOrderSubtaskRepository.queryByWOrderId(waybillOrder.getId());
+        if (subtask == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_SUB_NOT_FOUND, "未找到关联的子运单!");
+        }
+        KwtWaybillOrderNode node = new KwtWaybillOrderNode();
+        node.setWOrderId(forkliftWaybillOrder.getWOrderId());
+        node.setWSubtaskId(subtask.getId());
+        node.setOrderStatus(CarWaybillV1Enum.getCode());
+        node.setTruckNo(waybillOrder.getTruckNo());
+        node.setTruckId(waybillOrder.getTruckId());
+        node.setDriverId(waybillOrder.getDriverId());
+        node.setDriverName(waybillOrder.getDriverName());
+        node.setRemark(remark);
+        waybillOrderNodeRepository.save(node);
+        log.info("[[自动接单]铲车接单记录节点轨迹成功,节点ID:{}", node.getId());
+    }
 
     /**
      * 第二次过磅逻辑