/**
* hutool 树结构工具
* @param systems
* @return
*/
public static List<Tree<String>> getTrees(List<IcsNoVo> systems) {
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
//默认为id
treeNodeConfig.setIdKey("id");
//默认为parentId
treeNodeConfig.setParentIdKey("parentId");
//排序字段
treeNodeConfig.setWeightKey("level");
// 最大递归深度 todo 最大多少
treeNodeConfig.setDeep(10);
//2.转为树结构,其中rootId参数代表根节点的父级id值
List<Tree<String>> treeList = TreeUtil.build(systems, "0", treeNodeConfig,
(treeNode, tree)-> {
//对key进行映射赋值
tree.setId(String.valueOf(treeNode.getId()));
tree.setParentId(String.valueOf(treeNode.getParentId()));
tree.setWeight(treeNode.getLevel());
tree.setName(treeNode.getName());
});
return treeList;
}
实体
public class IcsNoVo {
private String id;
private String parentId;
private String level;
private String name;
public IcsNoVo() {
}
}