提交 38412ced authored 作者: huyufan's avatar huyufan

处理BUg

上级 eddd013e
...@@ -19,7 +19,9 @@ import com.clx.performance.model.OrderChild; ...@@ -19,7 +19,9 @@ import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.mq.OrderCancelMqParam; import com.clx.performance.param.mq.OrderCancelMqParam;
import com.clx.performance.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
import com.clx.performance.service.OwnerAccountService;
import com.clx.user.enums.driver.DriverInfoEnum; import com.clx.user.enums.driver.DriverInfoEnum;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -56,260 +58,9 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -56,260 +58,9 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final DriverService driverService; private final DriverService driverService;
// private final OwnerAccountService ownerAccountService;
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void platformCancelOrderPre(String orderNo) {
//// FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
//// BigDecimal orderTransportWeight = new BigDecimal(orderInfoFeign.getTransportWeight());
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// if (CollectionUtil.isEmpty(orderGoodsList)) {
// //未产生货单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("1");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
// return;
// }
//
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, null);
//
// if (CollectionUtil.isEmpty(orderChildrenList)) {
// //说明此刻未产生运单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } else {
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// List<OrderChild> orderChildren = orderChildMap.get(orderGoods.getOrderGoodsNo());
// if (CollectionUtil.isEmpty(orderChildren)) {
// //没有运单,直接是取消
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// } else {
// if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) != 0) {
// //货单还有余量,是已完结
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// } else {
// List<OrderChild> orderChildrenListComplete = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.COMPLETE.getCode());
// if (CollectionUtil.isNotEmpty(orderChildrenListComplete)) {
// Map<String, List<OrderChild>> orderChildCompleteMap = orderChildrenListComplete.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
// //没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结
// List<OrderChild> childList = orderChildCompleteMap.get(orderGoods.getOrderGoodsNo());
// BigDecimal reduce = childList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode());
// } else {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// }
// }
//
// }
// }
// orderGoodsDao.updateEntityByKey(update);
// }
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.COMPLETED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// }
//
// log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("1");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
//
// }
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void platformCancelOrder(String orderNo) {
// log.info("开始执行平台订单取消吨数回填");
// FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
// truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
// truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
//
// //非部分平台车辆拉运
// if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) {
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
//
// for (OrderChild orderChild : orderChildrenList) {
// OrderChild update = new OrderChild();
// update.setId(orderChild.getId());
// update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
// //TODO 补充批量更新接口 关闭运单状态
// orderChildDao.updateEntityByKey(update);
// }
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
// List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo);
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildren)) {
// sum = orderChildren.stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
//
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态 注意判断货单是已完结还是已完成
// update.setResidueTransportWeight(BigDecimal.ZERO);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已取消
// for (OrderGoods orderGoods : orderGoodsList) {
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight()));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
// }
//
// Integer truckDemand = orderInfoFeignVO.getTruckDemand();
// BigDecimal residueWeight = truckDemandMap.get(truckDemand);
// if (residueWeight.compareTo(BigDecimal.ZERO) == 0) {
// log.info("当前订单对应的货单无需吨数回填,订单编号{}", orderNo);
// return;
// }
//
// //归还吨数
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(BigDecimal.ZERO);
// param.setPlatformResidueCarryWeight(residueWeight);
// }
// if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(residueWeight);
// param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
// }
// orderFeign.rollbackOrderWeight(param);
//
// } else {
// Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
//
// for (OrderChild orderChild : orderChildrenList) {
// OrderChild update = new OrderChild();
// update.setId(orderChild.getId());
// update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
// //TODO 补充批量更新接口 关闭运单状态
// orderChildDao.updateEntityByKey(update);
// }
// //货单
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
// //运单
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
//
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoodsNo))) {
// sum = orderChildMap.get(orderGoodsNo).stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
//
// }
//
// } else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已取消
// for (OrderGoods orderGoods : orderGoodsList) {
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight()));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
// }
//
// //归还吨数
// BigDecimal platformResidueSum = vehicleUsageMap.get(1);
// BigDecimal ownResidueSum = vehicleUsageMap.get(2);
// BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// param.setResidueWeight(residueSum);
// param.setPlatformResidueCarryWeight(platformResidueSum);
// param.setOwnResidueCarryWeight(ownResidueSum);
// orderFeign.rollbackOrderWeight(param);
// }
//
//
// }
//
//
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void ownerCancelOrderPre(String orderNo) { public void ownerCancelOrderPre(String orderNo) {
...@@ -320,6 +71,13 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -320,6 +71,13 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (!result.succeed()) { if (!result.succeed()) {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败"); throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
} }
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType("1");
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam);
this.ownerCancelOrder(orderNo); this.ownerCancelOrder(orderNo);
return; return;
} }
...@@ -333,12 +91,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -333,12 +91,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败"); throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
} }
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(), orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(),
orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList())); orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList()));
...@@ -382,6 +134,13 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -382,6 +134,13 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败"); throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
} }
} }
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType("1");
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam);
this.ownerCancelOrder(orderNo); this.ownerCancelOrder(orderNo);
// log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo); // log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam(); // OrderCancelMqParam mqParam = new OrderCancelMqParam();
...@@ -394,8 +153,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -394,8 +153,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
//@Override
//@Transactional(rollbackFor = Exception.class)
public void ownerCancelOrder(String orderNo) { public void ownerCancelOrder(String orderNo) {
log.info("开始执行订单取消吨数回填"); log.info("开始执行订单取消吨数回填");
FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
...@@ -666,6 +423,14 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -666,6 +423,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderFeign.orderCancelReason(orderCancelReasonParam); orderFeign.orderCancelReason(orderCancelReasonParam);
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType("1");
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam);
log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo); 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();
...@@ -782,6 +547,14 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -782,6 +547,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderCancelReasonParam.setCreateName(loginUserInfo.getUserName()); orderCancelReasonParam.setCreateName(loginUserInfo.getUserName());
orderFeign.orderCancelReason(orderCancelReasonParam); orderFeign.orderCancelReason(orderCancelReasonParam);
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType("1");
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam);
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论