@Override
public List<RegulationTypeTreeVo> getAllDicRegulationType(String parentcode) {
List<DicRegulationType> typeList = baseMapper.selectList(new QueryWrapper<DicRegulationType>()
.eq("BSTOP", "0 ")
.eq("BLAST", "0")
.orderByAsc("REGULATIONTYPECODE"));
List<RegulationTypeTreeVo> reTypeTreeVoList = typeList.stream().map(m -> {
RegulationTypeTreeVo regulationTypeTreeVo = new RegulationTypeTreeVo();
regulationTypeTreeVo.setValue(m.getRegulationtypecode());
regulationTypeTreeVo.setLabel(m.getRegulationtypename());
regulationTypeTreeVo.setParentcode(m.getParentcode());
return regulationTypeTreeVo;
}).collect(Collectors.toList());
List<RegulationTypeTreeVo> collect = reTypeTreeVoList.stream().filter(e ->
StringUtils.isEmpty(e.getParentcode()) //查询父类
).map((menu) -> {
menu.setChildren(getChildrens(menu, reTypeTreeVoList)); //查询子类菜单
return menu;
}).collect(Collectors.toList());
return collect;
}
//递归查找所有菜单的子类菜单
private List<RegulationTypeTreeVo> getChildrens(RegulationTypeTreeVo type,List<RegulationTypeTreeVo> all){
List<RegulationTypeTreeVo> children = all.stream().filter(e ->
StringUtils.equals(e.getParentcode(), type.getValue())
).map(m -> {
//1、递归找到子菜单
m.setChildren(getChildrens(m, all));
return m;
}).collect(Collectors.toList());
return children;
}
stream树菜单递归
于 2022-08-11 13:46:26 首次发布