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 createTreeByFirst(List selectTermDTOS, String firstId) { List 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 createTreeByRoot(List selectTermDTOS) { List 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 childlistObj = targetUnit.getChildren(); List 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---------- */