From a65cca1cfae117e0ae80e5fdfee0f7d21cc90ab0 Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Fri, 11 Sep 2026 09:41:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(oms,wms):=20=E5=85=A5=E5=BA=93=E5=8F=8D?= =?UTF-8?q?=E5=AE=A1=E4=B8=89=E9=A1=B9=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=8F=8D?= =?UTF-8?q?=E5=AE=A1=E8=AE=B0=E5=BD=95=E4=B8=8D=E5=8F=AF=E8=A7=81=E3=80=81?= =?UTF-8?q?=E5=8F=8D=E5=AE=A1=E5=90=8E=E9=87=8D=E6=96=B0=E4=B8=8B=E5=8F=91?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=94=B6=E8=B4=A7=E3=80=81=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=88=97=E8=A1=A8JOIN=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 入库异常三个生成器(收货异常/上架异常/反审记录)插入时未显式设置delFlag,MyBatis-Plus insert不含该列,列无默认值落库为NULL,被列表del_flag=1过滤导致反审记录永远不可见;现显式setDelFlag(1) 2. 反审重置业务单status=1:首轮完成上架经WMS回传把业务单status写成5(已入库),不重置则重新下发时copy给执行单→W入库单→收货单,收货单带已完成状态导致前端不给收货按钮 3. 入库异常列表LEFT JOIN stock_in_order固定b.DEL_FLAG=1,反审记录关联的入库单已软删导致匹配不上,仓库等基于b表的过滤把行全部过滤掉、列表恒为空;改为按a.TYPE切换关联状态(type=3关联已软删入库单);收货/上架已反审tab同号多张入库单JOIN出重复行,限定只关联同状态最新一张(IN_ORDER_ID取max) --- .../service/ReservationStockInOrderDomainService.java | 4 ++++ .../repository/persistence/InOrderAbnormalImpl.java | 6 ++++++ .../mapper/inOrderAbnormal/InOrderAbnormalMapper.xml | 11 ++++++++++- .../stockReceiptOrder/StockReceiptOrderMapper.xml | 5 +++++ .../mapper/stockShelfOrder/StockShelfOrderMapper.xml | 5 +++++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java index c42c28519..7bb51daf1 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockInOrder/service/ReservationStockInOrderDomainService.java @@ -897,6 +897,10 @@ public class ReservationStockInOrderDomainService { .set(ReservationStockInOrder::getIssueStatus, 3) //清空下发/执行时间(前端"是否执行"列按执行时间判断,不清会仍显示已执行,与取消下发 cancelIssueOrder 同口径) .set(ReservationStockInOrder::getIssueTime, null) + //入库进度状态(1-已创建 2-已审核 3-收货中 4-上架中 5-已入库):首轮"完成上架"会经WMS回传写成5, + //不重置的话重新下发时copy给执行单→W入库单→收货单,收货单带着"已完成"状态导致前端不给收货按钮; + //重置为1(已创建),与手工新单首次下发链路一致(W入库单/收货单起点=1-待收货) + .set(ReservationStockInOrder::getStatus, 1) .set(ReservationStockInOrder::getInQuantity, BigDecimal.ZERO) .set(ReservationStockInOrder::getStorageTime, null) .set(ReservationStockInOrder::getExecutionInOrderNumber, null) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java index e6d13bec3..af61aeb41 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/inOrderAbnormal/repository/persistence/InOrderAbnormalImpl.java @@ -187,6 +187,8 @@ public class InOrderAbnormalImpl extends ServiceImpl from in_order_abnormal a - LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number and a.DEL_FLAG = 1 and b.DEL_FLAG = 1 + + LEFT JOIN stock_in_order b ON a.in_order_number = b.in_order_number + and a.DEL_FLAG = 1 + and b.DEL_FLAG = (case when a.TYPE = 3 then 2 else 1 end) + and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c + where c.IN_ORDER_NUMBER = a.in_order_number + and c.DEL_FLAG = (case when a.TYPE = 3 then 2 else 1 end)) diff --git a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml index ef2f4463b..e63fab53f 100644 --- a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml @@ -173,9 +173,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.DEL_FLAG = 2 and b.DEL_FLAG = 2 + + and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c + where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 2) and a.DEL_FLAG = 1 and b.DEL_FLAG = 1 + and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c + where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 1) diff --git a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml index 108b25ec3..3b468716c 100644 --- a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml @@ -164,9 +164,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.DEL_FLAG = 2 and b.DEL_FLAG = 2 + + and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c + where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 2) and a.DEL_FLAG = 1 and b.DEL_FLAG = 1 + and b.IN_ORDER_ID = (select max(c.IN_ORDER_ID) from stock_in_order c + where c.IN_ORDER_NUMBER = a.in_order_number and c.DEL_FLAG = 1)