fix:复制报告模板

This commit is contained in:
2026-01-13 14:33:03 +08:00
parent 2315e0be10
commit fe32e2769a
9 changed files with 36 additions and 19 deletions

View File

@@ -87,7 +87,7 @@ public class ReportTemplateDto {
@Schema(description = "分页参数,一页几条")
private int size;
@Schema(description = "是否复制模板")
private boolean isCopied;
@Schema(description = "是否复制模板 Y/N")
private String copyFlag;
}

View File

@@ -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<SimulationR
reportTemplate.setTenantId(ThreadLocalContext.getTenantId());
// 复制模板的话 先根据fileId查到模板 再重新上传
MultipartFile file = null;
if (templateDto.isCopied()) {
SdmResponse<MultipartFile> response = dataFeignClient.getMultipartFileByFileId(templateDto.getFileId());
if (CommonConstants.GENERAL_Y.equals(templateDto.getCopyFlag())) {
GetFileBaseInfoReq getFileBaseInfoReq = new GetFileBaseInfoReq();
getFileBaseInfoReq.setFileId(templateDto.getFileId());
SdmResponse<FileMetadataInfoResp> fileBaseInfoResp = dataFeignClient.getFileBaseInfo(getFileBaseInfoReq);
if (!fileBaseInfoResp.isSuccess() || fileBaseInfoResp.getData() == null) {
return SdmResponse.failed("获取文件失败");
}
SdmResponse<byte[]> 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();
}