From 2f1d15240ea327c618861f1d803c484fe6dc9b40 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 16 Apr 2025 14:51:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/EdFileInfoServiceImpl.java | 53 +++---------------- .../serviceimpl/FileSystemServiceImpl.java | 5 ++ 2 files changed, 12 insertions(+), 46 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 be3c213..b196db3 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 @@ -64,7 +64,6 @@ import static com.electromagnetic.industry.software.common.enums.FileRepeatEnum. @Service public class EdFileInfoServiceImpl extends ServiceImpl implements EdFileInfoService { - private static final Map> FILE_DB_ID_NAME = new ConcurrentHashMap<>(); private final EleLog log = new EleLog(EdFileInfoServiceImpl.class); @Resource private CommonService commonService; @@ -533,10 +532,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl e.getEffectFlag().equals(EffectFlagEnum.EFFECT.code)).findFirst().get(); - String previousName = fileInfo.getFileName(); resetFileInfoName(fileInfo); - String afterName = fileInfo.getFileName(); - FILE_DB_ID_NAME.put(fileInfo.getId(), List.of(previousName, afterName)); allObjs.addAll(importFiles); allObjs.add(fileInfo); // 线下和线上都存在 @@ -694,46 +687,14 @@ public class EdFileInfoServiceImpl extends ServiceImpl needMove2FileSystemFiles, String prjDirPath, int dataOwnCode) { List files = needMove2FileSystemFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).toList(); + List files1 = FileUtil.loopFiles(new File(prjDirPath), file -> file.isDirectory() && file.getName().startsWith(EXPORT_PRJ_NAME)); + String prjFilePath = files1.get(0).getAbsolutePath(); for (EdFileInfo edFileInfo : files) { - String filePath = edFileInfo.getFilePath(); - String previousFileName = FILE_DB_ID_NAME.containsKey(edFileInfo.getId()) ? - FILE_DB_ID_NAME.get(edFileInfo.getId()).get(0) : - edFileInfo.getFileName(); - String afterFileName = FILE_DB_ID_NAME.containsKey(edFileInfo.getId()) ? - FILE_DB_ID_NAME.get(edFileInfo.getId()).get(1) : - edFileInfo.getFileName(); - - StringBuilder sysFileDirPath = new StringBuilder(); - StringBuilder destDirPath = new StringBuilder(); - - for (String id : filePath.split(MYSQL_FILE_PATH_SPLIT)) { - EdFileInfo fileInfo = this.baseMapper.selectById(id); - if (fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code)) { - String previousDirName = FILE_DB_ID_NAME.containsKey(id) ? - FILE_DB_ID_NAME.get(id).get(0) : fileInfo.getFileName(); - sysFileDirPath.append(previousDirName).append(File.separator); - String afterDirName = FILE_DB_ID_NAME.containsKey(id) ? - FILE_DB_ID_NAME.get(id).get(1) : fileInfo.getFileName(); - destDirPath.append(afterDirName).append(File.separator); - } - } - String sourcePath = prjDirPath + File.separator + sysFileDirPath + previousFileName + "." + edFileInfo.getFileType() + "." + edFileInfo.getFileCode(); - String destPath; - if (DataOwnEnum.isUserCode(dataOwnCode)) { - destPath = commonService.getPrjRootPath1(dataOwnCode) + - UserThreadLocal.getUserId() + File.separator + - destDirPath + File.separator + sysFileDirPath + - afterFileName + - "." + edFileInfo.getFileType() + - "." + edFileInfo.getFileCode(); - } else { - destPath = commonService.getPrjRootPath1(dataOwnCode) + File.separator + - destDirPath + File.separator + - afterFileName + - "." + edFileInfo.getFileType() + - "." + edFileInfo.getFileCode(); - } - log.info("source path is ----> {}, dest path is --->{}", sourcePath, destPath); + String id = edFileInfo.getId(); + String sourcePath = prjFilePath + File.separator + id; + String destPath = commonService.getPrjRootPath1(dataOwnCode) + File.separator + id; + fileSystemService.moveFile(sourcePath, destPath); + log.info("file import to file system source path is ----> {}, dest path is --->{}", sourcePath, destPath); } } 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 8428742..1cdcbd0 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 @@ -16,6 +16,11 @@ public class FileSystemServiceImpl implements FileSystemService { FileUtil.copy(source, destination, true); } + /** + * + * @param source /user/aaa/bbb.txt + * @param destination /user/bbb/aaa.txt + */ @Override public void moveFile(String source, String destination) { String destParentDir = FileUtil.getParent(destination, 1);