java遍历机构和菜单树形结构数据
查询机构数据结构数据 mapper层接口省略
/**
-
<一句话功能简述>查询机构树形机构返回数据 <功能详细描述>
-
@author DENG
-
@version [版本号, 2018年11月1日]
-
@see [相关类/方法]
-
@since [产品/模块版本]
*/
public class ResOrgDto {private String orgCode;
private String orgName;
private String superiorOrgCode;
private String orgType;
private List resOrgDtoList;
public String getOrgType() {
return orgType;
}public void setOrgType(String orgType) {
this.orgType = orgType;
}public String getOrgCode() {
return orgCode;
}public void setOrgCode(String orgCode) {
this.orgCode = orgCode;
}public String getOrgName() {
return orgName;
}public void setOrgName(String orgName) {
this.orgName = orgName;
}public String getSuperiorOrgCode() {
return superiorOrgCode;
}public void setSuperiorOrgCode(String superiorOrgCode) {
this.superiorOrgCode = superiorOrgCode;
}public List getResOrgDtoList() {
return resOrgDtoList;
}public void setResOrgDtoList(List resOrgDtoList) {
this.resOrgDtoList = resOrgDtoList;
}
}
查询响应的对应实体
/**
*
-
<一句话功能简述> 响应包装实体类
-
<功能详细描述>
-
@author DENG
-
@version [版本号, 2018年11月1日]
-
@see [相关类/方法]
-
@since [产品/模块版本]
*/
public class OrgDtoResponse {private List resOrgDtoList;
public List getResOrgDtoList() {
return resOrgDtoList;
}public void setResOrgDtoList(List resOrgDtoList) {
this.resOrgDtoList = resOrgDtoList;
}
}
查询响应实体的包装对应的类
/**
*
-
<一句话功能简述> <功能详细描述>
-
@author DENG
-
@version [版本号, 2018年11月1日]
-
@see [相关类/方法]
-
@since [产品/模块版本]
*/
@Service
public class InfoConfirmProgressManagerServiceImpl implements InfoConfirmProgressManagerService {@Autowired
TUserOrgConfService tUserOrgConfService;private List orgDtoList = null;
private List removeOrgDtoList = new ArrayList<>();
@Override
public OrgDtoResponse queryOrgListService(Map<String, Object> map) {
//创建响应数据的包装对象
OrgDtoResponse orgDtoResponse = new OrgDtoResponse();
// 查询数据
orgDtoList = tUserOrgConfService.queryTUserOrgConfService(map);
// 创建保存数据的集合
List list = new ArrayList<>();
//遍历树形结构
for (OrgDto orgDto : orgDtoList) {if (!removeOrgDtoList.contains(orgDto)) { ResOrgDto facdeTree = facdeTree(orgDto); list.add(facdeTree); removeOrgDtoList.add(orgDto); } } // 设置响应数据 orgDtoResponse.setResOrgDtoList(list); return orgDtoResponse;
}
/**
-
遍历树形结构
-
@param orgDto
-
@return
*/
private ResOrgDto facdeTree(OrgDto orgDto) {
ResOrgDto resOrgDto = new ResOrgDto();List resOrgDtoList = new ArrayList<>();
for (OrgDto resOrgDto2 : orgDtoList) {
if (orgDto.getOrgCode().equals(resOrgDto2.getSuperiorOrgCode())) { ResOrgDto facdeTree = facdeTree(resOrgDto2); resOrgDtoList.add(facdeTree); resOrgDto.setResOrgDtoList(resOrgDtoList); removeOrgDtoList.add(resOrgDto2); }
}
resOrgDto.setOrgCode(orgDto.getOrgCode());
resOrgDto.setOrgName(orgDto.getOrgName());
resOrgDto.setSuperiorOrgCode(orgDto.getSuperiorOrgCode());
resOrgDto.setOrgType(orgDto.getOrgKind());
return resOrgDto;
}
-
}
遍历树形机构数据最终遍历数据结果结构