代碼邏輯如下:
//xxx組織機構樹形列表方法 public List<Organization> xxxTreeOrg(xxx xx){ //所有的組織機構list List<Organization> allOrganizationList = xxxDao.findAllOrgList(); //所有一級組織機構List List<Organization> oneOrganizationList = xxxDao.findOneOrgList(); for (Organization oneOrganization : oneOrganizationList) { oneOrganization.setChild(doOrgIterator(oneOrganization, allOrganizationList)); }
return oneOrganizationList; } //向下遞歸的方法 private List<Organization> doOrgIterator(Organization oneOrganization, List<Organization> allOrganizationList) { List<Organization> childList = new ArrayList<>(); for (Organization organization : allOrganizationList) { if(oneOrganization.getId().intValue() == organization.getPid().intValue()) { organization.setChild(doOrgIterator(organization, allOrganizationList)); childList.add(organization); } } return childList; }