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)