diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java index 1008605..188584a 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java @@ -92,7 +92,9 @@ public class CommonService { */ public boolean checkSameFolder(String parentId, String newFolderName) { Long count = edFileInfoMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .eq(EdFileInfo::getParentId, parentId) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .eq(EdFileInfo::getFileName, newFolderName)); return count > 0; @@ -147,6 +149,9 @@ public class CommonService { // 验证名称是否合法 Assert.isTrue(EleCommonUtil.isFileNameValid(folderName), "文件名不符合规范,只能包含中文字符、下划线、连字符、加号、数字和英文字符且长度小于32。"); + // 检查名称是否存在 + Assert.isTrue(checkSameFolder(parentId, folderName), "该名称已存在"); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo::getId, EdFileInfo::getFilePath) .eq(EdFileInfo::getId, parentId); @@ -161,18 +166,12 @@ public class CommonService { } } - // 判断文件夹名称是否存在 List edFileInfos = edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo::getId, EdFileInfo::getFileName) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .eq(EdFileInfo::getParentId, parentId)); List names = edFileInfos.stream().map(EdFileInfo::getFileName).collect(Collectors.toList()); - if (names.contains(folderName)) { - String info = "该名称已存在"; - log.error(info); - return ElectromagneticResultUtil.fail("-1", info); - } - try { Date now = new Date(); String currentUserId = UserThreadLocal.getUserId(); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index aa0d5b2..7f29252 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -210,8 +210,20 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryWrapper = Wrappers.lambdaQuery() + .select(EdFileInfo::getFileName) + .eq(EdFileInfo::getParentId, parentId) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) + .eq(EdFileInfo::getFileName, updateFileInfoDTO.getFileName()) + .eq(EdFileInfo::getFileType, fileInfo.getFileType()) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code); + if (fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code)) { + queryWrapper.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code); + } else { + queryWrapper.eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code); + } long count = this.baseMapper.selectCount(Wrappers.lambdaQuery() .select(EdFileInfo::getFileName) .eq(EdFileInfo::getParentId, parentId)