fix:报告模板升版绑定的文件id不复用

This commit is contained in:
2026-04-16 13:52:51 +08:00
parent 3a5b4e0f7e
commit 2d9d0d1e38

View File

@@ -159,15 +159,36 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
upgradeTemplate.setCreator(creator);
upgradeTemplate.setTenantId(tenantId);
MultipartFile file = null;
if (templateDto.getFile() != null) {
UploadFilesReq req = new UploadFilesReq();
req.setFile(templateDto.getFile());
SdmResponse<Long> response = dataFeignClient.uploadReportTemplateFile(req);
// 升版选了新的报告模板
file = templateDto.getFile();
} else {
// 升版继承了上次的报告模板 需要重新下载再上传 不然删除一个版本会把相同fileId的级联删除
GetFileBaseInfoReq fileBaseInfoReq = new GetFileBaseInfoReq();
fileBaseInfoReq.setFileId(templateDto.getFileId());
SdmResponse<FileMetadataInfoResp> fileBaseInfoResp = dataFeignClient.getFileBaseInfo(fileBaseInfoReq);
if (!fileBaseInfoResp.isSuccess() || fileBaseInfoResp.getData() == null) {
return SdmResponse.failed("获取文件失败");
}
SdmResponse<byte[]> response = dataFeignClient.getMultipartFileByFileId(templateDto.getFileId());
if (!response.isSuccess()) {
return response;
}
upgradeTemplate.setFileId(response.getData());
file = new MockMultipartFile(
fileBaseInfoResp.getData().getOriginalName(),
fileBaseInfoResp.getData().getOriginalName(),
"application/octet-stream",
response.getData()
);
}
UploadFilesReq req = new UploadFilesReq();
req.setFile(file);
SdmResponse<Long> response = dataFeignClient.uploadReportTemplateFile(req);
if (!response.isSuccess()) {
return response;
}
upgradeTemplate.setFileId(response.getData());
this.save(upgradeTemplate);
return SdmResponse.success(upgradeTemplate.getUuid());
}
@@ -214,9 +235,9 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl<SimulationR
delFileReq.setDelFileId(reportTemplate.getFileId());
delFileReq.setImmediateDelete(true);
SdmResponse response = dataFeignClient.delFile(delFileReq);
if (!response.isSuccess()) {
return response;
}
// if (!response.isSuccess()) {
// return response;
// }
this.removeById(reportTemplate.getId());
}
return SdmResponse.success();