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