From 174c4a75e9dac46cf42399646bf49283583a43f5 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 09 六月 2026 14:38:01 +0800
Subject: [PATCH] 增加废品库存列表和导出接口,以及修改发货逻辑

---
 src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java |   34 +++++++++++++++++++++++++++-------
 1 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index d5e8c22..130a05a 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -45,6 +45,7 @@
         stockUninventoryDto.setRecordType(String.valueOf(recordType));
         stockUninventoryDto.setQualitity(quantity);
         stockUninventoryDto.setProductModelId(productModelId);
+        stockUninventoryDto.setType(resolveUninventoryType(recordType));
         stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
     }
 
@@ -63,6 +64,7 @@
         stockUninventoryDto.setQualitity(quantity);
         stockUninventoryDto.setProductModelId(productModelId);
         stockUninventoryDto.setBatchNo(batchNo);
+        stockUninventoryDto.setType(resolveUninventoryType(recordType));
         stockUninventoryService.addStockInRecordOnly(stockUninventoryDto);
     }
 
@@ -80,6 +82,7 @@
         stockUninventoryDto.setRecordType(String.valueOf(recordType));
         stockUninventoryDto.setQualitity(quantity);
         stockUninventoryDto.setProductModelId(productModelId);
+        stockUninventoryDto.setType("unqualified");
         stockUninventoryService.subtractStockUninventory(stockUninventoryDto);
     }
 
@@ -211,16 +214,33 @@
 
     //鍒犻櫎鍑哄簱璁板綍
     public void deleteStockOutRecord(Long recordId, String recordType) {
-        StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
+        java.util.List<StockOutRecord> list = stockOutRecordService.list(new QueryWrapper<StockOutRecord>()
                 .lambda().eq(StockOutRecord::getRecordId, recordId)
-                .eq(StockOutRecord::getRecordType, recordType), false);
-        if (ObjectUtils.isNotEmpty(one)) {
-            if (ReviewStatusEnum.APPROVED.getCode().equals(one.getApprovalStatus())) {
-                stockOutRecordService.batchDelete(Collections.singletonList(one.getId()));
-            } else {
-                stockOutRecordService.removeById(one.getId());
+                .eq(StockOutRecord::getRecordType, recordType));
+        if (ObjectUtils.isNotEmpty(list)) {
+            java.util.List<Long> approvedIds = new java.util.ArrayList<>();
+            java.util.List<Long> pendingIds = new java.util.ArrayList<>();
+            for (StockOutRecord stockOutRecord : list) {
+                if (ReviewStatusEnum.APPROVED.getCode().equals(stockOutRecord.getApprovalStatus())) {
+                    approvedIds.add(stockOutRecord.getId());
+                } else {
+                    pendingIds.add(stockOutRecord.getId());
+                }
+            }
+            if (!approvedIds.isEmpty()) {
+                stockOutRecordService.batchDelete(approvedIds);
+            }
+            if (!pendingIds.isEmpty()) {
+                stockOutRecordService.removeByIds(pendingIds);
             }
         }
 
     }
+
+    private String resolveUninventoryType(String recordType) {
+        if (com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode().equals(recordType)) {
+            return "waste";
+        }
+        return "unqualified";
+    }
 }

--
Gitblit v1.9.3