从根节点查询树上的所有节点
/**
* 查询组织架构
*
* @param orgCode
* @return
* @throws Exception
*/
public List<OrgRespVo> queryOrg(String orgCode) throws Exception {
List<OrgRespVo> orgList = getXXXList(orgCode);
if (orgList != null && orgList.size() > 0) {
System.out.println(orgCode + " orgCode : " + JSON.toJSONString(orgList));
return orgList;
}
return new ArrayList<>();
}
public void recursionOrg(String orgCode, List<OrgRespVo> tmpOrgList, List<OrgRespVo> finalOrgList) throws Exception {
List<OrgRespVo> newList = queryOrg(orgCode);
System.out.println("---->" + JSON.toJSONString(newList));
if (newList != null && newList.size() > 0) {
tmpOrgList.addAll(newList);
finalOrgList.addAll(newList);
}
Iterator<OrgRespVo> it = tmpOrgList.iterator();
System.out.println("finalOrgList ---->" + JSON.toJSONString(tmpOrgList));
while (it.hasNext()) {
OrgRespVo org = it.next();
it.remove();//caution
recursionOrg(org.getOrgCode(), tmpOrgList, finalOrgList);//caution
}
}
//查询部门树
public static void main(String[] args) {
try {
List<OrgRespVo> finalOrgList = new ArrayList<>();
List<OrgRespVo> tmpOrgList = new ArrayList<>();
recursionOrg("00001", tmpOrgList, finalOrgList);
System.out.println("tmpOrgList size: " + tmpOrgList.size());
System.out.println("tmpOrgList: " + JSON.toJSONString(tmpOrgList));
rtMap.put("data", tmpOrgList.size());
} catch (Exception e) {
e.printStackTrace();
}
}