From 730ff798f9926fe68600397e5abddbd3cbfd792c Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 15 五月 2026 14:27:34 +0800
Subject: [PATCH] fix(mapper): 发货审批不通过时,待发货数量应保持不变,只有发货审批通过时,待发货数量会对应减少,审核不通过库存预留的出库记录也要删掉

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java |    2 ++
 src/main/resources/mapper/sales/SalesLedgerProductMapper.xml             |    1 +
 src/main/resources/mapper/stock/StockInventoryMapper.xml                 |    1 +
 src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java          |    1 +
 4 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index b0046d7..0b1a854 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -220,6 +220,8 @@
                     //鏇存敼鍑哄簱瀹℃牳鐘舵�侊紙寰呯‘璁ゆ敼鎴愬緟瀹℃牳锛�
                     stockUtils.shipmentStatus(StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), shippingInfo.getId());
                 } else if (status.equals(3)) {
+                    //鍒犻櫎鍘熸湰锛堝緟纭锛夌殑鍑哄簱瀹℃牳鐘舵��
+                    stockUtils.deleteStockOutRecord(shippingInfo.getId(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode());
                     shippingInfo.setStatus("瀹℃牳鎷掔粷");
                 } else if (status.equals(1)) {
                     shippingInfo.setStatus("瀹℃牳涓�");
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 8e004e4..0beecd2 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -160,6 +160,7 @@
 
     }
 
+    //鍒犻櫎鍑哄簱璁板綍
     public void deleteStockOutRecord(Long recordId, String recordType) {
         StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
                 .lambda().eq(StockOutRecord::getRecordId, recordId)
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index ec1124a..7e352d8 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -63,6 +63,7 @@
         SELECT sales_ledger_product_id, IFNULL(SUM(spd.quantity), 0) as shipped_quantity
         FROM shipping_info si
         LEFT JOIN shipping_product_detail spd ON si.id = spd.shipping_info_id
+        where si.status != '瀹℃牳鎷掔粷'
         GROUP BY sales_ledger_product_id
         ) t3 ON t3.sales_ledger_product_id = T1.id
         left join product_model pm ON T1.product_model_id = pm.id
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 32aebe1..0718d5e 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -486,6 +486,7 @@
                     group by spd.stock_inventory_id
                  ) as sd on sd.stock_inventory_id = si.id
         where si.product_model_id = #{productModelId}
+        and si.qualitity > IFNULL(sd.qualitity, 0)
     </select>
 
     <select id="getBatchNoQty" resultType="com.ruoyi.stock.dto.StockInventoryDto">

--
Gitblit v1.9.3