请选择 进入手机版 | 继续访问电脑版
MSIPO技术圈 首页 IT技术 查看内容

ruoyi若依 组织架构设计--[ 部门管理 ]

2023-07-13

ruoyi若依 组织架构设计--[ 部门管理 ]

部门管理

部门查询

需要注意的是,部门管理也有数据权限,比如A用户分配的数据权限(通过角色分配)是深圳总公司,那么A用户登录后看到的部门也是深圳总公司B用户分配的是长沙分公司也是如此。同时,A用户在深圳总公司下增删改查部门,B用户也看不到

在这里插入图片描述

部门新增

新增的时候,重点关注一下ancestors字段是怎么新增的。
通过传入上级部门(parent_id),查询到了ancestors。然后再拼上前端传过去的dept_id

在这里插入图片描述
在这里插入图片描述

  1. 前端代码
  1. 新增的时候,先获取所有的部门的List,然后前端处理成树型结构
  2. 新增的时候,将当前行的dept_id,赋值到parent_id上,用于传给后端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 后端代码
  1. 新增的时候,是否有`重名的dept
  2. 查询的ancestors 拼上前端传的parent_id,组成新的ancestors
  3. dept_id表的单表插入

在这里插入图片描述
在这里插入图片描述

  1. 从数据库的角度看刚才的新增逻辑
    在这里插入图片描述

在清华大学下面添加管理学院

  1. 前端渲染所有的树型结构,并获取清华大学数据的dept_id,将来传给后端
  2. 添加管理学院的时候,根据清华大学的parent_id,查询到清华大学的ancestors。
  3. 再拼上前端传来的parent_id。也就是 0 + 100.所以管理学院的ancestors是0,100

部门修改

需求:修改管理学院

前端页面:
在这里插入图片描述
在这里插入图片描述

重点关注 ancestors 是怎么修改的

  1. 前端页面方面,先根据id查询数据并展示
  1. 检查是否有权限修改部门数据
  2. 有权限的话,根据id查询数据,用于前端展示

在这里插入图片描述
在这里插入图片描述

  1. 后端接口方面

这个时候需要注意 ancestors 字段

在这里插入图片描述

停用的话,需要检查下级所有都停用了,当前部门才能停用
count() 一下status = ‘0’ 且 find_in_set 一下ancestors
如果count(
) 的数量 > 0 代表有status 有未停用的,则新增不成功

在这里插入图片描述
在这里插入图片描述

重点:修改ancestors的规则
deptService.updateDept(dept)方法

看注释

在这里插入图片描述
在这里插入图片描述

如果当前部门启用了,所有上级部门也得启用
批量修改

在这里插入图片描述
在这里插入图片描述

部门删除

在这里插入图片描述
在这里插入图片描述

相关阅读

手机版|MSIPO技术圈 皖ICP备19022944号-2

Copyright © 2024, msipo.com

返回顶部