From cb22488a65908eb633d4964377c8dd2246fad381 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期五, 24 四月 2026 14:14:36 +0800
Subject: [PATCH] 发货文件上传修改

---
 src/main/java/com/ruoyi/basic/utils/FileUtil.java |   94 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 73 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/utils/FileUtil.java b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
index b97f1d1..159e46a 100644
--- a/src/main/java/com/ruoyi/basic/utils/FileUtil.java
+++ b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -74,6 +74,7 @@
             storageAttachment.setRecordId(recordId);
             storageAttachment.setStorageBlobId(storageBlobDTO.getId());
             storageAttachment.setDeleted(0L);
+            storageAttachments.add(storageAttachment);
         }
         storageAttachmentMapper.insert(storageAttachments);
     }
@@ -154,7 +155,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
      *
      * @param storageAttachmentIds 鏂囦欢id
      */
@@ -166,7 +167,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢鍏宠仈淇℃伅
+     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢鍏宠仈淇℃伅 attachment
      *
      * @param application 鏂囦欢鐢ㄩ��
      * @param recordType  鍏宠仈璁板綍绫诲瀷
@@ -188,11 +189,11 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 blob
      *
      * @param storageAttachmentIds 鏂囦欢id
      */
-    public List<StorageBlobVO> getStorageBlobDTOsByStorageAttachmentIds(List<Long> storageAttachmentIds) {
+    public List<StorageBlobVO> getStorageBlobVOsByStorageAttachmentIds(List<Long> storageAttachmentIds) {
         List<StorageAttachment> storageAttachments = getStorageAttachmentsByStorageAttachmentIds(storageAttachmentIds);
         if (CollectionUtils.isEmpty(storageAttachments)) {
             return null;
@@ -211,12 +212,63 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢淇℃伅 blob
+     *
+     * @param application 鏂囦欢鐢ㄩ��
+     * @param recordType  鍏宠仈璁板綍绫诲瀷
+     * @param recordId    鍏宠仈璁板綍id
+     */
+    public List<StorageBlobVO> getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
+        List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
+        if (CollectionUtils.isEmpty(storageAttachments)) {
+            return null;
+        }
+        List<Long> storageBlobIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId).collect(Collectors.toList());
+        List<StorageBlob> storageBlobs = storageBlobMapper.selectByIds(storageBlobIds);
+        List<StorageBlobVO> storageBlobDTOS = new ArrayList<>();
+        for (StorageBlob storageBlob : storageBlobs) {
+            StorageBlobVO storageBlobVO = new StorageBlobVO();
+            BeanUtils.copyProperties(storageBlob, storageBlobVO);
+            storageBlobVO.setPreviewURL(buildSignedPreviewUrl(storageBlobVO));
+            storageBlobVO.setDownloadURL(buildSignedDownloadUrl(storageBlobVO));
+            storageBlobDTOS.add(storageBlobVO);
+        }
+        return storageBlobDTOS;
+    }
+
+    /**
+     * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢淇℃伅 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� blob
+     *
+     * @param application 鏂囦欢鐢ㄩ��
+     * @param recordType  鍏宠仈璁板綍绫诲瀷
+     * @param recordId    鍏宠仈璁板綍id
+     * @param expired     杩囨湡鏃堕棿
+     */
+    public List<StorageBlobVO> getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) {
+        List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
+        if (CollectionUtils.isEmpty(storageAttachments)) {
+            return null;
+        }
+        List<Long> storageBlobIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId).collect(Collectors.toList());
+        List<StorageBlob> storageBlobs = storageBlobMapper.selectByIds(storageBlobIds);
+        List<StorageBlobVO> storageBlobDTOS = new ArrayList<>();
+        for (StorageBlob storageBlob : storageBlobs) {
+            StorageBlobVO storageBlobVO = new StorageBlobVO();
+            BeanUtils.copyProperties(storageBlob, storageBlobVO);
+            storageBlobVO.setPreviewURL(buildSignedUrl(storageBlobVO, "/preview/", expired));
+            storageBlobVO.setDownloadURL(buildSignedUrl(storageBlobVO, "/download/", expired));
+            storageBlobDTOS.add(storageBlobVO);
+        }
+        return storageBlobDTOS;
+    }
+
+    /**
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� blob
      *
      * @param storageAttachmentIds 鏂囦欢id
      * @param expired              杩囨湡鏃堕棿
      */
-    public List<StorageBlobVO> getStorageBlobDTOsByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
+    public List<StorageBlobVO> getStorageBlobVOsByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
         List<StorageAttachment> storageAttachments = getStorageAttachmentsByStorageAttachmentIds(storageAttachmentIds);
         if (CollectionUtils.isEmpty(storageAttachments)) {
             return null;
@@ -235,7 +287,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
      *
      * @param storageAttachmentIds 鏂囦欢id
      */
@@ -248,7 +300,7 @@
         for (StorageAttachment storageAttachment : storageAttachments) {
             StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
             BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
-            List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
+            List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
                 storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
@@ -260,7 +312,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� attachment
      *
      * @param storageAttachmentIds 鏂囦欢id
      * @param expired              杩囨湡鏃堕棿
@@ -274,7 +326,7 @@
         for (StorageAttachment storageAttachment : storageAttachments) {
             StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
             BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
-            List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
+            List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
                 storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
@@ -286,7 +338,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
      *
      * @param application 搴旂敤
      * @param recordType  璁板綍绫诲瀷
@@ -301,7 +353,7 @@
         for (StorageAttachment storageAttachment : storageAttachments) {
             StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
             BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
-            List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
+            List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
                 storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
@@ -313,7 +365,7 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� attachment
      *
      * @param application 搴旂敤
      * @param recordType  璁板綍绫诲瀷
@@ -329,7 +381,7 @@
         for (StorageAttachment storageAttachment : storageAttachments) {
             StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
             BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
-            List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
+            List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
             if (CollectionUtils.isEmpty(storageBlobVOS)) {
                 storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
             } else {
@@ -347,7 +399,7 @@
      */
     public List<String> getFilePreviewURLByStorageAttachmentIds(List<Long> storageAttachmentIds) {
         List<String> res = new ArrayList<>();
-        List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(storageAttachmentIds);
+        List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(storageAttachmentIds);
         for (StorageBlobVO storageBlobVO : storageBlobVOS) {
             res.add(buildSignedPreviewUrl(storageBlobVO));
         }
@@ -355,14 +407,14 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢棰勮鍦板潃瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢棰勮鍦板潃瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛�
      *
      * @param storageAttachmentIds 鏂囦欢鍏宠仈id
      * @param expired              杩囨湡鏃堕棿
      */
     public List<String> getFilePreviewURLByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
         List<String> res = new ArrayList<>();
-        List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(storageAttachmentIds);
+        List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(storageAttachmentIds);
         for (StorageBlobVO storageBlobVO : storageBlobVOS) {
             res.add(buildSignedUrl(storageBlobVO, "/preview/", expired));
         }
@@ -376,7 +428,7 @@
      */
     public List<String> getFileDownloadURLByStorageAttachmentIds(List<Long> storageAttachmentIds) {
         List<String> res = new ArrayList<>();
-        List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(storageAttachmentIds);
+        List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(storageAttachmentIds);
         for (StorageBlobVO storageBlobVO : storageBlobVOS) {
             res.add(buildSignedDownloadUrl(storageBlobVO));
         }
@@ -384,14 +436,14 @@
     }
 
     /**
-     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢涓嬭浇鍦板潃瀛樺湪杩囨湡鏃堕棿
+     * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢涓嬭浇鍦板潃瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛�
      *
      * @param storageAttachmentIds 鏂囦欢鍏宠仈id
      * @param expired              杩囨湡鏃堕棿
      */
     public List<String> getFileDownloadURLByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
         List<String> res = new ArrayList<>();
-        List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(storageAttachmentIds);
+        List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(storageAttachmentIds);
         for (StorageBlobVO storageBlobVO : storageBlobVOS) {
             res.add(buildSignedUrl(storageBlobVO, "/download/", expired));
         }
@@ -490,7 +542,7 @@
     }
 
     /**
-     * 鍘嬬缉鏂囦欢
+     * 鍘嬬缉鏂囦欢 鍥剧墖
      *
      * @param file 鏂囦欢
      * @return 鍘嬬缉鍚庣殑鏂囦欢

--
Gitblit v1.9.3