fix:编辑试验结果先删除附件再上传
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user