From de4f48507c88901d391cfac17f1f959deafd8984 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 3 Jan 2025 10:30:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E9=80=9A=E6=96=87=E4=BB=B6=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/EdFileInfoServiceImpl.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 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 ca4c227..42e8dc6 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 @@ -560,23 +560,28 @@ public class EdFileInfoServiceImpl extends ServiceImpl prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).eq(EdFileInfo::getPrjDir, true).eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); + String prjId = resFiles.get(0).getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0]; + List prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + .likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT) + .eq(EdFileInfo::getPrjDir, true) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); + EdFileInfo prjFileInfo = this.baseMapper.selectById(prjId); Map prjFoldersMap = prjFolders.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); Map tmps = resFiles.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); + tmps.putAll(prjFoldersMap); resFiles.clear(); resFiles.addAll(tmps.values()); - resFiles.addAll(prjFoldersMap.values()); + resFiles.add(prjFileInfo); String prjName = commonService.getPrjNameByDbPath(resFiles.get(0).getFilePath()); List 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()); // file + String destFolderPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFilePath()); // file fileSystemService.createDirectory(destFolderPath); } for (EdFileInfo edFileInfo : files) { - String filePath = commonService.getFileSysPath(edFileInfo.getFileId()); // file - String destPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFileId()); + String filePath = commonService.getFileSysPath(edFileInfo.getFilePath()); // file + String destPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFilePath()); fileSystemService.copyFile(filePath, destPath); } String mysqlInfo = JSONUtil.toJsonStr(resFiles); @@ -596,6 +601,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl upload(String parentId, MultipartFile file, Integer strategy) { Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG); - EdFileInfo fileInfo = this.baseMapper.selectById(parentId); - Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件"); +// EdFileInfo fileInfo = this.baseMapper.selectById(parentId); +// Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件"); String fileName = file.getOriginalFilename(); String mainName = FileUtil.mainName(fileName); String suffix = FileUtil.getSuffix(fileName);