diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java index bfc55d9..543c01b 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.EqualsAndHashCode; +@EqualsAndHashCode(callSuper = true) @Data @TableName("file_tag_relations") public class FileTagRelation extends BaseModel { 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 a3ffcb7..eb58c41 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 @@ -873,6 +873,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl resFiles = new HashSet<>(maps.values()); + String prjId = resFiles.stream().findFirst().get().getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0]; List prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT) @@ -886,12 +887,22 @@ public class EdFileInfoServiceImpl extends ServiceImpl files = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).toList(); for (EdFileInfo edFileInfo : files) { String filePath = commonService.getFileSysPath(edFileInfo.getId()); // file String destPath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + EXPORT_PRJ_NAME + File.separator + edFileInfo.getId(); fileSystemService.copyFile(filePath, destPath); } + // 去除用户创建的空文件夹 + List userFolders = resFiles.stream().filter(e -> + e.getDataType().equals(EleDataTypeEnum.FOLDER.code) && DataOwnEnum.isFileCode(e.getDataOwn()) + ).toList(); + List userFolderIds = userFolders.stream().map(EdFileInfo::getId).collect(Collectors.toList()); + List fileParentIds = files.stream().map(EdFileInfo::getParentId).toList(); + userFolderIds.removeAll(fileParentIds); + resFiles = resFiles.stream().filter(e -> !userFolderIds.contains(e.getId())).collect(Collectors.toSet()); + String json = JSONUtil.toJsonStr(resFiles); String mysqlFilePath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + PRJ_INFO + ".json"; fileSystemService.writeStringToFile(mysqlFilePath, json);