From 27d1bf71705f24342bb17d8dff6ab51aba235693 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Thu, 26 Dec 2024 17:36:59 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 16 ++-- .../serviceimpl/EdFileInfoServiceImpl.java | 86 +++++++++++-------- .../service/serviceimpl/EdPrjServiceImpl.java | 2 +- 3 files changed, 60 insertions(+), 44 deletions(-) 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 e322ea9..4fb002f 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 @@ -112,18 +112,22 @@ public class CommonService { return getDbPath(paths); } - public String getDbPath(List ids) { - + private String getDbPath(List ids) { // TODO cache - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo::getId, EdFileInfo::getFileName) + .select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getDataType, EdFileInfo::getFileType, EdFileInfo::getFileCode) .in(EdFileInfo::getId, ids); List edFileInfos = edFileInfoMapper.selectList(queryWrapper); - Map map = edFileInfos.stream().collect(Collectors.toMap(EdFileInfo::getId, EdFileInfo::getFileName)); + Map map = edFileInfos.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); StringBuilder path = new StringBuilder(); for (String id : ids) { - String tmp = map.get(id) + File.separator; + EdFileInfo fileInfo = map.get(id); + String tmp; + if (fileInfo.getDataType().equals(EleDataTypeEnum.FILE.code)) { + tmp = fileInfo.getFileName() + "." + fileInfo.getFileType() + "." + fileInfo.getFileCode(); + } else { + tmp = fileInfo.getFileName() + File.separator; + } path.append(tmp); } return path.toString(); 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 ff238f8..bfc91cb 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 @@ -151,7 +151,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl delete(String id) { EdFileInfo fileInfo = this.baseMapper.selectById(id); String parentId = fileInfo.getParentId(); - if (fileInfo.getDataType() == 0) { + if (fileInfo.getDataType() == EleDataTypeEnum.FOLDER.code) { return commonService.deleteFolder(id, parentId); } @@ -171,7 +171,7 @@ public class EdFileInfoServiceImpl extends ServiceImpllambdaQuery().eq(EdFileInfo::getId, id)); - String fileSysPath = commonService.getFileSysPath(fileInfo.getFilePath()) + "." + fileInfo.getFileCode(); + String fileSysPath = commonService.getFileSysPath(fileInfo.getFilePath()); Assert.isTrue(FileUtil.exist(fileSysPath), "下载文件不存在。"); FileSystemResource fileSystemResource = new FileSystemResource(fileSysPath); HttpHeaders headers = new HttpHeaders(); @@ -207,7 +207,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl folders = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FOLDER.code)).collect(Collectors.toList()); List files = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).collect(Collectors.toList()); for (EdFileInfo edFileInfo : folders) { - String destFolderPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getFileSysPath(edFileInfo.getFileId()); + String destFolderPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getFileSysPath(edFileInfo.getFileId()); // file fileSystemService.createDirectory(destFolderPath); } for (EdFileInfo edFileInfo : files) { - String filePath = commonService.getFileSysPath(edFileInfo.getFileId()) + edFileInfo.getFileCode() + "." + edFileInfo.getFileCode(); + String filePath = commonService.getFileSysPath(edFileInfo.getFileId()); // file String destPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFileId()); fileSystemService.copyFile(filePath, destPath); } @@ -597,7 +597,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl handMoveConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo, boolean deleteSrc) { + + // 禁止同目录下移动和复制 + if (srcFileInfo.getParentId().equals(destFolderInfo.getId())) { + String info = "禁止相同文件夹下移动文件"; + log.info(info); + return ElectromagneticResultUtil.fail("-1", info); + } + if (strategy == 2) { // 做版本更新 List sameFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) @@ -646,15 +654,21 @@ public class EdFileInfoServiceImpl extends ServiceImpl moveFile(String id, String targetFolderId, Integer strategy, boolean deleteSrc) { + public ElectromagneticResult moveFile(String id, String targetFolderId, Integer strategy, boolean deleteSrc) { // 获取原文件mysql模型 EdFileInfo srcFileInfo = this.baseMapper.selectById(id); + String srcFileDbPath = srcFileInfo.getFilePath(); + String fileCode = srcFileInfo.getFileCode(); // 判断目标路径下是否有同名文件,如果所有的同名文件:1)如果所有文件都已经被作废,则该文件为新文件,版本号从100开始。2)如果有没有被作废的文件,则冲突处理方式按---1-跳过冲突文件 2-做版本更新 3-重命名,文件名加"_1" - List destFolderFiles = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).eq(EdFileInfo::getParentId, targetFolderId)); - EdFileInfo destFolderInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class).eq(EdFileInfo::getId, targetFolderId)); - List effectFileInfos = destFolderFiles.stream().filter(e -> Objects.equals(e.getEffectFlag(), EffectFlagEnum.EFFECT.code)).collect(Collectors.toList()); - if (CollUtil.isEmpty(effectFileInfos) || CollUtil.isEmpty(destFolderFiles)) { + List effectFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getParentId, targetFolderId) + .eq(EdFileInfo::getFileName, srcFileInfo.getFileName()) + .eq(EdFileInfo::getFileType, srcFileInfo.getFileType()) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); + EdFileInfo destFolderInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getId, targetFolderId)); +// List effectFileInfos = destFolderFiles.stream().filter(e -> Objects.equals(e.getEffectFlag(), EffectFlagEnum.EFFECT.code)).collect(Collectors.toList()); + if (CollUtil.isEmpty(effectFileInfos)) { // 没有同名文件 // 首先将信息保存到MySQL - EdFileInfo destSaveFileInfo = BeanUtil.copyProperties(srcFileInfo, EdFileInfo.class); - destSaveFileInfo.newInit(); String fileTime = EleCommonUtil.getNowTimeStr(); - String newFileCode = commonService.createFileCode(targetFolderId, srcFileInfo.getFileType(), FILE_START_VERSION, fileTime); - destSaveFileInfo.setParentId(targetFolderId) + String codePathByDbPath = commonService.getCodePathByDbPath(destFolderInfo.getFilePath()); + String newFileCode = commonService.createFileCode(codePathByDbPath, srcFileInfo.getFileType(), FILE_START_VERSION, fileTime); + srcFileInfo.setParentId(targetFolderId) .setFileVersion(FILE_START_VERSION) .setFileTime(fileTime) - .setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + destSaveFileInfo.getId()) + .setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + srcFileInfo.getId()) .setFileCode(newFileCode); - this.baseMapper.insert(destSaveFileInfo); + this.baseMapper.updateById(srcFileInfo); // 文件系统移动文件 - String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFileId()) + File.separator + srcFileInfo.getFileCode(); - String destFilePath = commonService.getFileSysPath(destFolderInfo.getFileId()) + File.separator + destFolderInfo.getFileCode(); + String srcFilePath = commonService.getFileSysPath(srcFileDbPath); + String destFilePath = commonService.getFileSysPath(destFolderInfo.getFilePath()); fileSystemService.moveFile(srcFilePath, destFilePath, deleteSrc); } else { - handMoveConflict(targetFolderId, strategy, srcFileInfo, destFolderInfo, deleteSrc); + return handMoveConflict(targetFolderId, strategy, srcFileInfo, destFolderInfo, deleteSrc); } - // 将以前的版本effect全部置为false,删除原目录下的同名文件 - if (deleteSrc) { - this.baseMapper.update(null, Wrappers.lambdaUpdate(EdFileInfo.class) - .set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code) - .eq(EdFileInfo::getParentId, srcFileInfo.getParentId()) - .eq(EdFileInfo::getFileName, srcFileInfo.getFileName()) - .eq(EdFileInfo::getFileType, srcFileInfo.getFileType())); - } - return null; + return ElectromagneticResultUtil.success(true); } /** @@ -770,7 +783,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl .setCreatedBy(currentUserId) .setUpdatedBy(currentUserId); this.save(targetFile); - String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath()) + File.separator + sourceFileName; + String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath()); fileSystemService.createDirectory(targetSysFilePath); targetEdFileInfos = commonService.selectAllAdminFolder(targetId); } From d7a818bb3ab3d013228d92a21b48daa4a3787f9e Mon Sep 17 00:00:00 2001 From: chenxudong Date: Thu, 26 Dec 2024 17:58:42 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/EdFileInfoServiceImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 bfc91cb..f64e125 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 @@ -656,7 +656,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl e.getEffectFlag().equals(EffectFlagEnum.EFFECT.code)).findFirst().orElseThrow(RuntimeException::new); EdFileInfo destSaveFileInfo = BeanUtil.copyProperties(fileInfoTmp, EdFileInfo.class); destSaveFileInfo.setId(newFileDbId); destSaveFileInfo.setFileVersion(maxFileVersion + 1) @@ -669,6 +669,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl effectFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getParentId, targetFolderId) .eq(EdFileInfo::getFileName, srcFileInfo.getFileName()) .eq(EdFileInfo::getFileType, srcFileInfo.getFileType()) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); EdFileInfo destFolderInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getId, targetFolderId)); -// List effectFileInfos = destFolderFiles.stream().filter(e -> Objects.equals(e.getEffectFlag(), EffectFlagEnum.EFFECT.code)).collect(Collectors.toList()); - if (CollUtil.isEmpty(effectFileInfos)) { + if (count == 0) { // 没有同名文件 // 首先将信息保存到MySQL String fileTime = EleCommonUtil.getNowTimeStr(); From 28b6c4f772a1e09f84ee232b2c8b63aff0566101 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 27 Dec 2024 09:02:39 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=B0=83=E9=80=9A=E4=BA=86=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=A7=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/service/serviceimpl/EdFileInfoServiceImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 f64e125..03c6548 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 @@ -677,16 +677,19 @@ public class EdFileInfoServiceImpl extends ServiceImpl Date: Fri, 27 Dec 2024 09:57:10 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=B0=83=E9=80=9A=E4=BA=86=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=8D=E5=88=B6=E5=92=8C=E7=A7=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/service/FileSystemService.java | 2 +- .../serviceimpl/EdFileInfoServiceImpl.java | 125 +++++++++++++++--- .../serviceimpl/FileSystemServiceImpl.java | 10 +- 3 files changed, 107 insertions(+), 30 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileSystemService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileSystemService.java index f92c639..268ddb6 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileSystemService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileSystemService.java @@ -8,7 +8,7 @@ public interface FileSystemService { void copyFile(String source, String destination); - void moveFile(String source, String destination, boolean deleteSource); + void moveFile(String source, String destination); void save(InputStream inputStream, String destination); 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 03c6548..c1c5ccf 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 @@ -458,7 +458,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl moveFile(String id, String targetFolderId, Integer strategy) { - return moveFile(id, targetFolderId, strategy, true); + + // 获取原文件mysql模型 + EdFileInfo srcFileInfo = this.baseMapper.selectById(id); + String srcFileDbPath = srcFileInfo.getFilePath(); + String fileCode = srcFileInfo.getFileCode(); + // 判断目标路径下是否有同名文件,如果所有的同名文件:1)如果所有文件都已经被作废,则该文件为新文件,版本号从100开始。2)如果有没有被作废的文件,则冲突处理方式按---1-跳过冲突文件 2-做版本更新 3-重命名,文件名加"_1" + long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getParentId, targetFolderId) + .eq(EdFileInfo::getFileName, srcFileInfo.getFileName()) + .eq(EdFileInfo::getFileType, srcFileInfo.getFileType()) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); + EdFileInfo destFolderInfo = this.baseMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getId, targetFolderId)); + if (count == 0) { + // 没有同名文件 + // 首先将信息保存到MySQL + String fileTime = EleCommonUtil.getNowTimeStr(); + String codePathByDbPath = commonService.getCodePathByDbPath(destFolderInfo.getFilePath()); + String newFileCode = commonService.createFileCode(codePathByDbPath, srcFileInfo.getFileType(), FILE_START_VERSION, fileTime); + srcFileInfo.setParentId(targetFolderId) + .setFileVersion(FILE_START_VERSION) + .setFileTime(fileTime) + .setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + srcFileInfo.getId()) + .setFileCode(newFileCode); + this.baseMapper.updateById(srcFileInfo); + // 文件系统移动文件 + String srcFilePath = commonService.getFileSysPath(srcFileDbPath); + String destFilePath = commonService.getFileSysPath(destFolderInfo.getFilePath()); + fileSystemService.moveFile(srcFilePath, destFilePath); + } else { + return handMoveConflict(targetFolderId, strategy, srcFileInfo, destFolderInfo); + } + return ElectromagneticResultUtil.success(true); } - private ElectromagneticResult handMoveConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo, boolean deleteSrc) { + private ElectromagneticResult handMoveConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo) { // 禁止同目录下移动和复制 if (srcFileInfo.getParentId().equals(destFolderInfo.getId())) { @@ -667,7 +699,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl moveFile(String id, String targetFolderId, Integer strategy, boolean deleteSrc) { + /** + * 复制文件 + * @param id + * @param targetFolderId + * @return + */ + @Override + public ElectromagneticResult copyFile(String id, String targetFolderId, Integer strategy) { // 获取原文件mysql模型 EdFileInfo srcFileInfo = this.baseMapper.selectById(id); String srcFileDbPath = srcFileInfo.getFilePath(); - String fileCode = srcFileInfo.getFileCode(); // 判断目标路径下是否有同名文件,如果所有的同名文件:1)如果所有文件都已经被作废,则该文件为新文件,版本号从100开始。2)如果有没有被作废的文件,则冲突处理方式按---1-跳过冲突文件 2-做版本更新 3-重命名,文件名加"_1" long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getParentId, targetFolderId) @@ -713,31 +751,74 @@ public class EdFileInfoServiceImpl extends ServiceImpl copyFile(String id, String targetFolderId, Integer strategy) { - return moveFile(id, targetFolderId, strategy, false); + private ElectromagneticResult handCopyConflict(String targetFolderId, Integer strategy, EdFileInfo srcFileInfo, EdFileInfo destFolderInfo) { + // 禁止同目录下移动和复制 + if (srcFileInfo.getParentId().equals(destFolderInfo.getId())) { + String info = "禁止相同文件夹下移动文件"; + log.info(info); + return ElectromagneticResultUtil.fail("-1", info); + } + + if (strategy == 2) { + // 做版本更新 + List sameFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getParentId, targetFolderId) + .eq(EdFileInfo::getFileName, srcFileInfo.getFileName()) + .eq(EdFileInfo::getFileType, srcFileInfo.getFileType())); + Integer maxFileVersion = Collections.max(sameFileInfos, Comparator.comparing(EdFileInfo::getFileVersion)).getFileVersion(); + String newFileDbId = IdWorker.getSnowFlakeIdString(); + String fileTime = EleCommonUtil.getNowTimeStr(); + String codePathByDbPath = commonService.getCodePathByDbPath(destFolderInfo.getFilePath()); + String fileCode = commonService.createFileCode(codePathByDbPath, srcFileInfo.getFileType(), maxFileVersion + 1, fileTime); + EdFileInfo fileInfoTmp = sameFileInfos.stream().filter(e -> e.getEffectFlag().equals(EffectFlagEnum.EFFECT.code)).findFirst().orElseThrow(RuntimeException::new); + EdFileInfo destSaveFileInfo = BeanUtil.copyProperties(fileInfoTmp, EdFileInfo.class); + destSaveFileInfo.setId(newFileDbId); + destSaveFileInfo.setFileVersion(maxFileVersion + 1) + .setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFileDbId) + .setPreVersion(maxFileVersion) + .setEffectFlag(EffectFlagEnum.EFFECT.code) + .setFileCode(fileCode); + this.baseMapper.insert(destSaveFileInfo); + String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath()); + String destFilePath = commonService.getFileSysPath(destSaveFileInfo.getFilePath()); + fileSystemService.copyFile(srcFilePath, destFilePath); + } else if (strategy == 3) { + // 文件名加“_1”,版本号从100开始 + // 处理MySQL相关逻辑 + EdFileInfo newEdFileInfo = BeanUtil.copyProperties(srcFileInfo, EdFileInfo.class); + newEdFileInfo.newInit(); + String dbPathByDbPath = commonService.getCodePathByDbPath(destFolderInfo.getFilePath()); + newEdFileInfo.setParentId(targetFolderId) + .setFileVersion(FILE_START_VERSION) + .setFileName(srcFileInfo.getFileName() + "_1") + .setFileCode(commonService.createFileCode(dbPathByDbPath, srcFileInfo.getFileType(), FILE_START_VERSION, newEdFileInfo.getFileTime())) + .setFilePath(destFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newEdFileInfo.getId()); + resetFileInfoName(newEdFileInfo); + this.baseMapper.insert(newEdFileInfo); + // 移动文件 + String srcFileSysPath = commonService.getFileSysPath(srcFileInfo.getFilePath()); + String destFileSysPath = commonService.getFileSysPath(newEdFileInfo.getFilePath()); + fileSystemService.copyFile(srcFileSysPath, destFileSysPath); + } + return ElectromagneticResultUtil.success(true); } @Transactional(rollbackFor = Exception.class) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java index bbc806e..79f943d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java @@ -18,16 +18,12 @@ public class FileSystemServiceImpl implements FileSystemService { @Override public void copyFile(String source, String destination) { - moveFile(source, destination, false); + FileUtil.copy(source, destination, true); } @Override - public void moveFile(String source, String destination, boolean deleteSource) { - if (deleteSource) { - FileUtil.move(new File(source), new File(destination), true); - return; - } - FileUtil.copy(new File(source), new File(destination), false); + public void moveFile(String source, String destination) { + FileUtil.move(new File(source), new File(destination), true); } @Override