Przeglądaj źródła

过磅称重mock接口,对接地磅

donglang 1 miesiąc temu
rodzic
commit
f054e32795

+ 26 - 26
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/enterpriseApp/AppWayBillController.java

@@ -273,7 +273,7 @@ public class AppWayBillController {
     }
 
     /**
-     * 到达装货地点-手动推推送数据
+     * 过磅称重1 —— 手动推推送数据
      *
      * @param param
      * @return
@@ -285,31 +285,31 @@ public class AppWayBillController {
         return BaseResult.success();
     }
 
-    /**
-     * 已装货 -手动推推送数据
-     *
-     * @param param
-     * @return
-     */
-    @Operation(summary = "已装货", description = "已装货 -手动推推送数据")
-    @PostMapping("/loading")
-    public BaseResult loading(@RequestBody @Valid WaybillOrderLoadingParam param){
-        waybillOrderService.loading(param);
-        return BaseResult.success();
-    }
-
-    /**
-     * 离场过磅(计算毛重和净重)-手动推推送数据
-     *
-     * @param param
-     * @return
-     */
-    @Operation(summary = "离场过磅", description = "离场过磅(计算毛重和净重)-手动推推送数据")
-    @PostMapping("/leave")
-    public BaseResult leave(@RequestBody @Valid WaybillOrderLeaveMockParam param){
-        waybillOrderService.leave(param);
-        return BaseResult.success();
-    }
+//    /**
+//     * 已装货 -手动推推送数据
+//     *
+//     * @param param
+//     * @return
+//     */
+//    @Operation(summary = "已装货", description = "已装货 -手动推推送数据")
+//    @PostMapping("/loading")
+//    public BaseResult loading(@RequestBody @Valid WaybillOrderLoadingParam param){
+//        waybillOrderService.loading(param);
+//        return BaseResult.success();
+//    }
+
+//    /**
+//     * 离场过磅(计算毛重和净重)-手动推推送数据
+//     *
+//     * @param param
+//     * @return
+//     */
+//    @Operation(summary = "离场过磅", description = "离场过磅(计算毛重和净重)-手动推推送数据")
+//    @PostMapping("/leave")
+//    public BaseResult leave(@RequestBody @Valid WaybillOrderLeaveMockParam param){
+//        waybillOrderService.leave(param);
+//        return BaseResult.success();
+//    }
 
     /**
      * 空载离场

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/AbstractWaybillOrderHandler.java

@@ -125,7 +125,7 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
         if (param == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "参数不能为空");
         }
-        if (!(param instanceof WaybillOrderCancelParam)) {
+        if (!(param instanceof WaybillOrderCancelParam || param instanceof WaybillOrderCmeIntoWeighParam)) {
             if (StringUtils.isBlank(param.getLng()) || StringUtils.isBlank(param.getLat())) {
                 throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "未获取到定位,请重启app后再次操作");
             }
@@ -135,7 +135,7 @@ public abstract class AbstractWaybillOrderHandler<T extends WaybillOrderProcessP
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "运单ID不能为空");
         }
         // 过磅校验
-        if (param instanceof WaybillOrderCmeIntoWeighParam || param instanceof WaybillOrderLeaveMockParam) {
+        if (param instanceof WaybillOrderCmeIntoWeighParam) {
             if (param.getWeighbridgeId() == null || param.getWeighbridgeName() == null || param.getWeighUrl() == null) {
                 throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "地磅信息不能为空");
             }

+ 23 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -1194,6 +1194,29 @@ public class WaybillOrderService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void comeInto(WaybillOrderCmeIntoWeighParam param) {
+        if (StringUtils.isBlank(param.getTruckNo())){
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "车牌号不能为空!");
+        }
+        if (param.getWeighAmount() == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "称重重量不能为空!");
+        }
+        // 定义运单可以过磅的状态集合
+        List<Integer> FORBIDDEN_STATUSES = Arrays.asList(
+                CarWaybillV1Enum.PENDING_VEHICLE.getCode(),
+                CarWaybillV1Enum.REFUSE_TRAFFIC.getCode(),
+                CarWaybillV1Enum.EXIT_COMPLETED.getCode(),
+                CarWaybillV1Enum.EMPTY_WAIT_LEAVE.getCode(),
+                CarWaybillV1Enum.WAIT_LEAVE.getCode(),
+                CarWaybillV1Enum.UNLOADING.getCode(),
+                CarWaybillV1Enum.REPLENISHING.getCode(),
+                CarWaybillV1Enum.REPLENISH_FINISH.getCode()
+        );
+        List<KwtWaybillOrder> wbOrderByTruckNo = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), FORBIDDEN_STATUSES);
+        if (CollectionUtils.isEmpty(wbOrderByTruckNo) || wbOrderByTruckNo.size() > 1) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "当前车辆没有可以称重过磅状态的运单");
+        }
+        param.setWaybillOrderId(wbOrderByTruckNo.get(0).getId());
+
         comeIntoHandler.handler(param);
     }