|
@@ -1239,13 +1239,76 @@ public class GatekeeperOrderService {
|
|
|
log.info("校验是否可放行:{}", JSON.toJSONString(gatekeeper));
|
|
log.info("校验是否可放行:{}", JSON.toJSONString(gatekeeper));
|
|
|
List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNo(gatekeeper.getTruckNo());
|
|
List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNo(gatekeeper.getTruckNo());
|
|
|
if (CollectionUtils.isEmpty(wbOrderByTruckNo)) {
|
|
if (CollectionUtils.isEmpty(wbOrderByTruckNo)) {
|
|
|
|
|
+ log.info("未找到运单数据,校验抬杆结果:{}, 运单:{}", Boolean.FALSE, JSON.toJSONString(wbOrderByTruckNo));
|
|
|
return Boolean.FALSE;
|
|
return Boolean.FALSE;
|
|
|
}
|
|
}
|
|
|
// 获取最新的一条数据
|
|
// 获取最新的一条数据
|
|
|
KwtWaybillOrder waybillOrder = wbOrderByTruckNo.get(0);
|
|
KwtWaybillOrder waybillOrder = wbOrderByTruckNo.get(0);
|
|
|
List<KwtWaybillOrderWeighbridge> weighbridges = checkIsFirst(waybillOrder);
|
|
List<KwtWaybillOrderWeighbridge> weighbridges = checkIsFirst(waybillOrder);
|
|
|
if (CollectionUtils.isEmpty(weighbridges)) {
|
|
if (CollectionUtils.isEmpty(weighbridges)) {
|
|
|
- // 第一次过磅
|
|
|
|
|
|
|
+ // 进场第一次抬杆
|
|
|
|
|
+ Boolean result = Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.PENDING_VEHICLE.getCode()) ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
+ log.info("第一次过磅校校验抬杆结果:{}, 运单:{}", JSON.toJSONString(result), JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return result;
|
|
|
|
|
+ } else if (weighbridges.size() == 1) {
|
|
|
|
|
+ //第二次抬杆
|
|
|
|
|
+
|
|
|
|
|
+ //第三次抬杆:铲车司机已接单未完成装载情况
|
|
|
|
|
+ KwtForkliftWaybillOrder forklift = forkliftWaybillOrderRepository.queryForkliftWaybillOrderByWOrderId(waybillOrder.getId());
|
|
|
|
|
+ if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.ORDER_TAKING.getCode())) {
|
|
|
|
|
+ log.info("[出场上榜]铲车司机已接单未完成,抬杆结果:{}, 运单:{}", Boolean.FALSE, JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return Boolean.FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.COMPLETED.getCode())) {
|
|
|
|
|
+ Boolean result = Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.EXIT_COMPLETED.getCode()) ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
+ log.info("[出场上榜]铲车司机完成装载,抬杆结果:{}, 运单:{}", Boolean.FALSE, JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Boolean result = Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.REFUSE_TRAFFIC.getCode()) ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
+ log.info("[进场下榜/出场上榜]抬杆,校验出场结果:{}, 运单:{}", JSON.toJSONString(result), JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return result;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 定义运单可以可放行的状态集合
|
|
|
|
|
+ if (Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.WAIT_LOADING.getCode())) {
|
|
|
|
|
+ log.info("[出场下榜]抬杆,校验出场结果:{}, 运单:{}", Boolean.TRUE, JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return Boolean.TRUE;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 定义运单可以可放行的状态集合
|
|
|
|
|
+ if (Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.COMPLETED.getCode())) {
|
|
|
|
|
+ KwtForkliftWaybillOrder forklift = forkliftWaybillOrderRepository.queryForkliftWaybillOrderByWOrderId(waybillOrder.getId());
|
|
|
|
|
+ if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.COMPLETED.getCode())) {
|
|
|
|
|
+ log.info("[出场下榜]铲车司机完成装载,空载离场过磅,校验出场结果:{}, 运单:{}", Boolean.TRUE, JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return Boolean.TRUE;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.info("[出场下榜]铲车司机未接单,空载离场过磅,校验出场结果:{}, 运单:{}", Boolean.TRUE, JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return Boolean.TRUE;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Objects.equals(waybillOrder.getStatus(), CarWaybillV1Enum.REFUSE_TRAFFIC.getCode())) {
|
|
|
|
|
+ log.info("[出场下榜]铲车未接单,有重量过磅,校验出场结果:{}, 运单:{}", Boolean.TRUE, JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return Boolean.FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ log.info("抬杆未知情况,校验出场结果:{}, 运单:{}", Boolean.FALSE, JSON.toJSONString(waybillOrder));
|
|
|
|
|
+ return Boolean.FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 校验是否可放行
|
|
|
|
|
+ * @param gatekeeper
|
|
|
|
|
+ */
|
|
|
|
|
+ public Boolean checkIsPassV2(GatekeeperOrderIsPassParam gatekeeper) {
|
|
|
|
|
+ log.info("校验是否可放行:{}", JSON.toJSONString(gatekeeper));
|
|
|
|
|
+ List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNo(gatekeeper.getTruckNo());
|
|
|
|
|
+ if (CollectionUtils.isEmpty(wbOrderByTruckNo)) {
|
|
|
|
|
+ return Boolean.FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取最新的一条数据
|
|
|
|
|
+ KwtWaybillOrder waybillOrder = wbOrderByTruckNo.get(0);
|
|
|
|
|
+ List<KwtWaybillOrderWeighbridge> weighbridges = 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;
|