1、组织表
private int orgId;//组织id
private int pId;//父组织id
public String name;//组织名称
private int num;//组织人数
2、获取所有的组织列表
List<OrganVO> organVOList = xx.selOrgan();
List<Integer> oIdAll = null;
for (OrganVO organVO : organVOList) {
oIdAll = new ArrayList<>();
oIdAll.add(organVO.getOrgId());
List<Integer> childList = getSubId(organVOList, organVO.getOrgId());
int num = 0;
for (OrganVO organNumVO : organNumList) {
if (childList.contains(organNumVO.getOrgId())) {
num = num + organNumVO.getNum();
}
}
StringBuffer stringBuffer = new StringBuffer();
for (Integer integerOne : childList) {
stringBuffer.append(integerOne + ",");
}
System.out.println("---oid---" + organVO.getOrgId() + "---suball---" + stringBuffer.toString() + "---num----" + num);
organNumMap.put(organVO.getOrgId(), num);
}
3、递归获取所有组织id
//获取所有下级人员的组织id
private List<Integer> getSubId(List<OrganVO> organVOList, Integer pid) {
for (OrganVO organVO : organVOList) {
if (organVO.getpId() == pid) {
getSubId(organVOList, organVO.getOrgId());
oIdAll.add(organVO.getOrgId());
}
}
return oIdAll;
}