donglang před 10 hodinami
rodič
revize
b7a6830dc6

+ 15 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -3063,20 +3063,30 @@ public class KwoTradeOrderService {
         return actualDisPatch;
     }
 
+    /**
+     * 手动完结订单
+     *
+     * @param tradeOrderSettleParam
+     * @return
+     */
     @Transactional(rollbackFor = Exception.class)
     public Object settleOrder(TradeOrderSettleParam tradeOrderSettleParam) {
+        log.info("手动完结订单开始:{}", tradeOrderSettleParam);
         KwoTradeOrder kwoTradeOrder = new KwoTradeOrder();
         KwoTradeOrder kwoTradeOrderDB = kwoTradeOrderMapper.selectOne(new LambdaQueryWrapper<KwoTradeOrder>().eq(KwoTradeOrder::getId, tradeOrderSettleParam.getId()).eq(KwoTradeOrder::getDelFlag, 0));
         List<KwtLogisticsOrderVO> logisticOrderList = transportRemoteService.getLogisticOrderList(new OrderFinishParam(tradeOrderSettleParam.getId()));
         if (CollUtil.isNotEmpty(logisticOrderList)) {
             if (logisticOrderList.stream().allMatch(d -> Objects.equals(d.getStatus(), LogisticsOrderV1Enum.COMPLETED.getCode()))) {
+                log.info("手动完结订单,所有运单已完成,订单ID:{}, 订单号:{}", kwoTradeOrderDB.getId(), kwoTradeOrderDB.getTOrderNo());
                 kwoTradeOrder.setStatus(TradeOrderStatusEnum.SUCCESS.getCode());
                 // 预付钱包完结:解冻 + 按实际装/卸货量消费
                 calculatePrepaidBalance(kwoTradeOrderDB);
             } else {
+                log.info("手动完结订单,部分运单未完成,订单ID:{}, 订单号:{}", kwoTradeOrderDB.getId(), kwoTradeOrderDB.getTOrderNo());
                 kwoTradeOrder.setStatus(TradeOrderStatusEnum.DEAL.getCode());
             }
         } else {
+            log.info("手动完结订单,未找到运单,订单ID:{}, 订单号:{}", kwoTradeOrderDB.getId(), kwoTradeOrderDB.getTOrderNo());
             kwoTradeOrder.setStatus(TradeOrderStatusEnum.DEAL.getCode());
         }
         kwoTradeOrder.setId(tradeOrderSettleParam.getId());
@@ -3085,13 +3095,17 @@ public class KwoTradeOrderService {
         //通知下游,贸易订单已完结,或处于完结中。
         try {
             transportRemoteService.logisticOrderFinish(new OrderFinishParam(tradeOrderSettleParam.getId()));
-            settleChargeStrategyAfterLogisticOrderFinish(tradeOrderSettleParam.getId());
         } catch (BusinessException e) {
             if (StrUtil.equals(e.getMsg(), "未找到该物流订单信息")) {
                 kwoTradeOrder.setUnloadAmount(new BigDecimal("0"));
                 kwoTradeOrder.setLoadAmount(new BigDecimal("0"));
             }
         }
+        try {
+            settleChargeStrategyAfterLogisticOrderFinish(tradeOrderSettleParam.getId());
+        } catch (Exception e) {
+            log.error("贸易订单完结后服务费结算失败,订单ID:{}, 订单号:{}, 异常信息:{}",kwoTradeOrder.getId(), kwoTradeOrder.getTOrderNo(), e.getMessage(), e);
+        }
         kwoTradeOrderMapper.updateById(kwoTradeOrder);
         return true;
     }

+ 15 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/task/TradeOrderTask.java

@@ -146,10 +146,14 @@ public class TradeOrderTask {
                             kwoTradeOrderMapper.updateById(kwoTradeOrder);
                             try {
                                 Boolean aBoolean = transportRemoteService.logisticOrderFinish(new OrderFinishParam(kwoTradeOrder.getId()));
-                                kwoTradeOrderService.settleChargeStrategyAfterLogisticOrderFinish(kwoTradeOrder.getId());
                             } catch (Exception e) {
                                 log.error("物流订单结算失败 {}", e.getMessage());
                             }
+                            try {
+                                kwoTradeOrderService.settleChargeStrategyAfterLogisticOrderFinish(kwoTradeOrder.getId());
+                            } catch (Exception e) {
+                                log.error("结算服务费失败 ==>", e);
+                            }
                             calculatePrepaidBalance(kwoTradeOrder, unitMap, kwoTradeOrderGoods.getUnitPrice());
                         } catch (Exception ex) {
                             log.error("更新订单异常{}", ex.getMessage());
@@ -179,10 +183,14 @@ public class TradeOrderTask {
                                 kwoTradeOrderMapper.updateById(kwoTradeOrder);
                                 try {
                                     Boolean aBoolean = transportRemoteService.logisticOrderFinish(new OrderFinishParam(kwoTradeOrder.getId()));
-                                    kwoTradeOrderService.settleChargeStrategyAfterLogisticOrderFinish(kwoTradeOrder.getId());
                                 } catch (Exception e) {
                                     log.error("物流订单结算失败 {}", e.getMessage());
                                 }
+                                try {
+                                    kwoTradeOrderService.settleChargeStrategyAfterLogisticOrderFinish(kwoTradeOrder.getId());
+                                } catch (Exception e) {
+                                    log.error("结算服务费失败 ==>", e);
+                                }
                                 kwoTradeOrder.setPrice(NumberUtil.mul(sum, kwoTradeOrderGoods.getUnitPrice()));
                                 calculatePrepaidBalance(kwoTradeOrder, unitMap, kwoTradeOrderGoods.getUnitPrice());
                             } catch (Exception ex) {
@@ -231,6 +239,11 @@ public class TradeOrderTask {
                             } catch (Exception e) {
                                 log.error("物流订单结算失败 {}", e.getMessage());
                             }
+                            try {
+                                kwoTradeOrderService.settleChargeStrategyAfterLogisticOrderFinish(kwoTradeOrder.getId());
+                            } catch (Exception e) {
+                                log.error("结算服务费失败 ==>", e);
+                            }
                         }
                     }
                 }