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 | 171 +++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 112 insertions(+), 59 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/utils/FileUtil.java b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
index 19ac77c..159e46a 100644
--- a/src/main/java/com/ruoyi/basic/utils/FileUtil.java
+++ b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -2,7 +2,8 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.ruoyi.basic.dto.StorageAttachmentDTO;
+import com.ruoyi.basic.dto.StorageAttachmentVO;
+import com.ruoyi.basic.dto.StorageBlobDTO;
import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.basic.enums.ApplicationTypeEnum;
import com.ruoyi.basic.enums.RecordTypeEnum;
@@ -48,10 +49,10 @@
* @param application 鏂囦欢鐢ㄩ��
* @param recordType 鍏宠仈璁板綍绫诲瀷
* @param recordId 鍏宠仈璁板綍id
- * @param storageBlobVOS 鏂囦欢淇℃伅
+ * @param storageBlobDTOS 鏂囦欢淇℃伅
*/
- public void saveStorageAttachment(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, List<StorageBlobVO> storageBlobVOS) {
- if (CollectionUtils.isEmpty(storageBlobVOS)) {
+ public void saveStorageAttachment(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, List<StorageBlobDTO> storageBlobDTOS) {
+ if (CollectionUtils.isEmpty(storageBlobDTOS)) {
throw new RuntimeException("鏂囦欢淇℃伅涓嶈兘涓虹┖");
}
if (application == null) {
@@ -66,13 +67,14 @@
// 鍒犻櫎鏃ч檮浠朵俊鎭�
deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
List<StorageAttachment> storageAttachments = new ArrayList<>();
- for (StorageBlobVO storageBlobVO : storageBlobVOS) {
+ for (StorageBlobDTO storageBlobDTO : storageBlobDTOS) {
StorageAttachment storageAttachment = new StorageAttachment();
storageAttachment.setApplication(application.getType());
storageAttachment.setRecordType(recordType.getType());
storageAttachment.setRecordId(recordId);
- storageAttachment.setStorageBlobId(storageBlobVO.getId());
+ storageAttachment.setStorageBlobId(storageBlobDTO.getId());
storageAttachment.setDeleted(0L);
+ storageAttachments.add(storageAttachment);
}
storageAttachmentMapper.insert(storageAttachments);
}
@@ -153,7 +155,7 @@
}
/**
- * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+ * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
*
* @param storageAttachmentIds 鏂囦欢id
*/
@@ -165,7 +167,7 @@
}
/**
- * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢鍏宠仈淇℃伅
+ * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢鍏宠仈淇℃伅 attachment
*
* @param application 鏂囦欢鐢ㄩ��
* @param recordType 鍏宠仈璁板綍绫诲瀷
@@ -187,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;
@@ -210,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;
@@ -234,109 +287,109 @@
}
/**
- * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+ * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
*
* @param storageAttachmentIds 鏂囦欢id
*/
- public List<StorageAttachmentDTO> getStorageAttachmentDTOsByStorageAttachmentIds(List<Long> storageAttachmentIds) {
+ public List<StorageAttachmentVO> getStorageAttachmentVOSByStorageAttachmentIds(List<Long> storageAttachmentIds) {
List<StorageAttachment> storageAttachments = getStorageAttachmentsByStorageAttachmentIds(storageAttachmentIds);
if (CollectionUtils.isEmpty(storageAttachments)) {
return new ArrayList<>();
}
- List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+ List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
for (StorageAttachment storageAttachment : storageAttachments) {
- StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
- BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
- List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
+ StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+ BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
+ List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
if (CollectionUtils.isEmpty(storageBlobVOS)) {
- storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+ storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
} else {
- storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+ storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
}
- storageAttachmentDTOS.add(storageAttachmentDTO);
+ storageAttachmentVOS.add(storageAttachmentVO);
}
- return storageAttachmentDTOS;
+ return storageAttachmentVOS;
}
/**
- * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+ * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� attachment
*
* @param storageAttachmentIds 鏂囦欢id
* @param expired 杩囨湡鏃堕棿
*/
- public List<StorageAttachmentDTO> getStorageAttachmentDTOsByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
+ public List<StorageAttachmentVO> getStorageAttachmentVOSByStorageAttachmentIds(List<Long> storageAttachmentIds, BigDecimal expired) {
List<StorageAttachment> storageAttachments = getStorageAttachmentsByStorageAttachmentIds(storageAttachmentIds);
if (CollectionUtils.isEmpty(storageAttachments)) {
return new ArrayList<>();
}
- List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+ List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
for (StorageAttachment storageAttachment : storageAttachments) {
- StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
- BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
- List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
+ StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+ BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
+ List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
if (CollectionUtils.isEmpty(storageBlobVOS)) {
- storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+ storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
} else {
- storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+ storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
}
- storageAttachmentDTOS.add(storageAttachmentDTO);
+ storageAttachmentVOS.add(storageAttachmentVO);
}
- return storageAttachmentDTOS;
+ return storageAttachmentVOS;
}
/**
- * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅
+ * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅 attachment
*
* @param application 搴旂敤
* @param recordType 璁板綍绫诲瀷
* @param recordId 璁板綍id
*/
- public List<StorageAttachmentDTO> getStorageAttachmentDTOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
+ public List<StorageAttachmentVO> getStorageAttachmentVOSByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId) {
List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
if (CollectionUtils.isEmpty(storageAttachments)) {
return new ArrayList<>();
}
- List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+ List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
for (StorageAttachment storageAttachment : storageAttachments) {
- StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
- BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
- List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
+ StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+ BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
+ List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()));
if (CollectionUtils.isEmpty(storageBlobVOS)) {
- storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+ storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
} else {
- storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+ storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
}
- storageAttachmentDTOS.add(storageAttachmentDTO);
+ storageAttachmentVOS.add(storageAttachmentVO);
}
- return storageAttachmentDTOS;
+ return storageAttachmentVOS;
}
/**
- * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿
+ * 閫氳繃鏂囦欢鍏宠仈id鑾峰彇鏂囦欢淇℃伅瀛樺湪杩囨湡鏃堕棿 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� attachment
*
* @param application 搴旂敤
* @param recordType 璁板綍绫诲瀷
* @param recordId 璁板綍id
* @param expired 杩囨湡鏃堕棿
*/
- public List<StorageAttachmentDTO> getStorageAttachmentDTOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) {
+ public List<StorageAttachmentVO> getStorageAttachmentVOSByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum application, RecordTypeEnum recordType, Long recordId, BigDecimal expired) {
List<StorageAttachment> storageAttachments = getStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId);
if (CollectionUtils.isEmpty(storageAttachments)) {
return new ArrayList<>();
}
- List<StorageAttachmentDTO> storageAttachmentDTOS = new ArrayList<>();
+ List<StorageAttachmentVO> storageAttachmentVOS = new ArrayList<>();
for (StorageAttachment storageAttachment : storageAttachments) {
- StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
- BeanUtils.copyProperties(storageAttachment, storageAttachmentDTO);
- List<StorageBlobVO> storageBlobVOS = getStorageBlobDTOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
+ StorageAttachmentVO storageAttachmentVO = new StorageAttachmentVO();
+ BeanUtils.copyProperties(storageAttachment, storageAttachmentVO);
+ List<StorageBlobVO> storageBlobVOS = getStorageBlobVOsByStorageAttachmentIds(Collections.singletonList(storageAttachment.getId()), expired);
if (CollectionUtils.isEmpty(storageBlobVOS)) {
- storageAttachmentDTO.setStorageBlobVOS(new ArrayList<>());
+ storageAttachmentVO.setStorageBlobVOS(new ArrayList<>());
} else {
- storageAttachmentDTO.setStorageBlobVOS(storageBlobVOS);
+ storageAttachmentVO.setStorageBlobVOS(storageBlobVOS);
}
- storageAttachmentDTOS.add(storageAttachmentDTO);
+ storageAttachmentVOS.add(storageAttachmentVO);
}
- return storageAttachmentDTOS;
+ return storageAttachmentVOS;
}
/**
@@ -346,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));
}
@@ -354,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));
}
@@ -375,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));
}
@@ -383,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));
}
@@ -489,7 +542,7 @@
}
/**
- * 鍘嬬缉鏂囦欢
+ * 鍘嬬缉鏂囦欢 鍥剧墖
*
* @param file 鏂囦欢
* @return 鍘嬬缉鍚庣殑鏂囦欢
--
Gitblit v1.9.3