|
|
@@ -46,6 +46,9 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
|
|
|
@Override
|
|
|
protected void checkState(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
|
|
|
+ if (StringUtils.isBlank(param.getTruckNo())) {
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "车牌号不能为空!");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -82,9 +85,6 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
* @param waybillOrder
|
|
|
*/
|
|
|
private void firstWeighbridge(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder, KwtWaybillOrderTicket orderTicket) {
|
|
|
- if (StringUtils.isBlank(param.getTruckNo())) {
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "车牌号不能为空!");
|
|
|
- }
|
|
|
if (param.getWeighAmount() == null) {
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "皮重不能为空!");
|
|
|
}
|
|
|
@@ -236,7 +236,7 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
//2.填充运单装货净重
|
|
|
updateLoadAmount(param, waybillOrder, loadAmount);
|
|
|
//3.判断流程
|
|
|
- checkProcess(waybillOrder, loadAmount);
|
|
|
+ checkProcess(param, waybillOrder, loadAmount);
|
|
|
//4.创建过磅记录
|
|
|
createWeighbridges(waybillOrder);
|
|
|
|
|
|
@@ -277,14 +277,14 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
//
|
|
|
|
|
|
/**
|
|
|
- * 计算并设定离场目标状态 其它情况:净重<-0.5 状态更改为:直接返回
|
|
|
- * 空载离场:-0.5<=净重<=0.5, 状态更改为:空载待离场
|
|
|
- * 正常流程:0.5<净重<=任务量, 状态更改为:待离场
|
|
|
- * 超载流程:净重>任务量, 状态更改为:卸货中
|
|
|
+ * 计算并设定离场目标状态 其它情况:净重<-0.5 状态更改为:直接返回
|
|
|
+ * 空载离场:-0.5<=净重<=0.5, 状态更改为:空载待离场
|
|
|
+ * 正常流程:0.5<净重<=任务量, 状态更改为:待离场
|
|
|
+ * 超载流程:净重>任务量或者毛重>法定载重, 状态更改为:卸货中
|
|
|
* @param waybillOrder
|
|
|
* @param loadAmount
|
|
|
*/
|
|
|
- private void checkProcess(KwtWaybillOrder waybillOrder, BigDecimal loadAmount) {
|
|
|
+ private void checkProcess(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder, BigDecimal loadAmount) {
|
|
|
//获取运单任务量
|
|
|
KwtWaybillOrderSubtask waybillSubtask = getWaybillSubtask(waybillOrder.getId());
|
|
|
if (waybillSubtask.getEntrustAmount() == null) {
|
|
|
@@ -315,13 +315,29 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- // 场景二:正常流程,0.5<净重<=任务量
|
|
|
- if (loadAmount.compareTo(entrustAmount) <= 0) {
|
|
|
- waybillOrder.setTargetStatus(2);
|
|
|
- return;
|
|
|
+ //法定载重
|
|
|
+ BigDecimal truckStandardLoad = getTruckStandardLoad(param.getTruckNo());
|
|
|
+ // 场景三:超载流程, 净重>任务量或者毛重>法定载重
|
|
|
+ if (loadAmount.compareTo(entrustAmount) > 0 || param.getWeighAmount().compareTo(truckStandardLoad) > 0) {
|
|
|
+ waybillOrder.setTargetStatus(3);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 场景四:正常流程,0.5<净重<=任务量
|
|
|
+ waybillOrder.setTargetStatus(2);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取车辆的法定载重
|
|
|
+ * @param truckNo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private BigDecimal getTruckStandardLoad(String truckNo) {
|
|
|
+ RTruckVo truckVo = remoteFleetService.findTruckByTruckNo(truckNo);
|
|
|
+ if (truckVo == null || truckVo.getLegalLoad() == null || BigDecimal.ZERO.compareTo(truckVo.getLegalLoad()) == 0) {
|
|
|
+ return BigDecimal.ZERO;
|
|
|
}
|
|
|
- // 场景三:超载流程, 净重>任务量
|
|
|
- waybillOrder.setTargetStatus(3);
|
|
|
+ return truckVo.getLegalLoad();
|
|
|
}
|
|
|
|
|
|
@Override
|