fix:编辑试验结果先删除附件再上传

This commit is contained in:
2026-01-19 15:23:41 +08:00
parent 0a727adaff
commit c48a740d17

View File

@@ -1767,6 +1767,7 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
// 传了新的图片文件
if (ObjectUtils.isNotEmpty(req.getAddImageInfo())) {
req.getAddFileInfoList().add(req.getAddImageInfo());
deleteFileIds.add(experimentResult.getImageId());
}
if (CollectionUtils.size(req.getAddFileInfoList()) > 0 || CollectionUtils.size(req.getDeleteFileIds()) > 0 || ObjectUtils.isNotEmpty(req.getDeleteImageId())) {
SdmResponse<List<BatchAddFileInfoResp>> batchAddResponse = SdmResponse.success();
@@ -1783,6 +1784,23 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
oldFileIds.removeIf(deleteSet::contains);
deleteFileIds.addAll(req.getDeleteFileIds());
}
// 如果只删除试验截图 没有上传新的截图
if (ObjectUtils.isNotEmpty(req.getDeleteImageId())) {
experimentResult.setImageId(null);
deleteFileIds.add(req.getDeleteImageId());
}
// 删除文件
if (CollectionUtils.isNotEmpty(deleteFileIds)) {
for (Long deleteFileId : deleteFileIds) {
DelFileReq delFileReq = new DelFileReq();
delFileReq.setDelFileId(deleteFileId);
SdmResponse response = dataFeignClient.delFile(delFileReq);
if (!response.isSuccess()) {
return response;
}
}
}
// 再处理新增的文件
if (CollectionUtils.size(req.getAddFileInfoList()) > 0) {
UploadFilesReq filesReq = new UploadFilesReq();
@@ -1798,7 +1816,6 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
// 传了新的图片文件 默认删除以前的
if (ObjectUtils.isNotEmpty(req.getAddImageInfo())) {
batchAddFileInfoResps.stream().filter(i -> StringUtils.equals(i.getSourceFileName(), req.getAddImageInfo().getFileName())).findFirst().ifPresent(i -> {
deleteFileIds.add(experimentResult.getImageId());
experimentResult.setImageId(i.getBusinessId());
});
}
@@ -1807,26 +1824,11 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
// 加上新增的附件文件
oldFileIds.addAll(addFileIds);
}
// 如果只删除试验截图 没有上传新的截图
if (ObjectUtils.isNotEmpty(req.getDeleteImageId())) {
experimentResult.setImageId(null);
deleteFileIds.add(req.getDeleteImageId());
}
String fileIds = oldFileIds.stream().map(String::valueOf).collect(Collectors.joining(","));
experimentResult.setFileId(fileIds);
simulationExpResultService.updateById(experimentResult);
// 删除文件
if (CollectionUtils.isNotEmpty(deleteFileIds)) {
for (Long deleteFileId : deleteFileIds) {
DelFileReq delFileReq = new DelFileReq();
delFileReq.setDelFileId(deleteFileId);
SdmResponse response = dataFeignClient.delFile(delFileReq);
if (!response.isSuccess()) {
return response;
}
}
}
return batchAddResponse;
}
simulationExpResultService.updateById(experimentResult);