From efd594b160a4e35f499eb54ffa0c5b06326cbe1c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 23 四月 2026 11:51:15 +0800
Subject: [PATCH] feat: 删除设备保修时也删除对应的上传附件

---
 src/main/java/com/ruoyi/device/controller/DeviceRepairController.java    |    2 +-
 src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java |   17 +++++++++++++++++
 src/main/java/com/ruoyi/device/service/IDeviceRepairService.java         |    3 +++
 3 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
index d6aadd1..6933851 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -64,7 +64,7 @@
     @DeleteMapping("/{ids}")
     @ApiOperation("鍒犻櫎璁惧鎶ヤ慨")
     public AjaxResult delete(@PathVariable("ids") Long[] ids) {
-        boolean b = deviceRepairService.removeBatchByIds(Arrays.asList(ids));
+        boolean b = deviceRepairService.deleteRepairAndFiles(Arrays.asList(ids));
         if (!b) {
             return AjaxResult.error("鍒犻櫎澶辫触");
         }
diff --git a/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java b/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java
index f056fa6..b2774b9 100644
--- a/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java
+++ b/src/main/java/com/ruoyi/device/service/IDeviceRepairService.java
@@ -10,6 +10,7 @@
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Collection;
 import java.util.List;
 
 
@@ -31,4 +32,6 @@
 
     void deleteFile(Long fileId);
 
+    boolean deleteRepairAndFiles(Collection<Long> ids);
+
 }
diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
index a78ed3d..064bcce 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
@@ -33,6 +33,7 @@
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
@@ -179,4 +180,20 @@
         }
         commonFileMapper.deleteById(fileId);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean deleteRepairAndFiles(Collection<Long> ids) {
+        if (ids == null || ids.isEmpty()) {
+            throw new ServiceException("鍒犻櫎澶辫触,璇蜂紶鍏ヨ鍒犻櫎鐨勬暟鎹�");
+        }
+
+        List<CommonFile> fileList = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+                .in(CommonFile::getCommonId, ids)
+                .eq(CommonFile::getType, FileNameType.EQUIPMENT_WARRANTY.getValue()));
+        for (CommonFile commonFile : fileList) {
+            deleteFile(commonFile.getId());
+        }
+        return this.removeBatchByIds(ids);
+    }
 }

--
Gitblit v1.9.3