From 61f1de60e6f58dd8e19f01c56f2e56e40885d65b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 17:39:58 +0800
Subject: [PATCH] 点击发货-》发货审核-》出厂质检-》出库审核-》出库通过

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |   47 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 38 insertions(+), 9 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 4a44166..13c832f 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -157,14 +157,24 @@
             qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO);
         }
 
-        // 鍚堟牸鐩存帴鍏ュ簱
-        if(qualityInspect.getQualifiedQuantity().compareTo(BigDecimal.ZERO) > 0){
+        // 鍚堟牸鍏ュ簱澶勭悊锛堟牴鎹楠岀被鍨嬪尯鍒嗭級
+        // 杩囩▼妫�楠�(inspectType=1)锛氬叆搴撳埌鎴愬搧搴�
+        // 鍑哄巶妫�楠�(inspectType=2)锛氫笉鍋氫换浣曚笟鍔″鐞�
+        // 鍘熸潗鏂欐楠�(inspectType=0)锛氭甯歌川妫�鍏ュ簱
+        Integer inspectType = qualityInspect.getInspectType();
+        boolean shouldStockIn = inspectType == null || inspectType == 0 || inspectType == 1;
+
+        if (shouldStockIn && qualityInspect.getQualifiedQuantity().compareTo(BigDecimal.ZERO) > 0) {
             //浠呮坊鍔犲叆搴撹褰�
             StockInventoryDto stockInventoryDto = new StockInventoryDto();
-            //濡傛灉鏄噰璐川妫�鍚堟牸鍏ュ簱閫夌敤CUSTOMIZATION_UNSTOCK_OUT,鍏朵綑鍚堟牸鍏ュ簱閫夌敤QUALITYINSPECT_STOCK_IN
-            stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode()));
-            if (ObjectUtils.isNotEmpty(qualityInspect.getPurchaseLedgerId())){
+            //杩囩▼妫�楠屼娇鐢ㄧ敓浜ф姤宸ュ叆搴撶被鍨嬶紝鍏朵粬璐ㄦ浣跨敤璐ㄦ鍏ュ簱绫诲瀷
+            if (inspectType != null && inspectType == 1) {
+                stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode()));
+            } else if (ObjectUtils.isNotEmpty(qualityInspect.getPurchaseLedgerId())) {
+                //閲囪喘璐ㄦ鍚堟牸鍏ュ簱
                 stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_OUT.getCode()));
+            } else {
+                stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode()));
             }
             stockInventoryDto.setRecordId(qualityInspect.getId());
             stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
@@ -375,12 +385,22 @@
         // 4. 鏇存柊妫�楠屽崟
         qualityInspectMapper.updateById(qualityInspect);
 
-        // 5. 鍚堟牸鍏ュ簱澶勭悊
-        if (qualified.compareTo(BigDecimal.ZERO) > 0) {
+        // 5. 鍚堟牸鍏ュ簱澶勭悊锛堟牴鎹楠岀被鍨嬪尯鍒嗭級
+        // 杩囩▼妫�楠�(inspectType=1)锛氬叆搴撳埌鎴愬搧搴�
+        // 鍑哄巶妫�楠�(inspectType=2)锛氫笉鍋氫换浣曚笟鍔″鐞�
+        // 鍘熸潗鏂欐楠�(inspectType=0)锛氭甯歌川妫�鍏ュ簱
+        Integer inspectType = qualityInspect.getInspectType();
+        boolean shouldStockIn = inspectType == null || inspectType == 0 || inspectType == 1;
+
+        if (shouldStockIn && qualified.compareTo(BigDecimal.ZERO) > 0) {
             StockInventoryDto stockInventoryDto = new StockInventoryDto();
-            stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode()));
-            if (ObjectUtils.isNotEmpty(qualityInspect.getPurchaseLedgerId())) {
+            //杩囩▼妫�楠屼娇鐢ㄧ敓浜ф姤宸ュ叆搴撶被鍨嬶紝鍏朵粬璐ㄦ浣跨敤璐ㄦ鍏ュ簱绫诲瀷
+            if (inspectType != null && inspectType == 1) {
+                stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode()));
+            } else if (ObjectUtils.isNotEmpty(qualityInspect.getPurchaseLedgerId())) {
                 stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.CUSTOMIZATION_UNSTOCK_OUT.getCode()));
+            } else {
+                stockInventoryDto.setRecordType(String.valueOf(StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode()));
             }
             stockInventoryDto.setRecordId(qualityInspect.getId());
             stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
@@ -585,6 +605,7 @@
         AutoJudgeAllResponse response = new AutoJudgeAllResponse();
         List<AutoJudgeAllResponse.ParamJudgeResult> paramResults = new ArrayList<>();
         boolean hasRequiredUnqualified = false;
+        boolean hasNonRequiredUnqualified = false;
         boolean allTextDescription = true;
         boolean hasRequiredParam = false;
 
@@ -624,12 +645,17 @@
                 if (paramResult.getIsRequired() && Boolean.FALSE.equals(result.getQualified())) {
                     hasRequiredUnqualified = true;
                 }
+                // 妫�鏌ラ潪蹇呰鍒ゆ柇鍙傛暟鏄惁涓嶅悎鏍�
+                if (!paramResult.getIsRequired() && Boolean.FALSE.equals(result.getQualified())) {
+                    hasNonRequiredUnqualified = true;
+                }
             }
             paramResults.add(paramResult);
         }
 
         response.setParamResults(paramResults);
         response.setHasRequiredUnqualified(hasRequiredUnqualified);
+        response.setHasNonRequiredUnqualified(hasNonRequiredUnqualified);
         response.setAllTextDescription(allTextDescription);
 
         // 纭畾鏁翠綋鍒ゆ柇缁撴灉
@@ -637,6 +663,9 @@
             response.setAutoJudgeResult(null);
         } else if (hasRequiredUnqualified) {
             response.setAutoJudgeResult("涓嶅悎鏍�");
+        } else if (hasNonRequiredUnqualified) {
+            // 蹇呰鍙傛暟閮藉悎鏍硷紝浣嗘湁闈炲繀瑕佸弬鏁颁笉鍚堟牸 鈫� 閮ㄥ垎鍚堟牸
+            response.setAutoJudgeResult("閮ㄥ垎鍚堟牸");
         } else {
             // 鎵�鏈夐渶瑕佽嚜鍔ㄥ垽鏂殑鍙傛暟椤归兘鍚堟牸锛屾暣浣撲负鍚堟牸
             response.setAutoJudgeResult("鍚堟牸");

--
Gitblit v1.9.3