组织架构树按从上到下顺序排列放入list

import java.io.Serializable;

/**
 * 部门基本bean
*/
public class Department implements  Serializable{
    
    private static final long serialVersionUID = 1L;
    
    /**
     * id
     */
    private String id;
    /**
     * 部门编号
     */
    private String orgDepId;
    /**
     * 部门名称
     */
    private String orgDepName;
    /**
     * 父节点
     */
    private String parentId;
    /**
     * 部门类别
     */
    private String organizationType;
    
    
    
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getOrgDepId() {
        return orgDepId;
    }
    public void setOrgDepId(String orgDepId) {
        this.orgDepId = orgDepId;
    }
    public String getOrgDepName() {
        return orgDepName;
    }
    public void setOrgDepName(String orgDepName) {
        this.orgDepName = orgDepName;
    }
    public String getParentId() {
        return parentId;
    }
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    public String getOrganizationType() {
        return organizationType;
    }
    public void setOrganizationType(String organizationType) {
        this.organizationType = organizationType;
    }
    
    
}


	

创建一个类保存组织架构树结构

package com.dx.finance.web.depbudget.service;

import java.util.ArrayList;
import java.util.List;

import com.dx.project.domain.org.Department;

public class TreeSort {
        //节点的部门
        private Department dep;
        //子节点列表
        private List<TreeSort> list;
	
	
	public TreeSort(Department dep){
		this.dep = dep;
		list = new ArrayList<>();
	}


	public Department getDep() {
		return dep;
	}


	public void setDep(Department dep) {
		this.dep = dep;
	}


	public List<TreeSort> getList() {
		return list;
	}


	public void setList(List<TreeSort> list) {
		this.list = list;
	}
	
	
}

	/**
	 * 
	 * @param orgs  无序的组织架构数据
	 * @param root  
	 * @return
	 */
    public static List<Department>  sortDep(List<Department> orgs, Department root){
		
		TreeSort treesort = new TreeSort(root);
		sort(orgs,treesort);
		
		List<Department> list = new ArrayList<>();
		addToList(treesort,list);
		return list;
		
	}

private static void sort(List<Department> orgs, TreeSort treeSort){
		  //遍历数据,将节点置于父节点类的list中
                 for(Department dep : orgs){
			if(dep.getParentId().equals(treeSort.getDep().getOrgDepId())){
				TreeSort tree = new TreeSort(dep);
				treeSort.getList().add(tree);
				sort(orgs,tree);
			}
		}
	}

前序遍历树结构,结果加入list

private static void addToList(TreeSort treesort, List<Department> list) {
		list.add(treesort.getDep());
		if(!treesort.getList().isEmpty()){
			for(TreeSort t : treesort.getList()){
				addToList(t, list);
			}
		}
	}



测试(为方便测试,以上方法都未静态方法,实际不需要)

public static void main(String[] args) {
		
		String str = "[{\"id\":\"20180420125307889f2f1653df0a94d03b525bc86422da3f4\",\"parentId\":\"0\",\"orgDepName\":\"122334\",\"orgDepId\":\"1\",\"organizationType\":\"org\"},{\"id\":\"2018042012533728920508aa67ce34802aea3523e0c80a5d7\",\"parentId\":\"1\",\"orgDepName\":\"安抚\",\"orgDepId\":\"20180420125337289719ec7b80c7e4bd8b402c17bbacb545a\",\"organizationType\":\"org\"},{\"id\":\"20180420125307909d21476c6cbe14907bbe544a3a152bb77\",\"parentId\":\"1\",\"orgDepName\":\"总经理办公室\",\"orgDepId\":\"Z00000001\",\"organizationType\":\"dep\"},{\"id\":\"201804201253311181bc0c93a8f6148f88c429129a54c3e75\",\"parentId\":\"Z00000001\",\"orgDepName\":\"失败\",\"orgDepId\":\"201804201253311182799983c88e94fcaa62f8a0a49a5b3a5\",\"organizationType\":\"dep\"},{\"id\":\"20180420125343464fa701617a6b549f8815d7793d50dd612\",\"parentId\":\"20180420125337289719ec7b80c7e4bd8b402c17bbacb545a\",\"orgDepName\":\"安慰法\",\"orgDepId\":\"20180420125343464a18026dc45914c3db7725aeac1650005\",\"organizationType\":\"dep\"},{\"id\":\"2018042012534844948f15dd7cc2a4f95ba91e4de6e54366e\",\"parentId\":\"20180420125337289719ec7b80c7e4bd8b402c17bbacb545a\",\"orgDepName\":\"啊儿\",\"orgDepId\":\"2018042012534844910fa08e0398f4d59aae9b60e05daaa11\",\"organizationType\":\"dep\"},{\"id\":\"2018042012535500914690954bf844592a1e05a3e7add842e\",\"parentId\":\"20180420125343464a18026dc45914c3db7725aeac1650005\",\"orgDepName\":\"请4日报\",\"orgDepId\":\"20180420125355009164ebb248a8d40068876a57d4e109fc3\",\"organizationType\":\"dep\"},{\"id\":\"2018042012540655922f4c939570c47b7800a169884d5be3e\",\"parentId\":\"1\",\"orgDepName\":\"确认全部\",\"orgDepId\":\"201804201254065581401a9d7281c40038e772b512180dc6c\",\"organizationType\":\"dep\"},{\"id\":\"20180420125412753f0b748a7649b4a189dd26cb20a1e69d0\",\"parentId\":\"1\",\"orgDepName\":\"亲爱太突然\",\"orgDepId\":\"20180420125412753fb5ed97bcb2a4812920de5ff0d3681c4\",\"organizationType\":\"dep\"},{\"id\":\"2018042012541830496920efecfeb4a94b76d961dcad45fa6\",\"parentId\":\"201804201254065581401a9d7281c40038e772b512180dc6c\",\"orgDepName\":\"强弱5他\",\"orgDepId\":\"201804201254183047b379adec4134369b3a1e4f03cf6fced\",\"organizationType\":\"dep\"},{\"id\":\"2018042012542220296584c68b2904c26b006b7039ec8064b\",\"parentId\":\"201804201254183047b379adec4134369b3a1e4f03cf6fced\",\"orgDepName\":\"全4让\",\"orgDepId\":\"2018042012542220264f8edfb9f9a41cc89868ddeab4c0fe3\",\"organizationType\":\"dep\"},{\"id\":\"20180420125425949c9d0cc13ffeb4e70875531eb6d2ac547\",\"parentId\":\"2018042012542220264f8edfb9f9a41cc89868ddeab4c0fe3\",\"orgDepName\":\"请4软\",\"orgDepId\":\"201804201254259497eef5fd4c533493f999a09a91e12423e\",\"organizationType\":\"dep\"},{\"id\":\"20180420125431385230e075f34c346bab3c470a6278301f1\",\"parentId\":\"2018042012542220264f8edfb9f9a41cc89868ddeab4c0fe3\",\"orgDepName\":\"阿尔高\",\"orgDepId\":\"20180420125431385656756baa1104b22a41e0371315a3897\",\"organizationType\":\"dep\"},{\"id\":\"20180420125436033b2c36c767e214630926aa206aaae6e02\",\"parentId\":\"2018042012542220264f8edfb9f9a41cc89868ddeab4c0fe3\",\"orgDepName\":\"阿尔高投入\",\"orgDepId\":\"201804201254360335109d9fcfe8e4749abf8b429bd1c8cd5\",\"organizationType\":\"dep\"},{\"id\":\"2018042012544122960198a0563ab49adb600bae064e4e791\",\"parentId\":\"201804201254065581401a9d7281c40038e772b512180dc6c\",\"orgDepName\":\"安全感\",\"orgDepId\":\"201804201254412291d10a40d5e164707ae5e264df10f7628\",\"organizationType\":\"dep\"},{\"id\":\"2018042012544615763d7be68529d4e01adde9a3241eaa9af\",\"parentId\":\"2018042012534844910fa08e0398f4d59aae9b60e05daaa11\",\"orgDepName\":\"啊儿格瑞特\",\"orgDepId\":\"20180420125446157ba5170b4b1d9472191c0ee58caacf032\",\"organizationType\":\"dep\"},{\"id\":\"2018042012545632673ab86e93de54ef286d37abfabca1d84\",\"parentId\":\"20180420125446157ba5170b4b1d9472191c0ee58caacf032\",\"orgDepName\":\"阿二锅头\",\"orgDepId\":\"201804201254563267c45b1807bb44858a99d117174633bb5\",\"organizationType\":\"dep\"},{\"id\":\"201804201255021467a6440aad5da455b93f3c983b35f1388\",\"parentId\":\"20180420125446157ba5170b4b1d9472191c0ee58caacf032\",\"orgDepName\":\"阿尔高购房人\",\"orgDepId\":\"20180420125502146a25260f169714c069e9788be5a41226c\",\"organizationType\":\"dep\"},{\"id\":\"201804201255110885226d88554254e368cb1ec945155f720\",\"parentId\":\"20180420125446157ba5170b4b1d9472191c0ee58caacf032\",\"orgDepName\":\"啊儿爱如风\",\"orgDepId\":\"2018042012551108848e2de67a63345fca413e53b8e9134e8\",\"organizationType\":\"dep\"}]";
		
		List<Department> list= JSONObject.parseArray(str, Department.class);
		
		List<Department> sortDep = sortDep(list, list.get(0));
		
		for(Department dep : sortDep){
			System.out.println(dep.getOrgDepName());
		}

	}

结果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值