Commit f62d10d3 authored by yanghao's avatar yanghao Committed by 332784038@qq.com

chore: 订单修改后入仓相关异常的处理

parent b1820ac9
......@@ -1310,7 +1310,7 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI
// 处理发货人异常
//需要到仓确认,需要自动生成发货人异常信息
processConsignorException(finishReqVO, orderId, orderDO);
processConsignorException(finishReqVO.getIsUpdateCallback(), orderId, orderDO);
// 重新调用计算订单价格, 订单信息和订单项信息需要重新查询,
// 可能创建异常和修改订单已经对订单信息造成改变
......@@ -1676,9 +1676,9 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI
return false;
}
private void processConsignorException(OrderWarehouseInFinishReqVO finishReqVO, Long orderId, OrderDO orderDO) {
private void processConsignorException(Boolean isUpdateCallback, Long orderId, OrderDO orderDO) {
//入仓修改回调的入仓不需要生成单证异常和发货人异常
if (!Boolean.TRUE.equals(finishReqVO.getIsUpdateCallback())) {
if (!Boolean.TRUE.equals(isUpdateCallback)) {
// 海运要发货人异常,空运不要发货人异常
if (orderDO.getTransportId() != 3 && orderDO.getTransportId() != 4) {
// 1.12.发货人异常(客户档案设置了到仓确认,此类客户的货是通知装柜才可装)
......@@ -1757,7 +1757,7 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI
} else {
if (isUpdateCallback) {
// v2.2 当入仓纪录修改审批后,订单非重货且当前存在重货异常未处理,系统自动处理异常,处理结果设置为普货
orderExceptionService.autoProcessException(orderId, null, OrderExceptionEnum.ORDER_HEAVY_CARGO_EXCEPTION, "订单入仓纪录修改,订单非重货,系统自动处理为已处理", OrderExceptionResult.ORDER_HEAVY_CARGO_EXCEPTION_RESULT.GENERAL_CARGO);
orderExceptionService.autoProcessException(orderId, null, OrderExceptionEnum.ORDER_HEAVY_CARGO_EXCEPTION, "订单入仓纪录修改,订单非重货,系统自动处理为已处理", OrderExceptionResult.ORDER_HEAVY_CARGO_EXCEPTION_RESULT.GENERAL_CARGO);
// 更新订单为普货
orderService.updateOrderType(orderId, 1);
} else {
......@@ -5869,6 +5869,43 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI
}
public void processExceptionWhenOrderUpdate(Long orderId) {
OrderDO orderDO = orderService.getById(orderId);
if (orderDO == null) {
throw ServiceExceptionUtil.exception(
ErrorCodeConstants.ORDER_NOT_EXISTS);
}
List<OrderWarehouseInDO> orderWarehouseInDOList =
orderWarehouseInMapper.selectList(OrderWarehouseInDO::getOrderId,
orderDO.getOrderId());
if (CollUtil.isNotEmpty(orderWarehouseInDOList)) {
processChannelPackagingOverWeightException(orderDO);
}
// 重泡货配置
ZhongPaoBestVO zhongPaoBest = getZhongPaoBest(orderDO);
BigDecimal weightSum =
orderWarehouseInDOList.stream().map(OrderWarehouseInDO::getWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal volumeSum =
orderWarehouseInDOList.stream().map(OrderWarehouseInDO::getVolume).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// 处理重泡货异常
processZhongPaoException(orderId, orderDO, zhongPaoBest, weightSum, volumeSum,
true, // finishReqVO.getIsUpdateCallback(),
false, // finishReqVO.getIsSumVolumeNoChange(),
false, // finishReqVO.getIsSumWeightNoChange(),
orderDO.getAirShipment() == 4 //finishStocked
);
// 处理发货人异常
processConsignorException(false, orderId, orderDO);
}
private OrderDO updateOrderSumPrevPacked(Long orderId) {
orderService.updateSumDataPrevPacked(orderId);
return orderService.getById(orderId);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment