From 39e8f88af6d3c07c183cda4e7c1d1b1c850209f5 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 18 六月 2026 15:58:59 +0800
Subject: [PATCH] 生产报废、废品发货退货后、不合格处理报废的产品都要进到废品库

---
 src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 130a05a..35dbd96 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -56,8 +56,10 @@
      * @param quantity
      * @param recordType
      * @param recordId
+     * @param batchNo
+     * @param source 搴撳瓨鏉ユ簮
      */
-    public void addUnStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
+    public void addUnStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String source) {
         StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
         stockUninventoryDto.setRecordId(recordId);
         stockUninventoryDto.setRecordType(String.valueOf(recordType));
@@ -65,6 +67,28 @@
         stockUninventoryDto.setProductModelId(productModelId);
         stockUninventoryDto.setBatchNo(batchNo);
         stockUninventoryDto.setType(resolveUninventoryType(recordType));
+        stockUninventoryDto.setSource(source);
+        stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
+    }
+
+    /**
+     * 搴熷搧鍏ュ簱甯︽壒娆″彿
+     *
+     * @param productModelId 浜у搧瑙勬牸ID
+     * @param quantity 鏁伴噺
+     * @param recordType 璁板綍绫诲瀷
+     * @param recordId 涓氬姟ID
+     * @param batchNo 鎵规鍙�
+     */
+    public void addWasteStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String source) {
+        StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
+        stockUninventoryDto.setRecordId(recordId);
+        stockUninventoryDto.setRecordType(String.valueOf(recordType));
+        stockUninventoryDto.setQualitity(quantity);
+        stockUninventoryDto.setProductModelId(productModelId);
+        stockUninventoryDto.setBatchNo(batchNo);
+        stockUninventoryDto.setType("waste");
+        stockUninventoryDto.setSource(source);
         stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
     }
 
@@ -118,7 +142,27 @@
      * @param recordId
      */
     public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
-        addStockWithBatchNo(productModelId, quantity, recordType, recordId, batchNo, null);
+        addStockWithBatchNo(productModelId, quantity, recordType, recordId, batchNo, (LocalDateTime) null);
+    }
+
+    /**
+     * 鍚堟牸鍏ュ簱甯︽壒娆″彿鍜屾潵婧�
+     * @param productModelId
+     * @param quantity
+     * @param recordType
+     * @param recordId
+     * @param batchNo
+     * @param source 搴撳瓨鏉ユ簮
+     */
+    public void addStockWithBatchNo(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String source) {
+        StockInventoryDto stockInventoryDto = new StockInventoryDto();
+        stockInventoryDto.setRecordId(recordId);
+        stockInventoryDto.setRecordType(String.valueOf(recordType));
+        stockInventoryDto.setQualitity(quantity);
+        stockInventoryDto.setProductModelId(productModelId);
+        stockInventoryDto.setBatchNo(batchNo);
+        stockInventoryDto.setSource(source);
+        stockInventoryService.addStockInRecordOnly(stockInventoryDto);
     }
 
     /**
@@ -238,7 +282,7 @@
     }
 
     private String resolveUninventoryType(String recordType) {
-        if (com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode().equals(recordType)) {
+        if (com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode().equals(recordType) || com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode().equals(recordType)) {
             return "waste";
         }
         return "unqualified";

--
Gitblit v1.9.3