From f8c9716d468f880221c63046cd1118269afc577e Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 18 六月 2026 14:30:51 +0800
Subject: [PATCH] 采购台账的对应产品选择质检时,该质检产品手动入库按钮需要置灰,不质检的产品则可以点击手动入库

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java |    5 ++++-
 src/main/resources/mapper/sales/SalesLedgerProductMapper.xml                  |    3 +++
 src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java                   |    3 +++
 src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml                   |    7 +++++--
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
index 294bb83..2966237 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -30,6 +30,9 @@
     @Schema(description = "鍏ュ簱鐘舵��")
     private String stockInStatus;
 
+    @Schema(description = "鏄惁鎵�鏈変骇鍝侀兘闇�瑕佽川妫�")
+    private Boolean allNeedQualityCheck;
+
     private Long id;
 
     /**
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 5153928..12d3558 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -217,10 +217,13 @@
      */
     public void addProductionData(SalesLedgerProduct salesLedgerProduct) {
         //鍏堝垽鏂浜у搧鏄惁闇�瑕佺敓浜�
-        if (!salesLedgerProduct.getIsProduction()) {
+        if (!Boolean.TRUE.equals(salesLedgerProduct.getIsProduction())) {
             return;
         }
         SalesLedger salesLedger = salesLedgerMapper.selectById(salesLedgerProduct.getSalesLedgerId());
+        if (salesLedger == null) {
+            return;
+        }
         ProductionPlan productionPlan = new ProductionPlan();
         productionPlan.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId());
         productionPlan.setSalesLedgerProductId(salesLedgerProduct.getId());
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 170d461..fdde384 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -44,7 +44,8 @@
                     WHEN IFNULL(ls.full_product_count, 0) &gt;= IFNULL(ls.total_product_count, 0) THEN '瀹屽叏鍏ュ簱'
                     WHEN IFNULL(ls.approved_product_count, 0) &gt; 0 OR IFNULL(ls.pending_product_count, 0) &gt; 0 THEN '鍏ュ簱涓�'
                     ELSE '寰呭叆搴�'
-                END AS stock_in_status
+                END AS stock_in_status,
+                IFNULL(ls.all_need_quality_check, 0) AS all_need_quality_check
             FROM purchase_ledger pl
             LEFT JOIN supplier_manage sm ON pl.supplier_id = sm.id
             LEFT JOIN (
@@ -53,12 +54,14 @@
                     COUNT(1) AS total_product_count,
                     SUM(CASE WHEN product_status.approved_stock_in_num &gt; 0 THEN 1 ELSE 0 END) AS approved_product_count,
                     SUM(CASE WHEN product_status.pending_stock_in_num &gt; 0 THEN 1 ELSE 0 END) AS pending_product_count,
-                    SUM(CASE WHEN product_status.approved_stock_in_num &gt;= product_status.product_quantity THEN 1 ELSE 0 END) AS full_product_count
+                    SUM(CASE WHEN product_status.approved_stock_in_num &gt;= product_status.product_quantity THEN 1 ELSE 0 END) AS full_product_count,
+                    MIN(CASE WHEN product_status.is_checked = 1 THEN 1 ELSE 0 END) AS all_need_quality_check
                 FROM (
                     SELECT
                         slp.id AS sales_ledger_product_id,
                         slp.sales_ledger_id,
                         IFNULL(slp.quantity, 0) AS product_quantity,
+                        IFNULL(slp.is_checked, 0) AS is_checked,
                         IFNULL(approved_qty.approved_stock_in_num, 0) AS approved_stock_in_num,
                         IFNULL(approved_qty.pending_stock_in_num, 0) AS pending_stock_in_num
                     FROM sales_ledger_product slp
diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 14908a2..277b5a3 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -168,6 +168,9 @@
             <if test="salesLedgerProduct.type != null">
                 AND T1.type = #{salesLedgerProduct.type}
             </if>
+            <if test="salesLedgerProduct.isChecked != null">
+                AND T1.is_checked = #{salesLedgerProduct.isChecked}
+            </if>
         </where>
         ORDER BY T1.register_date DESC
     </select>

--
Gitblit v1.9.3