From fae81c60d8f7aabe48d949e853ef2bc38aa92488 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Fri, 30 Aug 2024 11:27:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=8F=90=E7=A4=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ConsControlServiceImpl.java | 48 +++++-------------- .../service/impl/TeamMgeServiceImpl.java | 4 +- .../mapper/bracelet/ConsControlMapper.xml | 17 ++++--- .../mapper/bracelet/TeamMgeMapper.xml | 4 +- 4 files changed, 26 insertions(+), 47 deletions(-) diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java index 2b010e8..7d99699 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/ConsControlServiceImpl.java @@ -182,7 +182,6 @@ public class ConsControlServiceImpl implements IConsControlService { @Override public AjaxResult getPersonsTree(BraceletParamsDto dto) { JSONArray resultTree = new JSONArray(); - JSONArray dataTree = new JSONArray(); try { List list = new ArrayList<>(); list = mapper.getPersonsTree(dto); @@ -201,49 +200,26 @@ public class ConsControlServiceImpl implements IConsControlService { } //构建人员树 resultTree = BuildTreeUtil.listInfoToTree(JSONArray.parseArray(JSON.toJSONString(list)), "id", "parentId", "children"); - if (CollectionUtils.isNotEmpty(resultTree)) { - for (int i = 0; i < resultTree.size(); i++) { - JSONObject jsonObject = resultTree.getJSONObject(i); - PersonTreeVo personTreeVo = jsonObject.toJavaObject(PersonTreeVo.class); - // 检查第三层是否有子节点 - boolean hasChildren = hasChildrenAtLevel(personTreeVo, 2); - if(hasChildren){ - dataTree.add(jsonObject); - } -// System.out.println("第四层是否有子节点: " + hasChildren); // 应输出 true,因为第二层有节点 4 和 5 - } - } } catch (Exception e) { log.error(e.toString(), e); } - return AjaxResult.success(dataTree); + return AjaxResult.success(resultTree); } - // 递归方法判断在特定层级下是否包含子节点 - public static boolean hasChildrenAtLevel(PersonTreeVo node, int level) { - if (node == null) { - return false; + public PersonTreeVo pruneTree(PersonTreeVo root) { + if (root == null) { + return null; } - if (level == 0) { - return !node.getChildren().isEmpty(); - } - return hasChildrenAtLevelInChildren(node.getChildren(), level - 1); - } - - // 递归子节点集合,查看在特定层级下是否有子节点 - private static boolean hasChildrenAtLevelInChildren(List nodes, int level) { - for (PersonTreeVo child : nodes) { - if (level == 0) { - if (!child.getChildren().isEmpty()) { - return true; - } - } else { - if (hasChildrenAtLevelInChildren(child.getChildren(), level - 1)) { - return true; - } + List nonEmptyChildren = new ArrayList<>(); + for (PersonTreeVo child : root.getChildren()) { + PersonTreeVo prunedChild = pruneTree(child); + if (prunedChild != null) { + nonEmptyChildren.add(prunedChild); } } - return false; + root.setChildren(nonEmptyChildren); + + return root.getChildren().isEmpty() ? null : root; } @Override diff --git a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/TeamMgeServiceImpl.java b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/TeamMgeServiceImpl.java index 287a33a..5ce7e1b 100644 --- a/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/TeamMgeServiceImpl.java +++ b/bonus-modules/bonus-bracelet/src/main/java/com/bonus/bracelet/service/impl/TeamMgeServiceImpl.java @@ -96,8 +96,8 @@ public class TeamMgeServiceImpl implements ITeamMgeService { } // 判断班组长是否已经创建班组 List isDistributionList = mapper.isDistribution(vo); - // 1. 班组长不变 2. 选了没有分配班组的班组长 3.选了已经分配的班组长 - if (isDistributionList.get(0) != 0 || isDistributionList.get(1) > 0 || isDistributionList.get(2) == 0) { + // 1. 班组长不变 2.选了已经分配的班组长 + if (isDistributionList.get(0) != 1 || isDistributionList.get(1) > 0) { return AjaxResult.error("所选班组长已分配班组"); } // 移除人员时 判断人员是否已经分配手环或者设备 diff --git a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml index 7f4b421..2932cbb 100644 --- a/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml +++ b/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml @@ -129,7 +129,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"