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 |   97 +++++++++++++++++++++---------------------------
 1 files changed, 42 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
index d9f4e5c..6933851 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -1,20 +1,19 @@
 package com.ruoyi.device.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.approve.pojo.ApproveProcess;
-import com.ruoyi.approve.service.IApproveProcessService;
 import com.ruoyi.device.dto.DeviceRepairDto;
 import com.ruoyi.device.pojo.DeviceRepair;
 import com.ruoyi.device.service.IDeviceLedgerService;
 import com.ruoyi.device.service.IDeviceRepairService;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.sales.pojo.CommonFile;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
@@ -30,76 +29,42 @@
 
     @Autowired
     private IDeviceLedgerService deviceLedgerService;
-    @Autowired
-    private IApproveProcessService approveProcessService;
 
-    @ApiModelProperty("璁惧鎶ヤ慨鍒楄〃")
+    @ApiOperation("璁惧鎶ヤ慨鍒楄〃")
     @GetMapping("/page")
-    public AjaxResult page(Page page , DeviceRepairDto deviceRepairDto) {
-        return AjaxResult.success(deviceRepairService.queryPage(page,deviceRepairDto));
+    public AjaxResult page(Page page, DeviceRepairDto deviceRepairDto) {
+        return AjaxResult.success(deviceRepairService.queryPage(page, deviceRepairDto));
     }
 
     @PostMapping()
-    @Transactional(rollbackFor = Exception.class)
-    @ApiModelProperty("娣诲姞璁惧鎶ヤ慨")
-    public AjaxResult add( @RequestBody DeviceRepair deviceRepair) throws Exception {
-        deviceRepairService.saveDeviceRepair(deviceRepair);
-        // todo 鍓嶇浠g爜涓嶅尮閰嶏紝寰呭鐞�
-//        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
-//        LoginUser loginUser = SecurityUtils.getLoginUser();
-//        // 鑾峰彇褰撳墠鐧诲綍鍏徃
-//        Long tenantId = loginUser.getTenantId();
-//        if(null != tenantId){
-//            //鑾峰彇褰撳墠鐧诲綍閮ㄩ棬id
-//            approveProcessVO.setApproveDeptId(tenantId);
-//            //鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛id
-//            approveProcessVO.setApproveUser(loginUser.getUserId());
-//            //鑾峰彇褰撳墠鏃堕棿
-//            approveProcessVO.setApproveTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-//            approveProcessVO.setApproveType(4);
-//            approveProcessVO.setApproveUserIds(deviceRepair.getApproverId().toString());
-//            approveProcessVO.setApproveReason(deviceRepair.getRemark());
-//            approveProcessVO.setDeviceRepairId(deviceRepair.getId());
-//            approveProcessVO.setMaintenancePrice(deviceRepair.getMaintenancePrice());
-//            approveProcessService.addApprove(approveProcessVO);
-//        }
-        return AjaxResult.success();
+    @ApiOperation("娣诲姞璁惧鎶ヤ慨")
+    public AjaxResult add(@RequestBody DeviceRepair deviceRepair) {
+        return deviceRepairService.saveDeviceRepair(deviceRepair);
     }
 
-    @ApiModelProperty("鏍规嵁id鏌ヨ璁惧鎶ヤ慨")
+    @ApiOperation("鏍规嵁id鏌ヨ璁惧鎶ヤ慨")
     @GetMapping("/{id}")
     public AjaxResult detail(@PathVariable Long id) {
         DeviceRepairDto byId = deviceRepairService.detailById(id);
         return AjaxResult.success(byId);
     }
 
-    @PutMapping ()
-    @ApiModelProperty("淇敼璁惧鎶ヤ慨")
-    public AjaxResult update( @RequestBody DeviceRepair deviceRepair) {
+    @PutMapping()
+    @ApiOperation("淇敼璁惧鎶ヤ慨")
+    public AjaxResult update(@RequestBody DeviceRepair deviceRepair) {
         return deviceRepairService.updateDeviceRepair(deviceRepair);
     }
 
-    @PostMapping ("repair")
-    @ApiModelProperty("璁惧缁翠慨")
-    public AjaxResult repair( @RequestBody DeviceRepair deviceRepair) {
+    @PostMapping("repair")
+    @ApiOperation("璁惧缁翠慨")
+    public AjaxResult repair(@RequestBody DeviceRepair deviceRepair) {
         return deviceRepairService.updateDeviceRepair(deviceRepair);
     }
 
     @DeleteMapping("/{ids}")
-    @ApiModelProperty("鍒犻櫎璁惧鎶ヤ慨")
+    @ApiOperation("鍒犻櫎璁惧鎶ヤ慨")
     public AjaxResult delete(@PathVariable("ids") Long[] ids) {
-        LambdaQueryWrapper<ApproveProcess> QueryWrapper = new LambdaQueryWrapper<>();
-        QueryWrapper.in(ApproveProcess::getDeviceRepairId,ids);
-        List<ApproveProcess> approveProcessList = approveProcessService.list(QueryWrapper);
-        if(!approveProcessList.isEmpty()){
-            approveProcessList.forEach(approveProcess -> {
-                if (approveProcess.getApproveStatus() != 0){
-                    //鎶涘嚭寮傚父
-                    throw new RuntimeException("鏈夋鍦ㄥ鐞嗕腑鐨勫鎵规祦绋嬶紝涓嶈兘鍒犻櫎");
-                }
-            });
-        }
-        boolean b = deviceRepairService.removeBatchByIds(Arrays.asList(ids));
+        boolean b = deviceRepairService.deleteRepairAndFiles(Arrays.asList(ids));
         if (!b) {
             return AjaxResult.error("鍒犻櫎澶辫触");
         }
@@ -107,8 +72,30 @@
     }
 
     @PostMapping("export")
-    @ApiModelProperty("瀵煎嚭璁惧鎶ヤ慨")
+    @ApiOperation("瀵煎嚭璁惧鎶ヤ慨")
     public void export(HttpServletResponse response, Long[] ids) {
         deviceRepairService.export(response, ids);
     }
+
+    @PostMapping("/uploadFile")
+    @ApiOperation("璁惧淇濅慨-闄勪欢涓婁紶")
+    public AjaxResult uploadFile(MultipartFile file, Long deviceRepairId) {
+        deviceRepairService.uploadFile(file, deviceRepairId);
+        return AjaxResult.success();
+    }
+
+    @GetMapping("/file/{deviceRepairId}")
+    @ApiOperation("璁惧淇濅慨-鏂囦欢鍒楄〃")
+    public AjaxResult getFiles(@PathVariable("deviceRepairId") Long deviceRepairId) {
+        List<CommonFile> list = deviceRepairService.getFiles(deviceRepairId);
+        return AjaxResult.success(list);
+    }
+
+    @DeleteMapping("/file/{fileId}")
+    @ApiOperation("璁惧淇濅慨-鍒犻櫎鏂囦欢")
+    public AjaxResult deleteFile(@PathVariable("fileId") Long fileId) {
+        deviceRepairService.deleteFile(fileId);
+        return AjaxResult.success();
+    }
+
 }

--
Gitblit v1.9.3