优化审批数据推送展示内容和数据下载

This commit is contained in:
2025-12-24 09:01:57 +08:00
parent bf7bc7edc9
commit 0fef15b07a
4 changed files with 24 additions and 11 deletions

View File

@@ -97,7 +97,7 @@ public interface IMinioService {
* @param encodedFileName
* @param contentType
*/
void streamFile(String objectName, String bucketName, HttpServletResponse response, String encodedFileName, String contentType)throws Exception ;
void streamFile(String objectName, String bucketName, HttpServletResponse response, String originalName, String contentType)throws Exception ;
InputStream getMinioInputStream(String objectName, String bucketName);

View File

@@ -82,6 +82,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
@@ -1302,8 +1303,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
return;
}*/
// 从MinIO下载文件
String encodedFileName = URLEncoder.encode(fileMetadataInfo.getOriginalName(), StandardCharsets.UTF_8);
minioService.streamFile(fileObjectKey, fileMetadataInfo.getBucketName(), response, encodedFileName, "");
minioService.streamFile(fileObjectKey, fileMetadataInfo.getBucketName(), response, fileMetadataInfo.getOriginalName(), "");
} catch (Exception e) {
log.error("下载文件失败", e);
try {
@@ -1573,7 +1573,11 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
tempFileMetadataInfo.setAnalysisDirectionId(req.getAnalysisDirectionId());
tempFileMetadataInfo.setRemarks(req.getRemarks());
tempFileMetadataInfo.setSimulationPoolInfoList(req.getSimulationPoolInfoList());
tempFileMetadataInfo.setCreateTime(fileMetadataInfo.getCreateTime());
tempFileMetadataInfo.setUpdateTime(fileMetadataInfo.getCreateTime());
tempFileMetadataInfo.setUpdateTime(LocalDateTime.now());
fileMetadataInfo.setTempMetadata(JSONObject.toJSONString(tempFileMetadataInfo));
fileMetadataInfo.setUpdateTime(LocalDateTime.now());
//发起审批
FileApproveRequestBuilder updateFileMetaIntoApproveRequestBuilder = FileApproveRequestBuilder.builder()

View File

@@ -430,7 +430,7 @@ public class MinioService implements IMinioService {
public void streamFile(String objectName, String bucketName, HttpServletResponse response, String encodedFileName, String contentType) throws Exception {
public void streamFile(String objectName, String bucketName, HttpServletResponse response, String originalName, String contentType) throws Exception {
StatObjectResponse stat = minioClient.statObject(
StatObjectArgs.builder()
.bucket(getBucketName(bucketName))
@@ -445,15 +445,17 @@ public class MinioService implements IMinioService {
.build());
ReadableByteChannel inChannel = Channels.newChannel(stream);
WritableByteChannel outChannel = Channels.newChannel(response.getOutputStream())) {
String encodeFileName = URLEncoder.encode(originalName, "UTF-8");
encodeFileName = encodeFileName.replaceAll("\\+", "%20");
response.reset();
String mediaType = org.apache.commons.lang3.StringUtils.isBlank(contentType) ?
MediaType.APPLICATION_OCTET_STREAM_VALUE : contentType;
response.setContentType(mediaType);
String encodeFileName = URLEncoder.encode(encodedFileName, "UTF-8");
encodeFileName = encodeFileName.replaceAll("\\+", "%20");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=\"" + encodeFileName + "\";filename*=utf-8");
response.setHeader(HttpHeaders.ACCEPT_RANGES, "bytes");
response.addHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(fileSize));
response.setCharacterEncoding("UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=\"" + encodeFileName + "\";filename*=utf-8");
response.addHeader("Content-Length", "" + fileSize);
response.addHeader("Content-Type", mediaType);
ByteBuffer buffer = ByteBuffer.allocateDirect(minioConfig.getDirectMemory() <= NumberConstants.ZERO ?
DEFAULT_BUFFER_SIZE : minioConfig.getDirectMemory());