diff --git a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java index 20386fe4..ba183e79 100644 --- a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java @@ -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 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 resolveUploadDirectory(UploadFilesReq req) { diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java index 3f7f4e1f..f4be41a1 100644 --- a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java @@ -1162,8 +1162,9 @@ public class SimulationRunServiceImpl extends ServiceImpl