浏览代码

655称重过磅轨迹日志记录优化

donglang 5 天之前
父节点
当前提交
8f3482c3b1

+ 25 - 10
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -60,7 +60,9 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         if (orderTicket == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_TICKET_NOT_FOUND, "当前物流运单装卸货信息不存在,无法记录皮重!");
         }
-        if (checkIsFirst(waybillOrder)) {
+        // 校验是否是第一次过磅
+        checkIsFirst(waybillOrder);
+        if (waybillOrder.getIsExistWeighbridges()) {
             //第一次过磅
             firstWeighbridge(param, waybillOrder, orderTicket);
         } else {
@@ -75,10 +77,14 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @param waybillOrder
      * @return
      */
-    private Boolean checkIsFirst(KwtWaybillOrder waybillOrder) {
+    private void checkIsFirst(KwtWaybillOrder waybillOrder) {
         List<KwtWaybillOrderWeighbridge> weighbridges = waybillOrderWeighbridgeRepository
                 .queryWaybillOrderWeighbridgeByWOrderId(waybillOrder.getId(), WeighbridgeTypeEnum.LOADING.getCode());
-        return CollectionUtils.isEmpty(weighbridges);
+        if (CollectionUtils.isEmpty(weighbridges)) {
+            waybillOrder.setIsExistWeighbridges(Boolean.TRUE);
+        } else {
+            waybillOrder.setIsExistWeighbridges(Boolean.FALSE);
+        }
     }
 
     /**
@@ -87,6 +93,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @param waybillOrder
      */
     private void firstWeighbridge(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder, KwtWaybillOrderTicket orderTicket) {
+        log.info("[过磅称重]开始第一次过磅称重,入参参数:{}", JSON.toJSONString(waybillOrder));
         if (param.getWeighAmount() == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "皮重不能为空!");
         }
@@ -116,6 +123,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
 
         //5.创建过磅记录
         createWeighbridges(param, waybillOrder);
+        log.info("[过磅称重]第一次过磅称重结束!");
     }
 
     /**
@@ -209,7 +217,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @return
      */
     public void updateGatekeeperOrderStatus(KwtWaybillOrder waybillOrder) {
-        log.info("推进门卫数据为已进场:{}", JSON.toJSONString(waybillOrder));
+        log.info("开始推进门卫数据为已进场:{}", JSON.toJSONString(waybillOrder));
         KwtGatekeeperWaybillOrder gatekeeper = gatekeeperWaybillOrderRepository
                 .queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId(), GatekeeperTypeEnum.LOADING.getCode());
         if (gatekeeper == null) {
@@ -222,6 +230,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         gatekeeper.setStatus(GatekeeperStatusEnum.IN_YARD.getCode());
         gatekeeper.setIntoTime(new Date());
         gatekeeperWaybillOrderRepository.updateById(gatekeeper);
+        log.info("推进门卫数据为已进场结算!");
     }
 
     /**
@@ -260,12 +269,13 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @param waybillOrder
      */
     private void laterWeighbridge(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder, KwtWaybillOrderTicket orderTicket) {
+        log.info("[过磅称重]开始第二次过磅称重,入参参数:{}", JSON.toJSONString(waybillOrder));
         if (param.getWeighAmount() == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "毛重不能为空!");
         }
         //1.填充装货单毛重和装货净重
         BigDecimal loadAmount = updateGrossAmount(param, orderTicket);
-        //2.填充运单装货净重
+        //2.填充运单装货净重
         updateLoadAmount(param, waybillOrder, loadAmount);
         //3.判断流程
         checkProcess(param, waybillOrder, loadAmount);
@@ -273,7 +283,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         createWeighbridges(param, waybillOrder);
         //5.填补门卫地磅id
         updateGatekeeperOrder(param, waybillOrder);
-
+        log.info("[过磅称重]第二次过磅称重结束!");
     }
 
     /**
@@ -282,6 +292,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @param shipmentTicket
      */
     private BigDecimal updateGrossAmount(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrderTicket shipmentTicket) {
+        log.info("[二次过磅称重]填充装货单毛重和装货净重,入参参数:{}", JSON.toJSONString(param));
         //毛重
         shipmentTicket.setGrossAmount(param.getWeighAmount());
         //皮重
@@ -300,12 +311,13 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @param loadAmount
      */
     private void updateLoadAmount(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder, BigDecimal loadAmount) {
+        log.info("[二次过磅称重]填充子运单装货净重,入参参数:{}", JSON.toJSONString(param));
         //更新子运单装货净重
         KwtWaybillOrderSubtask subtask = getWaybillSubtask(waybillOrder.getId());
         subtask.setLoadAmount(loadAmount);
         subtask.setLoadTime(new Date());
         waybillOrderSubtaskRepository.updateById(subtask);
-        log.info("物流运单离场过磅成功!运单ID: {}, 毛重: {}, 装货净重: {}", param.getWaybillOrderId(), param.getWeighAmount(), loadAmount);
+        log.info("[二次过磅称重]填充子运单装货净重结束,运单ID: {}, 毛重: {}, 装货净重: {}", param.getWaybillOrderId(), param.getWeighAmount(), loadAmount);
     }
 
     //
@@ -319,6 +331,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @param loadAmount
      */
     private void checkProcess(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder, BigDecimal loadAmount) {
+        log.info("[二次过磅称重]判断过磅称重流程,入参参数:{}", JSON.toJSONString(waybillOrder));
         //获取运单任务量
         KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
         if (waybillSubtask.getEntrustAmount() == null) {
@@ -371,7 +384,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
             // 场景四:正常流程,0.5<净重<=任务量
             waybillOrder.setTargetStatus(2);
         }
-
+        log.info("[二次过磅称重]判断过磅称重流程结束!");
     }
 
     /**
@@ -392,6 +405,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
      * @param waybillOrder
      */
     private void updateGatekeeperOrder(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
+        log.info("[二次过磅称重]填补门卫地磅id,入参参数:{}", JSON.toJSONString(waybillOrder));
         KwtGatekeeperWaybillOrder gatekeeperWaybillOrder = gatekeeperWaybillOrderRepository
                 .queryGatekeeperWaybillOrderByWOrderId(waybillOrder.getId(), GatekeeperTypeEnum.LOADING.getCode());
         if (gatekeeperWaybillOrder == null) {
@@ -403,6 +417,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
 
         gatekeeperWaybillOrder.setWeighbridgeId(param.getWeighbridgeId());
         gatekeeperWaybillOrderRepository.updateById(gatekeeperWaybillOrder);
+        log.info("[二次过磅称重]填补门卫地磅id结束!");
     }
 
     @Override
@@ -414,7 +429,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
     protected void getStatus(KwtWaybillOrder waybillOrder) {
         Integer status;
         // 校验是否第一次过磅
-        if (checkIsFirst(waybillOrder)) {
+        if (waybillOrder.getIsExistWeighbridges()) {
             status = CarWaybillV1Enum.REFUSE_TRAFFIC.getCode();
             updateOrderStatus(waybillOrder, status);
             return;
@@ -533,7 +548,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
     @Override
     @Transactional(rollbackFor = Exception.class)
     protected void calculateAutoDispatchScore(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
-        if (checkIsFirst(waybillOrder)) {
+        if (waybillOrder.getIsExistWeighbridges()) {
             //校验连续按时到场次数
             checkContinuousArriveTimes(waybillOrder);
         }

+ 4 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/KwtWaybillOrder.java

@@ -200,4 +200,8 @@ public class KwtWaybillOrder implements Serializable {
     //用于存储动态状态
     @TableField(exist = false)
     private Integer targetStatus;
+
+    //用于存储动态状态
+    @TableField(exist = false)
+    private Boolean isExistWeighbridges;
 }