Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -1954,6 +1954,7 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void editReportAndDownload(EditReportReq req, HttpServletResponse response) {
|
public void editReportAndDownload(EditReportReq req, HttpServletResponse response) {
|
||||||
|
Long userId = ThreadLocalContext.getUserId();
|
||||||
log.info("编辑报告参数为:{}", req);
|
log.info("编辑报告参数为:{}", req);
|
||||||
String reportContent = req.getReportContent();
|
String reportContent = req.getReportContent();
|
||||||
if (StringUtils.isNotEmpty(req.getTaskId())) {
|
if (StringUtils.isNotEmpty(req.getTaskId())) {
|
||||||
@@ -1963,6 +1964,9 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
|||||||
simulationTask.setReportTemplate(req.getReportTemplate());
|
simulationTask.setReportTemplate(req.getReportTemplate());
|
||||||
simulationTask.setReportContent(reportContent);
|
simulationTask.setReportContent(reportContent);
|
||||||
simulationTaskService.updateById(simulationTask);
|
simulationTaskService.updateById(simulationTask);
|
||||||
|
|
||||||
|
// 读取前端传入的指标表格数据,实现更新/替换/新增
|
||||||
|
archivePerformances(reportContent, simulationTask.getUuid(), null, userId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SimulationRun simulationRun = this.lambdaQuery().eq(SimulationRun::getUuid, req.getRunId()).one();
|
SimulationRun simulationRun = this.lambdaQuery().eq(SimulationRun::getUuid, req.getRunId()).one();
|
||||||
@@ -1971,6 +1975,9 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
|||||||
simulationRun.setReportTemplate(req.getReportTemplate());
|
simulationRun.setReportTemplate(req.getReportTemplate());
|
||||||
simulationRun.setReportContent(reportContent);
|
simulationRun.setReportContent(reportContent);
|
||||||
this.updateById(simulationRun);
|
this.updateById(simulationRun);
|
||||||
|
|
||||||
|
// 读取前端传入的指标表格数据,实现更新/替换/新增
|
||||||
|
archivePerformances(reportContent, simulationRun.getTaskId(), simulationRun.getUuid(), userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2045,6 +2052,18 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
|||||||
byte[] fileData = null;
|
byte[] fileData = null;
|
||||||
if (response != null) {
|
if (response != null) {
|
||||||
try {
|
try {
|
||||||
|
// 读取脚本生成的报告并归档
|
||||||
|
archiveReportAndImage(req.getTaskId(), req.getRunId(), randomId, FileBizTypeEnum.REPORT_FILE, null, null);
|
||||||
|
|
||||||
|
// 读取脚本生成的图片并按顺序归档
|
||||||
|
List<String> imageNames = extractPicNames(reportContent);
|
||||||
|
if (CollectionUtils.isNotEmpty(imageNames)) {
|
||||||
|
int sortOrder = 1;
|
||||||
|
for (String imageName : imageNames) {
|
||||||
|
archiveReportAndImage(req.getTaskId(), req.getRunId(), randomId, FileBizTypeEnum.CLOUD_FILE, imageName, String.valueOf(sortOrder++));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 获取临时路径中脚本生成的报告
|
// 获取临时路径中脚本生成的报告
|
||||||
String reportName = "report_" +
|
String reportName = "report_" +
|
||||||
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) +
|
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) +
|
||||||
@@ -2052,44 +2071,6 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
|||||||
FileInputStream fileInputStream = new FileInputStream(TEMP_REPORT_PATH + randomId + File.separator + reportName);
|
FileInputStream fileInputStream = new FileInputStream(TEMP_REPORT_PATH + randomId + File.separator + reportName);
|
||||||
fileData = fileInputStream.readAllBytes();
|
fileData = fileInputStream.readAllBytes();
|
||||||
|
|
||||||
// 创建临时MultipartFile
|
|
||||||
MockMultipartFile multipartFile = new MockMultipartFile(
|
|
||||||
reportName,
|
|
||||||
reportName,
|
|
||||||
"application/octet-stream",
|
|
||||||
fileData);
|
|
||||||
if (StringUtils.isNotEmpty(req.getTaskId())) {
|
|
||||||
// 上传到任务下的交付物文件夹的报告文件夹下
|
|
||||||
Long parentId = getParentDirId(req.getTaskId(), FileBizTypeEnum.REPORT_FILE.getDirName());
|
|
||||||
UploadFilesReq filesReq = new UploadFilesReq();
|
|
||||||
filesReq.setFile(multipartFile);
|
|
||||||
filesReq.setFileName(reportName);
|
|
||||||
filesReq.setFileType(FileBizTypeEnum.REPORT_FILE.getValue());
|
|
||||||
filesReq.setUuid(null);
|
|
||||||
filesReq.setDirId(parentId);
|
|
||||||
filesReq.setFileTypeDictClass(FileDictTagEnum.FILE_TYPE.getDictClass());
|
|
||||||
filesReq.setFileTypeDictValue(String.valueOf(FileBizTypeEnum.REPORT_FILE.getValue()));
|
|
||||||
filesReq.setDictTags(Arrays.asList(FileDictTagEnum.FILE_TYPE.getDictClassFieldName(), FileDictTagEnum.FILE_TYPE.getDictValueFieldName()));
|
|
||||||
SdmResponse sdmResponse = uploadKeyResultFiles(filesReq);
|
|
||||||
if (!sdmResponse.isSuccess()) {
|
|
||||||
throw new RuntimeException("生成自动化报告上传任务报告结果目录失败");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 上传到算例下的报告文件夹下
|
|
||||||
KeyResultReq resultReq = new KeyResultReq();
|
|
||||||
resultReq.setKeyResultType(KeyResultTypeEnum.DOCUMENT.getKeyResultType());
|
|
||||||
resultReq.setRunId(req.getRunId());
|
|
||||||
resultReq.setName(reportName);
|
|
||||||
|
|
||||||
resultReq.setFile(multipartFile);
|
|
||||||
resultReq.setFileName(reportName);
|
|
||||||
resultReq.setFileType(FileBizTypeEnum.REPORT_FILE.getValue());
|
|
||||||
SdmResponse sdmResponse = addSimulationKeyResult(resultReq);
|
|
||||||
if (!sdmResponse.isSuccess()) {
|
|
||||||
throw new RuntimeException("生成自动化报告上传算例报告结果目录失败");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 下载到本地
|
// 下载到本地
|
||||||
// 设置响应头
|
// 设置响应头
|
||||||
response.reset();
|
response.reset();
|
||||||
@@ -2107,8 +2088,8 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 删除临时路径
|
// 删除临时路径
|
||||||
log.info("删除临时路径:{},中。。。。。。", randomId);
|
// log.info("删除临时路径:{},中。。。。。。", randomId);
|
||||||
deleteFolder(new File(TEMP_REPORT_PATH + randomId));
|
// deleteFolder(new File(TEMP_REPORT_PATH + randomId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user