public class SspOrgTreeBean { /** * @Fields serialVersionUID: TODO */ private static final long serialVersionUID = 1L; private String id; private String text; private List<SspOrgTreeBean> children = null; /** * 子代机构数 */ private Integer childrenSize; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getText() { return text; } public void setText(String text) { this.text = text; } public List<SspOrgTreeBean> getChildren() { return children; } public void setChildren(List<SspOrgTreeBean> children) { this.children = children; } public Integer getChildrenSize() { return childrenSize; } public void setChildrenSize(Integer childrenSize) { this.childrenSize = childrenSize; } }
public SspOrgTreeBean getOrgTree( SspFrontRpcRequest<SspSystemOrganizationRpcBean> request) { logger.info("机构树查询条件{}",request.getObject()); long start = System.currentTimeMillis(); Organization searchOrg = new Organization(); searchOrg.setOrgUuid(request.getObject().getCurrentOrgNo()); Organization rootOrg = orgService.queryOrgByOrgUuid(searchOrg); if(null != rootOrg){ SspOrgTreeBean tree = new SspOrgTreeBean(); tree.setId(rootOrg.getOrgUuid()); listOrgUuid.add(rootOrg.getOrgUuid()); tree.setText(rootOrg.getOrgNm()); tree.setChildren(findChildren(rootOrg,orgService.queryOrgByParentOrgUuid(rootOrg),request.getObject().isDirectly())); long end = System.currentTimeMillis(); logger.info("机构树查询成功,查询结果:{}ms",(end-start)); return tree; } return null; }
/** * 查询子机构列表 * * @param org * @param children * @param directly 为true会多出一个直属节点,false就是所有节点 * @return */ private List<SspOrgTreeBean> findChildren(Organization org, List<Organization> children, boolean directly) { if (directly) { List<SspOrgTreeBean> treeList = new ArrayList<>(); SspOrgTreeBean treeBean = new SspOrgTreeBean(); treeBean.setId(org.getOrgUuid()+"_noall"); treeBean.setText(org.getOrgNm()+"(直属)"); List<SspOrgTreeBean> childList = new ArrayList<>(); listOrgUuid.add(org.getOrgUuid()); if(null != children && children.size() > 0){ for(Organization childOrg : children){ SspOrgTreeBean childBean = new SspOrgTreeBean(); childBean.setId(childOrg.getOrgUuid()); childBean.setText(childOrg.getOrgNm()); childBean.setChildren(findChildren(childOrg,orgService.queryOrgByParentOrgUuid(childOrg),directly)); childList.add(childBean); } } treeList.add(treeBean); treeList.addAll(childList); return treeList; } else { List<SspOrgTreeBean> childList = new ArrayList<>(); for(Organization childOrg : children){ SspOrgTreeBean childBean = new SspOrgTreeBean(); childBean.setId(childOrg.getOrgUuid()); childBean.setText(childOrg.getOrgNm()); childBean.setChildren(findChildren(childOrg,orgService.queryOrgByParentOrgUuid(childOrg),directly)); childList.add(childBean); } return childList; } }