01 · 模块定位
知识库与教师培训中心
总部可发布教师培训计划,员工完成资料学习和在线考试后形成学习档案、考试成绩和学习档案记录。业务目标
建设内部知识库、素材库、员工学习培训、在线考试和岗位能力培训体系,支撑教师、顾问、教务、学管师和管理岗位能力提升。
使用终端
PC Web 知识库培训中心,员工移动端/小程序可学习、考试、补考并查看学习档案。
验收主线
总部可发布教师培训计划,员工完成资料学习和在线考试后形成学习档案、考试成绩和学习档案记录。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 知识库
- 素材库
- 课程分类
- 资料类型
- 培训计划
- 在线考试
- 学习档案
- 集团会议直播培训归档
- 题库版本管理
- 试卷引用快照
- 历史答题追溯
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
知识库与教师培训中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
知识库与教师培训中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。按岗位、业务线、课程产品、教学阶段和服务场景组织知识课程与制度资料。
素材支持上传、版本、标签、权限、检索、预览、下载控制和使用统计。
课程分类支持岗位、业务线、课程产品、教学阶段、服务场景和适用校区配置。
每个分类下配置制度文档、SOP、教学视频、示范课、课件模板、话术素材和考试试卷。
培训计划支持必修、选修、补训、岗位能力学习、截止时间、逾期提醒和适用人群。
在线考试支持题库组卷、限时作答、自动判分、人工阅卷、补考和学习档案归档。
学习档案记录学习时长、资料阅读、视频观看、考试成绩、补考记录和岗位能力达成。
集团内部会议直播结束后可归档为培训资料,绑定参会签到、回放、学习任务和考试。
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 知识库 | 基础维护 | 知识库支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 知识库 | 业务处理 | 按岗位、业务线、课程产品、教学阶段和服务场景组织知识课程与制度资料。 | 必须联动状态、权限、消息、审批和指标 |
| 知识库 | 异常闭环 | 分类权限不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 素材库 | 基础维护 | 素材库支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 素材库 | 业务处理 | 素材支持上传、版本、标签、权限、检索、预览、下载控制和使用统计。 | 必须联动状态、权限、消息、审批和指标 |
| 素材库 | 异常闭环 | 素材转码失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 课程分类 | 基础维护 | 课程分类支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 课程分类 | 业务处理 | 课程分类支持岗位、业务线、课程产品、教学阶段、服务场景和适用校区配置。 | 必须联动状态、权限、消息、审批和指标 |
| 课程分类 | 异常闭环 | 分类重复处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 资料类型 | 基础维护 | 资料类型支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 资料类型 | 业务处理 | 每个分类下配置制度文档、SOP、教学视频、示范课、课件模板、话术素材和考试试卷。 | 必须联动状态、权限、消息、审批和指标 |
| 资料类型 | 异常闭环 | 资料类型缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 培训计划 | 基础维护 | 培训计划支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 培训计划 | 业务处理 | 培训计划支持必修、选修、补训、岗位能力学习、截止时间、逾期提醒和适用人群。 | 必须联动状态、权限、消息、审批和指标 |
| 培训计划 | 异常闭环 | 培训逾期处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 在线考试 | 基础维护 | 在线考试支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 在线考试 | 业务处理 | 在线考试支持题库组卷、限时作答、自动判分、人工阅卷、补考和学习档案归档。 | 必须联动状态、权限、消息、审批和指标 |
| 在线考试 | 异常闭环 | 考试未通过处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 学习档案 | 基础维护 | 学习档案支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 学习档案 | 业务处理 | 学习档案记录学习时长、资料阅读、视频观看、考试成绩、补考记录和岗位能力达成。 | 必须联动状态、权限、消息、审批和指标 |
| 学习档案 | 异常闭环 | 档案同步失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 集团会议直播培训归档 | 基础维护 | 集团会议直播培训归档支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 集团会议直播培训归档 | 业务处理 | 集团内部会议直播结束后可归档为培训资料,绑定参会签到、回放、学习任务和考试。 | 必须联动状态、权限、消息、审批和指标 |
| 集团会议直播培训归档 | 异常闭环 | 会议回放未归档处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 题库版本管理 | 基础维护 | 题库版本管理支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 题库版本管理 | 业务处理 | 题库题目、答案、解析、分值、难度、知识点和适用范围均需版本化管理。 | 必须联动状态、权限、消息、审批和指标 |
| 题库版本管理 | 异常闭环 | 题目版本缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 试卷引用快照 | 基础维护 | 试卷引用快照支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 试卷引用快照 | 业务处理 | 培训考试发布后锁定试卷、题目、答案、解析、分值和抽题策略快照。 | 必须联动状态、权限、消息、审批和指标 |
| 试卷引用快照 | 异常闭环 | 试卷快照损坏处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 历史答题追溯 | 基础维护 | 历史答题追溯支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 历史答题追溯 | 业务处理 | 历史成绩复核时按当时试卷版本展示题目、作答、评分、人工阅卷和复核记录。 | 必须联动状态、权限、消息、审批和指标 |
| 历史答题追溯 | 异常闭环 | 历史答题缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 知识库 | KnowledgeCategory | kb_category | POST/GET /api/v1/knowledge/courses | material_types | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 素材库 | KnowledgeMaterial | kb_material | 接口资源组 /api/v1/kbt/features/02 | material_type、publish_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 课程分类 | KnowledgeCategory | kb_category | 接口资源组 /api/v1/kbt/features/03 | material_types | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 资料类型 | KnowledgeCategory | kb_category | POST/GET /api/v1/knowledge/courses | material_types | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 培训计划 | KnowledgeCategory、KnowledgeMaterial、KnowledgeCourse、TrainingLearningTask | kb_category、kb_material、kb_training_course、kb_learning_task | 接口资源组 /api/v1/kbt/features/05 | material_types、material_type、publish_status、course_status、learning_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 在线考试 | KnowledgeCategory、KnowledgeMaterial、KnowledgeCourse、TrainingLearningTask | kb_category、kb_material、kb_training_course、kb_learning_task | 接口资源组 /api/v1/kbt/features/06 | material_types、material_type、publish_status、course_status、learning_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 学习档案 | KnowledgeCategory、KnowledgeMaterial、KnowledgeCourse、TrainingLearningTask | kb_category、kb_material、kb_training_course、kb_learning_task | 接口资源组 /api/v1/kbt/features/07 | material_types、material_type、publish_status、course_status、learning_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 集团会议直播培训归档 | KnowledgeCategory、KnowledgeMaterial、KnowledgeCourse、TrainingLearningTask | kb_category、kb_material、kb_training_course、kb_learning_task | 接口资源组 /api/v1/kbt/features/08 | material_types、material_type、publish_status、course_status、learning_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 题库版本管理 | KnowledgeCategory、KnowledgeMaterial、KnowledgeCourse、TrainingLearningTask | kb_category、kb_material、kb_training_course、kb_learning_task | 接口资源组 /api/v1/kbt/features/09 | material_types、material_type、publish_status、course_status、learning_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 试卷引用快照 | KnowledgeCategory、KnowledgeMaterial、KnowledgeCourse、TrainingLearningTask | kb_category、kb_material、kb_training_course、kb_learning_task | 接口资源组 /api/v1/kbt/features/10 | material_types、material_type、publish_status、course_status、learning_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 历史答题追溯 | KnowledgeCategory、KnowledgeMaterial、KnowledgeCourse、TrainingLearningTask | kb_category、kb_material、kb_training_course、kb_learning_task | 接口资源组 /api/v1/kbt/features/11 | material_types、material_type、publish_status、course_status、learning_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-KBT-001 | 知识库支持按岗位、业务线、课程产品、教学阶段、服务场景配置课程分类 | 知识库首页 | 配置分类 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 培训逾期 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-KBT-002 | 每个分类下可配置制度文档、SOP、教学视频、示范课、课件模板、话术素材、考试试卷等资料类型 | 课程分类与资料类型 | 上传素材 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 考试未通过 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-KBT-003 | 素材库支持上传、版本、标签、权限、检索、下载控制和使用统计 | 培训计划 | 发布培训 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 资料权限不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-KBT-004 | 培训计划支持必修、选修、补训、岗位能力学习、截止时间和逾期提醒 | 在线考试 | 在线考试 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 题目版本缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-KBT-005 | 员工学习过程记录学习时长、完成进度、资料阅读、视频观看和考试成绩 | 会议直播培训归档 | 补训安排 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 试卷快照损坏 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-KBT-006 | 在线考试支持题库组卷、限时作答、自动判分、人工阅卷、补考和学习档案归档 | 题库版本快照 | 统计档案 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 培训逾期 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-KBT-007 | 培训考试和补考需保存试卷版本、题目版本和资源版本快照,历史答题记录按发布时版本展示,重学、补考可配置使用原版本或最新版本。 | 知识库 | 配置分类 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 考试未通过 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
知识库与教师培训中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 题库版本快照 | 负责员工培训考试题库、抽题策略、补考规则和成绩复核快照 | 员工学习、培训考试、补考和历史成绩复核 | 培训题库、考试发布、版本快照、成绩详情、复核记录 | KnowledgeCourse/TrainingExam | 成绩复核时可还原当时题目、答案、解析、分值和抽题策略 |
| 督课评分规则版本 | 督课结果用于教师培训任务推荐时必须保留评分规则来源 | 督课低分触发学习任务、整改培训和补考 | 培训任务、督课关联、学习档案、考试结果 | TeachingQualityScore、KnowledgeCourse/TrainingExam | 培训任务能追溯触发的督课评分版本和整改原因 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 知识库首页 | 教师/员工 | 检索制度、SOP、教学示范、话术和学习资料 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-知识库首页;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 课程分类与资料类型 | 教研/人事 | 维护培训分类、资料类型、标签、适用岗位和版本 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-课程分类与资料类型;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 培训计划 | 人事/教研/校长 | 发布必修选修培训、分配员工、跟踪完成进度 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-培训计划;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 在线考试 | 教师/员工 | 在线答题、补考、查看成绩和培训结果 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-在线考试;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/员工端 | 会议直播培训归档 | 人事/教研/员工 | 将集团会议直播回放沉淀为培训资料并生成学习考试任务 | 运营台以配置/监控/回放/转化分区组织,顶部展示供应商状态和业务类型筛选,详情抽屉展示回调、录制和发布记录。 | 配置供应商、健康检测、创建直播、发布回放、人工补传、下架回放、生成跟进任务 | 供应商、业务类型、直播间、回调状态、录制文件、存储位置、发布范围、转化任务、课程分类、资料类型 | 供应商连通失败、回调验签失败、录制转码失败、存储回调失败、回放权限缺失、线索沉淀失败 | 需体现三家供应商启用配置、无主备切换、录制存储配置、回放补传版本、公开课转化和会议归档。 建议 Figma Frame:KBT-会议直播培训归档;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 题库版本快照 | 教研/培训负责人 | 管理题目、试卷、资源引用快照,支持历史答题追溯和补考版本策略 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-题库版本快照;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 知识库 | 授权用户 | 围绕培训体系完善知识库的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-知识库;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 考试中心 | 授权用户 | 围绕培训体系完善考试中心的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-考试中心;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 学习档案 | 授权用户 | 围绕培训体系完善学习档案的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-学习档案;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 题库版本 | 授权用户 | 围绕考试快照完善题库版本的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-题库版本;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 考试详情 | 授权用户 | 围绕考试快照完善考试详情的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-考试详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 成绩复核 | 授权用户 | 围绕考试快照完善成绩复核的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-成绩复核;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 会议直播归档 | 授权用户 | 围绕直播归档完善会议直播归档的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-会议直播归档;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 培训资料详情 | 授权用户 | 围绕直播归档完善培训资料详情的入口、字段、状态、异常提示、处理进度和验收反馈 | 培训页以分类导航、学习任务、资料预览和考试记录组合,题库版本页展示试卷快照和历史答题追溯。 | 配置分类、上传素材、发布培训、开始学习、开始考试、安排补考、查看档案、查看版本 | 课程分类、资料类型、适用岗位、学习进度、考试规则、题库版本、补考次数、历史答题、学习任务、完成状态 | 分类权限不足、素材转码失败、培训逾期、考试超时、试卷快照损坏、历史答题缺失 | 需覆盖员工学习、培训计划、资料类型、考试补考、会议直播归档、题库版本和历史成绩复核。 建议 Figma Frame:KBT-培训资料详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 知识库首页 | POST/GET /api/v1/knowledge/courses | KnowledgeCategory | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 课程分类与资料类型 | POST /api/v1/live/meetings/{id}/archive | KnowledgeMaterial | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 培训计划 | POST/GET /api/v1/knowledge/courses | KnowledgeCourse | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 在线考试 | POST /api/v1/live/meetings/{id}/archive | TrainingLearningTask | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 会议直播培训归档 | POST/GET /api/v1/knowledge/courses | TrainingExam | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 题库版本快照 | POST /api/v1/live/meetings/{id}/archive | TrainingExamAttempt | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 知识库 | POST/GET /api/v1/knowledge/courses | KnowledgeCategory | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 考试中心 | POST /api/v1/live/meetings/{id}/archive | KnowledgeMaterial | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 学习档案 | POST/GET /api/v1/knowledge/courses | KnowledgeCourse | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 题库版本 | POST /api/v1/live/meetings/{id}/archive | TrainingLearningTask | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 考试详情 | POST/GET /api/v1/knowledge/courses | TrainingExam | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 成绩复核 | POST /api/v1/live/meetings/{id}/archive | TrainingExamAttempt | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训课程发布审批:面向全员、跨校区或涉及制度类培训内容 | 培训任务通知 -> 员工/直属主管 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 培训体系 | 补齐分类配置、资料上传、培训计划、学习任务、考试、补考、成绩复核和档案归档。 | 知识库、培训计划、考试中心、学习档案 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;员工培训从分配到通过或补训均有状态闭环。 |
| 考试快照 | 补齐试卷快照、抽题策略、补考次数、考试超时和成绩复核。 | 题库版本、考试详情、成绩复核 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;任一历史成绩能还原当时题目和评分规则。 |
| 直播归档 | 补齐会议直播录制、回放审核、转为培训资料、学习任务和观看记录。 | 会议直播归档、培训资料详情 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;会议回放可转为培训素材并纳入员工学习记录。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| KnowledgeCategory | 知识库课程分类和资料类型;落地表:kb_category |
| KnowledgeMaterial | 员工培训资料和素材库;落地表:kb_material |
| KnowledgeCourse | 教师培训课程;落地表:kb_training_course |
| TrainingLearningTask | 员工学习任务;落地表:kb_learning_task |
| TrainingExam | 员工培训考试;落地表:kb_exam |
| TrainingExamAttempt | 考试答题和成绩;落地表:kb_exam_attempt |
关联引用对象
| 对象 | 说明 |
|---|---|
| Organization | 集团、区域、校区、部门组织树;引用来源:FND / sys_organization |
| User/Employee | 统一登录账号;引用来源:FND / sys_user |
| Employee | 员工基础档案;引用来源:FND / sys_employee |
| Role | 角色定义;引用来源:FND / sys_role |
| ApprovalFlow | 审批流配置;引用来源:FND / sys_approval_flow |
| MessageTemplate | 消息模板与多端触达配置;引用来源:FND / sys_message_template |
| AuditLog | 全平台操作审计日志;引用来源:FND / sys_audit_log |
| IntegrationLog | 接口调用日志;引用来源:OPEN / int_integration_log |
| SensitiveFieldPolicy | 敏感字段脱敏策略;引用来源:SEC / sec_sensitive_field_policy |
| TeachingQualityScore | 教学质量评分;引用来源:PAT / patrol_quality_score |
| LiveRecording | 直播录制和回放文件;引用来源:LIVE / live_recording_file |
| LearningResource | 教研学习资源;引用来源:RES / res_learning_resource |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| KnowledgeCategory | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| KnowledgeCategory | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| KnowledgeCategory | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| KnowledgeCategory | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| KnowledgeCategory | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| KnowledgeCategory | created_at | DATETIME | 是 | 创建时间 | 普通 |
| KnowledgeCategory | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| KnowledgeCategory | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| KnowledgeCategory | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| KnowledgeCategory | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| KnowledgeCategory | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| KnowledgeCategory | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| KnowledgeCategory | category_code | VARCHAR(64) | 是 | 分类编码,唯一 | 普通 |
| KnowledgeCategory | category_name | VARCHAR(128) | 是 | 分类名称 | 普通 |
| KnowledgeCategory | parent_id | BIGINT | 否 | 上级分类 | 普通 |
| KnowledgeCategory | material_types | JSON | 否 | 分类下资料类型 | 普通 |
| KnowledgeCategory | sort_no | INT | 否 | 排序 | 普通 |
| KnowledgeCategory | enabled | TINYINT | 是 | 是否启用 | 普通 |
| KnowledgeMaterial | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| KnowledgeMaterial | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| KnowledgeMaterial | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| KnowledgeMaterial | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| KnowledgeMaterial | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| KnowledgeMaterial | created_at | DATETIME | 是 | 创建时间 | 普通 |
| KnowledgeMaterial | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| KnowledgeMaterial | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| KnowledgeMaterial | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| KnowledgeMaterial | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| KnowledgeMaterial | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| KnowledgeMaterial | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| KnowledgeMaterial | material_no | VARCHAR(64) | 是 | 资料编号,唯一 | 普通 |
| KnowledgeMaterial | category_id | BIGINT | 是 | 分类 ID | 普通 |
| KnowledgeMaterial | material_name | VARCHAR(128) | 是 | 资料名称 | 普通 |
| KnowledgeMaterial | material_type | VARCHAR(32) | 是 | 文档/视频/音频/课件/案例 | 普通 |
| KnowledgeMaterial | file_id | BIGINT | 否 | 文件 ID | 普通 |
| KnowledgeMaterial | publish_status | VARCHAR(32) | 是 | 草稿/已发布/已下架 | 普通 |
| KnowledgeCourse | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| KnowledgeCourse | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| KnowledgeCourse | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| KnowledgeCourse | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| KnowledgeCourse | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| KnowledgeCourse | created_at | DATETIME | 是 | 创建时间 | 普通 |
| KnowledgeCourse | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| KnowledgeCourse | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| KnowledgeCourse | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| KnowledgeCourse | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| KnowledgeCourse | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| KnowledgeCourse | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| KnowledgeCourse | course_no | VARCHAR(64) | 是 | 培训课程编号,唯一 | 普通 |
| KnowledgeCourse | course_name | VARCHAR(128) | 是 | 培训课程名称 | 普通 |
| KnowledgeCourse | category_id | BIGINT | 是 | 分类 ID | 普通 |
| KnowledgeCourse | target_roles | JSON | 是 | 适用岗位/角色 | 普通 |
| KnowledgeCourse | course_content | JSON | 是 | 章节与资料 | 普通 |
| KnowledgeCourse | course_status | VARCHAR(32) | 是 | 草稿/已发布/已下架 | 普通 |
| TrainingLearningTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| TrainingLearningTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| TrainingLearningTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| TrainingLearningTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| TrainingLearningTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| TrainingLearningTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| TrainingLearningTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| TrainingLearningTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| TrainingLearningTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| TrainingLearningTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| TrainingLearningTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| TrainingLearningTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| TrainingLearningTask | task_no | VARCHAR(64) | 是 | 学习任务编号,唯一 | 普通 |
| TrainingLearningTask | course_id | BIGINT | 是 | 培训课程 ID | 普通 |
| TrainingLearningTask | employee_id | BIGINT | 是 | 员工 ID | 普通 |
| TrainingLearningTask | assigned_by | BIGINT | 是 | 指派人 | 普通 |
| TrainingLearningTask | deadline_at | DATETIME | 否 | 截止时间 | 普通 |
| TrainingLearningTask | learning_status | VARCHAR(32) | 是 | 未开始/学习中/已完成/逾期 | 普通 |
| TrainingExam | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| TrainingExam | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| TrainingExam | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| TrainingExam | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| TrainingExam | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| TrainingExam | created_at | DATETIME | 是 | 创建时间 | 普通 |
| TrainingExam | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| TrainingExam | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| TrainingExam | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| TrainingExam | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| TrainingExam | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| TrainingExam | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| TrainingExam | exam_no | VARCHAR(64) | 是 | 考试编号,唯一 | 普通 |
| TrainingExam | course_id | BIGINT | 否 | 关联培训课程 | 普通 |
| TrainingExam | exam_name | VARCHAR(128) | 是 | 考试名称 | 普通 |
| TrainingExam | paper_schema | JSON | 是 | 试卷结构 | 普通 |
| TrainingExam | pass_score | DECIMAL(6,2) | 是 | 及格分 | 普通 |
| TrainingExam | exam_status | VARCHAR(32) | 是 | 草稿/已发布/已结束 | 普通 |
| TrainingExamAttempt | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| TrainingExamAttempt | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| TrainingExamAttempt | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| TrainingExamAttempt | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| TrainingExamAttempt | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| TrainingExamAttempt | created_at | DATETIME | 是 | 创建时间 | 普通 |
| TrainingExamAttempt | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| TrainingExamAttempt | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| TrainingExamAttempt | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| TrainingExamAttempt | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| TrainingExamAttempt | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| TrainingExamAttempt | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| TrainingExamAttempt | attempt_no | VARCHAR(64) | 是 | 答题编号,唯一 | 普通 |
| TrainingExamAttempt | exam_id | BIGINT | 是 | 考试 ID | 普通 |
| TrainingExamAttempt | employee_id | BIGINT | 是 | 员工 ID | 普通 |
| TrainingExamAttempt | answer_payload | JSON | 是 | 答题内容 | 普通 |
| TrainingExamAttempt | score | DECIMAL(6,2) | 否 | 得分 | 普通 |
| TrainingExamAttempt | pass_status | VARCHAR(32) | 是 | 待评分/通过/未通过 | 普通 |
引用对象字段字典
| 引用表 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| sys_organization | Organization | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_organization | Organization | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_organization | Organization | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_organization | Organization | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_organization | Organization | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_organization | Organization | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_organization | Organization | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_organization | Organization | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_organization | Organization | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_organization | Organization | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_organization | Organization | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_organization | Organization | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_organization | Organization | org_code | VARCHAR(64) | 是 | 组织编码,租户内唯一 | 普通 |
| sys_organization | Organization | org_name | VARCHAR(128) | 是 | 组织名称 | 普通 |
| sys_organization | Organization | org_type | VARCHAR(32) | 是 | 集团/区域/校区/部门/法人主体 | 普通 |
| sys_organization | Organization | parent_id | BIGINT | 否 | 上级组织 ID,根节点为空 | 普通 |
| sys_organization | Organization | sort_no | INT | 否 | 同级排序 | 普通 |
| sys_organization | Organization | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_user | User/Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_user | User/Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_user | User/Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_user | User/Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_user | User/Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_user | User/Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_user | User/Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_user | User/Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_user | User/Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_user | User/Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_user | User/Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_user | User/Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_user | User/Employee | user_no | VARCHAR(64) | 是 | 账号编号,唯一 | 普通 |
| sys_user | User/Employee | login_name | VARCHAR(64) | 是 | 登录名,唯一 | 普通 |
| sys_user | User/Employee | mobile | VARCHAR(32) | 否 | 手机号,敏感脱敏展示 | 敏感 |
| sys_user | User/Employee | password_hash | VARCHAR(255) | 否 | 密码哈希,禁止前端返回 | 高敏 |
| sys_user | User/Employee | user_type | VARCHAR(32) | 是 | 员工/学员/家长/外部账号 | 普通 |
| sys_user | User/Employee | login_status | VARCHAR(32) | 是 | 正常/锁定/停用/待激活 | 普通 |
| sys_employee | Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_employee | Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_employee | Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_employee | Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_employee | Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_employee | Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_employee | Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_employee | Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_employee | Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_employee | Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_employee | Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_employee | Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_employee | Employee | employee_no | VARCHAR(64) | 是 | 工号,唯一 | 普通 |
| sys_employee | Employee | user_id | BIGINT | 否 | 关联账号 ID | 普通 |
| sys_employee | Employee | employee_name | VARCHAR(64) | 是 | 员工姓名 | 普通 |
| sys_employee | Employee | primary_campus_id | BIGINT | 否 | 主校区 ID | 普通 |
| sys_employee | Employee | job_title | VARCHAR(64) | 否 | 岗位名称 | 普通 |
| sys_employee | Employee | hire_status | VARCHAR(32) | 是 | 在职/试用/离职/停用 | 普通 |
| sys_role | Role | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_role | Role | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_role | Role | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_role | Role | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_role | Role | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_role | Role | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_role | Role | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_role | Role | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_role | Role | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_role | Role | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_role | Role | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_role | Role | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_role | Role | role_code | VARCHAR(64) | 是 | 角色编码,唯一 | 普通 |
| sys_role | Role | role_name | VARCHAR(128) | 是 | 角色名称 | 普通 |
| sys_role | Role | role_level | VARCHAR(32) | 是 | 总部/区域/校区/个人 | 普通 |
| sys_role | Role | data_scope_type | VARCHAR(32) | 是 | 数据范围类型 | 普通 |
| sys_role | Role | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_approval_flow | ApprovalFlow | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_approval_flow | ApprovalFlow | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_approval_flow | ApprovalFlow | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_approval_flow | ApprovalFlow | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_approval_flow | ApprovalFlow | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_approval_flow | ApprovalFlow | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_approval_flow | ApprovalFlow | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_code | VARCHAR(64) | 是 | 审批流编码,唯一 | 普通 |
| sys_approval_flow | ApprovalFlow | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_name | VARCHAR(128) | 是 | 审批流名称 | 普通 |
| sys_approval_flow | ApprovalFlow | condition_json | JSON | 否 | 触发条件 | 普通 |
| sys_approval_flow | ApprovalFlow | node_json | JSON | 是 | 节点、审批人和超时规则 | 普通 |
| sys_approval_flow | ApprovalFlow | version_no | INT | 是 | 审批流版本号 | 普通 |
| sys_approval_flow | ApprovalFlow | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_message_template | MessageTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_message_template | MessageTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_message_template | MessageTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_message_template | MessageTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_message_template | MessageTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_message_template | MessageTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_message_template | MessageTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_message_template | MessageTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_message_template | MessageTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_message_template | MessageTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_message_template | MessageTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| sys_message_template | MessageTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| sys_message_template | MessageTemplate | channel | VARCHAR(32) | 是 | 站内信/短信/微信小程序/企微/Push | 普通 |
| sys_message_template | MessageTemplate | receiver_rule | JSON | 是 | 接收人规则 | 普通 |
| sys_message_template | MessageTemplate | content_template | TEXT | 是 | 模板内容 | 普通 |
| sys_message_template | MessageTemplate | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_audit_log | AuditLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_audit_log | AuditLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_audit_log | AuditLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_audit_log | AuditLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_audit_log | AuditLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_audit_log | AuditLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_audit_log | AuditLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_audit_log | AuditLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_audit_log | AuditLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_audit_log | AuditLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_audit_log | AuditLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_audit_log | AuditLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_audit_log | AuditLog | operator_id | BIGINT | 是 | 操作人 ID | 普通 |
| sys_audit_log | AuditLog | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_audit_log | AuditLog | biz_id | BIGINT | 否 | 业务主键 ID | 普通 |
| sys_audit_log | AuditLog | action_code | VARCHAR(64) | 是 | 操作编码 | 普通 |
| sys_audit_log | AuditLog | before_snapshot | JSON | 否 | 变更前快照 | 普通 |
| sys_audit_log | AuditLog | after_snapshot | JSON | 否 | 变更后快照 | 普通 |
| sys_audit_log | AuditLog | ip_address | VARCHAR(64) | 否 | 操作 IP | 普通 |
| int_integration_log | IntegrationLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| int_integration_log | IntegrationLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| int_integration_log | IntegrationLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| int_integration_log | IntegrationLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| int_integration_log | IntegrationLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| int_integration_log | IntegrationLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| int_integration_log | IntegrationLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| int_integration_log | IntegrationLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| int_integration_log | IntegrationLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| int_integration_log | IntegrationLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| int_integration_log | IntegrationLog | request_id | VARCHAR(128) | 是 | 请求 ID,幂等键 | 普通 |
| int_integration_log | IntegrationLog | system_code | VARCHAR(64) | 是 | 外部系统编码 | 普通 |
| int_integration_log | IntegrationLog | api_path | VARCHAR(512) | 是 | 接口路径 | 普通 |
| int_integration_log | IntegrationLog | biz_type | VARCHAR(64) | 否 | 业务类型 | 普通 |
| int_integration_log | IntegrationLog | biz_id | BIGINT | 否 | 业务 ID | 普通 |
| int_integration_log | IntegrationLog | request_payload | JSON | 否 | 请求报文,敏感字段脱敏 | 敏感 |
| int_integration_log | IntegrationLog | response_payload | JSON | 否 | 响应报文 | 普通 |
| int_integration_log | IntegrationLog | call_status | VARCHAR(32) | 是 | 成功/失败/超时/重试中 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | field_code | VARCHAR(128) | 是 | 字段编码,唯一 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | VARCHAR(64) | 是 | 脱敏规则 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | view_requires_approval | TINYINT | 是 | 明文查看是否需审批 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | watermark_required | TINYINT | 是 | 是否加水印 | 普通 |
| patrol_quality_score | TeachingQualityScore | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| patrol_quality_score | TeachingQualityScore | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| patrol_quality_score | TeachingQualityScore | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| patrol_quality_score | TeachingQualityScore | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| patrol_quality_score | TeachingQualityScore | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| patrol_quality_score | TeachingQualityScore | created_at | DATETIME | 是 | 创建时间 | 普通 |
| patrol_quality_score | TeachingQualityScore | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| patrol_quality_score | TeachingQualityScore | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| patrol_quality_score | TeachingQualityScore | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| patrol_quality_score | TeachingQualityScore | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| patrol_quality_score | TeachingQualityScore | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| patrol_quality_score | TeachingQualityScore | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| patrol_quality_score | TeachingQualityScore | score_no | VARCHAR(64) | 是 | 评分编号,唯一 | 普通 |
| patrol_quality_score | TeachingQualityScore | patrol_record_id | BIGINT | 是 | 巡课记录 ID | 普通 |
| patrol_quality_score | TeachingQualityScore | teacher_id | BIGINT | 否 | 教师 ID | 普通 |
| patrol_quality_score | TeachingQualityScore | student_dimension_json | JSON | 否 | 学生维度评分 | 普通 |
| patrol_quality_score | TeachingQualityScore | teacher_dimension_json | JSON | 否 | 教师维度评分 | 普通 |
| patrol_quality_score | TeachingQualityScore | total_score | DECIMAL(6,2) | 是 | 综合得分 | 普通 |
| patrol_quality_score | TeachingQualityScore | score_status | VARCHAR(32) | 是 | 草稿/已提交/已复核/已驳回 | 普通 |
| live_recording_file | LiveRecording | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_recording_file | LiveRecording | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_recording_file | LiveRecording | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_recording_file | LiveRecording | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_recording_file | LiveRecording | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_recording_file | LiveRecording | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_recording_file | LiveRecording | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_recording_file | LiveRecording | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_recording_file | LiveRecording | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_recording_file | LiveRecording | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_recording_file | LiveRecording | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_recording_file | LiveRecording | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_recording_file | LiveRecording | live_room_id | BIGINT | 是 | 直播间 ID | 普通 |
| live_recording_file | LiveRecording | provider_record_id | VARCHAR(128) | 否 | 供应商录制 ID | 普通 |
| live_recording_file | LiveRecording | recording_status | VARCHAR(32) | 是 | 录制中/转码中/可播放/失败/已过期 | 普通 |
| live_recording_file | LiveRecording | replay_url | VARCHAR(512) | 否 | 回放地址 | 普通 |
| live_recording_file | LiveRecording | storage_location | VARCHAR(512) | 否 | 供应商 OSS/COS/Kodo 存储位置 | 普通 |
| live_recording_file | LiveRecording | duration | INT | 否 | 时长秒数 | 普通 |
| live_recording_file | LiveRecording | retention_until | DATETIME | 否 | 保留到期时间 | 普通 |
| res_learning_resource | LearningResource | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| res_learning_resource | LearningResource | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| res_learning_resource | LearningResource | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| res_learning_resource | LearningResource | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| res_learning_resource | LearningResource | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| res_learning_resource | LearningResource | created_at | DATETIME | 是 | 创建时间 | 普通 |
| res_learning_resource | LearningResource | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| res_learning_resource | LearningResource | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| res_learning_resource | LearningResource | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| res_learning_resource | LearningResource | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| res_learning_resource | LearningResource | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| res_learning_resource | LearningResource | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| res_learning_resource | LearningResource | resource_no | VARCHAR(64) | 是 | 资源编号,唯一 | 普通 |
| res_learning_resource | LearningResource | resource_name | VARCHAR(128) | 是 | 资源名称 | 普通 |
| res_learning_resource | LearningResource | resource_type | VARCHAR(32) | 是 | 课件/视频/音频/题库/文章/试卷 | 普通 |
| res_learning_resource | LearningResource | category_id | BIGINT | 否 | 资源分类 | 普通 |
| res_learning_resource | LearningResource | file_id | BIGINT | 否 | 文件 ID | 普通 |
| res_learning_resource | LearningResource | publish_status | VARCHAR(32) | 是 | 草稿/审核中/已发布/已下架 | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| kb_category | KnowledgeCategory | material_types | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| kb_training_course | KnowledgeCourse | target_roles | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| kb_training_course | KnowledgeCourse | course_content | RESOURCE_VERSION | {fileIds:number[], checksum:string, publishAt:string, authorId:number} | 发布后版本文件不可直接覆盖,只能新增版本 | {"fileIds":[8001],"checksum":"sha256:abc"} |
| kb_exam | TrainingExam | paper_schema | PAPER_SCHEMA | {sections:[{title:string, questionIds:number[], score:number}], randomRule?:object, durationMinutes:number} | 题目必须来自已发布题库版本;分值总和等于试卷总分 | {"sections":[{"title":"听力","questionIds":[1,2],"score":20}],"durationMinutes":45} |
| kb_exam_attempt | TrainingExamAttempt | answer_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| kb_category | KnowledgeCategory | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| kb_category | KnowledgeCategory | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| kb_category | KnowledgeCategory | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| kb_material | KnowledgeMaterial | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| kb_material | KnowledgeMaterial | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| kb_material | KnowledgeMaterial | material_type | MATERIAL_TYPE | 文档、视频、音频、课件、案例 | 非终态,可按状态机或字典规则流转 | 文档/视频/音频/课件/案例 |
| kb_material | KnowledgeMaterial | publish_status | PUBLISH_STATUS | DRAFT 草稿、PUBLISHING 发布中、PUBLISHED 已发布、FAILED 发布失败、OFFLINE 已下线、ARCHIVED 已归档 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 草稿/已发布/已下架 |
| kb_training_course | KnowledgeCourse | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| kb_training_course | KnowledgeCourse | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| kb_training_course | KnowledgeCourse | target_roles | TARGET_ROLES | 适用岗位、角色 | 非终态,可按状态机或字典规则流转 | 适用岗位/角色 |
| kb_training_course | KnowledgeCourse | course_status | COURSE_STATUS | 草稿、已发布、已下架 | 非终态,可按状态机或字典规则流转 | 草稿/已发布/已下架 |
| kb_learning_task | TrainingLearningTask | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| kb_learning_task | TrainingLearningTask | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| kb_learning_task | TrainingLearningTask | learning_status | LEARNING_STATUS | NOT_STARTED 未开始、IN_PROGRESS 进行中、COMPLETED 已完成、OVERDUE 逾期 | 非终态,可按状态机或字典规则流转 | 未开始/学习中/已完成/逾期 |
| kb_exam | TrainingExam | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| kb_exam | TrainingExam | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| kb_exam | TrainingExam | exam_status | EXAM_STATUS | 草稿、已发布、已结束 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 草稿/已发布/已结束 |
| kb_exam_attempt | TrainingExamAttempt | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| kb_exam_attempt | TrainingExamAttempt | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| kb_exam_attempt | TrainingExamAttempt | pass_status | PASS_STATUS | 待评分、通过、未通过 | 非终态,可按状态机或字典规则流转 | 待评分/通过/未通过 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | kb_exam_attempt | TrainingExamAttempt | answer_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sys_user | User/Employee | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | sys_user | User/Employee | password_hash | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 引用对象 | int_integration_log | IntegrationLog | request_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | int_integration_log | IntegrationLog | response_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| kb_category | KnowledgeCategory | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| kb_category | KnowledgeCategory | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| kb_category | KnowledgeCategory | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| kb_category | KnowledgeCategory | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| kb_category | KnowledgeCategory | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| kb_category | KnowledgeCategory | created_at | DATETIME | 是 | 创建时间 | 普通 |
| kb_category | KnowledgeCategory | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| kb_category | KnowledgeCategory | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| kb_category | KnowledgeCategory | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| kb_category | KnowledgeCategory | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| kb_category | KnowledgeCategory | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| kb_category | KnowledgeCategory | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| kb_category | KnowledgeCategory | category_code | VARCHAR(64) | 是 | 分类编码,唯一 | 普通 |
| kb_category | KnowledgeCategory | category_name | VARCHAR(128) | 是 | 分类名称 | 普通 |
| kb_category | KnowledgeCategory | parent_id | BIGINT | 否 | 上级分类 | 普通 |
| kb_category | KnowledgeCategory | material_types | JSON | 否 | 分类下资料类型 | 普通 |
| kb_category | KnowledgeCategory | sort_no | INT | 否 | 排序 | 普通 |
| kb_category | KnowledgeCategory | enabled | TINYINT | 是 | 是否启用 | 普通 |
| kb_material | KnowledgeMaterial | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| kb_material | KnowledgeMaterial | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| kb_material | KnowledgeMaterial | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| kb_material | KnowledgeMaterial | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| kb_material | KnowledgeMaterial | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| kb_material | KnowledgeMaterial | created_at | DATETIME | 是 | 创建时间 | 普通 |
| kb_material | KnowledgeMaterial | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| kb_material | KnowledgeMaterial | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| kb_material | KnowledgeMaterial | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| kb_material | KnowledgeMaterial | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| kb_material | KnowledgeMaterial | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| kb_material | KnowledgeMaterial | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| kb_material | KnowledgeMaterial | material_no | VARCHAR(64) | 是 | 资料编号,唯一 | 普通 |
| kb_material | KnowledgeMaterial | category_id | BIGINT | 是 | 分类 ID | 普通 |
| kb_material | KnowledgeMaterial | material_name | VARCHAR(128) | 是 | 资料名称 | 普通 |
| kb_material | KnowledgeMaterial | material_type | VARCHAR(32) | 是 | 文档/视频/音频/课件/案例 | 普通 |
| kb_material | KnowledgeMaterial | file_id | BIGINT | 否 | 文件 ID | 普通 |
| kb_material | KnowledgeMaterial | publish_status | VARCHAR(32) | 是 | 草稿/已发布/已下架 | 普通 |
| kb_training_course | KnowledgeCourse | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| kb_training_course | KnowledgeCourse | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| kb_training_course | KnowledgeCourse | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| kb_training_course | KnowledgeCourse | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| kb_training_course | KnowledgeCourse | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| kb_training_course | KnowledgeCourse | created_at | DATETIME | 是 | 创建时间 | 普通 |
| kb_training_course | KnowledgeCourse | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| kb_training_course | KnowledgeCourse | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| kb_training_course | KnowledgeCourse | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| kb_training_course | KnowledgeCourse | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| kb_training_course | KnowledgeCourse | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| kb_training_course | KnowledgeCourse | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| kb_training_course | KnowledgeCourse | course_no | VARCHAR(64) | 是 | 培训课程编号,唯一 | 普通 |
| kb_training_course | KnowledgeCourse | course_name | VARCHAR(128) | 是 | 培训课程名称 | 普通 |
| kb_training_course | KnowledgeCourse | category_id | BIGINT | 是 | 分类 ID | 普通 |
| kb_training_course | KnowledgeCourse | target_roles | JSON | 是 | 适用岗位/角色 | 普通 |
| kb_training_course | KnowledgeCourse | course_content | JSON | 是 | 章节与资料 | 普通 |
| kb_training_course | KnowledgeCourse | course_status | VARCHAR(32) | 是 | 草稿/已发布/已下架 | 普通 |
| kb_learning_task | TrainingLearningTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| kb_learning_task | TrainingLearningTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| kb_learning_task | TrainingLearningTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| kb_learning_task | TrainingLearningTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| kb_learning_task | TrainingLearningTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| kb_learning_task | TrainingLearningTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| kb_learning_task | TrainingLearningTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| kb_learning_task | TrainingLearningTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| kb_learning_task | TrainingLearningTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| kb_learning_task | TrainingLearningTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| kb_learning_task | TrainingLearningTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| kb_learning_task | TrainingLearningTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| kb_learning_task | TrainingLearningTask | task_no | VARCHAR(64) | 是 | 学习任务编号,唯一 | 普通 |
| kb_learning_task | TrainingLearningTask | course_id | BIGINT | 是 | 培训课程 ID | 普通 |
| kb_learning_task | TrainingLearningTask | employee_id | BIGINT | 是 | 员工 ID | 普通 |
| kb_learning_task | TrainingLearningTask | assigned_by | BIGINT | 是 | 指派人 | 普通 |
| kb_learning_task | TrainingLearningTask | deadline_at | DATETIME | 否 | 截止时间 | 普通 |
| kb_learning_task | TrainingLearningTask | learning_status | VARCHAR(32) | 是 | 未开始/学习中/已完成/逾期 | 普通 |
| kb_exam | TrainingExam | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| kb_exam | TrainingExam | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| kb_exam | TrainingExam | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| kb_exam | TrainingExam | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| kb_exam | TrainingExam | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| kb_exam | TrainingExam | created_at | DATETIME | 是 | 创建时间 | 普通 |
| kb_exam | TrainingExam | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| kb_exam | TrainingExam | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| kb_exam | TrainingExam | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| kb_exam | TrainingExam | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| kb_exam | TrainingExam | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| kb_exam | TrainingExam | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| kb_exam | TrainingExam | exam_no | VARCHAR(64) | 是 | 考试编号,唯一 | 普通 |
| kb_exam | TrainingExam | course_id | BIGINT | 否 | 关联培训课程 | 普通 |
| kb_exam | TrainingExam | exam_name | VARCHAR(128) | 是 | 考试名称 | 普通 |
| kb_exam | TrainingExam | paper_schema | JSON | 是 | 试卷结构 | 普通 |
| kb_exam | TrainingExam | pass_score | DECIMAL(6,2) | 是 | 及格分 | 普通 |
| kb_exam | TrainingExam | exam_status | VARCHAR(32) | 是 | 草稿/已发布/已结束 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| kb_exam_attempt | TrainingExamAttempt | created_at | DATETIME | 是 | 创建时间 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| kb_exam_attempt | TrainingExamAttempt | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | attempt_no | VARCHAR(64) | 是 | 答题编号,唯一 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | exam_id | BIGINT | 是 | 考试 ID | 普通 |
| kb_exam_attempt | TrainingExamAttempt | employee_id | BIGINT | 是 | 员工 ID | 普通 |
| kb_exam_attempt | TrainingExamAttempt | answer_payload | JSON | 是 | 答题内容 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | score | DECIMAL(6,2) | 否 | 得分 | 普通 |
| kb_exam_attempt | TrainingExamAttempt | pass_status | VARCHAR(32) | 是 | 待评分/通过/未通过 | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| kb_category | KnowledgeCategory | 知识库课程分类和资料类型 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、category_code(VARCHAR(64),必填)、category_name(VARCHAR(128),必填)、parent_id(BIGINT)、material_types(JSON)、sort_no(INT)、enabled(TINYINT,必填) | uk_category_code、idx_parent |
| kb_material | KnowledgeMaterial | 员工培训资料和素材库 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、material_no(VARCHAR(64),必填)、category_id(BIGINT,必填)、material_name(VARCHAR(128),必填)、material_type(VARCHAR(32),必填)、file_id(BIGINT)、publish_status(VARCHAR(32),必填) | uk_material_no、idx_category_status |
| kb_training_course | KnowledgeCourse | 教师培训课程 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、course_no(VARCHAR(64),必填)、course_name(VARCHAR(128),必填)、category_id(BIGINT,必填)、target_roles(JSON,必填)、course_content(JSON,必填)、course_status(VARCHAR(32),必填) | uk_course_no、idx_category_status |
| kb_learning_task | TrainingLearningTask | 员工学习任务 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、task_no(VARCHAR(64),必填)、course_id(BIGINT,必填)、employee_id(BIGINT,必填)、assigned_by(BIGINT,必填)、deadline_at(DATETIME)、learning_status(VARCHAR(32),必填) | uk_task_no、idx_employee_status |
| kb_exam | TrainingExam | 员工培训考试 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、exam_no(VARCHAR(64),必填)、course_id(BIGINT)、exam_name(VARCHAR(128),必填)、paper_schema(JSON,必填)、pass_score(DECIMAL(6,2),必填)、exam_status(VARCHAR(32),必填) | uk_exam_no、idx_course_status |
| kb_exam_attempt | TrainingExamAttempt | 考试答题和成绩 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、attempt_no(VARCHAR(64),必填)、exam_id(BIGINT,必填)、employee_id(BIGINT,必填)、answer_payload(JSON,必填)、score(DECIMAL(6,2))、pass_status(VARCHAR(32),必填) | uk_attempt_no、idx_exam_employee |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 员工培训 | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训计划发布、学习进度、考试成绩、补考复训和学习档案归档 |
| 回放发布访问 | 待发布 -> 已发布 -> 已下架 -> 已过期 -> 无权限 -> 访问异常 | 回放生成、范围发布、鉴权访问、下架、过期和异常处理 |
| 回放补传替换 | 录制失败 -> 待补传 -> 审核中 -> 已发布 -> 替换中 -> 已替换 -> 已通知 -> 已驳回 -> 已下架 | 录制失败或回放损坏后人工补传、审核、版本替换、通知和学习记录处理 |
| 督课评分规则版本 | 草稿 -> 待审核 -> 已发布 -> 已生效 -> 已停用 -> 已归档 | 评分维度、权重和生效范围配置后审批发布,历史评分按版本追溯 |
| 题库资源版本快照 | 草稿 -> 已发布 -> 已引用 -> 已冻结 -> 已下架 -> 历史可追溯 | 题目、试卷、资源发布后形成引用快照,历史答题按快照展示 |
| 工资条撤回重发 | 已发布 -> 撤回中 -> 已撤回 -> 重发待审核 -> 已重发 -> 待重新确认 -> 已确认 -> 已归档 | 工资条发布错误后撤回、重发、员工重新确认和版本留痕 |
知识库与教师培训中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
知识库与教师培训中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
知识库与教师培训中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
知识库与教师培训中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
知识库与教师培训中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
知识库与教师培训中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- 配置分类:需映射菜单、按钮、接口和字段权限
- 上传素材:需映射菜单、按钮、接口和字段权限
- 发布培训:需映射菜单、按钮、接口和字段权限
- 在线考试:需映射菜单、按钮、接口和字段权限
- 补训安排:需映射菜单、按钮、接口和字段权限
- 统计档案:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 录像调取审批 | 非巡课任务内调取历史录像或导出重点片段 | 申请人 -> 校长/区域负责人 -> 数据管理员 | 授权限时查看、导出或驳回 | 记录调取原因、录像范围、查看人和下载日志 |
| 薪资审批 | 月度薪资批次生成后 | 人事核算 -> 校长确认 -> 财务复核 -> 总部终审 | 工资条发布并生成凭证 | 保留规则版本和计算明细 |
| 活码外部资源审批 | 活码跳转外部链接或公开资源 | 教研提交 -> 品牌负责人审核 | 发布或下架活码规则 | 记录资源版本和访问范围 |
| 培训课程发布审批 | 面向全员、跨校区或涉及制度类培训内容 | 人事/教研提交 -> 部门负责人 -> 总部审核 | 发布培训计划或退回修改 | 记录适用岗位、资料版本和考试规则 |
| 系统节日模板上架审批 | 新增或调整 24 节气、传统节日等系统内置模板 | 设计/市场 -> 品牌审核 -> 总部管理员 | 通过后上架到模板库并可被活动创建引用 | 保留模板版本、素材版权、适用范围和上下架记录 |
| 转班转课审批 | 涉及补差、退差、跨校区、班级容量例外或优惠反算 | 课程顾问/教务 -> 校长 -> 财务 | 通过后调整权益、课表和收退差任务 | 保留测算版本、家长确认和生效记录 |
| 指标口径变更审批 | 指标公式、阈值、数据源或刷新频率变更 | 指标负责人 -> 数据管理员 -> 业务负责人 | 通过后生成新口径版本并通知订阅人 | 保留变更前后口径、影响范围和回滚方案 |
| 回放补传替换审批 | 录制失败、转码失败或已发布回放需要人工替换 | 教务/直播运营 -> 教学负责人 -> 数据安全复核 | 通过后替换回放版本并通知受影响用户 | 保留原回放、补传文件、审核意见和访问影响 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 培训任务通知 | 员工/直属主管 | 培训计划发布或即将到期 | 站内信、App、微信小程序 | 培训名称、截止时间、必修状态、学习入口 |
| 作业草稿冲突提醒 | 学员 | 多端编辑版本冲突或服务端作业内容已更新 | 小程序、App、站内信 | 作业、冲突类型、恢复入口 |
| 直播回放发布变更 | 学员/家长/教师/员工 | 回放发布、下架、过期或权限变更 | 小程序、App、站内信 | 直播标题、回放状态、有效期 |
| 回放补传替换通知 | 学员/家长/教师/教务 | 回放补传成功、替换、下架或学习进度处理完成 | 小程序、App、站内信 | 直播标题、回放版本、有效期、补看入口 |
| 督课规则版本通知 | 督导/教师/校长/总部教研 | 评分规则发布、停用、申诉追溯或权重调整 | 站内信、App | 规则版本、生效范围、影响时间 |
| 题库快照异常通知 | 教研/教师/培训负责人 | 题目版本缺失、试卷快照失败、历史答题引用异常 | 站内信、App | 题目、试卷、任务、异常原因 |
| 工资条撤回重发通知 | 教师/员工/人事 | 工资条撤回、重发、需重新确认或版本归档 | 小程序、App、站内信 | 薪资月份、版本号、确认截止时间 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/knowledge/courses | POST/GET | PC Web 到知识库 | categoryId, materialType, title, publishScope | courseId, versionNo, publishStatus | 分类与资料类型校验 |
| /api/v1/training/plans | POST/GET | PC Web 到培训中心 | planName, targetRoles, courseIds, examRule | planId, publishStatus, learnerCount | 同周期计划去重 |
| /api/v1/training/exams/{id}/submit | POST | 员工端到培训中心 | examId, answers, requestId | score, passStatus, certificateId | requestId 幂等 |
| /api/v1/live/meetings/{id}/archive | POST | 会议直播到知识库 | roomId, replayId, materialId, scope | archiveId, publishStatus | replayId 幂等 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| kb_category | 知识库课程分类和资料类型 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、category_code、category_name、parent_id、material_types、sort_no、enabled | uk_category_code、idx_parent |
| kb_material | 员工培训资料和素材库 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、material_no、category_id、material_name、material_type、file_id、publish_status | uk_material_no、idx_category_status |
| kb_training_course | 教师培训课程 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、course_no、course_name、category_id、target_roles、course_content、course_status | uk_course_no、idx_category_status |
| kb_learning_task | 员工学习任务 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、task_no、course_id、employee_id、assigned_by、deadline_at、learning_status | uk_task_no、idx_employee_status |
| kb_exam | 员工培训考试 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、exam_no、course_id、exam_name、paper_schema、pass_score、exam_status | uk_exam_no、idx_course_status |
| kb_exam_attempt | 考试答题和成绩 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、attempt_no、exam_id、employee_id、answer_payload、score、pass_status | uk_attempt_no、idx_exam_employee |
DDL 草案
kb_categoryKnowledgeCategory
CREATE TABLE `kb_category` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`category_code` VARCHAR(64) NOT NULL COMMENT '分类编码,唯一;数据级别:普通',
`category_name` VARCHAR(128) NOT NULL COMMENT '分类名称;数据级别:普通',
`parent_id` BIGINT NULL COMMENT '上级分类;数据级别:普通',
`material_types` JSON NULL COMMENT '分类下资料类型;数据级别:普通',
`sort_no` INT NULL COMMENT '排序;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_category_code` (`category_code`),
KEY `idx_parent` (`parent_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='KnowledgeCategory:知识库课程分类和资料类型';
kb_materialKnowledgeMaterial
CREATE TABLE `kb_material` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`material_no` VARCHAR(64) NOT NULL COMMENT '资料编号,唯一;数据级别:普通',
`category_id` BIGINT NOT NULL COMMENT '分类 ID;数据级别:普通',
`material_name` VARCHAR(128) NOT NULL COMMENT '资料名称;数据级别:普通',
`material_type` VARCHAR(32) NOT NULL COMMENT '文档/视频/音频/课件/案例;数据级别:普通',
`file_id` BIGINT NULL COMMENT '文件 ID;数据级别:普通',
`publish_status` VARCHAR(32) NOT NULL COMMENT '草稿/已发布/已下架;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_material_no` (`material_no`),
KEY `idx_category_status` (`category_id`, `publish_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='KnowledgeMaterial:员工培训资料和素材库';
kb_training_courseKnowledgeCourse
CREATE TABLE `kb_training_course` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`course_no` VARCHAR(64) NOT NULL COMMENT '培训课程编号,唯一;数据级别:普通',
`course_name` VARCHAR(128) NOT NULL COMMENT '培训课程名称;数据级别:普通',
`category_id` BIGINT NOT NULL COMMENT '分类 ID;数据级别:普通',
`target_roles` JSON NOT NULL COMMENT '适用岗位/角色;数据级别:普通',
`course_content` JSON NOT NULL COMMENT '章节与资料;数据级别:普通',
`course_status` VARCHAR(32) NOT NULL COMMENT '草稿/已发布/已下架;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_course_no` (`course_no`),
KEY `idx_category_status` (`category_id`, `course_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='KnowledgeCourse:教师培训课程';
kb_learning_taskTrainingLearningTask
CREATE TABLE `kb_learning_task` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`task_no` VARCHAR(64) NOT NULL COMMENT '学习任务编号,唯一;数据级别:普通',
`course_id` BIGINT NOT NULL COMMENT '培训课程 ID;数据级别:普通',
`employee_id` BIGINT NOT NULL COMMENT '员工 ID;数据级别:普通',
`assigned_by` BIGINT NOT NULL COMMENT '指派人;数据级别:普通',
`deadline_at` DATETIME NULL COMMENT '截止时间;数据级别:普通',
`learning_status` VARCHAR(32) NOT NULL COMMENT '未开始/学习中/已完成/逾期;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_no` (`task_no`),
KEY `idx_employee_status` (`employee_id`, `learning_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='TrainingLearningTask:员工学习任务';
kb_examTrainingExam
CREATE TABLE `kb_exam` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`exam_no` VARCHAR(64) NOT NULL COMMENT '考试编号,唯一;数据级别:普通',
`course_id` BIGINT NULL COMMENT '关联培训课程;数据级别:普通',
`exam_name` VARCHAR(128) NOT NULL COMMENT '考试名称;数据级别:普通',
`paper_schema` JSON NOT NULL COMMENT '试卷结构;数据级别:普通',
`pass_score` DECIMAL(6,2) NOT NULL COMMENT '及格分;数据级别:普通',
`exam_status` VARCHAR(32) NOT NULL COMMENT '草稿/已发布/已结束;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_exam_no` (`exam_no`),
KEY `idx_course_status` (`course_id`, `exam_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='TrainingExam:员工培训考试';
kb_exam_attemptTrainingExamAttempt
CREATE TABLE `kb_exam_attempt` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`attempt_no` VARCHAR(64) NOT NULL COMMENT '答题编号,唯一;数据级别:普通',
`exam_id` BIGINT NOT NULL COMMENT '考试 ID;数据级别:普通',
`employee_id` BIGINT NOT NULL COMMENT '员工 ID;数据级别:普通',
`answer_payload` JSON NOT NULL COMMENT '答题内容;数据级别:普通',
`score` DECIMAL(6,2) NULL COMMENT '得分;数据级别:普通',
`pass_status` VARCHAR(32) NOT NULL COMMENT '待评分/通过/未通过;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_attempt_no` (`attempt_no`),
KEY `idx_exam_employee` (`exam_id`, `employee_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='TrainingExamAttempt:考试答题和成绩';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-012 | 合同到期资源自动失效 | 合同有效期已过 | 学员访问课程资源 | 提示权限过期,不再播放资源 | 高 |
| TC-020 | 移动端兼容检查 | 准备家长小程序/H5、学员小程序、iPhone、iPad、安卓 App 环境 | 分别登录家长端和学员端执行核心学习、缴费、授权、审批流程 | 两个端的首页、权限、任务和通知互不混淆,关键操作可完成 | 中 |
| TC-022 | 字段脱敏与明文查看 | 用户具备普通客户权限但无明文权限 | 打开客户详情并尝试查看手机号 | 手机号脱敏,查看明文需审批或授权留痕 | 高 |
| TC-023 | 按钮权限控制 | 顾问账号无退费审批权限 | 进入退费单详情 | 可查看授权数据但不可审批 | 高 |
| TC-024 | 无权限页面状态 | 学员账号访问管理后台 URL | 直接访问页面地址 | 展示无权限状态且不泄露数据 | 高 |
| TC-036 | 首页驾驶舱指标下钻 | 总部账号登录且有数据 | 点击实收、课消、利润指标 | 可下钻到对应明细且权限过滤正确 | 中 |
| TC-037 | 知识库课程分类与资料类型 | 管理员已创建培训分类 | 新增资料类型并上传素材 | 分类下可检索对应资料,权限和版本记录正确 | 中 |
| TC-038 | 员工培训计划学习闭环 | 培训计划已发布并分配员工 | 员工打开培训、完成资料学习、提交考试 | 学习进度、考试成绩和员工培训档案完整 | 高 |
| TC-039 | 考试未通过自动补训 | 考试通过线已配置 | 员工考试分数低于通过线 | 系统生成补考/复训任务并通知员工和主管 | 中 |
| TC-041 | 地图监控与直播巡课 | 摄像头在线且账号具备巡课权限 | 在地图中定位校区教室并打开多画面直播 | 直播画面可打开,权限过滤正确,巡课访问留痕 | 高 |
| TC-KBT-ENH-001 | 培训体系交付闭环验收 | 知识库、培训计划、考试中心、学习档案相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐分类配置、资料上传、培训计划、学习任务、考试、补考、成绩复核和档案归档。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 员工培训从分配到通过或补训均有状态闭环。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-KBT-ENH-002 | 考试快照交付闭环验收 | 题库版本、考试详情、成绩复核相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐试卷快照、抽题策略、补考次数、考试超时和成绩复核。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 任一历史成绩能还原当时题目和评分规则。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-KBT-ENH-003 | 直播归档交付闭环验收 | 会议直播归档、培训资料详情相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐会议直播录制、回放审核、转为培训资料、学习任务和观看记录。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 会议回放可转为培训素材并纳入员工学习记录。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 组织与校区 | 导入集团、品牌、法人主体、区域、校区、部门、岗位 | 总部组织树、校区编码、法人关系、营业时间 | 组织层级正确且权限可继承 |
| 账号与权限 | 初始化总部、区域、校区、顾问、教务、教师、财务、家长、学员角色 | 账号、角色、菜单、按钮、字段、数据范围 | 测试账号可按角色访问指定页面 |
| 督课评分 | 初始化教学质量评分维度、权重、低分阈值、复核规则和申诉规则 | 学生维度、教师维度、课堂过程维度、学习结果维度、评分规则版本 | 指定课次可生成质量分并进入复核或整改闭环 |
| 教研资源 | 导入首批课程资源、题库、作业、测评和活码规则 | 资源分类、课次、权限、有效期、版本 | 学员端可按权益访问资源 |
| 知识库培训 | 初始化知识库分类、资料类型、培训课程、考试规则和岗位能力学习 | 分类目录、资料类型、必修课程、题库、学习档案规则 | 员工可按岗位收到培训任务并完成考试 |
| 积分商城 | 配置积分规则、礼品 SKU、兑换积分、核销校区和库存联动 | 积分来源、积分有效期、礼品库存、兑换规则、核销权限 | 学员兑换后可锁库,前台核销后可出库 |
| 上线校验 | 完成试运行数据核对、权限抽检、接口回归和备份策略 | 验收记录、问题清单、回滚方案、运维联系人 | 上线前无阻断问题 |
| 直播角色与权限 | 初始化直播管理员、教务直播运营、教师主播、助教、学员、员工参会、市场运营等权限 | 菜单、按钮、数据范围、导出审批、回放权限 | 各角色只能访问授权直播房间和回放 |
| 培训体系交付配置 | 初始化补齐分类配置、资料上传、培训计划、学习任务、考试、补考、成绩复核和档案归档。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 知识库、培训计划、考试中心、学习档案 | 员工培训从分配到通过或补训均有状态闭环。 |
| 考试快照交付配置 | 初始化补齐试卷快照、抽题策略、补考次数、考试超时和成绩复核。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 题库版本、考试详情、成绩复核 | 任一历史成绩能还原当时题目和评分规则。 |
| 直播归档交付配置 | 初始化补齐会议直播录制、回放审核、转为培训资料、学习任务和观看记录。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 会议直播归档、培训资料详情 | 会议回放可转为培训素材并纳入员工学习记录。 |