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;
}
-
}
遍歷樹形機構資料
最終遍歷資料結果結構