Răsfoiți Sursa

655新增抬杆查询接口优化

donglang 5 zile în urmă
părinte
comite
ebf1e43dea

+ 29 - 9
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/GatekeeperOrderService.java

@@ -1245,16 +1245,28 @@ public class GatekeeperOrderService {
         }
         }
         // 获取最新的一条数据
         // 获取最新的一条数据
         KwtWaybillOrder waybillOrder = wbOrderByTruckNo.get(0);
         KwtWaybillOrder waybillOrder = wbOrderByTruckNo.get(0);
+        List<KwtWaybillOrderWeighbridge> weighbridges = checkIsFirst(waybillOrder);
         // 山上:需要区分是进场抬杆还是出场抬杆
         // 山上:需要区分是进场抬杆还是出场抬杆
-        if (checkIsFirst(waybillOrder)) {
+        if (CollectionUtils.isEmpty(weighbridges)) {
             // 第一次过磅
             // 第一次过磅
             Boolean result = Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.PENDING_VEHICLE.getCode()) ? Boolean.TRUE : Boolean.FALSE;
             Boolean result = Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.PENDING_VEHICLE.getCode()) ? Boolean.TRUE : Boolean.FALSE;
             log.info("第一次过磅校验出场是否可放行完成,抬杆结果:{}, 运单:{}", JSON.toJSONString(result), JSON.toJSONString(waybillOrder));
             log.info("第一次过磅校验出场是否可放行完成,抬杆结果:{}, 运单:{}", JSON.toJSONString(result), JSON.toJSONString(waybillOrder));
             return result;
             return result;
+        } else if (weighbridges.size() == 1){
+            // 第二、三次过磅
+            List<KwtGatekeeperWaybillOrder> gatekeeperWaybillOrders = getGatekeeperWaybillOrders(waybillOrder);
+            if (CollectionUtils.isEmpty(gatekeeperWaybillOrders)) {
+                return Boolean.FALSE;
+            }
+            KwtGatekeeperWaybillOrder gatekeeperWaybillOrder = gatekeeperWaybillOrders.get(0);
+
+            // 定义运单可以可放行的状态集合
+            Boolean result = Objects.equals(gatekeeperWaybillOrder.getStatus(), GatekeeperStatusEnum.IN_YARD.getCode()) ? Boolean.TRUE : Boolean.FALSE;
+            log.info("后续过磅,校验出场是否可放行完成,抬杆结果:{}, 运单:{}", JSON.toJSONString(result), JSON.toJSONString(waybillOrder));
+            return result;
         } else {
         } else {
-            // 第二次过磅
-            List<KwtGatekeeperWaybillOrder> gatekeeperWaybillOrders = gatekeeperWaybillOrderRepository
-                    .queryGatekeeperWaybillOrderByWOrderIds(Lists.newArrayList(waybillOrder.getId()));
+            // 第四次过磅
+            List<KwtGatekeeperWaybillOrder> gatekeeperWaybillOrders = getGatekeeperWaybillOrders(waybillOrder);
             if (CollectionUtils.isEmpty(gatekeeperWaybillOrders)) {
             if (CollectionUtils.isEmpty(gatekeeperWaybillOrders)) {
                 return Boolean.FALSE;
                 return Boolean.FALSE;
             }
             }
@@ -1262,26 +1274,34 @@ public class GatekeeperOrderService {
 
 
             // 定义运单可以可放行的状态集合
             // 定义运单可以可放行的状态集合
             List<Integer> PASS_STATUSES = Arrays.asList(
             List<Integer> PASS_STATUSES = Arrays.asList(
-                    GatekeeperStatusEnum.IN_YARD.getCode(),
                     GatekeeperStatusEnum.EXITED.getCode(),
                     GatekeeperStatusEnum.EXITED.getCode(),
                     GatekeeperStatusEnum.EMPTY_EXITED.getCode()
                     GatekeeperStatusEnum.EMPTY_EXITED.getCode()
             );
             );
             Boolean result = PASS_STATUSES.contains(gatekeeperWaybillOrder.getStatus()) ? Boolean.TRUE : Boolean.FALSE;
             Boolean result = PASS_STATUSES.contains(gatekeeperWaybillOrder.getStatus()) ? Boolean.TRUE : Boolean.FALSE;
-            log.info("后过磅,校验出场是否可放行完成,抬杆结果:{}, 运单:{}", JSON.toJSONString(result), JSON.toJSONString(waybillOrder));
+            log.info("后过磅,校验出场是否可放行完成,抬杆结果:{}, 运单:{}", JSON.toJSONString(result), JSON.toJSONString(waybillOrder));
             return result;
             return result;
         }
         }
     }
     }
 
 
+    /**
+     * 查询门卫
+     * @param waybillOrder
+     * @return
+     */
+    private List<KwtGatekeeperWaybillOrder> getGatekeeperWaybillOrders(KwtWaybillOrder waybillOrder) {
+        return gatekeeperWaybillOrderRepository
+                .queryGatekeeperWaybillOrderByWOrderIds(Lists.newArrayList(waybillOrder.getId()));
+    }
+
 
 
     /**
     /**
      * 校验是否第一次过磅
      * 校验是否第一次过磅
      * @param waybillOrder
      * @param waybillOrder
      * @return
      * @return
      */
      */
-    private Boolean checkIsFirst(KwtWaybillOrder waybillOrder) {
-        List<KwtWaybillOrderWeighbridge> weighbridges = waybillOrderWeighbridgeRepository
+    private List<KwtWaybillOrderWeighbridge> checkIsFirst(KwtWaybillOrder waybillOrder) {
+        return waybillOrderWeighbridgeRepository
                 .queryWaybillOrderWeighbridgeByWOrderId(waybillOrder.getId(), WeighbridgeTypeEnum.LOADING.getCode());
                 .queryWaybillOrderWeighbridgeByWOrderId(waybillOrder.getId(), WeighbridgeTypeEnum.LOADING.getCode());
-        return CollectionUtils.isEmpty(weighbridges);
     }
     }