Преглед изворни кода

修改过磅称重mock逻辑

donglang пре 1 месец
родитељ
комит
19de375d95

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/FleetApplication.java

@@ -12,7 +12,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
  */
 @SckwRemoteApplication
 @SckwCloudApplication
-@EnableFeignClients(basePackages = "com.sckw.transport.api.feign")
+@EnableFeignClients(basePackages = {"com.sckw.transport.api.feign","com.sckw.system.api.feign"})
 public class FleetApplication {
 
     public static void main(String[] args) {

+ 31 - 15
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -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