From 837bc628c7c25a9581d87c19a47ed2fd628928a4 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 30 六月 2026 14:21:49 +0800
Subject: [PATCH] 发货审批驳回后,删除对应所有出库记录

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

diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 9b8735f..6c56359 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -20,6 +20,7 @@
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Collections;
+import java.util.List;
 
 @Component
 @RequiredArgsConstructor
@@ -183,15 +184,25 @@
 
     //鍒犻櫎鍑哄簱璁板綍
     public void deleteStockOutRecord(Long recordId, String recordType) {
-        StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
+        List<StockOutRecord> records = 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.isEmpty(records)) {
+            return;
+        }
+        List<Long> approvedIds = records.stream()
+                .filter(one -> ReviewStatusEnum.APPROVED.getCode().equals(one.getApprovalStatus()))
+                .map(StockOutRecord::getId)
+                .toList();
+        List<Long> pendingIds = records.stream()
+                .filter(one -> !ReviewStatusEnum.APPROVED.getCode().equals(one.getApprovalStatus()))
+                .map(StockOutRecord::getId)
+                .toList();
+        if (!approvedIds.isEmpty()) {
+            stockOutRecordService.batchDelete(approvedIds);
+        }
+        if (!pendingIds.isEmpty()) {
+            stockOutRecordService.removeByIds(pendingIds);
         }
 
     }

--
Gitblit v1.9.3