浏览代码

考虑铲车完成装载,生成新的铲车订单逻辑

donglang 1 月之前
父节点
当前提交
6155c231d0

+ 8 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -297,7 +297,12 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         BigDecimal truckStandardLoad = getTruckStandardLoad(param.getTruckNo());
 
         // 校验铲车司机
-        KwtForkliftWaybillOrder forklift = forkliftWaybillOrderRepository.queryForkliftWaybillOrderByWOrderId(waybillOrder.getId());
+        List<KwtForkliftWaybillOrder> forkliftList = forkliftWaybillOrderRepository.queryForkliftWaybillOrdersByWOrderId(waybillOrder.getId());
+        if (CollectionUtils.isEmpty(forkliftList)) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.SYSTEM_ERROR, "[称重过磅]未查询到铲车订单!");
+        }
+        //最新的一条铲车运单
+        KwtForkliftWaybillOrder forklift = forkliftList.get(0);
 
         //1. 铲车司机已接单,运单什么都不展示
         if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.ORDER_TAKING.getCode())) {
@@ -306,7 +311,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         }
 
         //2. 铲车司机待接单,只分为“空载离场”和“其它情况”(什么不展示)
-        if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.PENDING_ORDERS.getCode())) {
+        if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.PENDING_ORDERS.getCode()) && forkliftList.size() == 1) {
             //场景一. 空载离场,-0.5<=净重<=0.5
             if (loadAmount.compareTo(BigDecimal.valueOf(-0.5)) >= 0 && loadAmount.compareTo(BigDecimal.valueOf(0.5)) <= 0) {
                 waybillOrder.setTargetStatus(1);
@@ -318,7 +323,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
         }
 
         //3.铲车司机完成装载,是什么流程就是什么流程,按照最新一次过磅为准
-        if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.COMPLETED.getCode())) {
+        if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.COMPLETED.getCode()) || Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.REPLENISHING.getCode())) {
             //场景一:净重<-0.5,什么不展示
             if (loadAmount.compareTo(BigDecimal.valueOf(-0.5)) < 0) {
                 return;

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtForkliftWaybillOrderRepository.java

@@ -65,6 +65,13 @@ public class KwtForkliftWaybillOrderRepository extends ServiceImpl<KwtForkliftWa
                 .last("limit 1"));
     }
 
+    public List<KwtForkliftWaybillOrder> queryForkliftWaybillOrdersByWOrderId(Long wOrderId) {
+        return list(Wrappers.<KwtForkliftWaybillOrder>lambdaQuery()
+                .eq(KwtForkliftWaybillOrder::getWOrderId, wOrderId)
+                .orderByDesc(KwtForkliftWaybillOrder::getId)
+                .orderByDesc(KwtForkliftWaybillOrder::getCreateTime));
+    }
+