由于博主太菜,就直接上图了,结果是正确的。

1:首先看下数据库

2:对应的实体类

3:mapper.xml和mapper.java

再xml中根据限定条件查询出当前所有的部门集合

4:在serviceImpl中做逻辑处理,最后用递归求出结果。

public class PostTotalNumServiceImpl implements PostTotalNumService {

/**

* 根据部门ID获取该部门及其下属部门的ID集合

*/

public List getDeptIdList(String deptId) {

Department department = this.getDepartment(deptId);

List deptIdList = new ArrayList<>();

if (department != null) {

deptIdList.add(department.getId());

deptIdList = addDeptIdList(deptIdList, department);

}

return deptIdList;

}

/**

* 根据部门ID获取该部门及其下属部门树

*/

public Department getDepartment(String deptId) {

List departments = departmentMapper.findAllDepartments();

Map map = departments.stream().collect(

Collectors.toMap(Department::getId, department -> department));

for (Department dept : map.values()) {

Department parent = map.get(dept.getPid());

if (parent != null) {

List children = parent.getChildren() == null ? new ArrayList<>() : parent.getChildren();

children.add(dept);

parent.setChildren(children);

}

}

return map.get(deptId);

}

public List addDeptIdList(List deptIdList, Department department) {

List children = department.getChildren();

if (children != null) {

for (Department d : children) {

deptIdList.add(d.getId());

addDeptIdList(deptIdList, d);

}

}

return deptIdList;

}

}

5:service接口

public interface PostTotalNumService {

/**

*查出当前部门和下属部门的集合

*/

List deptList(String pkDept);

}

6:junit单元测试

public class PostTest extends BaseTest {

@Autowired

private PostTotalNumService postService;

@Test

public void postTest(){

//查询当前部门及下属部门的集合

List strings = postService.deptList("1001K31000000003M1BT");

System.out.println(strings.size());

}

}

java用户里获取部门id_javaWeb开发,根据部门ID查询该部门和下属所有部门的ID集合...相关推荐

  1. 在普通java类里获取Spring管理的bean

    转自:http://blog.csdn.net/a9529lty/article/details/42145545 如何取得Spring管理的bean  (请用第3种方法): 1.servlet方式加 ...

  2. java 黑马头条 day4 自媒体文章发布 自媒体文章列表查询 频道列表展示 自媒体文章-发布、修改、保存草稿 自媒体文章-根据id查询 自媒体文章-删除

    1 自媒体文章列表查询 1.1 需求分析 1.2 表结构和实体类 wm_news 自媒体文章表 需求: 如果有文章标题,按照文章标题模糊查询 如果有频道信息,按照频道ID查询 如果有文章状态,按照状态 ...

  3. mybatis根据用户id查询角色以及角色对应的权限

    查询到的数据 {     "name": "admin",     "role": {         "id": 1, ...

  4. java读取微信消息_微信公众平台开发中使用Java如何实现获取用户的信息

    微信公众平台开发中使用Java如何实现获取用户的信息 发布时间:2020-11-18 15:09:28 来源:亿速云 阅读:93 作者:Leah 本篇文章为大家展示了微信公众平台开发中使用Java如何 ...

  5. java 钉钉获取用户信息,JAVA maven项目如何使用钉钉SDK来获取token、用户

    JAVA maven项目如何使用钉钉SDK来获取token.用户 发布时间:2020-07-17 10:52:32 来源:亿速云 阅读:102 作者:小猪 这篇文章主要为大家展示了JAVA maven ...

  6. Android 开发 Activity里获取View的宽度和高度 转载

    Android 开发 Activity里获取View的宽度和高度 转载 原文地址:https://blog.csdn.net/chenbaige/article/details/77991594 前言 ...

  7. 企业微信接收消息服务器配置php,微信企业号配置及在公众号里获取用户信息

    微信企业号配置及在公众号里获取用户信息 1.1.企业公众号里新建应用,回掉模式里自定义回调URL及密钥拿到,创建应答数据 配置成功后显示: 已成功配置企业服务器 URL http://75271.co ...

  8. 如何获取Java用户输入?

    本文翻译自:How can I get the user input in Java? I attempted to create a calculator, but I can not get it ...

  9. 使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化音乐推荐系统 在线音乐推荐网站 基于用户、项目的协同过滤推荐算法实现MusicRecommendSystemWeb

    使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化音乐推荐系统 在线音乐推荐网站 基于用户.项目的协同过滤推荐算法实现MusicRecommendSystemWeb ...

最新文章

  1. ifs 报表开发手册_房地产开发资质要求《暂定资质证书》相关规定
  2. CNVD-C-2019-48814 漏洞
  3. linux fedora35安装、登录postgresql-14数据库命令整理
  4. html5家谱资源网,免费家谱系统(ASP,Access,CSS,html5)
  5. 水平集嵌入函数的曲率
  6. 物联网全称_物联网的魔力世界
  7. 【Kafka】kafka消费者参数
  8. 如何化身BAT面试收割机?都是精髓!
  9. 读写分离架构的两种方式及问题
  10. 卫星通信系统按照工作轨道分类
  11. janusgraph 引入 java,janusgraph 默认server使用手记
  12. MyBatis中使用的一些特殊符号标识(大于等于、小于等于、等于、不等于)
  13. MYSQL的基础命令一
  14. 《Adobe Photoshop CS4中文版经典教程》目录—导读
  15. 中企海外周报 | 传祺GM6将亮相北美车展,锦江都城发力布局全球
  16. 生命密码是几适合学计算机,数字生命密码是什么?
  17. C++实现伪大素数生成算法(费马小定理判别法、米勒拉宾素数判定法)
  18. 【编程生活】自动化数据均分助手
  19. 网站被流量攻击了,如何解决
  20. EOS智能合约开发系列(十): 抵御彩虹攻击

热门文章

  1. 用与非门设计血型配对电路_电路板中与非门集成电路的控制原理
  2. 数据库存储模型-数据存储
  3. ES6的变量声明详述
  4. 社交网络图中结点的“重要性”计算 (30 分)【最高效解法】
  5. (*长期更新)软考网络工程师学习笔记——Section 12 Linux系统与文件管理命令
  6. Web前端开发笔记——第四章 JavaScript程序设计 第四节 条件语句和循环语句
  7. python 问题自动匹配解决方案_匹配字典集。最优雅的解决方案。Python
  8. 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制
  9. 这次来个BGP反射器的简单小实验
  10. ajax servlet设置响应,在jquery的请求ajax与在servlet中的响应ajax