From 1d2d3760bef94013f80cae555bdcbfb2268929a2 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 15 四月 2026 11:22:17 +0800
Subject: [PATCH] fix:生产-质量-仓储(合格,不合格),批号,供应商

---
 src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
index b8ac021..7cf0307 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -66,9 +66,16 @@
     public int deal(QualityUnqualified qualityUnqualified) {
         QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId());
         QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId());
-        ProductionProductMain productionProductMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId());
-        ProductWorkOrder workOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
-        ProductOrder orders = productOrderMapper.selectById(workOrder.getProductOrderId());
+        String batchNo;
+        if (qualityInspect.getProductMainId() != null) {
+            ProductionProductMain productionProductMain = productionProductMainMapper.selectById(qualityInspect.getProductMainId());
+            ProductWorkOrder workOrder = productWorkOrderMapper.selectById(productionProductMain.getWorkOrderId());
+            ProductOrder orders = productOrderMapper.selectById(workOrder.getProductOrderId());
+            batchNo = orders.getBatchNo();
+        } else {
+            batchNo = qualityInspect.getBatchNo();
+        }
+        String customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
         if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType() != 0) {
             switch (qualityUnqualified.getDealResult()) {
                 case "杩斾慨":
@@ -131,13 +138,13 @@
                     break;
                 case "鎶ュ簾":
                     //璋冪敤涓嶅悎鏍煎簱瀛樻帴鍙� 鍏ヤ笉鍚堟牸搴�
-                    stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
+                    stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId(),
+                            batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now());
                     break;
                 case "璁╂鏀捐":
                     //璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
-                    String customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
                     stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(),
-                            orders.getBatchNo(), customer
+                            batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now()
                     );
                     break;
                 case "杩斿伐":
@@ -150,17 +157,17 @@
             switch (qualityUnqualified.getDealResult()) {
                 case "鎶ュ簾":
                     //璋冪敤涓嶅悎鏍煎簱瀛樻帴鍙� 鍏ヤ笉鍚堟牸搴�
-                    stockUtils.addUnStock(modelId, unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
+                    stockUtils.addUnStock(modelId, unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId(),
+                            batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now());
                     break;
                 case "璁╂鏀捐":
                     //璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
-                    String customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
-                    stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), orders.getBatchNo(), customer);
+                    customer = "闀挎不甯傝酱鎵垮埗閫犳湁闄愬叕鍙�";
+                    stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), batchNo, customer, qualityInspect.getProductionDate() != null ? qualityInspect.getProductionDate() : LocalDate.now());
                     break;
                 default:
                     break;
             }
-
         }
         qualityUnqualified.setInspectState(1);//宸插鐞�
         return qualityUnqualifiedMapper.updateById(qualityUnqualified);
@@ -182,6 +189,10 @@
             Map<String, Object> data = new HashMap<>();
             data.put("productName", info.getProductName());
             data.put("model", info.getModel());
+            data.put("batchNo", info.getBatchNo());
+            data.put("productionDate", info.getProductionDate());
+            data.put("defectivePhenomena", info.getDefectivePhenomena());
+            data.put("quantity", info.getQuantity());
 
             // 鍔犺浇妯℃澘
             inputStream = getClass().getResourceAsStream("/static/return-record.docx");

--
Gitblit v1.9.3