From 56f4a02815fd290212e5dec26bfce09db9d3b0f6 Mon Sep 17 00:00:00 2001 From: liuchuang <123456> Date: Tue, 17 Aug 2021 17:10:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E5=B1=85=E6=B0=91?= =?UTF-8?q?=E7=AB=AF=EF=BC=9A=E4=B8=80=E9=94=AE=E6=9C=8D=E5=8A=A1=EF=BC=9A?= =?UTF-8?q?=E4=BC=81=E4=B8=9A=E4=BF=A1=E6=81=AF=E5=A1=AB=E6=8A=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E9=A1=B9=E6=89=80=E5=B1=9E=E7=BD=91=E6=A0=BC=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=A0=91=E5=8E=BB=E6=8E=89=E9=83=A8=E9=97=A8=EF=BC=8C=E5=8F=AA?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=A1=97=E9=81=93=E3=80=81=E7=A4=BE=E5=8C=BA?= =?UTF-8?q?=E3=80=81=E7=BD=91=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/controller/SysDeptController.java | 12 ++++ .../com/elink/esua/epdc/dao/SysDeptDao.java | 9 +++ .../esua/epdc/service/SysDeptService.java | 9 +++ .../epdc/service/impl/SysDeptServiceImpl.java | 66 +++++++++++++++++++ .../src/main/resources/mapper/SysDeptDao.xml | 14 +++- .../epdc/commons/tools/redis/RedisKeys.java | 11 ++++ .../esua/epdc/feign/AdminFeignClient.java | 10 +++ .../fallback/AdminFeignClientFallback.java | 5 ++ .../epdc/service/impl/AppUserServiceImpl.java | 2 +- 9 files changed, 136 insertions(+), 2 deletions(-) diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java index e1fb43ca..6131fcc0 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java @@ -224,6 +224,18 @@ public class SysDeptController { return sysDeptService.getDeptTreeWithTypeKey(); } + /** + * 组织机构树:街道-社区-网格 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author lc + * @since 2021/8/17 16:05 + */ + @GetMapping("party/getOrgTree") + public Result getOrgTree() { + return sysDeptService.getOrgTree(); + } + /** * @param * @return com.elink.esua.epdc.commons.tools.utils.Result diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java index b0eca256..2dd4abf9 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java @@ -153,6 +153,15 @@ public interface SysDeptDao extends BaseDao { */ List selectListDeptTreeWithTypeKey(); + /** + * 组织机构树:街道-社区-网格 + * + * @return java.util.List + * @author lc + * @since 2021/8/17 15:56 + */ + List selectListOrgTree(); + /** * @param params * @return java.util.List diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java index f4f4f00b..ccdc4f12 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java @@ -218,6 +218,15 @@ public interface SysDeptService extends BaseService { */ Result getDeptTreeWithTypeKey(); + /** + * 组织机构树:街道-社区-网格 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author lc + * @since 2021/8/17 16:03 + */ + Result getOrgTree(); + /** * @param * @return com.elink.esua.epdc.commons.tools.utils.Result diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index 1b2ec1ad..89c5866a 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -684,6 +684,61 @@ public class SysDeptServiceImpl extends BaseServiceImpl deptList = baseDao.selectListOrgTree(); + JSONObject node; + JSONArray headNodes = new JSONArray(); + for (DeptTreeWithTypeKeyDTO deptItemDto : deptList) { + if (deptItemDto.getPid().longValue() == NumConstant.ZERO_L) { + node = new JSONObject(); + node.put("value", deptItemDto.getId()); + node.put("label", deptItemDto.getName()); + node.put("typeKey", deptItemDto.getTypeKey()); + headNodes.add(node); + } + } + // 用于存放所有父级节点 + JSONArray parent; + parent = headNodes; + // 用于存放所有子级节点 + JSONArray allChildren = new JSONArray(); + JSONArray children; + // 用于存放单个子级节点 + JSONObject childNode; + // 存放其余未处理的类别(节点) + List others = this.getOtherDeptWithTypeKey(deptList, parent); + + while (!others.isEmpty()) { + for (int i = 0; i < parent.size(); i++) { + node = parent.getJSONObject(i); + children = new JSONArray(); + for (DeptTreeWithTypeKeyDTO categoryTreeDto : others) { + if (categoryTreeDto.getPid().equals(node.get("value"))) { + childNode = new JSONObject(); + childNode.put("value", categoryTreeDto.getId()); + childNode.put("label", categoryTreeDto.getName()); + childNode.put("typeKey", categoryTreeDto.getTypeKey()); + children.add(childNode); + allChildren.add(childNode); + } + } + if (!children.isEmpty()) { + node.put("children", children); + } + } + parent = allChildren; + + others = this.getOtherDeptWithTypeKey(others, parent); + + } + //存放到redis中 + List cache = Lists.newArrayList(); + cache.add(headNodes); + DeptOption option = new DeptOption(); + option.setOptions(cache.get(0)); + redisUtils.set(RedisKeys.getAllOrgOptionKey(), option); + } + List getOtherDept(List deptList, JSONArray parent) { List already = Lists.newArrayList(); @@ -748,6 +803,17 @@ public class SysDeptServiceImpl extends BaseServiceImpl().ok((DeptOption) obj); } + @Override + public Result getOrgTree() { + String deptKey = RedisKeys.getAllOrgOptionKey(); + Object obj = redisUtils.get(deptKey); + if (null == obj) { + this.packgeAllOrgOption(); + obj = redisUtils.get(deptKey); + } + return new Result().ok((DeptOption) obj); + } + /** * @param * @return com.elink.esua.epdc.commons.tools.utils.Result diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml index bc767365..d78da577 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml @@ -254,6 +254,18 @@ where sd.del_flag='0' and sd.type_key in ('district_party','street_party','street_dept') + +