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

预装中的订单不能进行修改拦截校验

parent bf510deb
package cn.iocoder.yudao.framework.apollo.core.event.box;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* 排单校验 Event
*
* @author zhengYi
*/
@Data
@AllArgsConstructor
public class BoxCheckOrderUpdateSchedulingEvent {
/**
* 订单ID
*/
private Long orderId;
}
......@@ -431,7 +431,7 @@ public interface ErrorCodeConstants {
ErrorCode ORDER_APPROVAL_IS_NOT_EXISTS = new ErrorCode(1004001171, "order.approval.is.not.exists");
ErrorCode FEE_APPLICATION_NOT_IS_ZERO = new ErrorCode(1004001172, "fee.application.not.is.zero");
ErrorCode GUAN_LIAN_ORDER_IS_APPROVAL_IN_PROCESS = new ErrorCode(1004001173, "guan.lian.order.is.approval.in.process");
ErrorCode ORDER_UPDATE_BOX_EXCEPTION = new ErrorCode(1004001174, "warehouse.in.box.exception");
......
......@@ -10,6 +10,7 @@ import cn.iocoder.yudao.framework.apollo.core.event.Order.OrderApprovalTypeCheck
import cn.iocoder.yudao.framework.apollo.core.event.Order.OrderAssociationOfferInfoEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderApprovalEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderRemoveLadingBillEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderUpdateSchedulingEvent;
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.WarehouseInOrderChangeTransportEvent;
......@@ -1831,6 +1832,9 @@ public class OrderServiceImpl extends AbstractService<OrderMapper, OrderDO> impl
if (vo.getShipmentState() > 0) {
throw exception(ORDER_SHIPMENT_NOT_UPDATE);
}
// 正在预装中的订单不允许修改
BoxCheckOrderUpdateSchedulingEvent schedulingEvent = new BoxCheckOrderUpdateSchedulingEvent(vo.getOrderId());
applicationContext.publishEvent(schedulingEvent);
// 获取功能开关
List<DictDataRespDTO> dictList = dictDataApi.getDictDatas("part_function_switch");
// 智慧预装功能开关
......
......@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.shipment.listener;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderDestWarehouseEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderSchedulingEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrderUpdateSchedulingEvent;
import cn.iocoder.yudao.framework.apollo.core.event.box.BoxCheckOrdersSchedulingEvent;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.depository.dal.dataobject.warehouse.WarehouseLineDO;
......@@ -22,6 +23,7 @@ import java.util.List;
import java.util.Objects;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.ORDER_UPDATE_BOX_EXCEPTION;
import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.WAREHOUSE_IN_BOX_EXCEPTION;
/**
......@@ -56,6 +58,22 @@ public class BoxCheckOrderSchedulingListener {
}
/**
* 提供订单是否已经排单校验的接口,如果已经排单,则不能货物补充(会导致已装体积重量的不正确),需要先从预装单中移除才能继续补充,
*
* @param event 订单号
*/
@EventListener(BoxCheckOrderUpdateSchedulingEvent.class)
public void checkOrderUpdateScheduling(BoxCheckOrderUpdateSchedulingEvent event) {
Long orderId = event.getOrderId();
log.info("提供订单是否已经排单校验的接口 orderId={}", orderId);
BoxDO boxDO = boxService.checkOrderScheduling(orderId);
if (boxDO != null) {
throw exception(ORDER_UPDATE_BOX_EXCEPTION);
}
}
/**
* 提供多订单订单是否已经排单校验的接口
* 返回已排单的订单id
......
......@@ -657,6 +657,7 @@ prod.brand.not.null=brand is not null or zero
preload.not.exist=Goods are not pre-loaded in the shipment order
warehouse.in.property.not.null.and.zero=goods [{}] {} cannot be empty and zero.
warehouse.in.box.exception=The order has already been scheduled and warehouse data cannot be manipulated
order.update.box.exception=The order has been scheduled
split.order.can.not.change.carton.num=Unmodifiable box count for split order
split.order.can.not.change.order.label=Split order cannot change label box number
split.order.can.not.warehouse.in=Split orders cannot add products or add new inventory records
......
......@@ -657,6 +657,7 @@ prod.brand.not.null=La marque ne peut \u00EAtre vide ou z\u00E9ro
preload.not.exist=Bon de sortie sans marchandise pr\u00E9charg\u00E9e
warehouse.in.property.not.null.and.zero=La valeur de {} pour le produit [{}] ne peut \u00EAtre vide ou \u00E9gale \u00E0 0
warehouse.in.box.exception=Les commandes d\u00E9j\u00E0 planifi\u00E9es ne peuvent pas \u00EAtre modifi\u00E9es dans le syst\u00E8me de stockage
order.update.box.exception=Les commandes sont déjà listées
split.order.can.not.change.carton.num=Le nombre de colis dans une sous-commande ne peut \u00EAtre modifi\u00E9
split.order.can.not.change.order.label=Le num\u00E9ro d'\u00E9tiquette des colis d'une sous-commande ne peut \u00EAtre modifi\u00E9
split.order.can.not.warehouse.in=Sous-commande ne peut pas ajouter de nouveaux articles ou cr\u00E9er de nouvelles entr\u00E9es de stock
......
......@@ -662,6 +662,7 @@ prod.brand.not.null=\u54C1\u724C\u4E0D\u80FD\u4E3A\u7A7A\u62160
preload.not.exist=\u51FA\u8D27\u5355\u672A\u9884\u88C5\u8D27\u7269
warehouse.in.property.not.null.and.zero=\u5546\u54C1[{}]\u7684{}\u4E0D\u80FD\u4E3A\u7A7A\u62160
warehouse.in.box.exception=\u8BA2\u5355\u5DF2\u7ECF\u6392\u5355\u4E0D\u80FD\u64CD\u4F5C\u4ED3\u5E93\u6570\u636E
order.update.box.exception=\u8ba2\u5355\u5df2\u7ecf\u6392\u5355
split.order.can.not.change.carton.num=\u62C6\u5355\u8BA2\u5355\u4E0D\u53EF\u6539\u7BB1\u6570
split.order.can.not.change.order.label=\u62C6\u5355\u8BA2\u5355\u4E0D\u53EF\u6539\u6807\u7B7E\u7BB1\u53F7
split.order.can.not.warehouse.in=\u62C6\u5355\u8BA2\u5355\u4E0D\u53EF\u8FFD\u52A0\u5546\u54C1\u548C\u6DFB\u52A0\u65B0\u5165\u4ED3\u7EAA\u5F55
......
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