fix:复制报告模板
This commit is contained in:
@@ -87,7 +87,7 @@ public class ReportTemplateDto {
|
||||
@Schema(description = "分页参数,一页几条")
|
||||
private int size;
|
||||
|
||||
@Schema(description = "是否复制模板")
|
||||
private boolean isCopied;
|
||||
@Schema(description = "是否复制模板 Y/N")
|
||||
private String copyFlag;
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
}
|
||||
|
||||
@@ -247,8 +247,8 @@ public class DataClientFeignClientImpl implements IDataFeignClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse<MultipartFile> getMultipartFileByFileId(Long fileId) {
|
||||
SdmResponse<MultipartFile> response;
|
||||
public SdmResponse<byte[]> getMultipartFileByFileId(Long fileId) {
|
||||
SdmResponse<byte[]> response;
|
||||
try {
|
||||
response = dataClient.getMultipartFileByFileId(fileId);
|
||||
return response;
|
||||
|
||||
@@ -95,6 +95,6 @@ public interface IDataFeignClient {
|
||||
SdmResponse<Long> updateReportTemplateFile(UpdateScriptAndReportReq req);
|
||||
|
||||
@GetMapping("/data/getMultipartFileByFileId")
|
||||
SdmResponse<MultipartFile> getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId);
|
||||
SdmResponse<byte[]> getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId);
|
||||
|
||||
}
|
||||
|
||||
@@ -489,7 +489,7 @@ public class DataFileController implements IDataFeignClient {
|
||||
|
||||
@GetMapping("/getMultipartFileByFileId")
|
||||
@Operation(summary = "根据fileId获取MultipartFile文件", description = "根据fileId获取MultipartFile文件")
|
||||
public SdmResponse<MultipartFile> getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId) {
|
||||
public SdmResponse<byte[]> getMultipartFileByFileId(@RequestParam(value = "fileId") @Validated Long fileId) {
|
||||
return IDataFileService.getMultipartFileByFileId(fileId);
|
||||
}
|
||||
|
||||
|
||||
@@ -357,7 +357,7 @@ public interface IDataFileService {
|
||||
|
||||
SdmResponse downloadFileForEdit(Long fileId);
|
||||
|
||||
SdmResponse<MultipartFile> getMultipartFileByFileId(Long fileId);
|
||||
SdmResponse<byte[]> getMultipartFileByFileId(Long fileId);
|
||||
|
||||
default SdmResponse<List<FileMetadataInfoResp>> queryFileListByIdList(QueryFileReq queryFileReq){return null;}
|
||||
|
||||
|
||||
@@ -2996,7 +2996,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse<MultipartFile> getMultipartFileByFileId(Long fileId) {
|
||||
public SdmResponse<byte[]> 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);
|
||||
}
|
||||
|
||||
@@ -1620,5 +1620,10 @@ public class SystemFileIDataFileServiceImpl implements IDataFileService {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse<byte[]> getMultipartFileByFileId(Long fileId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user