1.实体bean结构
public class DmpDictVo {
@ApiModelProperty(value = "数据id")
private String id;

@ApiModelProperty(value = "父id")
private String pid;

@ApiModelProperty(value = "描述")
private String name;

  //初始化 children 避免报空指针异常
    List<DmpDictVo> children = new ArrayList<>();
}


// 根据自己的业务编写
private List<DmpDictVo> searchFatherDmpDict() {
 // 查询出所有的数据字典
List<QaCategoryVo> qaCategoryVoList = findAll(type);
// 递归封装数据

return makeTree(qaCategoryVoList, -1L);

 */

private List<QaCategoryVo> makeTree(List<QaCategoryVo> departmentList, Long pId) {

//子类
List<QaCategoryVo> children = departmentList.stream().filter(x -> x.getPid().equals(pId)).collect(Collectors.toList());
// 排序
children = children.stream().sorted(Comparator.comparing(QaCategoryVo::getSort, Comparator.nullsLast(Integer::compareTo)).reversed()).collect(Collectors.toList());
  
if(children.isEmpty()){
return null;
}
//后辈中的非子类
List<QaCategoryVo> successor = departmentList.stream().filter(x -> !x.getPid().equals(pId)).collect(Collectors.toList());

for (QaCategoryVo x : children) {
List<QaCategoryVo> qaCategoryVos = makeTree(successor, x.getId());
x.setChildren(qaCategoryVos);
}
return children;

}

相关文章:

  • 2022-12-23
  • 2021-06-15
  • 2022-01-01
  • 2022-12-23
猜你喜欢
  • 2021-11-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-18
  • 2022-01-04
  • 2022-12-23
  • 2022-02-26
相关资源
相似解决方案