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 e1573c48..d0dfe148 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 @@ -159,15 +159,36 @@ public class SimulationReportTemplateServiceImpl extends ServiceImpl response = dataFeignClient.uploadReportTemplateFile(req); + // 升版选了新的报告模板 + file = templateDto.getFile(); + } else { + // 升版继承了上次的报告模板 需要重新下载再上传 不然删除一个版本会把相同fileId的级联删除 + GetFileBaseInfoReq fileBaseInfoReq = new GetFileBaseInfoReq(); + fileBaseInfoReq.setFileId(templateDto.getFileId()); + SdmResponse fileBaseInfoResp = dataFeignClient.getFileBaseInfo(fileBaseInfoReq); + if (!fileBaseInfoResp.isSuccess() || fileBaseInfoResp.getData() == null) { + return SdmResponse.failed("获取文件失败"); + } + SdmResponse 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 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