diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java index 0fd50da..f0b9141 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java @@ -24,11 +24,13 @@ public class EdFileInfoController { @Resource private EdFileInfoService edFileInfoService; + @RequiredPermission(value = FilePermission.VIEW) @RequestMapping("tree") public ElectromagneticResult tree() { return edFileInfoService.tree(); } + @RequiredPermission(value = FilePermission.EDIT) @RequestMapping("createFolder") public ElectromagneticResult createFolder(@RequestBody CreateFolderDTO createFolderDTO) { return edFileInfoService.createFolder(createFolderDTO); @@ -82,21 +84,25 @@ public class EdFileInfoController { return edFileInfoService.copyFile(id, targetFolderId, strategy); } + @RequiredPermission(value = FilePermission.VIEW) @RequestMapping("versionView") public ElectromagneticResult versionView(@RequestParam String fileId) { return edFileInfoService.versionView(fileId); } + @RequiredPermission(value = FilePermission.EDIT) @RequestMapping("versionBack") public ElectromagneticResult versionBack(@RequestParam String fileId, @RequestParam int targetVersion) { return edFileInfoService.versionBack(fileId, targetVersion); } + @RequiredPermission(value = FilePermission.EXPORT) @RequestMapping("batchExport") public ResponseEntity batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException { return edFileInfoService.batchExport(fileIds, response); } + @RequiredPermission(value = FilePermission.IMPORT) @RequestMapping(value = "/mergeChunks", method = RequestMethod.GET) public ElectromagneticResult mergeChunks(@RequestParam String identifier, @RequestParam String fileName, @@ -104,23 +110,33 @@ public class EdFileInfoController { return edFileInfoService.mergeChunks(identifier, fileName, totalChunks); } + @RequiredPermission(value = FilePermission.IMPORT) @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO) { return edFileInfoService.batchImport(fileChunkDTO); } + @RequiredPermission(value = FilePermission.IMPORT) @RequestMapping(value = "/batchImport", method = RequestMethod.GET) public ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO) { return edFileInfoService.checkChunkExist(fileChunkDTO); } + @RequiredPermission(value = FilePermission.VIEW) @RequestMapping(value = "/uploadRecord", method = RequestMethod.GET) public ElectromagneticResult uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) { return edFileInfoService.uploadRecord(pageNum, pageSize); } + @RequiredPermission(value = FilePermission.VIEW) @RequestMapping(value = "/fileDetail", method = RequestMethod.GET) public ElectromagneticResult detail(@RequestParam String id) { return edFileInfoService.detail(id); } + + @RequiredPermission(value = FilePermission.VIEW) + @RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET) + public ElectromagneticResult queryChildFolder(@RequestParam String parentId) { + return edFileInfoService.queryChildFolder(parentId); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java index 8e9f74c..2540945 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java @@ -40,4 +40,5 @@ public class FileInfoVO { private String fileCode; + private String createdBy; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ChildFolderVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ChildFolderVO.java new file mode 100644 index 0000000..daa02f3 --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ChildFolderVO.java @@ -0,0 +1,9 @@ +package com.electromagnetic.industry.software.manage.pojo.resp; + +import lombok.Data; + +@Data +public class ChildFolderVO { + private String id; + private String fileName; +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java index ca44fbe..e92d942 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java @@ -157,4 +157,11 @@ public interface EdFileInfoService { * 获取文件的层级Id */ String getCategoryId (String id); + + /** + * 根据父id查询其下自定义的文件夹 + * @param parentId + * @return + */ + ElectromagneticResult queryChildFolder(String parentId); } 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 b5d792d..2ed10cc 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 @@ -232,7 +232,9 @@ public class CommonService { for (String id : ids) { List edFileInfos = selectAllAdminFolder(id, isAdminQuery, prjIds); if (!isAdminQuery) { - edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code)).collect(Collectors.toList()); + edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code) + || e.getDataStatus().equals(EleDataStatusEnum.DELETED.code)) + .collect(Collectors.toList()); } else { edFileInfos = edFileInfos.stream().filter(e -> !e.getDataStatus().equals(EleDataStatusEnum.DELETED.code)).collect(Collectors.toList()); } 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 6730e8e..4869400 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 @@ -23,14 +23,13 @@ import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.*; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; +import com.electromagnetic.industry.software.manage.mapper.UserMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; +import com.electromagnetic.industry.software.manage.pojo.models.User; import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; import com.electromagnetic.industry.software.manage.pojo.other.UploadRecordDTO; import com.electromagnetic.industry.software.manage.pojo.req.*; -import com.electromagnetic.industry.software.manage.pojo.resp.FileInfoQueryPageVO; -import com.electromagnetic.industry.software.manage.pojo.resp.FileProjectVO; -import com.electromagnetic.industry.software.manage.pojo.resp.FileVersionViewVO; -import com.electromagnetic.industry.software.manage.pojo.resp.UploadRecordVO; +import com.electromagnetic.industry.software.manage.pojo.resp.*; import com.electromagnetic.industry.software.manage.service.EdFileInfoService; import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.PermissionService; @@ -69,6 +68,8 @@ public class EdFileInfoServiceImpl extends ServiceImpl deepCopyV = JSONUtil.toList(JSONUtil.toJsonStr(v), EdFileInfo.class); List deepCopyDb = JSONUtil.toList(JSONUtil.toJsonStr(dbFileInfos), EdFileInfo.class); - EdFileInfo importEffectFile = deepCopyV.stream().filter(e -> e.getEffectFlag().equals(EffectFlagEnum.EFFECT.code)).findFirst().get(); - EdFileInfo dbEffectFile = deepCopyDb.stream().filter(e -> e.getEffectFlag().equals(EffectFlagEnum.EFFECT.code)).findFirst().get(); + // 导入的文件在线下已经被废除了 + Optional first = deepCopyV.stream().filter(e -> e.getEffectFlag().equals(EffectFlagEnum.EFFECT.code)).findFirst(); + if (!first.isPresent()) { + continue; + } + EdFileInfo importEffectFile = first.get(); + Optional first1 = deepCopyDb.stream().filter(e -> e.getEffectFlag().equals(EffectFlagEnum.EFFECT.code)).findFirst(); + EdFileInfo dbEffectFile = null; + if (!first1.isPresent()) { + // 线下存在,线上不存在,被废除了,此时根据更新时间判断,如果线上的比线下的新,则以线上的为准 + EdFileInfo fileInfo = deepCopyDb.stream().max(Comparator.comparing(EdFileInfo::getUpdatedTime)).get(); + if (fileInfo.getUpdatedTime().after(importEffectFile.getUpdatedTime())) { + continue; + } + } else { + dbEffectFile = first1.get(); + } // 如果导入的时间比数据库的时间新,则将导入的置为effect - String effectId = importEffectFile.getUpdatedTime().after(dbEffectFile.getUpdatedTime()) ? importEffectFile.getId() : dbEffectFile.getId(); - + String effectId; + if (ObjUtil.isNull(dbEffectFile)) { + effectId = importEffectFile.getId(); + } else { + effectId = importEffectFile.getUpdatedTime().after(dbEffectFile.getUpdatedTime())? importEffectFile.getId() : dbEffectFile.getId(); + } Map importVersionRelation = getVersionRelation(deepCopyV); Map dbVersionRelation = getVersionRelation(deepCopyDb); @@ -600,7 +618,6 @@ public class EdFileInfoServiceImpl extends ServiceImpl map = permissionService.filterExportIds(ids); - log.info("map is -->" + map); Assert.isTrue(!map.containsValue(Boolean.FALSE), "有未授权的层级目录,禁止导出"); Map maps = new HashMap<>(); for (String id : ids) { @@ -664,7 +681,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryChildFolder(String parentId) { + + List edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).select(EdFileInfo::getId, EdFileInfo::getFileName) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) + .eq(EdFileInfo::getPrjDir, Boolean.FALSE) + .eq(EdFileInfo::getParentId, parentId) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); + List res = BeanUtil.copyToList(edFileInfos, ChildFolderVO.class); + return ElectromagneticResultUtil.success(res); + } + } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java index 9aa5c92..81a0da6 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java @@ -234,7 +234,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl