一、功能概述

部门管理模块基于auth_dept表实现树形层级管理,支持部门的新增、修改、删除、状态切换及排序等操作,通过parent_idhierarchyancestors等字段维护部门间的父子关系,同时限制最大层级为5级。系统通过auth_user_dept表关联用户与部门,实现人员的组织架构管理,确保部门操作符合业务规则(如存在用户或子部门时禁止删除)。

二、核心功能说明

(一)新增部门

  1. 操作路径:部门列表点击「新增」按钮,选择父部门后填写表单

  2. 系统自动填充字段

    • dept_id:自动生成36位UUID
    • create_date/create_user_id:当前操作信息
    • hierarchy:层级(父部门层级+1)
    • ancestors:祖先ID列表(父部门祖先+父部门ID)
    • top_dept_id:顶级部门ID(根部门为自身ID)
    • sort:排序号(同层级最大排序+1)
  3. 层级限制

    • 最大层级为5级,超过时提示“部门不能超过5级”
    • 根部门层级为1,ancestors为空
  4. 唯一性校验:同一父部门下部门名称不可重复,重复时提示“部门名称已存在,请勿重复添加”

(二)修改部门

  1. 操作路径:部门列表点击目标部门「修改」按钮,更新表单后保存
  2. 可修改字段:部门名称、父部门、状态、备注、排序号
  3. 不可修改字段dept_id(主键不可修改)
  4. 层级调整影响
    • 变更父部门时自动更新hierarchyancestorstop_dept_id
    • 调整后若子部门层级超过5级,提示“部门不能超过5级”
  5. 唯一性校验:与新增规则相同,排除当前部门自身记录
  6. 特殊限制:父部门不能选择自身,否则提示“父部门不能为自身”

(三)删除部门

  1. 操作路径:部门列表点击「删除」按钮,支持批量选择删除
  2. 删除限制
    • 存在关联用户时禁止删除,提示“[部门名称]下存在用户,不允许删除”
    • 存在子部门时禁止删除,提示“该部门下存在其他部门,不允许删除”
    • 必须选择至少一个部门,否则提示“请选择要删除的内容”
  3. 删除逻辑
    • 执行物理删除(deleteBatchIds
    • 返回删除成功的部门数量
  4. 关联检查
    • 通过auth_user_dept表检查是否关联用户
    • 通过ancestors字段检查是否存在子部门

(四)状态切换

  1. 操作路径:部门列表点击「启用」/「停用」按钮
  2. 状态转换规则
    • 正常状态(1)→ 点击后变为停用(0)
    • 停用状态(0)→ 点击后变为正常(1)
  3. 操作限制:部门不存在时提示“部门不存在”

(五)部门排序

  1. 操作路径:部门列表点击「拖拽」图标,拖拽调整顺序后保存
  2. 实现逻辑:批量更新sort字段,按调整后的顺序赋值
  3. 生效范围:按sort升序排列

三、部门层级与树形结构说明

  1. 层级字段说明

    字段含义示例(三级部门)
    parent_id父部门ID二级部门ID
    hierarchy当前层级3
    ancestors祖先ID链一级部门ID,二级部门ID
    top_dept_id顶级部门ID一级部门ID
  2. 树形结构构建

    • 通过parent_id递归关联子部门
    • 根部门parent_id为空,hierarchy=1
    • 最多支持5级部门,超过则禁止新增

四、数据校验规则

  1. 必填校验:部门ID、名称等关键参数不能为空
  2. 业务规则校验
    • 部门删除前检查是否存在用户(关联auth_user_dept
    • 部门删除前检查是否存在子部门(通过ancestors包含当前部门ID判断)
    • 层级调整时确保不超过5级
  3. 状态校验:操作前验证部门是否存在,不存在则提示“部门不存在”

五、部门与用户关联说明

  1. 关联关系:用户与部门为多对多关系(通过auth_user_dept表实现)
  2. 关联限制
    • 部门存在关联用户时禁止删除
    • 部门负责人通过principal=1标记
  3. 数据同步:部门状态变更不影响用户关联,但停用部门的用户在组织架构中标记为“停用部门”