|
|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.sckw.core.common.enums.enums.DictTypeEnum;
|
|
|
import com.sckw.core.common.enums.enums.ErrorCodeEnum;
|
|
|
import com.sckw.core.exception.BusinessPlatfromException;
|
|
|
+import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.enums.*;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.utils.DateUtils;
|
|
|
@@ -290,53 +291,97 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
if (waybillSubtask.getEntrustAmount() == null) {
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.SYSTEM_ERROR, "[称重过磅]子运单任务量信息缺失!");
|
|
|
}
|
|
|
+ //任务量
|
|
|
+ BigDecimal entrustAmount = waybillSubtask.getEntrustAmount();
|
|
|
+ //法定载重
|
|
|
+ BigDecimal truckStandardLoad = getTruckStandardLoad(param.getTruckNo());
|
|
|
|
|
|
+ // 校验铲车司机
|
|
|
KwtForkliftWaybillOrder forklift = forkliftWaybillOrderRepository.queryForkliftWaybillOrderByWOrderId(waybillOrder.getId());
|
|
|
+
|
|
|
+ //1. 铲车司机已接单,运单什么都不展示
|
|
|
if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.ORDER_TAKING.getCode())) {
|
|
|
//如果铲车司机已接单,则二次过磅的时候,直接返回,不走其它流程
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- BigDecimal entrustAmount = waybillSubtask.getEntrustAmount();
|
|
|
- //场景一:净重<-0.5
|
|
|
- if (loadAmount.compareTo(BigDecimal.valueOf(-0.5)) < 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
- //场景二:空载离场,-0.5<=净重<=0.5
|
|
|
- if (loadAmount.compareTo(BigDecimal.valueOf(0.5)) <= 0) {
|
|
|
- waybillOrder.setTargetStatus(1);
|
|
|
- return;
|
|
|
+ //2. 铲车司机待接单,只分为“空载离场”和“其它情况”(什么不展示)
|
|
|
+ if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.PENDING_ORDERS.getCode())) {
|
|
|
+ //场景一. 空载离场,-0.5<=净重<=0.5
|
|
|
+ if (loadAmount.compareTo(BigDecimal.valueOf(-0.5)) >= 0 && loadAmount.compareTo(BigDecimal.valueOf(0.5)) <= 0) {
|
|
|
+ waybillOrder.setTargetStatus(1);
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ //场景二.非空载离场,什么都不展示
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.PENDING_ORDERS.getCode())) {
|
|
|
- //如果铲车司机未接单,则二次过磅的时候,非空载情况,必须校验是否完成装载
|
|
|
- if (!Objects.equals(CarWaybillV1Enum.EXIT_COMPLETED.getCode(), waybillOrder.getStatus())
|
|
|
- && !Objects.equals(CarWaybillV1Enum.REPLENISH_FINISH.getCode(), waybillOrder.getStatus())
|
|
|
- && !Objects.equals(CarWaybillV1Enum.WAIT_LEAVE.getCode(), waybillOrder.getStatus())
|
|
|
- && !Objects.equals(CarWaybillV1Enum.UNLOADING.getCode(), waybillOrder.getStatus())) {
|
|
|
+ //3.铲车司机完成装载,是什么流程就是什么流程,按照最新一次过磅为准
|
|
|
+ if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.COMPLETED.getCode())) {
|
|
|
+ //场景一:净重<-0.5,什么不展示
|
|
|
+ if (loadAmount.compareTo(BigDecimal.valueOf(-0.5)) < 0) {
|
|
|
return;
|
|
|
}
|
|
|
- } else {
|
|
|
- //如果铲车司机完成装载,则二次过磅的时候,已最新的一次称重为准
|
|
|
- if (!Objects.equals(CarWaybillV1Enum.EXIT_COMPLETED.getCode(), waybillOrder.getStatus())
|
|
|
- && !Objects.equals(CarWaybillV1Enum.EMPTY_WAIT_LEAVE.getCode(), waybillOrder.getStatus())
|
|
|
- && !Objects.equals(CarWaybillV1Enum.REPLENISH_FINISH.getCode(), waybillOrder.getStatus())
|
|
|
- && !Objects.equals(CarWaybillV1Enum.WAIT_LEAVE.getCode(), waybillOrder.getStatus())
|
|
|
- && !Objects.equals(CarWaybillV1Enum.UNLOADING.getCode(), waybillOrder.getStatus())) {
|
|
|
+
|
|
|
+ //场景二:空载离场,-0.5<=净重<=0.5
|
|
|
+ if (loadAmount.compareTo(BigDecimal.valueOf(0.5)) <= 0) {
|
|
|
+ waybillOrder.setTargetStatus(1);
|
|
|
return;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- //法定载重
|
|
|
- BigDecimal truckStandardLoad = getTruckStandardLoad(param.getTruckNo());
|
|
|
- // 场景三:超载流程, 净重>任务量或者毛重>法定载重
|
|
|
- if (loadAmount.compareTo(entrustAmount) > 0 || param.getWeighAmount().compareTo(truckStandardLoad) > 0) {
|
|
|
- waybillOrder.setTargetStatus(3);
|
|
|
- return;
|
|
|
+ // 场景三:超载流程, 净重>任务量或者毛重>法定载重
|
|
|
+ if (loadAmount.compareTo(entrustAmount) > 0 || param.getWeighAmount().compareTo(truckStandardLoad) > 0) {
|
|
|
+ waybillOrder.setTargetStatus(3);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 场景四:正常流程,0.5<净重<=任务量
|
|
|
+ waybillOrder.setTargetStatus(2);
|
|
|
}
|
|
|
|
|
|
- // 场景四:正常流程,0.5<净重<=任务量
|
|
|
- waybillOrder.setTargetStatus(2);
|
|
|
+
|
|
|
+// //场景一:净重<-0.5
|
|
|
+// if (loadAmount.compareTo(BigDecimal.valueOf(-0.5)) < 0) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// //场景二:空载离场,-0.5<=净重<=0.5
|
|
|
+// if (loadAmount.compareTo(BigDecimal.valueOf(0.5)) <= 0) {
|
|
|
+// waybillOrder.setTargetStatus(1);
|
|
|
+// return;
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (Objects.equals(forklift.getStatus(), ForkliftStatusEnum.PENDING_ORDERS.getCode())) {
|
|
|
+// //如果铲车司机未接单,则二次过磅的时候,非空载情况,必须校验是否完成装载
|
|
|
+// //场景:铲车未接单,司机第一次空载离场,第二次空载离场,还是展示空载,其它什么不展示。(就是没有完成装货就什么都不展示)
|
|
|
+// if (!Objects.equals(CarWaybillV1Enum.EXIT_COMPLETED.getCode(), waybillOrder.getStatus())
|
|
|
+// && !Objects.equals(CarWaybillV1Enum.REPLENISH_FINISH.getCode(), waybillOrder.getStatus())
|
|
|
+// && !Objects.equals(CarWaybillV1Enum.WAIT_LEAVE.getCode(), waybillOrder.getStatus())
|
|
|
+// && !Objects.equals(CarWaybillV1Enum.UNLOADING.getCode(), waybillOrder.getStatus())) {
|
|
|
+// //什么不展示
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// //如果铲车司机完成装载,则二次过磅的时候,已最新的一次称重为准
|
|
|
+// //场景:铲车未接单,司机第一次空载离场,然后铲车装货完成。 二次过磅,是什么流程就是什么流程
|
|
|
+// if (!Objects.equals(CarWaybillV1Enum.EXIT_COMPLETED.getCode(), waybillOrder.getStatus())
|
|
|
+// && !Objects.equals(CarWaybillV1Enum.EMPTY_WAIT_LEAVE.getCode(), waybillOrder.getStatus())
|
|
|
+// && !Objects.equals(CarWaybillV1Enum.REPLENISH_FINISH.getCode(), waybillOrder.getStatus())
|
|
|
+// && !Objects.equals(CarWaybillV1Enum.WAIT_LEAVE.getCode(), waybillOrder.getStatus())
|
|
|
+// && !Objects.equals(CarWaybillV1Enum.UNLOADING.getCode(), waybillOrder.getStatus())) {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// //法定载重
|
|
|
+// BigDecimal truckStandardLoad = getTruckStandardLoad(param.getTruckNo());
|
|
|
+// // 场景三:超载流程, 净重>任务量或者毛重>法定载重
|
|
|
+// if (loadAmount.compareTo(entrustAmount) > 0 || param.getWeighAmount().compareTo(truckStandardLoad) > 0) {
|
|
|
+// waybillOrder.setTargetStatus(3);
|
|
|
+// return;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 场景四:正常流程,0.5<净重<=任务量
|
|
|
+// waybillOrder.setTargetStatus(2);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -366,7 +411,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
status = CarWaybillV1Enum.REFUSE_TRAFFIC.getCode();
|
|
|
} else {
|
|
|
if (waybillOrder.getTargetStatus() == null) {
|
|
|
- return;
|
|
|
+ waybillOrder.setLabel(Global.NUMERICAL_ONE);
|
|
|
}
|
|
|
status = switch (waybillOrder.getTargetStatus()) {
|
|
|
case 1 -> CarWaybillV1Enum.EMPTY_WAIT_LEAVE.getCode();
|