从根节点查询树上的所有节点

/**
* 查询组织架构
*
* @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();
  }
}

posted on 2019-07-12 23:04  zyb_java  阅读(502)  评论(0编辑  收藏  举报