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') + +