|
|
@@ -405,7 +405,7 @@ public class KwtTransportCommonService {
|
|
|
* @param orderDto 请求参数
|
|
|
* @return 处理结果
|
|
|
*/
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional
|
|
|
public HttpResult cancelConsign(CancelOrderDTO orderDto) {
|
|
|
log.info("订单-撤销托运请求参数:{}", JSONObject.toJSONString(orderDto));
|
|
|
HttpResult result = new HttpResult();
|
|
|
@@ -433,7 +433,28 @@ public class KwtTransportCommonService {
|
|
|
// HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrderV1(logisticsOrder.getTOrderId(), goodsLoading);
|
|
|
HttpResult httpResult = tradeOrderInfoService.createOrCancelLogisticsOrderV1(LoginUserHolder.getUserId(), LoginUserHolder.getUserName(), logisticsOrder.getTOrderId(), goodsLoading);
|
|
|
if (HttpStatus.SUCCESS_CODE != httpResult.getCode()) {
|
|
|
- log.info("撤销托运错误:,请求参数:{}{},响应信息:{}", logisticsOrder.getTOrderId(), JSONObject.toJSONString(goodsLoading), JSONObject.toJSONString(httpResult));
|
|
|
+ log.info("撤销托运错误:请求参数:{}{},响应信息:{}", logisticsOrder.getTOrderId(), JSONObject.toJSONString(goodsLoading), JSONObject.toJSONString(httpResult));
|
|
|
+ throw new BusinessException("撤销托运错误:" + httpResult.getMsg());
|
|
|
+ }
|
|
|
+ Long id = logisticsOrder.getId();
|
|
|
+ List<LogisticsOrderCancelAmountVo> logisticsOrderCancelAmountVos = logisticsOrderAmountMapper.cancelOrderToAmountByOrderId(id, NumberConstant.ONE);
|
|
|
+ if (CollectionUtils.isNotEmpty(logisticsOrderCancelAmountVos)) {
|
|
|
+ logisticsOrderCancelAmountVos.forEach(cancelAmountVos -> {
|
|
|
+ Long tOrderId = cancelAmountVos.getTOrderId();
|
|
|
+ Long tOrderAddressId = cancelAmountVos.getTOrderAddressId();
|
|
|
+ UpdateAddressEntrustAmountParam param = new UpdateAddressEntrustAmountParam();
|
|
|
+ param.setTOrderId(tOrderId);
|
|
|
+ param.setTAddressId(tOrderAddressId);
|
|
|
+ param.setEntrustAmount(cancelAmountVos.getAmount().negate());
|
|
|
+ param.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
+ param.setUpdateByName(LoginUserHolder.getUserName());
|
|
|
+ HttpResult httpResult1 = tradeOrderAmountService.updateAddressEntrustAmount(param);
|
|
|
+ if (HttpStatus.SUCCESS_CODE != httpResult1.getCode()) {
|
|
|
+ log.info("撤销托运还原地址的分配量错误:,请求参数:{},{},响应信息:{}",
|
|
|
+ logisticsOrder.getTOrderId(), JSONObject.toJSONString(param), JSONObject.toJSONString(httpResult1));
|
|
|
+ throw new BusinessException("撤销托运还原地址的分配量错误:" + httpResult1.getMsg());
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
|
|
|
.eq(KwtLogisticsOrder::getId, logisticsOrder.getId())
|
|
|
@@ -478,6 +499,8 @@ public class KwtTransportCommonService {
|
|
|
.set(KwtLogisticsOrder::getUpdateBy, LoginUserHolder.getUserId())
|
|
|
.set(KwtLogisticsOrder::getUpdateTime, new Date()));
|
|
|
// updateOrderTrack(logisticsOrder.getId(),orderDto.getRemark(),LogisticsOrderEnum.CANCEL_ORDER);
|
|
|
+ /**修改上游地址id的分包量*/
|
|
|
+ updateOrderAmount(logisticsOrder, order);
|
|
|
/**下游订单进行状态改变*/
|
|
|
logisticsOrderMapper.update(null, new LambdaUpdateWrapper<KwtLogisticsOrder>()
|
|
|
.eq(KwtLogisticsOrder::getId, logisticsOrder.getId())
|
|
|
@@ -554,6 +577,39 @@ public class KwtTransportCommonService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 修改订单地址的量
|
|
|
+ *
|
|
|
+ * @param currentLogisticsOrder 当前订单
|
|
|
+ * @param pidLogisticsOrder 父级订单
|
|
|
+ */
|
|
|
+ private void updateOrderAmount(KwtLogisticsOrder currentLogisticsOrder, KwtLogisticsOrder pidLogisticsOrder) {
|
|
|
+ List<LogisticsOrderCancelAmountVo> currentOrder = logisticsOrderAmountMapper.cancelOrderToAmountByOrderId(currentLogisticsOrder.getId(), NumberConstant.ONE);
|
|
|
+ List<LogisticsOrderCancelAmountVo> pidOrder = logisticsOrderAmountMapper.cancelOrderToAmountByOrderId(pidLogisticsOrder.getId(), NumberConstant.ONE);
|
|
|
+ Map<String, BigDecimal> currentOrderMap = new HashMap<>();
|
|
|
+ if (currentOrder.size() > 0) {
|
|
|
+ for (LogisticsOrderCancelAmountVo logisticsOrderCancelAmountVo : currentOrder) {
|
|
|
+ String key = String.valueOf(logisticsOrderCancelAmountVo.getLOrderId()) + "-" + String.valueOf(logisticsOrderCancelAmountVo.getTOrderAddressId());
|
|
|
+ BigDecimal amount = logisticsOrderCancelAmountVo.getAmount();
|
|
|
+ currentOrderMap.put(key, amount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (pidOrder.size() > 0) {
|
|
|
+ for (LogisticsOrderCancelAmountVo logisticsOrderCancelAmountVo : pidOrder) {
|
|
|
+ Long lOrderId = logisticsOrderCancelAmountVo.getLOrderId();
|
|
|
+ Long tOrderAddressId = logisticsOrderCancelAmountVo.getTOrderAddressId();
|
|
|
+ String key = String.valueOf(lOrderId) + "-" + String.valueOf(tOrderAddressId);
|
|
|
+ if (currentOrderMap.get(key) != null) {
|
|
|
+ logisticsOrderCancelAmountVo.setAmount(logisticsOrderCancelAmountVo.getAmount().subtract(currentOrderMap.get(key)));
|
|
|
+ logisticsOrderAmountMapper.update(null,new LambdaUpdateWrapper<KwtLogisticsOrderAmount>()
|
|
|
+ .set(KwtLogisticsOrderAmount::getEntrustAmount,logisticsOrderCancelAmountVo.getAmount())
|
|
|
+ .eq(KwtLogisticsOrderAmount::getId,logisticsOrderCancelAmountVo.getAmountId())
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据物流订单修改物流状态表
|
|
|
*
|