diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ImportPrjController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ImportPrjController.java index 531f48d..56ec7bc 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ImportPrjController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ImportPrjController.java @@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import java.util.Optional; + @RestController @RequestMapping("/data/ed/local/prj") public class ImportPrjController { @@ -29,21 +31,25 @@ public class ImportPrjController { @RequestMapping("/queryPrjInfo") @UserOperation(value = "查询导入工程列表", modelName = UserOperationModuleEnum.IMPORT_PFJ) - public ElectromagneticResult queryPrjInfo(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) { + public ElectromagneticResult queryPrjInfo(@RequestParam(value = "pageNum", required = false) Integer pageNum, + @RequestParam(value = "pageSize", required = false) Integer pageSize) { + pageNum = Optional.ofNullable(pageNum).orElse(1); + pageSize = Optional.ofNullable(pageSize).orElse(Integer.MAX_VALUE); return ElectromagneticResultUtil.success(importPrjService.queryPrjInfo(pageNum, pageSize)); } @RequestMapping("/queryImportFileInfo") @UserOperation(value = "查询导入工程文件和文件夹信息", modelName = UserOperationModuleEnum.IMPORT_PFJ) - public ElectromagneticResult queryImportFileInfo(@RequestParam("pageNum") Integer pageNum, - @RequestParam("pageSize") Integer pageSize, + public ElectromagneticResult queryImportFileInfo(@RequestParam(value = "pageNum") Integer pageNum, + @RequestParam(value = "pageSize") Integer pageSize, @RequestParam("id") String id) { return ElectromagneticResultUtil.success(importPrjService.queryImportFileInfo(id, pageNum, pageSize)); } @RequestMapping("/download") @UserOperation(value = "下载工程文件", modelName = UserOperationModuleEnum.IMPORT_PFJ) - public ResponseEntity download(@RequestParam("id") String id, HttpServletResponse response) { + public ResponseEntity download(@RequestParam("id") String id, + HttpServletResponse response) { return importPrjService.download(id, response); } @@ -53,4 +59,11 @@ public class ImportPrjController { return ElectromagneticResultUtil.success(importPrjService.removePrj(prjId)); } + + @RequestMapping("/tree") + @UserOperation(value = "查询工程树", modelName = UserOperationModuleEnum.IMPORT_PFJ) + public ElectromagneticResult tree(@RequestParam("prjId") String prjId) { + return ElectromagneticResultUtil.success(importPrjService.tree(prjId)); + } + } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ImportPrjTreeVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ImportPrjTreeVO.java new file mode 100644 index 0000000..00d63f2 --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/ImportPrjTreeVO.java @@ -0,0 +1,20 @@ +package com.electromagnetic.industry.software.manage.pojo.resp; + +import lombok.Data; +import lombok.experimental.FieldNameConstants; + +import java.util.ArrayList; +import java.util.List; + +@Data +@FieldNameConstants +public class ImportPrjTreeVO { + + private String id; + private String fileName; + private String parentId; + private int sort; + + List children = new ArrayList<>(); + +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/ImportPrjService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/ImportPrjService.java index a5f5a4f..86b82d1 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/ImportPrjService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/ImportPrjService.java @@ -1,8 +1,10 @@ package com.electromagnetic.industry.software.manage.service; +import cn.hutool.core.lang.tree.Tree; import com.electromagnetic.industry.software.common.pojo.RespPageVO; import com.electromagnetic.industry.software.manage.pojo.req.ImportFileDirQueryVO; import com.electromagnetic.industry.software.manage.pojo.req.ImportFileInfoVO; +import com.electromagnetic.industry.software.manage.pojo.resp.ImportPrjTreeVO; import jakarta.servlet.http.HttpServletResponse; import org.springframework.core.io.InputStreamResource; import org.springframework.http.ResponseEntity; @@ -19,4 +21,6 @@ public interface ImportPrjService { RespPageVO queryImportFileInfo(String id, Integer pageNo, Integer pageSize); boolean removePrj(String prjId); + + Tree tree(String prdId); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ImportPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ImportPrjServiceImpl.java index 90e4799..cc02a40 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ImportPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ImportPrjServiceImpl.java @@ -5,9 +5,13 @@ import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.lang.tree.Tree; +import cn.hutool.core.lang.tree.TreeNodeConfig; +import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -25,6 +29,7 @@ import com.electromagnetic.industry.software.manage.mapper.ImportPrjInfoMapper; import com.electromagnetic.industry.software.manage.pojo.models.ImportFileInfo; import com.electromagnetic.industry.software.manage.pojo.req.ImportFileDirQueryVO; import com.electromagnetic.industry.software.manage.pojo.req.ImportFileInfoVO; +import com.electromagnetic.industry.software.manage.pojo.resp.ImportPrjTreeVO; import com.electromagnetic.industry.software.manage.service.ImportPrjService; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; @@ -188,15 +193,6 @@ public class ImportPrjServiceImpl extends ServiceImpl files = BeanUtil.copyToList(importFilePage.getRecords(), ImportFileInfoVO.class); RespPageVO respPageVO = new RespPageVO<>(importFilePage.getTotal(), files); - // 如果是首页查询,则首先查询全部文件夹 - if (Objects.equals(pageNo, 1)) { - List importDirs = this.baseMapper.selectList(Wrappers.lambdaQuery() - .eq(ImportFileInfo::getParentId, id) - .eq(ImportFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) - .eq(ImportFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); - List importFileDirQueryVOS = BeanUtil.copyToList(importDirs, ImportFileDirQueryVO.class); - respPageVO.setImportDirs(importFileDirQueryVOS); - } UserThreadLocal.setSuccessInfo(id, "", "查询导入本地工程文件夹下的文件和文件夹成功"); return respPageVO; } @@ -216,6 +212,26 @@ public class ImportPrjServiceImpl extends ServiceImpl tree(String prdId) { + List importFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery() + .eq(ImportFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(ImportFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) + .likeRight(ImportFileInfo::getFilePath, prdId)); + TreeNodeConfig config = new TreeNodeConfig(); + config.setIdKey(ImportPrjTreeVO.Fields.id); + config.setParentIdKey(ImportPrjTreeVO.Fields.parentId); + config.setWeightKey(ImportPrjTreeVO.Fields.sort); + List> fileTrees = TreeUtil.build(importFileInfos, PRJ_PARENT_ID, config, ((obj, treeNode) -> { + treeNode.putExtra(ImportPrjTreeVO.Fields.id, obj.getId()); + treeNode.putExtra(ImportPrjTreeVO.Fields.parentId, obj.getParentId()); + treeNode.putExtra(ImportPrjTreeVO.Fields.sort, obj.getSort()); + treeNode.putExtra(ImportPrjTreeVO.Fields.fileName, obj.getFileName()); + })); + UserThreadLocal.setSuccessInfo(prdId, prdId, "查询导入工程对应的树成功"); + return fileTrees.get(0); + } + private void resetPrjName(ImportFileInfo importFileInfo) { if (!StrUtil.equals(importFileInfo.getParentId(), ElectromagneticConstants.PRJ_PARENT_ID)) { return; diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/RespPageVO.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/RespPageVO.java index 0876417..cff9f79 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/RespPageVO.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/RespPageVO.java @@ -19,8 +19,6 @@ public class RespPageVO implements Serializable { private ImportTableInfoVO importTableInfoVO; - private List importDirs; - public RespPageVO(long total, List records) { this.struct = false; this.total = total;