From 743b74dfa59b05cb4bafe8678d8a6223a283ad03 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 29 六月 2026 02:18:42 +0800
Subject: [PATCH] fix: 质检合格率有误

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |   39 ++++++++++++++++++++++-----------------
 1 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 04a921e..c6f5d45 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -139,22 +139,16 @@
 
         if (qualifiedQty.compareTo(BigDecimal.ZERO) > 0) {
             if (Objects.equals(qualityInspect.getInspectType(), 0)) {
-                Long ledgerId = qualityInspect.getPurchaseLedgerId();
-                PurchaseLedger purchaseLedger = ledgerId == null ? null : purchaseLedgerMapper.selectById(ledgerId);
-                if (purchaseLedger != null) {
-                    submitQualifiedInboundApprove(qualityInspect);
-                } else {
-                    // 鎵嬪姩鏂板鐨勫師鏉愭枡妫�楠岋細鏃犻噰璐彴璐︼紝涓嶈蛋閲囪喘鍏ュ簱瀹℃壒锛岀洿鎺ュ叆鍚堟牸搴撳瓨锛堜笌杩囩▼/鍑哄巶妫�楠屼竴鑷达級
-                    stockUtils.addStock(
-                            null,
-                            null,
-                            qualityInspect.getProductModelId(),
-                            qualifiedQty,
-                            StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(),
-                            qualityInspect.getId()
-                    );
-                    syncQualifiedInboundToPurchaseProducts(qualityInspect, qualifiedQty);
-                }
+                stockUtils.addStock(
+                        qualityInspect.getPurchaseLedgerId(),
+                        null,
+                        qualityInspect.getProductModelId(),
+                        qualifiedQty,
+                        StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(),
+                        qualityInspect.getId()
+                );
+                syncQualifiedInboundToPurchaseProducts(qualityInspect, qualifiedQty);
+                qualityInspect.setApprovalStatus(3);
             } else if (Objects.equals(qualityInspect.getInspectType(), 2) && qualityInspect.getSalesLedgerId() != null) {
                 // 閿�鍞鍗曠殑鎴愬搧鍑哄巶妫�楠岋紝鎻愪氦鍚庣洿鎺ュ叆搴�
                 StockInventoryDto stockInventoryDto = new StockInventoryDto();
@@ -631,10 +625,21 @@
                 allStocked = false;
             }
         }
+
+        long pendingInspectCount = qualityInspectMapper.selectCount(Wrappers.<QualityInspect>lambdaQuery()
+                .eq(QualityInspect::getSalesLedgerId, salesLedgerId)
+                .eq(QualityInspect::getInspectState, 0));
+        boolean allInspectFinished = pendingInspectCount == 0;
         
         SalesLedger ledger = salesLedgerMapper.selectById(salesLedgerId);
         if (ledger != null) {
-            ledger.setStockStatus(allStocked ? 2 : (hasStocked ? 1 : 0));
+            int newStatus = ledger.getStockStatus() != null ? ledger.getStockStatus() : 0;
+            if (allInspectFinished) {
+                newStatus = allStocked ? 2 : 5; // 2: 宸插叆搴�(璐ㄦ瀹屾垚), 5: 閮ㄥ垎璐ㄦ瀹屾垚
+            } else {
+                newStatus = 4; // 4: 璐ㄦ涓�
+            }
+            ledger.setStockStatus(newStatus);
             salesLedgerMapper.updateById(ledger);
         }
     }

--
Gitblit v1.9.3