package cn.huge.base.common.utils;
|
|
import cn.huge.base.common.dto.SelectTermDTO;
|
import org.apache.commons.lang3.StringUtils;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @title: list集合工具
|
* @description: list集合工具
|
* @company: hugeinfo
|
* @author: liyj
|
* @time: 2021-11-05 16:51:48
|
* @version: 1.0.0
|
*/
|
public class SelectTermUtils {
|
|
/**
|
* 根节点标志
|
*/
|
public static final String ROOT = "root";
|
|
/**
|
* 创建某一级集合下树形结构
|
* @param selectTermDTOS 所有集合
|
* @param firstId 某一级组织编号
|
* @return List
|
*/
|
public static List<SelectTermDTO> createTreeByFirst(List<SelectTermDTO> selectTermDTOS, String firstId) {
|
List<SelectTermDTO> firstMapList= new ArrayList<>();
|
for (SelectTermDTO selectTermDTO : selectTermDTOS){
|
for(SelectTermDTO selectTermDTOParam : selectTermDTOS) {
|
if (selectTermDTOParam.getValue().equals(selectTermDTO.getParentId())) {
|
addToMBean(selectTermDTOParam, selectTermDTO);
|
break;
|
}
|
}
|
}
|
//取第一级节点
|
for (SelectTermDTO selectTermDTO : selectTermDTOS){
|
if (firstId.equals(selectTermDTO.getValue())) {
|
firstMapList.add(selectTermDTO);
|
}
|
}
|
return firstMapList;
|
}
|
|
/**
|
* 创建根级集合下树形结构
|
* @param selectTermDTOS 所有集合
|
* @return List
|
*/
|
public static List<SelectTermDTO> createTreeByRoot(List<SelectTermDTO> selectTermDTOS) {
|
List<SelectTermDTO> firstMapList= new ArrayList<>();
|
for (SelectTermDTO selectTermDTO : selectTermDTOS){
|
for(SelectTermDTO selectTermDTOParam : selectTermDTOS) {
|
if (selectTermDTOParam.getValue().equals(selectTermDTO.getParentId())) {
|
addToMBean(selectTermDTOParam, selectTermDTO);
|
break;
|
}
|
}
|
}
|
//取第一级节点
|
for (SelectTermDTO dept: selectTermDTOS){
|
firstMapList.add(dept);
|
}
|
return firstMapList;
|
}
|
|
/**
|
* 获取集合的子级集合
|
* @param targetUnit 目标集合
|
* @param currentUnit 子级集合
|
*/
|
public static void addToMBean(SelectTermDTO targetUnit, SelectTermDTO currentUnit){
|
List<SelectTermDTO> childlistObj = targetUnit.getChildren();
|
List<SelectTermDTO> childList = null;
|
if(childlistObj == null) {
|
childList = new ArrayList();
|
targetUnit.setChildren(childList);
|
}else{
|
childList = childlistObj;
|
}
|
childList.add(currentUnit);
|
}
|
}
|
/**
|
* -------------------_ooOoo_-------------------
|
* ------------------o8888888o------------------
|
* ------------------88" . "88------------------
|
* ------------------(| -_- |)------------------
|
* ------------------O\ = /O------------------
|
* ---------------____/`---'\____---------------
|
* -------------.' \\| |// `.-------------
|
* ------------/ \\||| : |||// \------------
|
* -----------/ _||||| -:- |||||- \-----------
|
* -----------| | \\\ - /// | |-----------
|
* -----------| \_| ''\---/'' | |-----------
|
* -----------\ .-\__ `-` ___/-. /-----------
|
* ---------___`. .' /--.--\ `. . __----------
|
* ------."" '< `.___\_<|>_/___.' >'"".-------
|
* -----| | : `- \`.;`\ _ /`;.`/ - ` : | |-----
|
* -----\ \ `-. \_ __\ /__ _/ .-` / /-----
|
* ======`-.____`-.___\_____/___.-`____.-'======
|
* -------------------`=---='
|
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
* ---------佛祖保佑---hugeinfo---永无BUG----------
|
*/
|