# 系统能力模型总结 — 道路救援企业培训系统 > 版本:V1.0 | 生成日期:2026-04-07 > 证据来源:[SRC-FEAT-01] [SRC-API-01] [SRC-CODE-01] --- ## 1. 当前系统具备的核心能力 | # | 能力名称 | 一句话描述 | |---|---------|----------| | C1 | **基于角色的访问控制(RBAC)** | 三种角色(管理员/讲师/学员)+ 部门级数据隔离,统一鉴权入口 | | C2 | **组织与人员管理** | 三级组织结构(中心→部门→小组)+ 用户生命周期管理 | | C3 | **知识资产管理** | 支持文档/视频两种类型的知识内容创建、状态发布和多级分类 | | C4 | **学习行为跟踪** | 防刷机制下的真实时长累计和进度记录(视频90%/文档时长判定) | | C5 | **在线考核** | 题库管理 + 手动/自动组卷 + 在线答题 + 客观题自动判分 | | C6 | **考试行为管控** | 时间窗口约束 + 次数限制 + 超时自动交卷 + 并发乐观锁保护 | | C7 | **培训任务编排** | 将知识+考试组织成有时间周期的培训计划,支持必修/选修/必考/选考四维属性 | | C8 | **培训进度可视化** | 实时计算学员对某培训计划的完成百分比(必修完成+必考通过) | | C9 | **成绩与排名** | 交卷后立即返回成绩+答案解析+实时排名(窗口函数,同分按时间早优先) | | C10 | **企业微信身份集成** | OAuth 登录打通企业微信用户体系,无需单独注册 | --- ## 2. 能力依赖关系图 ```mermaid graph TD C10[C10 企业微信身份集成] --> C1 C1[C1 RBAC + 部门隔离] --> C2 C1 --> C3 C1 --> C5 C1 --> C7 C2[C2 组织人员管理] --> C7 C3[C3 知识资产管理] --> C4 C3 --> C7 C4[C4 学习行为跟踪] --> C8 C5[C5 在线考核] --> C6 C5 --> C9 C6[C6 考试行为管控] --> C9 C9[C9 成绩与排名] --> C8 C7[C7 培训任务编排] --> C4 C7 --> C6 C7 --> C8[C8 培训进度可视化] ``` --- ## 3. 可复用能力清单 | 能力 | 复用场景 | 复用方式 | |-----|---------|---------| | C1 RBAC + 部门隔离 | 企业内任何需要角色权限 + 数据隔离的系统 | 提取 AuthInterceptor + UserContext + department_id 注入框架 | | C4 学习行为跟踪 | 其他类型内容(音频/直播回放/课件)的学习进度记录 | 抽象 `LearningTarget` 接口,替换完成判定策略(Strategy 模式) | | C5 在线考核 | 任意客观题在线测评场景(安全培训/合规考试等)| 题库+试卷+客观题判分为独立子系统,可独立部署 | | C6 考试行为管控 | 任何有"限时+限次"约束的在线测试 | ExamTakingService 中时间窗口/次数/乐观锁的组合控制逻辑 | | C9 成绩排名 | 任何需要实时排名的比赛/评测场景 | SQL 窗口函数 DENSE_RANK 模式,按需修改排序条件 | --- ## 4. 平台级能力(多业务依赖的底层能力) **C1 — RBAC + 部门数据隔离** - 所有业务模块(知识/考试/培训)均依赖此能力实现权限控制和数据隔离 - 是系统安全性和多租户(多部门)能力的基础 - 扩展方向:目前硬编码三个角色,V2 可改为动态角色配置 **C2 — 组织人员管理** - 每个业务操作都需要 `department_id`、`user_id`、`role` 三个属性 - 是知识/考试/培训三大域的数据隔离依据来源 - 扩展方向:当前三级固定结构,可抽象为 n 级通用树 **C10 — 企业微信身份集成** - 是唯一的用户来源(V1),后续接其他身份源也需通过此层 - 扩展方向:抽象为 `IdentityProvider` 接口,支持插入 SSO/LDAP --- ## 5. 业务定制能力(特定场景才需要的能力) | 能力 | 定制场景 | 为何不是平台级 | |-----|---------|-------------| | C3 知识资产管理(文档/视频类型) | 救援行业的操作手册、安全规范、视频讲解 | 内容类型固定(文档/视频),换行业可能需要不同类型 | | C4 学习行为防刷(视频90%/文档时长) | 强制"真实学习"的企业培训场景 | 完成判定规则是业务决策,C端平台通常不这么严格 | | C6 超时自动交卷 + 乐观锁 | 有严格时长限制的考试 | 休闲测试/知识问答类应用不需要这个复杂度 | | C7 培训任务编排(必修/选修/必考/选考四维)| 企业有组织要求的培训管理 | 自学平台不需要"强制必修"的约束 | | C9 成绩排名(DENSE_RANK + 同分按时间) | 部门内部考核的绩效排名 | 无竞争性考核场景(如自我测评)不需要排名 | --- ## 6. V2 能力规划缺口 当前 V1.0.1 尚未具备以下能力,是 V2 的扩展方向: | 缺失能力 | 业务价值 | 实现复杂度 | |---------|---------|---------| | 统计报表中心(完成率/通过率/部门排名) | 管理层查看全局培训效果 | 中(新增 statistics 模块,读现有数据) | | 线下培训签到(扫码签到/签退) | 线上线下混合培训场景 | 中(需硬件支持) | | 错题本(自动归集错误题目) | 学员针对性复习 | 低(从 exam_record.answers 中提取 correct=false) | | 知识全文搜索 | 快速查找内容 | 高(需引入 Elasticsearch 或 MySQL FULLTEXT) | | 奖励体系(积分/勋章/排行榜) | 提升学习积极性 | 中(新增独立模块) | | 证书管理 | 培训完成凭证 | 低(基于培训计划完成状态生成 PDF) |