java 递归

1.父子级关系

public class TreeDepartmentResp implements Serializable {

private static final long serialVersionUID = 6109449105813084543L;

@ApiModelProperty("组织名称")

private String organizationName;

@ApiModelProperty("组织uuid")

private String organizationUuid;

@ApiModelProperty("组织主管名称")

private String managerName;

@ApiModelProperty("组织主管账号uuid")

private String userAccountUuid;

@ApiModelProperty("组织人数")

private Integer num;

@ApiModelProperty("父级组织uuid")

private String parentUuid;

@ApiModelProperty("父级组织名称")

private String parentOrganizationName;

private List<TreeDepartmentResp> treeDepartmentResp;

2.循环查询子部门

public List<TreeDepartmentResp> getDepartment(TreeDepartmentResp treeDepartmentResp) {

List<TreeDepartmentResp> departmentList = this.getDepartmentList(treeDepartmentResp);

if (departmentList.size() > 0) {

TreeDepartmentResp departmentResp = new TreeDepartmentResp();

for (int i = 0; i < departmentList.size(); i++) {

departmentResp.setParentUuid(departmentList.get(i).getOrganizationUuid());

List<TreeDepartmentResp> dto = getDepartment(departmentResp);

departmentList.get(i).setTreeDepartmentResp(dto);

}

 

}

return departmentList;

}

3.递归统计部门与子部分的人数->父子级

/**

* 根据部门uuid统计人数

*

* @param organizationUuid

* @return

*/

 

private int countPerson(String organizationUuid) {

CompanyDepartmentMembersResp companyDepartmentMembers = queryCompanyDepartmentMembers(organizationUuid);

int a = getNum(companyDepartmentMembers, 0);

return a;

}

 

/**

* 递归查询部门人数

*

* @param companyDepartmentMembers

* @param count

* @return

*/

private int getNum(CompanyDepartmentMembersResp companyDepartmentMembers, int count) {

List<CompanyDepartmentMembersResp> childList = companyDepartmentMembers.getCompanyDepartmentMembersResp();

List<MembersResp> memberList = companyDepartmentMembers.getMembersResp();

if (memberList != null && memberList.size() > 0) {

count = CollectionUtils.isEmpty(memberList) ? 0 : memberList.size();

}

if (!CollectionUtils.isEmpty(childList)) {

Iterator<CompanyDepartmentMembersResp> it = childList.iterator();

while (it.hasNext()) {

CompanyDepartmentMembersResp companyDepartment = (CompanyDepartmentMembersResp) it.next();

count = count + getNum(companyDepartment, count);

}

}

return count;

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值