//主管
Dept managerDept = deptUserUtil.getManagerDept(bean.getCreateDept(),bean.getCreateUser());
//上级主管
Dept directorDept = deptUserUtil.getManagerDept(managerDept.getId(),managerDept.getManagerUser());
//上上级主管
Dept presidentDept = deptUserUtil.getManagerDept(directorDept.getId(),directorDept.getManagerUser()); public class DeptUserUtil {
/**
* 根据部门deptId,获取上级部门(包含上级主管managerUser),区分用户userId
*/
public Dept getManagerDept(Long deptId,Long distinctUserId){
Dept dept = getDeptById(deptId);
if(dept==null){
return null;
}
Long managerUserId = dept.getManagerUser();
if(distinctUserId.equals(managerUserId)){
dept = getManagerDept(dept.getParentId(),distinctUserId);
}
return dept;
} /**
* 根据部门deptId,获取上级部门(包含上级主管managerUser),区分用户userId,设置上级部门上限
* 部门等级 level : 1 -> 10 最高级 -> 最低级
*/
public Dept getManagerDept(Long deptId,Long distinctUserId,Integer level){
Dept dept = getDeptById(deptId);
if(dept==null){
return null;
}
Integer managerDeptLevel = dept.getLevel();
Long managerUserId = dept.getManagerUser();
if(managerDeptLevel.compareTo(level)<0){
return null;
}
if(distinctUserId.equals(managerUserId)){
dept = getManagerDept(dept.getParentId(),distinctUserId,level);
}
return dept;
}
}

最新文章

  1. ArcGIS Engine开发之地图浏览
  2. WebView 的使用----android 网络连接处理分析
  3. angularjs 作用域
  4. 【ImageView】ImageView点击事件报错空指针
  5. JSP+JavaBean+Servlet+Oracle新增功能中对Date类型的字段的处理
  6. 输出单向链表中倒数第k个结点
  7. 你值得拥有:25个Linux性能监控工具
  8. ActionBarCompat
  9. mysql 5.7.16多源复制
  10. PHP关闭Notice错误提示
  11. HTML5 Canvas JavaScript库 Fabric.js 使用经验
  12. MCM1988 问题B_lingo_装货问题
  13. struts2之动态方法调用(转)
  14. c语言面试题(感觉比较好的题目)
  15. gnu 扩展之#和##
  16. C++Primer学习——const
  17. Python的IO编程
  18. 普通用户添加sudo权限
  19. python 读fnl数据
  20. jw player 配置参数

热门文章

  1. 在EXCEL带有字母的数字下拉如何能自动排序
  2. 【服务总线 Azure Service Bus】Service Bus在使用预提取(prefetching)后出现Microsoft.Azure.ServiceBus.MessageLockLostException异常问题
  3. MySQL 当前时间,今日时间,前日时间 详解
  4. unittest框架中读取有特殊符号的配置文件内容的方法-configparser的RawConfigParser类应用
  5. MSSQL 2014数据库Alwayson下日志过大,压缩日志的处理方法
  6. Feign 自定义 ErrorDecoder (捕获 Feign 服务端异常)
  7. 第10.1节 Python的模块及模块导入
  8. PyQt(Python+Qt)学习随笔:Qt Designer中部件的是否接受鼠标拖放事件的acceptDrops属性及含义
  9. jquery 执行a 标签 点击事件 跳转href 路径
  10. 沪苏浙皖共同打造区块链数字经济发展高地,Panda Global表示区块链真的来了!