From cd0984bff3ac9c4480685671d4e033c8b082bfed Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 04 六月 2026 17:04:39 +0800
Subject: [PATCH] 发货去除库存数量限制,产品库存不足也可以发货,库存数量可以展示为负

---
 src/main/resources/mapper/sales/SalesLedgerProductMapper.xml              |    8 ++++++--
 src/main/resources/mapper/stock/StockInventoryMapper.xml                  |    4 ++--
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java                |    2 ++
 src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java |   13 +++----------
 4 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 34aa729..43a14fa 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -251,4 +251,6 @@
     @TableField(fill = FieldFill.INSERT)
     private Long deptId;
 
+    @TableField(exist = false)
+    private Integer hasStockInventory;
 }
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index dbccebc..094b749 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -99,16 +99,9 @@
         stockOutRecordService.add(stockOutRecordDto);
         StockInventory oldStockInventory = stockInventoryMapper.selectOne(new QueryWrapper<StockInventory>().lambda().eq(StockInventory::getProductModelId, stockInventoryDto.getProductModelId()));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
-            throw new RuntimeException("浜у搧搴撳瓨涓嶅瓨鍦�");
+            throw new RuntimeException("璇ヤ骇鍝佹病鏈夊簱瀛樻暟閲�");
         }
-        BigDecimal lockedQty = oldStockInventory.getLockedQuantity();
-        if (lockedQty == null) {
-            lockedQty = BigDecimal.ZERO;
-        }
-        if (stockInventoryDto.getQualitity().compareTo(oldStockInventory.getQualitity().subtract(lockedQty)) > 0) {
-            throw new RuntimeException("搴撳瓨涓嶈冻鏃犳硶鍑哄簱");
-        }
-
+        // 绉婚櫎搴撳瓨鏁伴噺闄愬埗锛屽厑璁稿簱瀛樹笉瓒虫椂鍙戣揣锛屽簱瀛樺彲浠ヤ负璐熸暟
         stockInventoryMapper.updateSubtractStockInventory(stockInventoryDto);
         return true;
     }
@@ -216,4 +209,4 @@
         stockInventory.setLockedQuantity(stockInventory.getLockedQuantity().subtract(stockInventoryDto.getLockedQuantity()));
         return this.updateById(stockInventory);
     }
-}
+}
\ No newline at end of file
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 3109bce..6dc6802 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -10,7 +10,11 @@
         CASE
         WHEN (IFNULL(t2.qualitity, 0) - IFNULL(t2.locked_quantity, 0)) >= IFNULL(T1.quantity, 0) THEN 1
         ELSE 0
-        END as has_sufficient_stock
+        END as has_sufficient_stock,
+        CASE
+        WHEN t2.id IS NOT NULL THEN 1
+        ELSE 0
+        END as has_stock_inventory
         FROM
         sales_ledger_product T1
         LEFT JOIN stock_inventory t2 ON T1.product_model_id = t2.product_model_id
@@ -227,4 +231,4 @@
                                  FROM product_tree);
 
     </select>
-</mapper>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index ef3813b..acbc2c6 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -61,7 +61,7 @@
             </if>
             update_time = now()
         </set>
-        where product_model_id = #{ew.productModelId} and qualitity >= #{ew.qualitity}
+        where product_model_id = #{ew.productModelId}
     </update>
     <select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
         WITH RECURSIVE cte AS (
@@ -305,4 +305,4 @@
         ORDER BY DATE(sor.create_time) ASC
     </select>
 
-</mapper>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3