Commit d08cb662 authored by 332784038@qq.com's avatar 332784038@qq.com

订单修改审批通过后检查入仓相关异常是否需要处理

parent 0c9ccddb
package cn.iocoder.yudao.framework.apollo.core.event.warehouseIn;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 入仓订单检查订单入仓异常 Event
*
* @author zhengYi
*/
@Data
@AllArgsConstructor
public class WarehouseInOrderCheckExceptionEvent {
/**
* 订单id
*/
private Long orderId;
}
package cn.iocoder.yudao.module.order.listener;
import cn.iocoder.yudao.framework.apollo.core.event.warehouseIn.WarehouseInOrderCheckExceptionEvent;
import cn.iocoder.yudao.module.order.service.orderWarehouseIn.OrderWarehouseInService;
import lombok.AllArgsConstructor;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
/**
* 入仓订单检查订单入仓异常监听
*
* @author zhengYi
*/
@Component("WarehouseInOrderCheckExceptionListener")
@AllArgsConstructor
public class WarehouseInOrderCheckExceptionListener {
private final OrderWarehouseInService orderWarehouseInService;
/**
* 入仓订单检查订单入仓异常更新业务
*
* @param event 订单id
*/
@EventListener(WarehouseInOrderCheckExceptionEvent.class)
public void warehouseInOrderCheckExceptionEvent(WarehouseInOrderCheckExceptionEvent event) {
orderWarehouseInService.finishWarehouseInWhenCheckException(event.getOrderId());
}
}
...@@ -13,6 +13,7 @@ import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderRemoveLadin ...@@ -13,6 +13,7 @@ import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderRemoveLadin
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxOrderDynamicEstTimeEvent; import cn.iocoder.yudao.framework.apollo.core.event.box.BoxOrderDynamicEstTimeEvent;
import cn.iocoder.yudao.framework.apollo.core.event.warehouseIn.WarehouseInOrderChangeChannelEvent; import cn.iocoder.yudao.framework.apollo.core.event.warehouseIn.WarehouseInOrderChangeChannelEvent;
import cn.iocoder.yudao.framework.apollo.core.event.warehouseIn.WarehouseInOrderChangeTransportEvent; import cn.iocoder.yudao.framework.apollo.core.event.warehouseIn.WarehouseInOrderChangeTransportEvent;
import cn.iocoder.yudao.framework.apollo.core.event.warehouseIn.WarehouseInOrderCheckExceptionEvent;
import cn.iocoder.yudao.framework.common.util.spring.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.util.spring.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.util.bigDecimal.BigDecimalUtils; import cn.iocoder.yudao.framework.common.util.bigDecimal.BigDecimalUtils;
import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO; import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;
...@@ -5977,8 +5978,10 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl ...@@ -5977,8 +5978,10 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
orderDO.setContainerNumber(null); orderDO.setContainerNumber(null);
orderDO.setTidanNo(null); orderDO.setTidanNo(null);
orderMapper.updateById(orderDO); orderMapper.updateById(orderDO);
// TODO 这里修改完订单后需要对订单当前待处理的相关异常进行判断,是否需要重置 // 检查入仓异常信息自动处理
// TODO 注意:重泡货异常如果需要重置,需要调用计价接口,重新计算价格(这里计算的价格是应收总额价格) applicationContext.publishEvent(
new WarehouseInOrderCheckExceptionEvent(orderDO.getOrderId()));
// 处理控货信息 // 处理控货信息
handleOrderCargoControl(consignorDO, orderDO); handleOrderCargoControl(consignorDO, orderDO);
// 重新计价 // 重新计价
......
...@@ -64,6 +64,14 @@ public interface OrderWarehouseInService extends IService<OrderWarehouseInDO> { ...@@ -64,6 +64,14 @@ public interface OrderWarehouseInService extends IService<OrderWarehouseInDO> {
*/ */
boolean finishWarehouseInWhenChangeTransportType(Long orderId); boolean finishWarehouseInWhenChangeTransportType(Long orderId);
/**
* 订单信息修改后需要检查订单入仓异常情况
*
* @param orderId
*/
void finishWarehouseInWhenCheckException(Long orderId);
/** /**
* 订单储位接口 * 订单储位接口
* *
...@@ -150,7 +158,6 @@ public interface OrderWarehouseInService extends IService<OrderWarehouseInDO> { ...@@ -150,7 +158,6 @@ public interface OrderWarehouseInService extends IService<OrderWarehouseInDO> {
String updateOrUpdateApply(@Valid OrderWarehouseInUpdateApplyReqVO updateReqVO); String updateOrUpdateApply(@Valid OrderWarehouseInUpdateApplyReqVO updateReqVO);
/** /**
* 出货阶段-追加申请 * 出货阶段-追加申请
* *
...@@ -252,18 +259,16 @@ public interface OrderWarehouseInService extends IService<OrderWarehouseInDO> { ...@@ -252,18 +259,16 @@ public interface OrderWarehouseInService extends IService<OrderWarehouseInDO> {
/** /**
* 获取打包后的订单首次完成入仓的统计数据 * 获取打包后的订单首次完成入仓的统计数据
* *
* @param orderId * @param orderId
* @return * @return
*/ */
WarehouseInInfoVO getStatisticsFirstFinishedAfterPacked(Long orderId); WarehouseInInfoVO getStatisticsFirstFinishedAfterPacked(Long orderId);
List<OrderWarehouseInWithAttrVO> getOrderWarehouseInCommonAttrList(Long orderId, Long excludeOrderWarehouseInId); List<OrderWarehouseInWithAttrVO> getOrderWarehouseInCommonAttrList(Long orderId, Long excludeOrderWarehouseInId);
/** /**
* 有订单,但客户类型不正确。故这里通过客户订单来修改客户状态 * 有订单,但客户类型不正确。故这里通过客户订单来修改客户状态
*/ */
......
...@@ -9,7 +9,6 @@ import cn.hutool.core.util.StrUtil; ...@@ -9,7 +9,6 @@ import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderSchedulingEvent; import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderSchedulingEvent;
import cn.iocoder.yudao.framework.apollo.core.event.Order.OrderApprovalTypeCheckEvent; import cn.iocoder.yudao.framework.apollo.core.event.Order.OrderApprovalTypeCheckEvent;
import cn.iocoder.yudao.framework.apollo.core.event.QueryChannelInfoEvent; import cn.iocoder.yudao.framework.apollo.core.event.QueryChannelInfoEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxOrderRevokeWarehouseCheckEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxOrderShipmentWarehouseInEvent; import cn.iocoder.yudao.framework.apollo.core.event.box.BoxOrderShipmentWarehouseInEvent;
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
...@@ -1093,6 +1092,27 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI ...@@ -1093,6 +1092,27 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI
return this.finishWarehouseIn(finishReqVO); return this.finishWarehouseIn(finishReqVO);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void finishWarehouseInWhenCheckException(Long orderId) {
OrderWarehouseInFinishReqVO finishReqVO = new OrderWarehouseInFinishReqVO();
finishReqVO.setOrderId(orderId);
//不需要更新影像
finishReqVO.setUpdateWarehouseInUrl(false);
//不需要更新标签
finishReqVO.setUpdateLabel(false);
//不需要更新用户的 状态 和下一次掉入公海时间
finishReqVO.setUpdateCustomer(false);
//不需要给客户发送入仓短信
finishReqVO.setSendMsg(false);
//不需要纪录操作日志
finishReqVO.setIsAddOrderOperateLog(false);
// 不需要重订价格
finishReqVO.setIsResetPrice(false);
this.finishWarehouseIn(finishReqVO);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean finishWarehouseIn(OrderWarehouseInFinishReqVO finishReqVO) { public boolean finishWarehouseIn(OrderWarehouseInFinishReqVO finishReqVO) {
...@@ -1315,14 +1335,15 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI ...@@ -1315,14 +1335,15 @@ public class OrderWarehouseInServiceImpl extends AbstractService<OrderWarehouseI
// 重新调用计算订单价格, 订单信息和订单项信息需要重新查询, // 重新调用计算订单价格, 订单信息和订单项信息需要重新查询,
// 可能创建异常和修改订单已经对订单信息造成改变 // 可能创建异常和修改订单已经对订单信息造成改变
boolean firstRucang = orderDO.getRucangTime() == null; boolean firstRucang = orderDO.getRucangTime() == null;
if (finishReqVO.getIsResetPrice()) {
if (firstRucang) { // 默认执行计价业务,可以手动确认不执行计价业务
//在下面的函数中完成费用计算 if (firstRucang) {
orderService.finishOrderWarehouseIn(orderDO.getOrderId()); //在下面的函数中完成费用计算
} else { orderService.finishOrderWarehouseIn(orderDO.getOrderId());
orderService.finishOrderWarehouseInUpdate(orderDO.getOrderId()); } else {
orderService.finishOrderWarehouseInUpdate(orderDO.getOrderId());
}
} }
} }
// 更新订单状态 // 更新订单状态
......
...@@ -103,4 +103,9 @@ public class OrderWarehouseInFinishReqVO { ...@@ -103,4 +103,9 @@ public class OrderWarehouseInFinishReqVO {
@Transient @Transient
private Boolean isAddOrderOperateLog = true; private Boolean isAddOrderOperateLog = true;
//是否需要重订价
@Transient
private Boolean isResetPrice = true;
} }
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