1. 程式人生 > >java遍歷機構和選單樹形結構資料

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;
      }

}

遍歷樹形機構資料
在這裡插入圖片描述最終遍歷資料結果結構