From 0cfc88a631024726ac9350db501fc83cab1757d4 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期五, 24 四月 2026 14:50:19 +0800
Subject: [PATCH] 定时任务记录文件上传

---
 src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java |   54 +++++------------
 src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java            |    4 
 src/main/java/com/ruoyi/basic/utils/FileUtil.java                                  |   41 ++++++++++++-
 src/main/java/com/ruoyi/basic/enums/ApplicationTypeEnum.java                       |    5 +
 src/main/java/com/ruoyi/inspectiontask/service/InspectionTaskService.java          |    4 -
 src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java    |    2 
 src/main/java/com/ruoyi/inspectiontask/dto/InspectionTaskDto.java                  |   14 +++-
 src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java                            |    3 
 8 files changed, 72 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/enums/ApplicationTypeEnum.java b/src/main/java/com/ruoyi/basic/enums/ApplicationTypeEnum.java
index 82b4fa5..35bbd0a 100644
--- a/src/main/java/com/ruoyi/basic/enums/ApplicationTypeEnum.java
+++ b/src/main/java/com/ruoyi/basic/enums/ApplicationTypeEnum.java
@@ -2,7 +2,10 @@
 
 public enum ApplicationTypeEnum {
     IMAGE("image"),
-    FILE("file");
+    FILE("file"),
+    AFTER_FILE("after_file"),
+    BEFORE_FILE("before_file");
+
 
     private final String type;
     ApplicationTypeEnum(String type) { this.type = type; }
diff --git a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
index 7e7a146..c24eb9e 100644
--- a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -1,7 +1,8 @@
 package com.ruoyi.basic.enums;
 
 public enum RecordTypeEnum {
-    ShippingInfo("shipping_info");
+    SHIPPING_INFO("shipping_info"),
+    INSPECTION_TASK("inspection_task");
 
     private final String type;
     RecordTypeEnum(String type) { this.type = type; }
diff --git a/src/main/java/com/ruoyi/basic/utils/FileUtil.java b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
index 159e46a..4092f30 100644
--- a/src/main/java/com/ruoyi/basic/utils/FileUtil.java
+++ b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -104,10 +104,10 @@
      *
      * @param application 鏂囦欢鐢ㄩ��
      * @param recordType  鍏宠仈璁板綍绫诲瀷
-     * @param recordId    鍏宠仈璁板綍id
+     * @param recordIds    鍏宠仈璁板綍id
      */
-    public void deleteStorageBlobsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
-        if (recordId == null || recordId <= 0) {
+    public void deleteStorageBlobsByApplicationAndRecordTypeAndRecordIds(ApplicationTypeEnum application, RecordTypeEnum recordType, List<Long> recordIds) {
+        if (recordIds == null || recordIds.isEmpty()) {
             throw new RuntimeException("鍏宠仈璁板綍id涓嶈兘涓虹┖");
         }
         if (application == null) {
@@ -118,7 +118,7 @@
         }
         List<StorageAttachment> storageAttachments = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>()
                 .eq(StorageAttachment::getRecordType, recordType.getType())
-                .eq(StorageAttachment::getRecordId, recordId)
+                .in(StorageAttachment::getRecordId, recordIds)
                 .eq(StorageAttachment::getApplication, application.getType()));
         if (CollectionUtils.isNotEmpty(storageAttachments)) {
             List<Long> storageAttachmentIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId)
@@ -137,6 +137,13 @@
         storageAttachmentMapper.deleteByIds(storageAttachmentIds);
     }
 
+    /**
+     * 鍒犻櫎鏂囦欢鍏宠仈淇℃伅
+     *
+     * @param application 鏂囦欢鐢ㄩ��
+     * @param recordType  鍏宠仈璁板綍绫诲瀷
+     * @param recordId    鍏宠仈璁板綍id
+     */
     public void deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
         if (recordId == null || recordId <= 0) {
             throw new RuntimeException("鍏宠仈璁板綍id涓嶈兘涓虹┖");
@@ -147,7 +154,7 @@
         if (recordType == null) {
             throw new RuntimeException("鍏宠仈璁板綍绫诲瀷涓嶈兘涓虹┖");
         }
-        deleteStorageBlobsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
+        deleteStorageBlobsByApplicationAndRecordTypeAndRecordIds(application, recordType, Arrays.asList(recordId));
         storageAttachmentMapper.delete(new LambdaQueryWrapper<StorageAttachment>()
                 .eq(StorageAttachment::getRecordType, recordType.getType())
                 .eq(StorageAttachment::getRecordId, recordId)
@@ -155,6 +162,30 @@
     }
 
     /**
+     * 鎵归噺鍒犻櫎鏂囦欢鍏宠仈淇℃伅 attachment
+     *
+     * @param application 鏂囦欢鐢ㄩ��
+     * @param recordType  鍏宠仈璁板綍绫诲瀷
+     * @param recordIds   鍏宠仈璁板綍id
+     */
+    public void deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordIds(ApplicationTypeEnum application, RecordTypeEnum recordType, List<Long> recordIds) {
+        if (recordIds == null || recordIds.isEmpty()) {
+            throw new RuntimeException("鍏宠仈璁板綍id涓嶈兘涓虹┖");
+        }
+        if (application == null) {
+            throw new RuntimeException("鏂囦欢鐢ㄩ�斾笉鑳戒负绌�");
+        }
+        if (recordType == null) {
+            throw new RuntimeException("鍏宠仈璁板綍绫诲瀷涓嶈兘涓虹┖");
+        }
+        deleteStorageBlobsByApplicationAndRecordTypeAndRecordIds(application, recordType, recordIds);
+        storageAttachmentMapper.delete(new LambdaQueryWrapper<StorageAttachment>()
+                .eq(StorageAttachment::getRecordType, recordType.getType())
+                .in(StorageAttachment::getRecordId, recordIds)
+                .eq(StorageAttachment::getApplication, application.getType()));
+    }
+
+    /**
      * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
      *
      * @param storageAttachmentIds 鏂囦欢id
diff --git a/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java b/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java
index ecda3bd..be8dda5 100644
--- a/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java
+++ b/src/main/java/com/ruoyi/inspectiontask/controller/InspectionTaskController.java
@@ -59,7 +59,7 @@
     @PostMapping("/addOrEditInspectionTask")
     @Operation(summary = "宸℃浠诲姟琛ㄦ柊澧炰慨鏀�")
     @Transactional(rollbackFor = Exception.class)
-    public R addOrEditInspectionTask(@RequestBody InspectionTaskDto inspectionTaskDto) throws IOException {
+    public R addOrEditInspectionTask(@RequestBody InspectionTaskDto inspectionTaskDto) {
         return R.ok(inspectionTaskService.addOrEditInspectionTask(inspectionTaskDto));
     }
 
diff --git a/src/main/java/com/ruoyi/inspectiontask/dto/InspectionTaskDto.java b/src/main/java/com/ruoyi/inspectiontask/dto/InspectionTaskDto.java
index 8daf720..a207cde 100644
--- a/src/main/java/com/ruoyi/inspectiontask/dto/InspectionTaskDto.java
+++ b/src/main/java/com/ruoyi/inspectiontask/dto/InspectionTaskDto.java
@@ -1,7 +1,8 @@
 package com.ruoyi.inspectiontask.dto;
 
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
 import com.ruoyi.inspectiontask.pojo.InspectionTask;
-import com.ruoyi.sales.pojo.CommonFile;
 import lombok.Data;
 
 import java.util.List;
@@ -16,9 +17,12 @@
 //
 //    private List<StorageAttachment> attachments;
 
-    private List<String> tempFileIds;
-    private List<CommonFile> commonFileList; //鐢熶骇涓�
-    private List<CommonFile> commonFileListAfter;  //鐢熶骇鍚�
-    private List<CommonFile> commonFileListBefore; //鐢熶骇鍓�
+    private List<StorageBlobDTO> commonFileListDTO; //鐢熶骇涓�
+    private List<StorageBlobDTO> commonFileListAfterDTO; //鐢熶骇鍚�
+    private List<StorageBlobDTO> commonFileListBeforeDTO; //鐢熶骇鍓�
+
+    private List<StorageBlobVO> commonFileListVO; //鐢熶骇涓�
+    private List<StorageBlobVO> commonFileListAfterVO; //鐢熶骇鍚�
+    private List<StorageBlobVO> commonFileListBeforeVO; //鐢熶骇鍓�
 
 }
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/InspectionTaskService.java b/src/main/java/com/ruoyi/inspectiontask/service/InspectionTaskService.java
index 72ca5e4..de175f2 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/InspectionTaskService.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/InspectionTaskService.java
@@ -6,8 +6,6 @@
 import com.ruoyi.inspectiontask.dto.InspectionTaskDto;
 import com.ruoyi.inspectiontask.pojo.InspectionTask;
 
-import java.io.IOException;
-
 /**
  * @author :yys
  * @date : 2025/9/19 10:49
@@ -16,7 +14,7 @@
 
     IPage<InspectionTaskDto> selectInspectionTaskList(Page<InspectionTask> page, InspectionTaskDto inspectionTaskDto);
 
-    int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) throws IOException;
+    int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto);
 
     int delByIds(Long[] ids);
 }
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
index 4cc8230..410336e 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -5,10 +5,9 @@
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.basic.mapper.StorageAttachmentMapper;
-import com.ruoyi.basic.mapper.StorageBlobMapper;
-import com.ruoyi.basic.service.StorageAttachmentService;
-import com.ruoyi.common.enums.FileNameType;
+import com.ruoyi.basic.enums.ApplicationTypeEnum;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.utils.FileUtil;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
@@ -18,18 +17,13 @@
 import com.ruoyi.inspectiontask.service.InspectionTaskService;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
-import com.ruoyi.sales.mapper.CommonFileMapper;
-import com.ruoyi.sales.pojo.CommonFile;
-import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -45,17 +39,9 @@
 
     private final InspectionTaskMapper inspectionTaskMapper;
 
-    private final StorageAttachmentService storageAttachmentService;
-
-    private final StorageBlobMapper storageBlobMapper;
-
-    private final StorageAttachmentMapper storageAttachmentMapper;
-
     private final SysUserMapper sysUserMapper;
 
-    private final CommonFileMapper commonFileMapper;
-
-    private final CommonFileServiceImpl commonFileService;
+    private final FileUtil fileUtil;
 
     @Override
     public IPage<InspectionTaskDto> selectInspectionTaskList(Page<InspectionTask> page, InspectionTaskDto inspectionTaskDto) {
@@ -109,16 +95,6 @@
                         SysUser::getUserId,
                         SysUser::getNickName,
                         (existing, replacement) -> existing));
-
-        //澶勭悊闄勪欢
-        List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
-                .in(CommonFile::getCommonId, ids)
-                .in(CommonFile::getType, Arrays.asList(FileNameType.INSPECTION.getValue(), FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue(), FileNameType.INSPECTION_PRODUCTION_AFTER.getValue())));
-        if(commonFiles == null){
-            commonFiles = new ArrayList<>();
-        }
-        AtomicReference<List<CommonFile>> finalCommonFiles = new AtomicReference<>(commonFiles);
-
         List<InspectionTaskDto> dtoList = entityPage.getRecords().stream().map(inspectionTask -> {
             InspectionTaskDto dto = new InspectionTaskDto();
             BeanUtils.copyProperties(inspectionTask, dto);  // 澶嶅埗涓诲璞″睘鎬�
@@ -145,11 +121,10 @@
             }
 
             dto.setDateStr(inspectionTask.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
-            finalCommonFiles.set(finalCommonFiles.get().stream().filter(commonFile -> commonFile.getCommonId().equals(inspectionTask.getId())).collect(Collectors.toList()));
             // 鍒濆鍖栦笁涓檮浠跺垪琛�
-            dto.setCommonFileList(finalCommonFiles.get().stream().filter(commonFile -> commonFile.getType().equals(FileNameType.INSPECTION.getValue())).collect(Collectors.toList()));
-            dto.setCommonFileListAfter(finalCommonFiles.get().stream().filter(commonFile -> commonFile.getType().equals(FileNameType.INSPECTION_PRODUCTION_AFTER.getValue())).collect(Collectors.toList()));
-            dto.setCommonFileListBefore(finalCommonFiles.get().stream().filter(commonFile -> commonFile.getType().equals(FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue())).collect(Collectors.toList()));
+            dto.setCommonFileListVO(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.FILE, RecordTypeEnum.INSPECTION_TASK, inspectionTask.getId()));
+            dto.setCommonFileListAfterVO(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.AFTER_FILE, RecordTypeEnum.INSPECTION_TASK, inspectionTask.getId()));
+            dto.setCommonFileListBeforeVO(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.BEFORE_FILE, RecordTypeEnum.INSPECTION_TASK, inspectionTask.getId()));
 
 
             return dto;
@@ -164,7 +139,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) throws IOException {
+    public int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) {
         InspectionTask inspectionTask = new InspectionTask();
         BeanUtils.copyProperties(inspectionTaskDto, inspectionTask);
         inspectionTask.setRegistrantId(SecurityUtils.getLoginUser().getUserId());
@@ -175,7 +150,11 @@
         } else {
             i = inspectionTaskMapper.updateById(inspectionTask);
         }
-        commonFileService.migrateTempFilesToFormal(inspectionTask.getId(),inspectionTaskDto.getTempFileIds());
+        // 淇濆瓨鏂囦欢
+        fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.INSPECTION_TASK, inspectionTask.getId(), inspectionTaskDto.getCommonFileListDTO());
+        fileUtil.saveStorageAttachment(ApplicationTypeEnum.AFTER_FILE, RecordTypeEnum.INSPECTION_TASK, inspectionTask.getId(), inspectionTaskDto.getCommonFileListAfterDTO());
+        fileUtil.saveStorageAttachment(ApplicationTypeEnum.BEFORE_FILE, RecordTypeEnum.INSPECTION_TASK, inspectionTask.getId(), inspectionTaskDto.getCommonFileListBeforeDTO());
+
         return i;
     }
 
@@ -186,9 +165,10 @@
         if (ids == null || ids.length == 0) {
             return 0;
         }
-        commonFileService.deleteByBusinessIds(Arrays.asList(ids),FileNameType.INSPECTION.getValue());
-        commonFileService.deleteByBusinessIds(Arrays.asList(ids),FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue());
-        commonFileService.deleteByBusinessIds(Arrays.asList(ids),FileNameType.INSPECTION_PRODUCTION_AFTER.getValue());
+        // 鍒犻櫎鏂囦欢
+        fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordIds(ApplicationTypeEnum.FILE, RecordTypeEnum.INSPECTION_TASK, Arrays.asList(ids));
+        fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordIds(ApplicationTypeEnum.AFTER_FILE, RecordTypeEnum.INSPECTION_TASK, Arrays.asList(ids));
+        fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordIds(ApplicationTypeEnum.BEFORE_FILE, RecordTypeEnum.INSPECTION_TASK, Arrays.asList(ids));
         return inspectionTaskMapper.deleteBatchIds(Arrays.asList(ids));
     }
 
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 4763399..9c51b3f 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -49,7 +49,7 @@
     public IPage<ShippingInfoDto> listPage(Page page, ShippingInfo req) {
         IPage<ShippingInfoDto> listPage = shippingInfoMapper.listPage(page, req);
         listPage.getRecords().forEach(item ->{
-            item.setStorageBlobVOs(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.IMAGE, RecordTypeEnum.ShippingInfo, item.getId()));
+            item.setStorageBlobVOs(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.IMAGE, RecordTypeEnum.SHIPPING_INFO, item.getId()));
         });
         return listPage;
     }
@@ -72,7 +72,7 @@
         byId.setShippingDate(req.getShippingDate());
         boolean update = this.updateById(byId);
         // 淇濆瓨鏂囦欢
-        fileUtil.saveStorageAttachment(ApplicationTypeEnum.IMAGE, RecordTypeEnum.ShippingInfo, req.getId(), req.getStorageBlobDTOs());
+        fileUtil.saveStorageAttachment(ApplicationTypeEnum.IMAGE, RecordTypeEnum.SHIPPING_INFO, req.getId(), req.getStorageBlobDTOs());
         return update ;
     }
 

--
Gitblit v1.9.3