fix:复制报告模板

This commit is contained in:
2026-01-12 20:32:53 +08:00
parent 9786df2b39
commit 6a309a980f
7 changed files with 63 additions and 1 deletions

View File

@@ -487,6 +487,12 @@ public class DataFileController implements IDataFeignClient {
return IDataFileService.downloadFileForEdit(fileId);
}
@GetMapping("/getMultipartFileByFileId")
@Operation(summary = "根据fileId获取MultipartFile文件", description = "根据fileId获取MultipartFile文件")
public SdmResponse<MultipartFile> getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId) {
return IDataFileService.getMultipartFileByFileId(fileId);
}
/**
* only office 回调
* @param callbackData

View File

@@ -357,6 +357,8 @@ public interface IDataFileService {
SdmResponse downloadFileForEdit(Long fileId);
SdmResponse<MultipartFile> getMultipartFileByFileId(Long fileId);
default SdmResponse<List<FileMetadataInfoResp>> queryFileListByIdList(QueryFileReq queryFileReq){return null;}
default SdmResponse<FileMetadataInfoResp> queryFileIdByNodeId(QueryFileIdReq queryFileIdReq){return null;};

View File

@@ -2995,6 +2995,30 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
return SdmResponse.failed("onlyoffice编辑文件失败");
}
@Override
public SdmResponse<MultipartFile> getMultipartFileByFileId(Long fileId) {
try {
FileMetadataInfo fileMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, fileId).one();
if (ObjectUtils.isEmpty(fileMetadataInfo)) {
return SdmResponse.failed("未查询到文件的元数据信息");
}
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);
} catch (Exception e) {
log.error("获取文件失败", e);
}
return SdmResponse.failed("获取文件失败");
}
public SdmResponse<List<FileMetadataInfoResp>> queryFileListByIdList(QueryFileReq queryFileReq) {
List<FileMetadataInfo> fileMetadataInfos = fileMetadataInfoService.lambdaQuery().in(FileMetadataInfo::getId, queryFileReq.getFileIdList()).list();
if (CollectionUtils.isEmpty(fileMetadataInfos)) {