首页 > 其他 > 详细

lambda实现组织机构树

时间:2021-02-05 19:19:38      阅读:43      评论:0      收藏:0      [点我收藏+]
@Override
public Map<String, Object> orgList() {
Map<String,Object> map = new HashMap<>();
//2、从redis中获取所有组织机构信息 也可通过sql查询所有菜单
List<CacheOrgDto> cacheOrgDtoList = cache.queryAllCacheOrgFromRedis();
//将从缓存获取的组织机构信息赋值到自己的机构list中
List<ZhzsOrgDto> newList = cacheOrgDtoList.stream().map(e -> {
ZhzsOrgDto t = new ZhzsOrgDto();
BeanUtils.copyProperties(e, t);
return t;
}).collect(Collectors.toList());
//获取登录人组织机构信息
String orgId = "340100000000";//合肥市公安局
List<ZhzsOrgDto> children = newList.stream().filter(t -> t.getParentId().equals(orgId))
.map((menu) -> {
menu.setChildren(this.getChildren(menu,newList));
return menu;
}).collect(Collectors.toList());
ZhzsOrgDto zhzsOrgDto = newList.stream().filter(p -> p.getId().equals(orgId)).findAny().orElse(null);
zhzsOrgDto.setChildren(children);
map.put("data",zhzsOrgDto);
map.put("code",200);
return map;
}

private List<ZhzsOrgDto> getChildren(ZhzsOrgDto root,List<ZhzsOrgDto> all){
List<ZhzsOrgDto> childrenList = all.stream().filter(p -> p.getParentId().equals(root.getId()))
.map(g -> {
//递归找子菜单
g.setChildren(getChildren(g,all));
return g;
}).collect(Collectors.toList());
return childrenList;
}

lambda实现组织机构树

原文:https://www.cnblogs.com/cpnn/p/14378444.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!