实体类:
@Data
@TableName("national_industry")
public class TNationalIndustry {
/**主键id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键id")
private Integer id;
/**编码*/
@Excel(name = "编码", width = 15)
@ApiModelProperty(value = "编码")
private String code;
/**名称*/
@Excel(name = "名称", width = 15)
@ApiModelProperty(value = "名称")
private String name;
/**父级编码*/
@Excel(name = "父级编码", width = 15)
@ApiModelProperty(value = "父级编码")
private String parentCode;
/**是否叶子节点: 1:是 0:不是*/
@Excel(name = "是否叶子节点: 1:是 0:不是", width = 15)
@ApiModelProperty(value = "是否叶子节点: 1:是 0:不是")
private Boolean isLeaf;
/**级别*/
@Excel(name = "级别", width = 15)
@ApiModelProperty(value = "级别")
private String sort;
@TableField(exist = false)
@ApiModelProperty(value = "子级")
private List<TNationalIndustry> children;
}
转换方法:
private List<TNationalIndustry> getTreeList(List<TNationalIndustry> treeList, String code) {
List<TNationalIndustry> collect = treeList.stream()
//过滤父节点与传递的id相同的TreeNode对象
.filter(treeNode -> treeNode.getParentCode().equals(code))
.map(treeNode -> {
//递归设置孩子节点
treeNode.setChildren(getTreeList(treeList, treeNode.getCode()));
return treeNode;
})
.collect(Collectors.toList());
return collect;
}