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

news/2024/7/7 12:51:36

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)方法

看注释

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

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

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

部门删除

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


http://www.niftyadmin.cn/n/3651734.html

相关文章

在排序数组中查找元素的第一个和最后一个位置 java篇 leetcode

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶: 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗&#xff1…

Python Cookbook 第二版 汉化版 [00-2-Preface] Part 2

0.5 Organization0.5 本书的组织本书共 20 章。每一章专门讨论某一类型的 recipe ,比如算法、文本处理、数据库等。本书第一版仅 17 章。自第一版以来,Python 在语言设施和程序库两方面有了进步,Python 社区也在 cookbook 网站上新贴了大量的…

删除有序数组中的重复项 leetcode java篇

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分…

懒人的Python技巧#20060706

很多工作经常是在同时打开了N个窗口,搞不好还开着Photoshop和/或Illustrator的情况下进行。如此负荷,再快的电脑也照给“沙漏”。然而即使是在这样的情形之下,还经常会遇到“希望把Word文档转为文本文件”的需求——这大约是Word的滥用和优秀…

移除元素 leetcode java篇

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面…

懒人的Python技巧#20060708

National Geographic 的网站上有一个 Photo of the Day (POTD)栏目:http://lava.nationalgeographic.com/pod/ (当天的墙纸)http://lava.nationalgeographic.com/cgi-bin/pod/archive.cgi (以前的墙纸Archi…

Python Cookbook 第二版 汉化版 [00-1-Info]

Python Cookbook 第二版 汉化版David Ascher, Alex Martelli, Anna Ravenscroft 著出版社: OReilly出版日期: March 2005ISBN: 0-596-00797-3页码数目: 844 页同本书第一版一样,第二版汇集了 Python 程序员遇到的常见问题的解决办法。第二版针对 Python 2.4 做了相应…

搜索插入位置 leetcode java篇

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 p.s. 用移位操作符时一定要打括号,不然优先级太后面了,会导致死循环…