From 57b84758ad6e47d42311c69079a0a06c238b770f Mon Sep 17 00:00:00 2001 From: caihaohan Date: Mon, 22 Jan 2024 15:30:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=9B=B6=E9=83=A8=E4=BB=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=80=89=E4=B8=AD=E4=B8=BA=E7=A9=BA=E6=97=B6=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=A9=BA=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LawsPartNameController.java | 12 ++++- .../standard/service/PartNameService.java | 18 +++++--- .../service/impl/PartNameServiceImpl.java | 45 +++++++++++++++++-- 3 files changed, 65 insertions(+), 10 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java index 177b6e18..adaaf5e3 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java @@ -37,11 +37,19 @@ public class LawsPartNameController { @ApiOperation(value = "企业标准-零部件树", notes = "企业标准-零部件树") @GetMapping("/") public Result> queryENTreeList( - @RequestParam(name = "selectNodeNames", required = false, defaultValue = "") @ApiParam("选中的节点名称") String selectNodeNames, @RequestParam(name = "nodeName", required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName, @RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面大小") Integer pageSize) { - TreePage list = partNameService.queryTreeList(selectNodeNames, nodeName, pageNo, pageSize); + TreePage list = partNameService.queryTreeList(nodeName, pageNo, pageSize); + return Result.OK(list); + } + + @AutoLog(value = "企业标准-零部件树选中回显") + @ApiOperation(value = "企业标准-零部件树选中回显", notes = "企业标准-零部件树选中回显") + @GetMapping("/echo") + public Result> queryEcho(@RequestParam(name = "selectNodeCodes", required = false, defaultValue = "") + @ApiParam("选中的节点名称") String selectNodeCodes) { + TreePage list = partNameService.queryEcho(selectNodeCodes); return Result.OK(list); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java index a40ae61e..64178862 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java @@ -18,10 +18,18 @@ public interface PartNameService extends IService { /** * 查询零部件树 * - * @param nodeName - * @param pageNo - * @param pageSize - * @return + * @param nodeName 节点名称 + * @param pageNo 页码 + * @param pageSize 页面大小 + * @return 零部件树 */ - TreePage queryTreeList(String selectedNodeNames, String nodeName, Integer pageNo, Integer pageSize); + TreePage queryTreeList(String nodeName, Integer pageNo, Integer pageSize); + + /** + * 零部件树选中回显 + * + * @param selectNodeCodes 选中的节点code + * @return 零部件树 + */ + TreePage queryEcho(String selectNodeCodes); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java index cc1c82b3..ea247300 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java @@ -36,11 +36,10 @@ public class PartNameServiceImpl extends ServiceImpl private PartNameMapper partNameMapper; @Override - public TreePage queryTreeList(String selectedNodeNames, String nodeName, Integer pageNo, Integer pageSize) { + public TreePage queryTreeList(String nodeName, Integer pageNo, Integer pageSize) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PartName::getDelFlag, YesOrNoEnum.NO.getValue()) - .like(StrUtil.isNotBlank(nodeName), PartName::getName, nodeName) - .in(PartName::getName, selectedNodeNames.split(",")); + .like(StrUtil.isNotBlank(nodeName), PartName::getName, nodeName); List allNodes = partNameMapper.selectList(queryWrapper); // 将所有节点转换为映射,以便快速查找 @@ -77,6 +76,46 @@ public class PartNameServiceImpl extends ServiceImpl return result; } + @Override + public TreePage queryEcho(String selectNodeCodes) { + int pageNo = 1; + int pageSize = 1000; + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PartName::getDelFlag, YesOrNoEnum.NO.getValue()) + .in(PartName::getCode, selectNodeCodes.split(",")); + List allNodes = partNameMapper.selectList(queryWrapper); + + // 将所有节点转换为映射,以便快速查找 + Map nodeMap = allNodes.stream() + .collect(Collectors.toMap(PartName::getId, Function.identity())); + + // 构建树形结构 + List topLevelNodes = new ArrayList<>(); + allNodes.forEach(node -> { + if (node.getParentId() == null) { + topLevelNodes.add(node); + } else { + PartName parentNode = nodeMap.get(node.getParentId()); + if (parentNode != null) { + if (parentNode.getChildPartNameList() == null) { + parentNode.setChildPartNameList(new ArrayList<>()); + } + parentNode.getChildPartNameList().add(node); + } + } + }); + + // 实现分页逻辑 + int start = 0; + int end = Math.min(start + pageSize, topLevelNodes.size()); + List pageData = topLevelNodes.subList(start, end); + + // 封装分页信息 + TreePage result = new TreePage<>(); + result.setRecords(pageData); + return result; + } + }