递归遍历组织架构

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

/**
* 查询组织架构
*
* @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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值