提交 5ec55202 authored 作者: huyufan's avatar huyufan

修改Bug

上级 82736ebe
...@@ -91,9 +91,6 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM ...@@ -91,9 +91,6 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
.set(OrderGoodsTruckBind::getStatus, code) .set(OrderGoodsTruckBind::getStatus, code)
.eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo) .eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo)
.in(OrderGoodsTruckBind::getTruckNo, truckList) .in(OrderGoodsTruckBind::getTruckNo, truckList)
.or()
.eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo)
.eq(OrderGoodsTruckBind::getStatus, OrderGoodsTruckBindEnum.Status.SUCCESS.getCode())
); );
} }
......
...@@ -42,9 +42,14 @@ public class RabbitOrderGoodsStatusOnHandler { ...@@ -42,9 +42,14 @@ public class RabbitOrderGoodsStatusOnHandler {
orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.PAYING.getCode()); orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.PAYING.getCode());
// 添加积分货单 // 添加积分货单
try {
integralMqService.orderGoodsAdd(orderGoods.getOrderGoodsNo(), integralMqService.orderGoodsAdd(orderGoods.getOrderGoodsNo(),
orderGoods.getSendAddressId(), orderGoods.getSendAddressShorter(), orderGoods.getSendAddressId(), orderGoods.getSendAddressShorter(),
orderGoods.getReceiveAddressId(), orderGoods.getReceiveAddressShorter()); orderGoods.getReceiveAddressId(), orderGoods.getReceiveAddressShorter());
}catch (Exception e) {
e.printStackTrace();
}
} }
} }
......
...@@ -10,10 +10,8 @@ import com.clx.order.vo.feign.FeignOrderVO; ...@@ -10,10 +10,8 @@ import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.OrderGoodsStatusEnum; import com.clx.performance.enums.*;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
...@@ -60,6 +58,8 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -60,6 +58,8 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final OwnerAccountService ownerAccountService; private final OwnerAccountService ownerAccountService;
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -90,9 +90,17 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -90,9 +90,17 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (!result.succeed()) { if (!result.succeed()) {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败"); throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
} }
List<Integer> ids = new LinkedList<>();
for (OrderGoods orderGoods : orderGoodsList) {
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
}
ids.add(orderGoods.getId());
}
orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(), orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(),
orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList())); ids);
} else { } else {
...@@ -124,7 +132,18 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -124,7 +132,18 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//虽然没有余量,但是可以取消的运单都是未到达货源地的 //虽然没有余量,但是可以取消的运单都是未到达货源地的
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} }
}
}
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
List<OrderChild> arriveSendOrderChild = orderChildDao.selectArriveSendOrderChild(orderGoods.getOrderGoodsNo());
if (CollectionUtil.isNotEmpty(arriveSendOrderChild)) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode(),
arriveSendOrderChild.stream().map(OrderChild::getTruckNo).collect(Collectors.toList()));
}else {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
} }
} }
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
...@@ -143,14 +162,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -143,14 +162,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (!result.succeed()) { if (!result.succeed()) {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败"); throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
} }
// log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("2");
// 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
// );
} }
...@@ -340,9 +351,16 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -340,9 +351,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if (CollectionUtil.isNotEmpty(orderGoodsList)) { if (CollectionUtil.isNotEmpty(orderGoodsList)) {
orderGoodsDao.batchUpdateOrderGoodsStatus( List<Integer> ids = new LinkedList<>();
OrderGoodsStatusEnum.Status.CANCEL.getCode(), for (OrderGoods orderGoods : orderGoodsList) {
orderGoodsList.stream().map(OrderGoods::getId).collect(Collectors.toList())); if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
}
ids.add(orderGoods.getId());
}
orderGoodsDao.batchUpdateOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode(),
ids);
} }
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()); Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
if (!result.succeed()) { if (!result.succeed()) {
...@@ -350,9 +368,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -350,9 +368,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
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) {
...@@ -364,6 +379,10 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -364,6 +379,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
orderStatusCode = OrderEnum.Status.COMPLETED.getCode(); orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} }
if (orderGoods.getPendingOrderWay().equals(PendingOrderWayStatusEnum.Status.DX.getCode())) {
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(),
OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
}
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
} }
...@@ -375,31 +394,30 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -375,31 +394,30 @@ public class OrderCancelServiceImpl implements OrderCancelService {
case 3: //取消未拉运+未到达货源地吨数 case 3: //取消未拉运+未到达货源地吨数
List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode()); List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
if (CollectionUtil.isEmpty(orderChildren)) {
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) {
//释放车辆 //释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId()); ids.add(orderChild.getId());
} }
Map<String, List<OrderChild>> orderChildMap = null;
if (CollectionUtil.isNotEmpty(ids)) {
orderChildDao.batchUpdateOrderChildStatus( orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.OWNER_CANCEL.getCode(), OrderChildEnum.Status.OWNER_CANCEL.getCode(),
ids); ids);
orderChildMap = orderChildren.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<String, List<OrderChild>> orderChildMap = orderChildren.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
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 (CollectionUtil.isEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) { if (orderChildMap != null && CollectionUtil.isEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else { } else {
BigDecimal reduce = orderChildMap.get(orderGoods.getOrderGoodsNo()) BigDecimal reduce = orderChildMap.get(orderGoods.getOrderGoodsNo())
...@@ -419,7 +437,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -419,7 +437,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
break; break;
default: default:
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数有误"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数有误");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论