private int count;
private Map<String, String> orgMap = null;
public Map<String, String> listOrganizations(Organization org) {
orgMap = new LinkedHashMap<String, String>();
count = 0;
String orgId = null;
if (org != null) {
orgMap.put(org.getId(), "├" + org.getName());
orgId = org.getId();
} else {
count = -1;
}
List<Organization> list = this.organizationDao.getChildrenById(orgId);
recursiveOrg(list, org);
return orgMap;
}
public void recursiveOrg(List<Organization> child, Organization parent) {
//每向下一层,多一个缩入单位
count++;
String strPading = ""; //缩入字符
//通过i来控制缩入字符的长度,我这里设定的是一个全角的空格
for (int i = 0; i < count; i++)
strPading += " ";//如果要增加缩入的长度,改成两个全角的空格就可以了
if (child != null && child.size() > 0) {
for (int i = 0; i < child.size(); i++) {
Organization par = child.get(i);
orgMap.put(par.getId(), strPading + "├" + par.getName());
recursiveOrg(par.getChildren(), par);
}
}
//递归结束,要回到上一层,所以缩入量减少一个单位
count--;
}
效果:
根据机构递归出下属机构,并层次排列
最新推荐文章于 2022-07-12 13:38:54 发布