提交 1b774249 authored 作者: huyufan's avatar huyufan

修改Bug

上级 a1020c7b
...@@ -449,6 +449,10 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -449,6 +449,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
); );
} }
/**
* 平台取消订单前置(只修改订单相关状态)
* @param param
*/
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void platformCancelOrderPre(OrderCancelParam param) { public void platformCancelOrderPre(OrderCancelParam param) {
...@@ -468,21 +472,14 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -468,21 +472,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
OrderGoodsStatusEnum.Status.CANCEL.getCode(), OrderGoodsStatusEnum.Status.CANCEL.getCode(),
orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList())); orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList()));
} }
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
break; break;
case 2: //取消未拉运吨数的货单 case 2: //取消未拉运吨数的货单
// if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
// }
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) { for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods(); OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId()); update.setId(orderGoods.getId());
//提取和剩余吨数一样,代表一直没人拉
if (orderGoods.getResidueTransportWeight().compareTo(orderGoods.getExtractWeight()) == 0) { if (orderGoods.getResidueTransportWeight().compareTo(orderGoods.getExtractWeight()) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else { } else {
...@@ -491,11 +488,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -491,11 +488,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
} }
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
break; break;
case 3: //取消未拉运+未到达货源地吨数 case 3: //取消未拉运+未到达货源地吨数
...@@ -503,9 +495,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -503,9 +495,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isEmpty(orderChildren)) { if (CollectionUtil.isEmpty(orderChildren)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
} }
// if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
// }
List<Integer> ids = new LinkedList<>(); List<Integer> ids = new LinkedList<>();
for (OrderChild orderChild : orderChildren) { for (OrderChild orderChild : orderChildren) {
//释放车辆 //释放车辆
...@@ -528,6 +517,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -528,6 +517,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} else { } else {
BigDecimal reduce = orderChildMap.get(orderGoods.getOrderGoodsNo()) BigDecimal reduce = orderChildMap.get(orderGoods.getOrderGoodsNo())
.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); .stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
//当前产生可取消运单的吨数加货单剩余吨数如果等于货单提取的吨数,那么就是已取消
if (orderGoods.getExtractWeight().compareTo(orderGoods.getResidueTransportWeight().add(reduce)) == 0) { if (orderGoods.getExtractWeight().compareTo(orderGoods.getResidueTransportWeight().add(reduce)) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else { } else {
...@@ -537,10 +527,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -537,10 +527,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
} }
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
break; break;
default: default:
...@@ -548,23 +535,28 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -548,23 +535,28 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
log.info("执行承运端订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo); log.info("记录订单取消原因");
OrderCancelReasonParam orderCancelReasonParam = new OrderCancelReasonParam(); OrderCancelReasonParam orderCancelReasonParam = new OrderCancelReasonParam();
orderCancelReasonParam.setOrderNo(orderNo); orderCancelReasonParam.setOrderNo(orderNo);
orderCancelReasonParam.setReason(param.getCancelReason()); orderCancelReasonParam.setReason(param.getCancelReason());
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
orderCancelReasonParam.setCreateNo(loginUserInfo.getUserNo()); orderCancelReasonParam.setCreateNo(loginUserInfo.getUserNo());
orderCancelReasonParam.setCreateName(loginUserInfo.getUserName()); orderCancelReasonParam.setCreateName(loginUserInfo.getUserName());
orderFeign.orderCancelReason(orderCancelReasonParam); orderFeign.orderCancelReason(orderCancelReasonParam);
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2 //TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam thawAccountParam = new ThawAccountParam(); ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo); thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType("1"); thawAccountParam.setOrderType("1");
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam)); log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam); ownerAccountService.ownerAccountThaw(thawAccountParam);
log.info("执行订单状态更改");
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
log.info("执行承运端订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(param).toString().getBytes()).build(); Message message = MessageBuilder.withBody(JSONUtil.parse(param).toString().getBytes()).build();
rabbitTemplate.send( rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论