You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
houqin-java/docs/03-业务流转逻辑-超级管理员.md

269 lines
11 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 超级管理员 — 业务流转逻辑
> 版本v4.0
> 超级管理员负责平台运营,管理账号、权限与系统配置,**不查看业务数据**。
> 端侧仅Web端
> 关联文档:`01-模块划分.md`v4.0)、`02-功能清单-超级管理员.md`
---
## 1. 新建使用单位流程
```
超级管理员登录后台
点击"新增使用单位"
┌─── 第1步填写医院信息 ────────────────────────┐
│ 医院名称 │
│ 医院地址 │
│ 院区列表(支持多院区): │
│ ├── 院区1主院区 / 地址 / 联系人 │
│ ├── 院区2东院区 / 地址 / 联系人 │
│ └── 院区3南院区 / 地址 / 联系人 │
└───────────────────────────────────────────────────┘
┌─── 第2步填写物业公司信息 ──────────────────────┐
│ 公司名称 / 公司地址 / 联系人 │
└───────────────────────────────────────────────────┘
┌─── 第3步创建医院账号 ──────────────────────────┐
│ 登录账号 / 初始密码 / 绑定医院 │
│ 设置账号有效期(必填,到期日) │
│ 分配角色(选择"医院查看模板"或其他预设模板) │
└───────────────────────────────────────────────────┘
┌─── 第4步创建物业公司管理员账号 ─────────────────┐
│ 登录账号 / 初始密码 / 绑定物业公司+医院 │
│ 设置账号有效期(必填,到期日) │
│ 分配角色(选择"物业管理员模板"或其他预设模板) │
└───────────────────────────────────────────────────┘
创建完成 → 自动记录操作日志
```
---
## 2. 账号可用性控制流程
```
超级管理员选择账号 → 启用/禁用
禁用时:
→ 账号立即无法登录
→ 已登录的session失效
→ 微信小程序端同步下线(数据来源:物业公司系统的下属账号)
→ 保留所有历史数据
→ 记录操作日志
启用时:
→ 账号恢复正常登录
→ 可选重置密码
→ 记录操作日志
```
---
## 3. 账号有效期与到期提醒流程
```
超级管理员创建/编辑医院或物业公司账号
设置账号有效期(到期日)
系统按到期提醒规则(超管在系统配置中设定的天数阈值)自动检测
到期前N天用户登录时弹出到期提醒弹窗
┌─── 弹窗行为 ────────────────────────┐
│ 提示"您的账号将于X天后到期" │
│ 用户点击"我知道了"关闭弹窗 │
│ 关闭后可正常使用,不影响功能 │
└──────────────────────────────────────┘
账号过期后
┌─── 过期行为 ────────────────────────┐
│ 账号禁止登录 │
│ 超级管理员可手动续期恢复 │
│ 记录续期操作日志 │
└──────────────────────────────────────┘
```
**到期账号管理流程:**
```
超级管理员进入"到期账号管理"
查看即将到期/已过期账号列表数据来源本系统sys_user表
选择账号 → 手动续期(修改有效期)
续期成功 → 账号恢复可用 → 记录操作日志
```
> **说明:** 物业下属人员(主管/员工)不单独设有效期,随物业公司管理员账号到期而自动失效。
---
## 4. 角色定义与权限分配流程
```
超级管理员进入"权限管理"
┌─── 第1步创建角色 ──────────────────────┐
│ 角色名称(自定义) │
│ 角色描述 │
│ 适用范围(医院账号/物业管理员/物业下属) │
│ 选择预设模板(可选,选择后自动填充权限) │
└──────────────────────────────────────────┘
┌─── 第2步分配权限四级树形勾选 ────────────────────────┐
│ ☑ 功能菜单:在线报修 │
│ ├── ☑ 页面:工单列表 │
│ │ ├── ☑ 功能点:工单管理 │
│ │ │ ├── ☑ 查看 ☑ 新增 ☑ 编辑 │
│ │ │ ├── ☐ 删除 ☐ 审批 ☑ 导出 ☑ 分配 │
│ │ └── ☑ 功能点:批量操作 │
│ │ ├── ☑ 查看 ☑ 新增 ☐ 编辑 │
│ │ └── ☐ 删除 ☐ 审批 ☐ 导出 ☐ 分配 │
│ ├── ☑ 页面:工单详情 │
│ │ ├── ☑ 功能点:延期审批 │
│ │ │ ├── ☑ 查看 ☐ 新增 ☐ 编辑 │
│ │ │ └── ☐ 删除 ☑ 审批 ☐ 导出 ☐ 分配 │
│ │ └── ☑ 功能点:工单验收 │
│ │ ├── ☑ 查看 ☐ 新增 ☐ 编辑 │
│ │ └── ☐ 删除 ☑ 审批 ☐ 导出 ☐ 分配 │
│ └── ☐ 页面:报修类型管理 │
│ ... │
│ ☐ 功能菜单:巡检管理 │
│ ... │
└───────────────────────────────────────────────────────────┘
┌─── 第3步保存角色 ──────────────────────┐
│ 记录权限审计日志(变更前后对比) │
│ 权限实时生效 │
└──────────────────────────────────────────┘
```
---
## 5. 权限自动同步流程
```
开发人员新增功能(菜单/页面/功能点)
在权限配置表中注册:
menu_code: "repair"
menu_name: "在线报修"
page_code: "repair_list"
page_name: "工单列表"
action_code: "repair_list_manage"
action_name: "工单管理"
available_actions: ["view","create","update","delete","approve","export","assign"]
系统启动时自动扫描权限配置表
权限管理页面自动渲染新的可勾选项
超级管理员可为角色分配新权限
记录权限变更审计日志
```
---
## 6. 权限实时生效流程
```
权限变更操作(超级管理员修改角色权限)
更新数据库权限记录
发送权限变更事件Redis Pub/Sub + Spring Event毫秒级生效
所有服务实例接收事件 → 刷新本地权限缓存
已登录用户下次操作时自动加载新权限(无需重新登录)
Web端下次页面跳转/刷新时加载新权限 → 动态更新菜单和按钮
小程序端(数据来源:物业公司的下属人员):下次接口请求时返回新权限集 → 动态更新界面
记录权限审计日志
```
---
## 7. 数据权限校验流程
```
用户发起操作请求
┌── 第1层功能权限校验 ──┐
│ 用户是否有该功能点的对应动作权限? │
│ → 否返回403提示无权限 │
└────────────────────────┘
│ (是)
┌── 第2层数据权限校验 ──┐
│ 超级管理员 → 仅系统配置与账号数据 │
│ 医院账号 → 本医院+关联物业公司数据 │
│ 物业管理员 → 绑定医院数据 │
│ 主管 → 本班组数据 │
│ 员工 → 仅本人数据 │
│ │
│ → 自动在SQL中注入数据范围条件 │
│ → 超出范围的数据不可见 │
└────────────────────────┘
```
> **关键规则:** 超级管理员仅可查看系统配置与账号数据,**不涉及任何业务数据**(报修、巡检、保洁、考勤、评价、合同、招标等)。
---
## 8. 操作日志流程
### 8.1 日志记录范围
| 模块 | 记录的操作 |
|------|-----------|
| 权限管理 | 角色创建/修改/删除、权限分配/变更 |
| 账号管理 | 账号创建/启停/续期/有效期修改 |
| 系统管理 | 配置变更/缓存清理/版本管理 |
### 8.2 权限审计日志特殊展示
权限变更日志额外展示变更前后对比:
```
角色:巡检主管
操作人:超级管理员
操作时间2026-04-16 14:00:00
操作类型:权限修改
变更对比:
[+新增] 在线报修 → 工单详情 → 延期审批 → 审批
[+新增] 在线报修 → 工单列表 → 工单管理 → 导出
[-移除] 巡检管理 → 巡检计划 → 计划管理 → 删除
```
---
## 9. 系统更新与缓存策略
```
后台系统发布更新
自动执行缓存清理:
├── 清除权限缓存 → 重新从数据库加载
├── 清除字典缓存 → 重新加载字典数据
├── 清除菜单缓存 → 重新加载菜单配置
└── 清除业务数据缓存 → 按需懒加载
缓存清理方式:
├── 自动:系统启动时全量清理
├── 手动:超管在"缓存管理"页面按模块清理
└── 事件驱动:权限变更时定向清理权限缓存
通知在线用户刷新页面WebSocket推送
```