首页 > 其他 > 详细

递归遍历组织架构

时间:2019-07-13 09:37:36      阅读:209      评论:0      收藏:0      [点我收藏+]

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

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

递归遍历组织架构

原文:https://www.cnblogs.com/zbcy/p/11178887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!