fix:分片上传同名文件覆盖&编辑报告名称为工况+时间戳

This commit is contained in:
2026-03-20 17:49:56 +08:00
parent dbfa6814bd
commit 87016e95e9
2 changed files with 22 additions and 9 deletions

View File

@@ -2315,7 +2315,15 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
SdmResponse<?> existsResponse = ensureFileNotExists(fileMinioObjectKey);
if (!existsResponse.isSuccess()) {
return SdmResponse.failed(existsResponse.getMessage());
if (!req.getIsConverSameNameFile()) {
return SdmResponse.failed(existsResponse.getMessage());
} else {
// 同名文件覆盖 更新一下时间
FileMetadataInfo fileMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getObjectKey, fileMinioObjectKey).one();
fileMetadataInfo.setUpdateTime(LocalDateTime.now());
fileMetadataInfoService.updateById(fileMetadataInfo);
return buildBatchUploadSuccess(originalName, fileMetadataInfo.getId(), uploadFileId, req.getUploadTaskId(), fileMinioObjectKey);
}
}
try {
@@ -2343,19 +2351,23 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
bindSimulationPool(req, fileInfo);
createFilePermission(fileInfo.getId());
BatchAddFileInfoResp addFileInfoResp = new BatchAddFileInfoResp();
addFileInfoResp.setSourceFileName(originalName);
addFileInfoResp.setBusinessId(fileInfo.getId());
addFileInfoResp.setUploadFileId(uploadFileId);
addFileInfoResp.setUploadTaskId(req.getUploadTaskId());
addFileInfoResp.setObjectKey(fileMinioObjectKey);
return SdmResponse.success(addFileInfoResp);
return buildBatchUploadSuccess(originalName, fileInfo.getId(), uploadFileId, req.getUploadTaskId(), fileMinioObjectKey);
} catch (Exception e) {
log.error("上传文件失败", e);
throw new RuntimeException("上传文件失败: " + e.getMessage(), e);
}
}
private SdmResponse<BatchAddFileInfoResp> buildBatchUploadSuccess(String originalName, Long fileId, String uploadFileId, String uploadTaskId, String fileMinioObjectKey) {
BatchAddFileInfoResp addFileInfoResp = new BatchAddFileInfoResp();
addFileInfoResp.setSourceFileName(originalName);
addFileInfoResp.setBusinessId(fileId);
addFileInfoResp.setUploadFileId(uploadFileId);
addFileInfoResp.setUploadTaskId(uploadTaskId);
addFileInfoResp.setObjectKey(fileMinioObjectKey);
return SdmResponse.success(addFileInfoResp);
}
private SdmResponse<FileMetadataInfo> resolveUploadDirectory(UploadFilesReq req) {

View File

@@ -1162,8 +1162,9 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
}
String originalFileName = Objects.requireNonNull(file.getOriginalFilename()).replaceAll("\\s", "");
// 生成唯一的文件名
String fileName = RandomUtil.generateString(16) + "_" + file.getOriginalFilename();
String fileName = RandomUtil.generateString(16) + "_" + originalFileName;
Path filePath = uploadPath.resolve(fileName);
// 保存文件
Files.copy(file.getInputStream(), filePath, StandardCopyOption.REPLACE_EXISTING);