|  |  | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import com.ruoyi.common.annotation.DataScope; | 
 |  |  | import com.ruoyi.common.constant.UserConstants; | 
 |  |  | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 部门管理 服务实现 | 
 |  |  |  *  | 
 |  |  |  * | 
 |  |  |  * @author ruoyi | 
 |  |  |  */ | 
 |  |  | @Service | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SysRoleMapper roleMapper; | 
 |  |  |  | 
 |  |  |     @Value("${isAdmin}") | 
 |  |  |     private  List<Long> isAdmin; | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 查询部门管理数据 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param dept 部门信息 | 
 |  |  |      * @return 部门信息集合 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 查询部门树结构信息 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param dept 部门信息 | 
 |  |  |      * @return 部门树信息集合 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 构建前端所需要树结构 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param depts 部门列表 | 
 |  |  |      * @return 树结构列表 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 构建前端所需要下拉树结构 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param depts 部门列表 | 
 |  |  |      * @return 下拉树结构列表 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据角色ID查询部门树信息 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param roleId 角色ID | 
 |  |  |      * @return 选中部门列表 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据部门ID查询信息 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param deptId 部门ID | 
 |  |  |      * @return 部门信息 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据ID查询所有子部门(正常状态) | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param deptId 部门ID | 
 |  |  |      * @return 子部门数 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 是否存在子节点 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param deptId 部门ID | 
 |  |  |      * @return 结果 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 查询部门是否存在用户 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param deptId 部门ID | 
 |  |  |      * @return 结果 true 存在 false 不存在 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 校验部门名称是否唯一 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param dept 部门信息 | 
 |  |  |      * @return 结果 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 校验部门是否有数据权限 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param deptId 部门id | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public void checkDeptDataScope(Long deptId) | 
 |  |  |     { | 
 |  |  |         if (!SysUser.isAdmin(SecurityUtils.getUserId())) | 
 |  |  | //        if (!SysUser.isAdmin(SecurityUtils.getUserId())) | 
 |  |  |         if (!isAdmin.contains(SecurityUtils.getUserId())) | 
 |  |  |         { | 
 |  |  |             SysDept dept = new SysDept(); | 
 |  |  |             dept.setDeptId(deptId); | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 新增保存部门信息 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param dept 部门信息 | 
 |  |  |      * @return 结果 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 修改保存部门信息 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param dept 部门信息 | 
 |  |  |      * @return 结果 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 修改该部门的父级部门状态 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param dept 当前部门 | 
 |  |  |      */ | 
 |  |  |     private void updateParentDeptStatusNormal(SysDept dept) | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 修改子元素关系 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param deptId 被修改的部门ID | 
 |  |  |      * @param newAncestors 新的父ID集合 | 
 |  |  |      * @param oldAncestors 旧的父ID集合 | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 删除部门管理信息 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param deptId 部门ID | 
 |  |  |      * @return 结果 | 
 |  |  |      */ |