700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 递归查询部门树形结构数据

递归查询部门树形结构数据

时间:2020-01-29 02:41:13

相关推荐

递归查询部门树形结构数据

原理介绍:

1.先根据根部门0查询根部门下的部门列表。

2.然后遍历部门列表。

3.然后每个部门下都查询子部门以及当前部门下的人员(调用getChildren()方法)。

4.查询子方法是又将id作为父id,再次调用子方法本身(调用getChildren()方法),如此反复即可实现。

代码:

import com.alibaba.fastjson2.JSONArray;import java.util.ArrayList;import java.util.List;class demo {//实体public static class KsB{private String code; //idprivate String idParent; //父idprivate String name; //部门名称private JSONArray children = new JSONArray(); //存储子部门public String getName() {return name;}public JSONArray getChildren() {return children;}public void setChildren(JSONArray children) {this.children = children;}public void setCode(String code){this.code = code;}public String getCode(){return code;}public void setIdParent(String idParent){this.idParent = idParent;}public String getIdParent(){return idParent;}public void setName(String name){this.name = name;}@Overridepublic String toString() {return "KsB{" +"code='" + code + '\'' +", idParent='" + idParent + '\'' +", name='" + name + '\'' +", children=" + children +'}';}}public static void main(String [] arg){List<KsB> ksBList = new ArrayList<>();//添加第一级KsB ksB = new KsB();ksB.setCode("1000");ksB.setIdParent("0");ksB.setName("康复中心门诊");ksBList.add(ksB);KsB ksB1 = new KsB();ksB1.setCode("1001");ksB1.setIdParent("0");ksB1.setName("妇产科");ksBList.add(ksB1);KsB ksB2 = new KsB();ksB2.setCode("1002");ksB2.setIdParent("0");ksB2.setName("骨伤科");ksBList.add(ksB2);//添加第二级KsB ksB3 = new KsB();ksB3.setCode("10021");ksB3.setIdParent("1002");ksB3.setName("颈肩腰腿痛专科门诊");ksBList.add(ksB3);KsB ksB4 = new KsB();ksB4.setCode("10022");ksB4.setIdParent("1002");ksB4.setName("骨伤二科(康复六科)门诊");ksBList.add(ksB4);KsB ksB5 = new KsB();ksB5.setCode("10001");ksB5.setIdParent("1000");ksB5.setName("肌骨疼痛康复门诊");ksBList.add(ksB5);KsB ksB6 = new KsB();ksB6.setCode("10002");ksB6.setIdParent("1000");ksB6.setName("脑卒中康复门诊");ksBList.add(ksB6);//添加第三级KsB ksB7 = new KsB();ksB7.setCode("100021");ksB7.setIdParent("10002");ksB7.setName("脑卒中康复门诊-小门诊");ksBList.add(ksB7);KsB ksB8 = new KsB();ksB8.setCode("100022");ksB8.setIdParent("10002");ksB8.setName("脑卒中康复门诊-小门诊-小小门诊");ksBList.add(ksB8);JSONArray jsonArray = new JSONArray();for (KsB b : ksBList) {//根据最外层部门的父id 查询最外层部门if ("0".equals(b.getIdParent())){KsB parentKsb = new KsB();parentKsb.setCode(b.getCode());parentKsb.setIdParent(b.getIdParent());parentKsb.setName(b.getName());parentKsb.setChildren(getChildren(ksBList,b.getCode()));jsonArray.add(parentKsb);}}System.out.println("jsonArray----:"+jsonArray);}//递归查询子部门public static JSONArray getChildren(List<KsB> list,String code){JSONArray jsonArray = new JSONArray();for (KsB b : list) {if (code.equals(b.getIdParent())){KsB chKsb = new KsB();chKsb.setCode(b.getCode());chKsb.setIdParent(b.getIdParent());chKsb.setName(b.getName());chKsb.setChildren(getChildren(list,b.getCode()));jsonArray.add(chKsb);}}return jsonArray;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。