From fe32e2769a1afe0854cbde4de96e0e8eac675b1c Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Tue, 13 Jan 2026 14:33:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A4=8D=E5=88=B6=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/dto/ReportTemplateDto.java | 4 ++-- .../SimulationReportTemplateServiceImpl.java | 21 ++++++++++++++++--- .../entity/constants/CommonConstants.java | 4 ++++ .../impl/data/DataClientFeignClientImpl.java | 4 ++-- .../feign/inter/data/IDataFeignClient.java | 2 +- .../data/controller/DataFileController.java | 2 +- .../sdm/data/service/IDataFileService.java | 2 +- .../impl/MinioFileIDataFileServiceImpl.java | 11 ++-------- .../impl/SystemFileIDataFileServiceImpl.java | 5 +++++ 9 files changed, 36 insertions(+), 19 deletions(-) diff --git a/capability/src/main/java/com/sdm/capability/model/dto/ReportTemplateDto.java b/capability/src/main/java/com/sdm/capability/model/dto/ReportTemplateDto.java index 55a384ab..ad317581 100644 --- a/capability/src/main/java/com/sdm/capability/model/dto/ReportTemplateDto.java +++ b/capability/src/main/java/com/sdm/capability/model/dto/ReportTemplateDto.java @@ -87,7 +87,7 @@ public class ReportTemplateDto { @Schema(description = "分页参数,一页几条") private int size; - @Schema(description = "是否复制模板") - private boolean isCopied; + @Schema(description = "是否复制模板 Y/N") + private String copyFlag; } diff --git a/capability/src/main/java/com/sdm/capability/service/impl/SimulationReportTemplateServiceImpl.java b/capability/src/main/java/com/sdm/capability/service/impl/SimulationReportTemplateServiceImpl.java index 13e8522f..acf7f9f1 100644 --- a/capability/src/main/java/com/sdm/capability/service/impl/SimulationReportTemplateServiceImpl.java +++ b/capability/src/main/java/com/sdm/capability/service/impl/SimulationReportTemplateServiceImpl.java @@ -12,19 +12,23 @@ import com.sdm.capability.service.ISimulationReportTemplateService; import com.sdm.common.common.SdmResponse; import com.sdm.common.common.ThreadLocalContext; import com.sdm.common.entity.bo.DataPageInfo; +import com.sdm.common.entity.constants.CommonConstants; import com.sdm.common.entity.constants.NumberConstants; import com.sdm.common.entity.enums.ApproveStatusEnum; import com.sdm.common.entity.enums.ApproveTypeEnum; import com.sdm.common.entity.req.data.DelFileReq; +import com.sdm.common.entity.req.data.GetFileBaseInfoReq; import com.sdm.common.entity.req.data.UpdateScriptAndReportReq; import com.sdm.common.entity.req.data.UploadFilesReq; import com.sdm.common.entity.req.system.LaunchApproveReq; +import com.sdm.common.entity.resp.data.FileMetadataInfoResp; import com.sdm.common.feign.impl.data.DataClientFeignClientImpl; import com.sdm.common.feign.impl.system.ApproveFeignClientImpl; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; @@ -54,12 +58,23 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl response = dataFeignClient.getMultipartFileByFileId(templateDto.getFileId()); + if (CommonConstants.GENERAL_Y.equals(templateDto.getCopyFlag())) { + GetFileBaseInfoReq getFileBaseInfoReq = new GetFileBaseInfoReq(); + getFileBaseInfoReq.setFileId(templateDto.getFileId()); + SdmResponse fileBaseInfoResp = dataFeignClient.getFileBaseInfo(getFileBaseInfoReq); + if (!fileBaseInfoResp.isSuccess() || fileBaseInfoResp.getData() == null) { + return SdmResponse.failed("获取文件失败"); + } + SdmResponse response = dataFeignClient.getMultipartFileByFileId(templateDto.getFileId()); if (!response.isSuccess()) { return response; } - file = response.getData(); + file = new MockMultipartFile( + fileBaseInfoResp.getData().getOriginalName(), + fileBaseInfoResp.getData().getOriginalName(), + "application/octet-stream", + response.getData() + ); } else { file = templateDto.getFile(); } diff --git a/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java b/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java index 3790d92a..bba1f54a 100644 --- a/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java +++ b/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java @@ -10,4 +10,8 @@ public class CommonConstants { */ public static final String ROLE_CODE_GENERAL = "GENERAL_USER"; + public static final String GENERAL_Y = "Y"; + + public static final String GENERAL_N = "N"; + } diff --git a/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java index 75231dec..5ca9e3d7 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java @@ -247,8 +247,8 @@ public class DataClientFeignClientImpl implements IDataFeignClient { } @Override - public SdmResponse getMultipartFileByFileId(Long fileId) { - SdmResponse response; + public SdmResponse getMultipartFileByFileId(Long fileId) { + SdmResponse response; try { response = dataClient.getMultipartFileByFileId(fileId); return response; diff --git a/common/src/main/java/com/sdm/common/feign/inter/data/IDataFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/data/IDataFeignClient.java index e60b9e43..387f1291 100644 --- a/common/src/main/java/com/sdm/common/feign/inter/data/IDataFeignClient.java +++ b/common/src/main/java/com/sdm/common/feign/inter/data/IDataFeignClient.java @@ -95,6 +95,6 @@ public interface IDataFeignClient { SdmResponse updateReportTemplateFile(UpdateScriptAndReportReq req); @GetMapping("/data/getMultipartFileByFileId") - SdmResponse getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId); + SdmResponse getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId); } diff --git a/data/src/main/java/com/sdm/data/controller/DataFileController.java b/data/src/main/java/com/sdm/data/controller/DataFileController.java index 6a8ed74b..c9f8d2a9 100644 --- a/data/src/main/java/com/sdm/data/controller/DataFileController.java +++ b/data/src/main/java/com/sdm/data/controller/DataFileController.java @@ -489,7 +489,7 @@ public class DataFileController implements IDataFeignClient { @GetMapping("/getMultipartFileByFileId") @Operation(summary = "根据fileId获取MultipartFile文件", description = "根据fileId获取MultipartFile文件") - public SdmResponse getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId) { + public SdmResponse getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId) { return IDataFileService.getMultipartFileByFileId(fileId); } diff --git a/data/src/main/java/com/sdm/data/service/IDataFileService.java b/data/src/main/java/com/sdm/data/service/IDataFileService.java index e1515bc2..85fc2c0e 100644 --- a/data/src/main/java/com/sdm/data/service/IDataFileService.java +++ b/data/src/main/java/com/sdm/data/service/IDataFileService.java @@ -357,7 +357,7 @@ public interface IDataFileService { SdmResponse downloadFileForEdit(Long fileId); - SdmResponse getMultipartFileByFileId(Long fileId); + SdmResponse getMultipartFileByFileId(Long fileId); default SdmResponse> queryFileListByIdList(QueryFileReq queryFileReq){return null;} diff --git a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java index 7b24e0d2..92ee50fa 100644 --- a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java @@ -2996,7 +2996,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { } @Override - public SdmResponse getMultipartFileByFileId(Long fileId) { + public SdmResponse getMultipartFileByFileId(Long fileId) { try { FileMetadataInfo fileMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, fileId).one(); if (ObjectUtils.isEmpty(fileMetadataInfo)) { @@ -3005,14 +3005,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { String fileObjectKey = fileMetadataInfo.getObjectKey(); // 从MinIO下载文件 byte[] fileData = minioService.downloadFile(fileObjectKey,fileMetadataInfo.getBucketName()); - String contentType = getContentTypeByFileName(fileMetadataInfo.getOriginalName()); - MultipartFile multipartFile = new MockMultipartFile( - fileMetadataInfo.getOriginalName(), - fileMetadataInfo.getOriginalName(), - contentType, - fileData - ); - return SdmResponse.success(multipartFile); + return SdmResponse.success(fileData); } catch (Exception e) { log.error("获取文件失败", e); } diff --git a/data/src/main/java/com/sdm/data/service/impl/SystemFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/SystemFileIDataFileServiceImpl.java index d8521766..3f9b54a9 100644 --- a/data/src/main/java/com/sdm/data/service/impl/SystemFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/SystemFileIDataFileServiceImpl.java @@ -1620,5 +1620,10 @@ public class SystemFileIDataFileServiceImpl implements IDataFileService { return null; } + @Override + public SdmResponse getMultipartFileByFileId(Long fileId) { + return null; + } + }