瀏覽代碼

原矿订单新增手动完结

donglang 7 小時之前
父節點
當前提交
eb3567c290

+ 0 - 9
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtLogisticsOrderController.java

@@ -210,15 +210,6 @@ public class KwtLogisticsOrderController {
         return BaseResult.success(logisticsConsignmentService.logisticOrderFinish(req));
     }
 
-    /**
-     * 完结原矿订单
-     */
-    @PostMapping("/rawOreLogisticOrderFinish")
-    @Operation(summary = "完结原矿订单", description = "完结原矿订单")
-    public BaseResult<Boolean> rawOreLogisticOrderFinish(@RequestBody @Valid OrderFinishReq req) {
-        return BaseResult.success(logisticsConsignmentService.rawOreLogisticOrderFinish(req));
-    }
-
     /**
      * 状态统计
      */

+ 22 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -4108,12 +4108,30 @@ public class KwtLogisticsConsignmentService {
             logisticsOrder = logisticsOrderRepository.queryByTradeOrderId(req.getTradeOrderId());
         } else {
             //查询物流订单
-            logisticsOrder =
-                    logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
+            logisticsOrder = logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
         }
         if (CollectionUtils.isEmpty(logisticsOrder)) {
             throw new BusinessException("未找到该物流订单信息");
         }
+
+        // 校验是否都是同种物流订单
+        boolean isOrderInconsistent = logisticsOrder.stream()
+                .map(KwtLogisticsOrder::getOrderType)
+                .distinct().count() > 1;
+        if (isOrderInconsistent) {
+            throw new BusinessException("订单类型不一致,集合中同时存在order=0和order=1的数据");
+        }
+        // 原矿订单完结
+        if (Objects.equals(logisticsOrder.get(0).getOrderType(), 1)) {
+            return rawOreLogisticOrderFinish(logisticsOrder);
+        } else {
+            // 正常订单完结
+            return normallogisticOrderFinish(logisticsOrder);
+        }
+    }
+
+    @NotNull
+    private Boolean normallogisticOrderFinish(List<KwtLogisticsOrder> logisticsOrder) {
         List<KwtLogisticsOrder> logisticsOrders = Lists.newArrayList();
         List<KwtLogisticsOrder> completedLogisticsOrders = Lists.newArrayList();
         Set<Long> tradeIds = Sets.newHashSet();
@@ -4172,11 +4190,6 @@ public class KwtLogisticsConsignmentService {
 
     private void calculateFreight(List<KwtLogisticsOrder> completedLogisticsOrders) {
         for (KwtLogisticsOrder logisticsOrder : completedLogisticsOrders) {
-            // 原矿运输的不需要计算运费
-            if (Objects.equals(logisticsOrder.getOrderType(),1)) {
-                log.info("原矿运输订单不需要计算费用!");
-                return;
-            }
             //物流订单已完结,计算待付运费
             if (Objects.equals(logisticsOrder.getSettlement(), 1)) {
                 //todo 普通结算
@@ -4232,15 +4245,11 @@ public class KwtLogisticsConsignmentService {
      * @param req
      * @return
      */
-    public Boolean rawOreLogisticOrderFinish(OrderFinishReq req) {
-        log.info("[原矿]物流订单-完结中订单传递参数信息:{}", JSONObject.toJSONString(req));
-        //查询物流订单
-        List<KwtLogisticsOrder> logisticsOrder = logisticsOrderRepository.queryByLogisticsOrderIds(req.getLogisticOrderId());
-
+    public Boolean rawOreLogisticOrderFinish(List<KwtLogisticsOrder> logisticsOrder) {
+        log.info("[原矿]物流订单-完结中订单传递参数信息:{}", JSONObject.toJSONString(logisticsOrder));
         if (CollectionUtils.isEmpty(logisticsOrder)) {
             throw new BusinessException("未找到该物流订单信息!");
         }
-
         // 校验批量物流订单是否都是原矿订单
         boolean hasInvalidOrder = logisticsOrder.stream().anyMatch(order -> !Objects.equals(order.getOrderType(), 1));
         if (hasInvalidOrder) {