1. 程式人生 > >構建組織樹結構

構建組織樹結構

@Override
    public List<OrgTreeNode> getOrganizations() {

        Organization o = new Organization();

        o.setIsUsed(1);

        List<Organization> olist = organizationMapper.selectByState(o);

        List<OrgTreeNode> trees = new ArrayList<OrgTreeNode>();

        Map<String, List<OrgTreeNode>> map = new HashMap<String, List<OrgTreeNode>>();

        Map<String, OrgTreeNode> _map = new HashMap<String, OrgTreeNode>();

        OrgTreeNode node;
        for (Organization org : olist) {
            node = new OrgTreeNode();
            node.setId(org.getOrgCode());
            node.setName(org.getOrgName());
            node.setDesc(org.getOrgName());
            node.setpId(org.getParentOrgCode());
            node.setUrl(org.getArrayParentOrgId());
            node.setcId(org.getCompanyId());
            node.setLevel(org.getDeptType());

            _map.put(node.getId(), node);

            if (!map.containsKey(node.getpId())) {
                map.put(node.getpId(), new ArrayList<OrgTreeNode>());
            }
            map.get(node.getpId()).add(_map.get(node.getId()));

        }

        Iterator<Entry<String, OrgTreeNode>> i = _map.entrySet().iterator();

        Entry<String, OrgTreeNode> e;
        while (i.hasNext()) {
            e = i.next();
            if (map.containsKey(e.getKey())) {
                e.getValue().setTrees(map.get(e.getKey()));
            }
        }

        if (!map.isEmpty()) {
            trees.addAll(map.get(defalutOrgCode));
        }

        return trees;
    }

 

java類

public class OrgTreeNode implements Serializable {


    private static final long serialVersionUID = 5047714594030611046L;

    private String id;//當前組織編號
    
    private String pId;//父級組織編號
    
    private String name;//公司名稱
    
    private String desc;
    
    private String isComp;
    
    private String icon;
    
    private String url;//上下級連線關係
      
    private Long orgId;
    
    private String orgPath;
    
    private String comfullPath;
    
    private List<OrgTreeNode> trees;
    
    private String arrayParentCompanyId


    private Long companyId;


    private String companyName;


    private Long deptId;


    private String deptName;