From 00f7f2506268771f2a573a7ed82dc6338e057f6b Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Fri, 7 Jul 2023 17:49:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E3=80=90=E8=8F=9C=E5=8D=95=E3=80=81=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E3=80=91=E7=A7=BB=E5=8A=A8=E8=8A=82=E7=82=B9=E6=97=B6?= =?UTF-8?q?=E5=87=BA=E7=8E=B0PID=E6=95=B0=E6=8D=AE=E7=8E=AF=E5=BD=A2?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20close=20https://github.com/elunez/eladmin/?= =?UTF-8?q?issues/803?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/rest/DeptController.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java index f12a4a2e..ebeb260e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java @@ -67,20 +67,23 @@ public class DeptController { @ApiOperation("查询部门:根据ID获取同级与上级数据") @PostMapping("/superior") @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity getDeptSuperior(@RequestBody List ids) { + public ResponseEntity getDeptSuperior(@RequestBody List ids, + @RequestParam(defaultValue = "false") Boolean exclude) { Set deptSet = new LinkedHashSet<>(); for (Long id : ids) { DeptDto deptDto = deptService.findById(id); List depts = deptService.getSuperior(deptDto, new ArrayList<>()); - for (DeptDto dept : depts) { - if(dept.getId().equals(deptDto.getPid())) { - dept.setSubCount(dept.getSubCount() - 1); + if(exclude){ + for (DeptDto dept : depts) { + if(dept.getId().equals(deptDto.getPid())) { + dept.setSubCount(dept.getSubCount() - 1); + } } + // 编辑部门时不显示自己以及自己下级的数据,避免出现PID数据环形问题 + depts = depts.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toList()); } deptSet.addAll(depts); } - // 编辑部门时不显示自己以及自己下级的数据,避免出现PID数据环形问题 - deptSet = deptSet.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet()); return new ResponseEntity<>(deptService.buildTree(new ArrayList<>(deptSet)),HttpStatus.OK); }