01 · 模块定位
数据驾驶舱
管理层可按校区和日期查看经营指标,并下钻到线索、合同、课消和财务明细。业务目标
为总部、区域、校区提供市场、销售、教务、售后、财务、人力和课程分析。
使用终端
PC Web 数据驾驶舱、会议大屏、总部/区域/校区经营复盘入口。
验收主线
管理层可按校区和日期查看经营指标,并下钻到线索、合同、课消和财务明细。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 总部看板
- 区域看板
- 校区排行
- 销售漏斗
- 课消分析
- 利润分析
- 直播数据分析
- 指标异常订阅
- 阈值配置
- 异常归因
- 责任人指派
- 处理反馈
- 指标口径变更审批
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
数据驾驶舱必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 数据库分区与归档策略 | 设备事件、直播互动、接口日志、视频会话、操作审计按时间分区和归档,交易主表保留业务索引和审计快照。 | DBA/后端 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
数据驾驶舱主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。总部看板需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
区域看板需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
校区排行需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
销售漏斗需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
课消分析需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
利润分析需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
直播数据分析需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 总部看板 | 看板配置与查看 | 总部看板支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 总部看板 | 业务处理 | 总部看板需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 总部看板 | 异常闭环 | 指标口径冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 区域看板 | 看板配置与查看 | 区域看板支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 区域看板 | 业务处理 | 区域看板需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 区域看板 | 异常闭环 | 数据延迟处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 校区排行 | 看板配置与查看 | 校区排行支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 校区排行 | 业务处理 | 校区排行需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 校区排行 | 异常闭环 | 权限过滤异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 销售漏斗 | 看板配置与查看 | 销售漏斗支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 销售漏斗 | 业务处理 | 销售漏斗需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 销售漏斗 | 异常闭环 | 指标数据延迟处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 课消分析 | 看板配置与查看 | 课消分析支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 课消分析 | 业务处理 | 课消分析需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 课消分析 | 异常闭环 | 责任人缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 利润分析 | 看板配置与查看 | 利润分析支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 利润分析 | 业务处理 | 利润分析需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 利润分析 | 异常闭环 | 异常重复触发处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 直播数据分析 | 看板配置与查看 | 直播数据分析支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 直播数据分析 | 业务处理 | 直播数据分析需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 直播数据分析 | 异常闭环 | 口径版本不一致处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 指标异常订阅 | 看板配置与查看 | 指标异常订阅支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 指标异常订阅 | 业务处理 | 数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。 | 必须联动状态、权限、消息、审批和指标 |
| 指标异常订阅 | 异常闭环 | 指标口径冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 阈值配置 | 看板配置与查看 | 阈值配置支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 阈值配置 | 业务处理 | 数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。 | 必须联动状态、权限、消息、审批和指标 |
| 阈值配置 | 异常闭环 | 数据延迟处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 异常归因 | 看板配置与查看 | 异常归因支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 异常归因 | 业务处理 | 数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。 | 必须联动状态、权限、消息、审批和指标 |
| 异常归因 | 异常闭环 | 权限过滤异常处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 责任人指派 | 看板配置与查看 | 责任人指派支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 责任人指派 | 业务处理 | 数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。 | 必须联动状态、权限、消息、审批和指标 |
| 责任人指派 | 异常闭环 | 指标数据延迟处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 处理反馈 | 看板配置与查看 | 处理反馈支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 处理反馈 | 业务处理 | 数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。 | 必须联动状态、权限、消息、审批和指标 |
| 处理反馈 | 异常闭环 | 责任人缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 指标口径变更审批 | 看板配置与查看 | 指标口径变更审批支持指标配置、筛选、刷新、下钻、导出、订阅和异常处理。 | 指标口径、权限范围、数据刷新时间和导出审批必须展示 |
| 指标口径变更审批 | 业务处理 | 数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。 | 必须联动状态、权限、消息、审批和指标 |
| 指标口径变更审批 | 异常闭环 | 异常重复触发处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 总部看板 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/01 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 区域看板 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/02 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 校区排行 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/03 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 销售漏斗 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/04 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 课消分析 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/05 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 利润分析 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/06 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 直播数据分析 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/07 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 指标异常订阅 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/08 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 阈值配置 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/09 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 异常归因 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/10 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 责任人指派 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/11 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 处理反馈 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/12 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 指标口径变更审批 | MetricDefinition、MetricSnapshot、DashboardConfig、MetricAlertTask | bi_metric_definition、bi_metric_snapshot、bi_dashboard_config、bi_metric_alert_task | 接口资源组 /api/v1/bi/features/13 | dashboard_type、alert_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-BI-001 | 展示线索、到访、试听、成交、收款、课消、续费、退费和利润 | 试听反馈台 | 到访签到、教师反馈或转化跟进 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 试听未到访、反馈缺失或转化任务未分配 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-BI-002 | 支持总部、区域、校区、课程、教师、顾问维度筛选 | 区域运营看板 | 刷新快照 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 数据延迟 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-BI-003 | 支持日报、周报、月报、趋势图和排行 | 指标异常处理 | 查看大屏 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 权限过滤异常 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-BI-004 | 支持收入下降、退费升高、课消异常、投诉升高等预警 | 指标异常处理 | 异常订阅、责任人处理或口径审批 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 指标延迟、责任人缺失或口径版本不一致 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-BI-005 | 指标口径与业务数据和财务数据一致 | 指标异常处理 | 异常订阅、责任人处理或口径审批 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 指标延迟、责任人缺失或口径版本不一致 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-BI-006 | 数据驾驶舱需支持指标异常订阅、阈值配置、异常归因、责任人指派、处理反馈、关闭确认和指标口径变更审批。 | 资产生命周期/图书进销存 | 领用、维修、责任人变更、盘点或图书出入库 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 责任人缺失、维修超期或库存不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-BI-007 | 指标异常需可从大屏下钻到明细、责任组织、责任人和处理记录,并支持消息提醒和超时升级。 | 资产生命周期/图书进销存 | 领用、维修、责任人变更、盘点或图书出入库 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 责任人缺失、维修超期或库存不足 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-BI-008 | 数据驾驶舱需展示设备维修 SLA、录像完整率、督课规则版本影响、付款失败补偿和库存成本异常等跨模块闭环指标。 | 采购对账付款 | 采购对账、采购付款或凭证归档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 对账不平、付款失败或凭证缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
数据驾驶舱在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 设备维修工单 | 展示设备异常、维修 SLA、离线时长、恢复率和校区设备健康排行 | 总部监控一千多台教室摄像头和多品牌设备状态 | 远程巡课大屏、设备健康看板、异常下钻、维修统计 | MetricSnapshot、MetricAlertTask、AssetLifecycle/Maintenance | 异常指标可下钻到设备、校区、工单和责任人 |
| 督课评分规则版本 | 展示不同规则版本下的教学质量分、趋势和可比性提示 | 评分规则升级后经营复盘需要避免口径混用 | 教师考核大屏、教学质量趋势、规则版本筛选 | TeachingQualityScore、MetricSnapshot | 报表必须标识评分规则版本和生效范围 |
| 统一付款补偿 | 展示资金异常、补偿任务、对账差异和处理时效 | 总部财务监控校区付款、退款、报销和工资发放异常 | 资金监管大屏、异常明细、补偿任务统计 | FinanceVoucher、MetricAlertTask | 资金异常可按校区、账套、付款类型和责任人下钻 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 总部经营驾驶舱 | 总部管理层 | 查看全局指标、校区排行、风险预警、指标下钻 | 数据页采用指标卡、趋势图、排行、地图/热力、异常任务和下钻明细组合,适配会议大屏。 | 刷新指标、切换组织、指标下钻、订阅预警、指派责任人、处理异常、导出报表 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、关闭结果、刷新时间 | 指标刷新失败、口径版本不一致、责任人缺失、下钻权限不足、导出需审批 | 需覆盖集团、校区、教师考核、销售考核、学生学习、资金监管、巡课和异常明细大屏视角。 建议 Figma Frame:BI-总部经营驾驶舱;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 区域运营看板 | 区域负责人 | 查看区域校区对比、督导任务、异常处理 | 数据页采用指标卡、趋势图、排行、地图/热力、异常任务和下钻明细组合,适配会议大屏。 | 刷新指标、切换组织、指标下钻、订阅预警、指派责任人、处理异常、导出报表 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、关闭结果、刷新时间 | 指标刷新失败、口径版本不一致、责任人缺失、下钻权限不足、导出需审批 | 需覆盖集团、校区、教师考核、销售考核、学生学习、资金监管、巡课和异常明细大屏视角。 建议 Figma Frame:BI-区域运营看板;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web/数据大屏 | 指标异常处理 | 总部/区域/校区负责人 | 配置指标阈值、异常订阅、责任人指派、处理反馈、关闭确认和口径变更审批 | 数据页采用指标卡、趋势图、排行、地图/热力、异常任务和下钻明细组合,适配会议大屏。 | 刷新指标、切换组织、指标下钻、订阅预警、指派责任人、处理异常、导出报表 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、关闭结果、刷新时间 | 指标刷新失败、口径版本不一致、责任人缺失、下钻权限不足、导出需审批 | 需覆盖集团、校区、教师考核、销售考核、学生学习、资金监管、巡课和异常明细大屏视角。 建议 Figma Frame:BI-指标异常处理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 集团大屏 | 总部/区域/校区管理层 | 围绕指标闭环完善集团大屏的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-集团大屏;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 异常明细 | 总部/区域/校区管理层 | 围绕指标闭环完善异常明细的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-异常明细;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 指标下钻 | 总部/区域/校区管理层 | 围绕指标闭环完善指标下钻的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-指标下钻;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 指标配置 | 总部/区域/校区管理层 | 围绕口径治理完善指标配置的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-指标配置;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 驾驶舱 | 总部/区域/校区管理层 | 围绕口径治理完善驾驶舱的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-驾驶舱;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 报表详情 | 总部/区域/校区管理层 | 围绕口径治理完善报表详情的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-报表详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 大屏下钻 | 总部/区域/校区管理层 | 围绕下钻权限完善大屏下钻的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-大屏下钻;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 明细表 | 总部/区域/校区管理层 | 围绕下钻权限完善明细表的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-明细表;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 数据大屏/PC Web | 导出弹窗 | 总部/区域/校区管理层 | 围绕下钻权限完善导出弹窗的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、配置指标、刷新快照 | 统计周期、组织范围、指标口径、指标值、同比/环比、预警等级、责任人、刷新时间 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:BI-导出弹窗;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 总部经营驾驶舱 | POST/GET /api/v1/metrics/snapshots | MetricDefinition | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 区域运营看板 | POST/GET /api/v1/metrics/alerts | MetricSnapshot | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 指标异常处理 | GET /api/v1/dashboard/headquarter | DashboardConfig | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 集团大屏 | GET /api/v1/dashboard/campus-ranking | MetricAlertTask | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 异常明细 | POST/GET /api/v1/metrics/snapshots | MetricDefinition | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 指标下钻 | POST/GET /api/v1/metrics/alerts | MetricSnapshot | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 指标配置 | GET /api/v1/dashboard/headquarter | DashboardConfig | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 驾驶舱 | GET /api/v1/dashboard/campus-ranking | MetricAlertTask | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 报表详情 | POST/GET /api/v1/metrics/snapshots | MetricDefinition | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 大屏下钻 | POST/GET /api/v1/metrics/alerts | MetricSnapshot | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 明细表 | GET /api/v1/dashboard/headquarter | DashboardConfig | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 导出弹窗 | GET /api/v1/dashboard/campus-ranking | MetricAlertTask | 草稿 -> 待处理 -> 处理中 -> 已完成 -> 异常待处理 -> 已关闭 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 指标闭环 | 补齐指标阈值、异常订阅、责任人指派、处理反馈、升级和关闭。 | 集团大屏、异常明细、指标下钻 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;异常指标能下钻到业务对象和处理责任人。 |
| 口径治理 | 补齐指标口径、数据来源、刷新时间、版本变更审批和历史对比提示。 | 指标配置、驾驶舱、报表详情 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;报表展示指标值时同时展示口径版本和刷新时间。 |
| 下钻权限 | 补齐下钻权限、导出审批、水印、敏感字段脱敏和审计。 | 大屏下钻、明细表、导出弹窗 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;无权限用户只能看到汇总或脱敏数据。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| MetricDefinition | 指标定义;落地表:bi_metric_definition |
| MetricSnapshot | 指标快照;落地表:bi_metric_snapshot |
| DashboardConfig | 数据大屏配置;落地表:bi_dashboard_config |
| MetricAlertTask | 指标异常预警任务;落地表:bi_metric_alert_task |
关联引用对象
| 对象 | 说明 |
|---|---|
| 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 |
| Lead | 销售线索主表;引用来源:CRM / crm_lead |
| Contract | 合同主表;引用来源:CON / con_contract |
| Consumption | 课消记录;引用来源:EDU / edu_consumption |
| LiveRoom | 直播间;引用来源:LIVE / live_room |
| TeachingQualityScore | 教学质量评分;引用来源:PAT / patrol_quality_score |
| FinanceVoucher | 会计凭证;引用来源:FIN / fin_voucher |
| Inventory | 库存余额;引用来源:MAT / mat_inventory |
| PayrollPayslip | 电子工资条;引用来源:HR / hr_payslip |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| MetricDefinition | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| MetricDefinition | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| MetricDefinition | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| MetricDefinition | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| MetricDefinition | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| MetricDefinition | created_at | DATETIME | 是 | 创建时间 | 普通 |
| MetricDefinition | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| MetricDefinition | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| MetricDefinition | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| MetricDefinition | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| MetricDefinition | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| MetricDefinition | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| MetricDefinition | metric_code | VARCHAR(64) | 是 | 指标编码,唯一 | 普通 |
| MetricDefinition | metric_name | VARCHAR(128) | 是 | 指标名称 | 普通 |
| MetricDefinition | metric_domain | VARCHAR(32) | 是 | 招生/课消/财务/教学/服务/库存/巡课 | 普通 |
| MetricDefinition | calculation_rule | TEXT | 是 | 口径定义 | 普通 |
| MetricDefinition | dimension_schema | JSON | 否 | 可用维度 | 普通 |
| MetricDefinition | enabled | TINYINT | 是 | 是否启用 | 普通 |
| MetricSnapshot | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| MetricSnapshot | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| MetricSnapshot | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| MetricSnapshot | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| MetricSnapshot | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| MetricSnapshot | created_at | DATETIME | 是 | 创建时间 | 普通 |
| MetricSnapshot | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| MetricSnapshot | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| MetricSnapshot | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| MetricSnapshot | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| MetricSnapshot | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| MetricSnapshot | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| MetricSnapshot | metric_code | VARCHAR(64) | 是 | 指标编码 | 普通 |
| MetricSnapshot | stat_date | DATE | 是 | 统计日期 | 普通 |
| MetricSnapshot | dimension_json | JSON | 否 | 维度值 | 普通 |
| MetricSnapshot | metric_value | DECIMAL(18,4) | 是 | 指标值 | 普通 |
| DashboardConfig | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| DashboardConfig | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| DashboardConfig | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| DashboardConfig | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| DashboardConfig | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| DashboardConfig | created_at | DATETIME | 是 | 创建时间 | 普通 |
| DashboardConfig | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| DashboardConfig | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| DashboardConfig | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| DashboardConfig | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| DashboardConfig | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| DashboardConfig | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| DashboardConfig | dashboard_code | VARCHAR(64) | 是 | 大屏编码,唯一 | 普通 |
| DashboardConfig | dashboard_name | VARCHAR(128) | 是 | 大屏名称 | 普通 |
| DashboardConfig | dashboard_type | VARCHAR(32) | 是 | 集团/校区/教师/销售/学员/监管/巡课 | 普通 |
| DashboardConfig | layout_schema | JSON | 是 | 大屏布局 | 普通 |
| DashboardConfig | refresh_rule | JSON | 是 | 刷新与轮播规则 | 普通 |
| DashboardConfig | enabled | TINYINT | 是 | 是否启用 | 普通 |
| MetricAlertTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| MetricAlertTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| MetricAlertTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| MetricAlertTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| MetricAlertTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| MetricAlertTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| MetricAlertTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| MetricAlertTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| MetricAlertTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| MetricAlertTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| MetricAlertTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| MetricAlertTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| MetricAlertTask | alert_no | VARCHAR(64) | 是 | 预警编号,唯一 | 普通 |
| MetricAlertTask | metric_code | VARCHAR(64) | 是 | 指标编码 | 普通 |
| MetricAlertTask | trigger_value | DECIMAL(18,4) | 是 | 触发值 | 普通 |
| MetricAlertTask | threshold_rule | JSON | 是 | 阈值规则 | 普通 |
| MetricAlertTask | owner_id | BIGINT | 否 | 责任人 ID | 普通 |
| MetricAlertTask | alert_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 | 是 | 是否加水印 | 普通 |
| crm_lead | Lead | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| crm_lead | Lead | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| crm_lead | Lead | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| crm_lead | Lead | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| crm_lead | Lead | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| crm_lead | Lead | created_at | DATETIME | 是 | 创建时间 | 普通 |
| crm_lead | Lead | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| crm_lead | Lead | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| crm_lead | Lead | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| crm_lead | Lead | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| crm_lead | Lead | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| crm_lead | Lead | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| crm_lead | Lead | lead_no | VARCHAR(64) | 是 | 线索编号,唯一 | 普通 |
| crm_lead | Lead | source_channel | VARCHAR(64) | 是 | 来源渠道 | 普通 |
| crm_lead | Lead | campaign_id | BIGINT | 否 | 来源活动 ID | 普通 |
| crm_lead | Lead | guardian_mobile | VARCHAR(32) | 是 | 家长手机号,敏感 | 敏感 |
| crm_lead | Lead | student_name | VARCHAR(64) | 否 | 学员姓名 | 普通 |
| crm_lead | Lead | intent_course_id | BIGINT | 否 | 意向课程 | 普通 |
| crm_lead | Lead | owner_id | BIGINT | 否 | 当前归属销售/顾问 | 普通 |
| crm_lead | Lead | protect_until | DATETIME | 否 | 保护期截止时间 | 普通 |
| crm_lead | Lead | duplicate_status | VARCHAR(32) | 是 | 未查重/疑似重复/已合并/已忽略 | 普通 |
| crm_lead | Lead | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| crm_lead | Lead | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| con_contract | Contract | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_contract | Contract | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_contract | Contract | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_contract | Contract | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_contract | Contract | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_contract | Contract | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_contract | Contract | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_contract | Contract | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_contract | Contract | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_contract | Contract | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_contract | Contract | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_contract | Contract | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_contract | Contract | contract_no | VARCHAR(64) | 是 | 合同编号,唯一 | 普通 |
| con_contract | Contract | student_id | BIGINT | 是 | 学员 ID | 普通 |
| con_contract | Contract | family_id | BIGINT | 否 | 客户家庭 ID | 普通 |
| con_contract | Contract | template_id | BIGINT | 是 | 合同模板 ID | 普通 |
| con_contract | Contract | employee_id | BIGINT | 否 | 创建合同的销售/市场/课程顾问员工 ID | 普通 |
| con_contract | Contract | source_terminal | VARCHAR(32) | 是 | 来源终端,教师端 App/小程序或 PC 管理端 | 普通 |
| con_contract | Contract | simulation_id | BIGINT | 否 | 关联优惠试算 ID | 普通 |
| con_contract | Contract | extra_discount_apply_id | BIGINT | 否 | 关联额外折扣申请 ID | 普通 |
| con_contract | Contract | hand_sign_status | VARCHAR(32) | 是 | 待手写签字/已手写签字/签字作废 | 普通 |
| con_contract | Contract | sign_status | VARCHAR(32) | 是 | 待家长签署/已手写签字/已作废 | 普通 |
| con_contract | Contract | payment_status | VARCHAR(32) | 是 | 待支付/支付中/支付成功/支付失败/已关闭 | 普通 |
| con_contract | Contract | enterprise_seal_status | VARCHAR(32) | 是 | 未触发/盖章中/已盖章/盖章失败/已归档 | 普通 |
| con_contract | Contract | contract_status | VARCHAR(32) | 是 | 草稿/生效/履约中/已终止/已退费 | 普通 |
| con_contract | Contract | supervision_status | VARCHAR(32) | 否 | 监管报送状态 | 普通 |
| con_contract | Contract | currency | VARCHAR(8) | 是 | 币种,默认 CNY | 普通 |
| con_contract | Contract | amount | DECIMAL(18,2) | 是 | 含税金额,必须大于等于 0 | 普通 |
| con_contract | Contract | tax_amount | DECIMAL(18,2) | 否 | 税额,按发票或税率计算 | 普通 |
| con_contract | Contract | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_contract | Contract | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| edu_consumption | Consumption | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_consumption | Consumption | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_consumption | Consumption | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_consumption | Consumption | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_consumption | Consumption | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_consumption | Consumption | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_consumption | Consumption | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_consumption | Consumption | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_consumption | Consumption | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_consumption | Consumption | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_consumption | Consumption | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_consumption | Consumption | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_consumption | Consumption | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_consumption | Consumption | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_consumption | Consumption | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| edu_consumption | Consumption | consumed_hours | DECIMAL(8,2) | 是 | 消耗课时 | 普通 |
| edu_consumption | Consumption | consume_amount | DECIMAL(18,2) | 否 | 课消金额 | 普通 |
| edu_consumption | Consumption | consume_status | VARCHAR(32) | 是 | 待确认/已课消/已冲销/异常 | 普通 |
| live_room | LiveRoom | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| live_room | LiveRoom | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| live_room | LiveRoom | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| live_room | LiveRoom | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| live_room | LiveRoom | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| live_room | LiveRoom | created_at | DATETIME | 是 | 创建时间 | 普通 |
| live_room | LiveRoom | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| live_room | LiveRoom | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| live_room | LiveRoom | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| live_room | LiveRoom | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| live_room | LiveRoom | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| live_room | LiveRoom | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| live_room | LiveRoom | room_no | VARCHAR(64) | 是 | 直播间编号,唯一 | 普通 |
| live_room | LiveRoom | live_type | VARCHAR(32) | 是 | 教学直播/活动直播/集团会议直播 | 普通 |
| live_room | LiveRoom | provider_code | VARCHAR(32) | 是 | 启用供应商 | 普通 |
| live_room | LiveRoom | biz_type | VARCHAR(64) | 是 | 绑定业务类型 | 普通 |
| live_room | LiveRoom | biz_id | BIGINT | 是 | 绑定业务 ID | 普通 |
| live_room | LiveRoom | start_at | DATETIME | 否 | 计划开始时间 | 普通 |
| live_room | LiveRoom | end_at | DATETIME | 否 | 计划结束时间 | 普通 |
| live_room | LiveRoom | room_status | VARCHAR(32) | 是 | 待开播/直播中/已结束/异常 | 普通 |
| 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) | 是 | 草稿/已提交/已复核/已驳回 | 普通 |
| fin_voucher | FinanceVoucher | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| fin_voucher | FinanceVoucher | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| fin_voucher | FinanceVoucher | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| fin_voucher | FinanceVoucher | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| fin_voucher | FinanceVoucher | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| fin_voucher | FinanceVoucher | created_at | DATETIME | 是 | 创建时间 | 普通 |
| fin_voucher | FinanceVoucher | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| fin_voucher | FinanceVoucher | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| fin_voucher | FinanceVoucher | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| fin_voucher | FinanceVoucher | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| fin_voucher | FinanceVoucher | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| fin_voucher | FinanceVoucher | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| fin_voucher | FinanceVoucher | voucher_no | VARCHAR(64) | 是 | 凭证编号,账套期间内唯一 | 普通 |
| fin_voucher | FinanceVoucher | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| fin_voucher | FinanceVoucher | period_code | VARCHAR(32) | 是 | 会计期间 | 普通 |
| fin_voucher | FinanceVoucher | source_biz_type | VARCHAR(64) | 否 | 来源业务类型 | 普通 |
| fin_voucher | FinanceVoucher | source_biz_no | VARCHAR(64) | 否 | 来源业务编号 | 普通 |
| fin_voucher | FinanceVoucher | voucher_status | VARCHAR(32) | 是 | 草稿/待审核/已审核/已过账/已红冲 | 普通 |
| fin_voucher | FinanceVoucher | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| fin_voucher | FinanceVoucher | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| mat_inventory | Inventory | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_inventory | Inventory | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_inventory | Inventory | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_inventory | Inventory | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_inventory | Inventory | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_inventory | Inventory | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_inventory | Inventory | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_inventory | Inventory | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_inventory | Inventory | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_inventory | Inventory | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_inventory | Inventory | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_inventory | Inventory | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_inventory | Inventory | sku_id | BIGINT | 是 | SKU ID | 普通 |
| mat_inventory | Inventory | warehouse_id | BIGINT | 是 | 仓库 ID | 普通 |
| mat_inventory | Inventory | available_qty | DECIMAL(18,2) | 是 | 可用库存 | 普通 |
| mat_inventory | Inventory | locked_qty | DECIMAL(18,2) | 是 | 锁定库存 | 普通 |
| mat_inventory | Inventory | in_transit_qty | DECIMAL(18,2) | 是 | 在途库存 | 普通 |
| mat_inventory | Inventory | cost_amount | DECIMAL(18,2) | 否 | 库存成本 | 普通 |
| hr_payslip | PayrollPayslip | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| hr_payslip | PayrollPayslip | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| hr_payslip | PayrollPayslip | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| hr_payslip | PayrollPayslip | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| hr_payslip | PayrollPayslip | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| hr_payslip | PayrollPayslip | created_at | DATETIME | 是 | 创建时间 | 普通 |
| hr_payslip | PayrollPayslip | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| hr_payslip | PayrollPayslip | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| hr_payslip | PayrollPayslip | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| hr_payslip | PayrollPayslip | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| hr_payslip | PayrollPayslip | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| hr_payslip | PayrollPayslip | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| hr_payslip | PayrollPayslip | payslip_no | VARCHAR(64) | 是 | 工资条编号,唯一 | 普通 |
| hr_payslip | PayrollPayslip | batch_id | BIGINT | 是 | 薪酬批次 ID | 普通 |
| hr_payslip | PayrollPayslip | employee_id | BIGINT | 是 | 员工 ID | 普通 |
| hr_payslip | PayrollPayslip | gross_salary | DECIMAL(18,2) | 是 | 应发工资 | 普通 |
| hr_payslip | PayrollPayslip | net_salary | DECIMAL(18,2) | 是 | 实发工资 | 普通 |
| hr_payslip | PayrollPayslip | show_social_insurance | TINYINT | 是 | 是否显示社保信息 | 普通 |
| hr_payslip | PayrollPayslip | show_housing_fund | TINYINT | 是 | 是否显示公积金信息 | 普通 |
| hr_payslip | PayrollPayslip | confirm_status | VARCHAR(32) | 是 | 待确认/已确认/有异议 | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| bi_metric_definition | MetricDefinition | dimension_schema | METRIC_DIMENSION | {dimensions:[{code:string,name:string,type:string,refTable?:string}], filters:object} | 维度编码必须来自指标口径配置 | {"dimensions":[{"code":"campusId","type":"BIGINT","refTable":"sys_campus_profile"}]} |
| bi_metric_snapshot | MetricSnapshot | dimension_json | METRIC_DIMENSION | {dimensions:[{code:string,name:string,type:string,refTable?:string}], filters:object} | 维度编码必须来自指标口径配置 | {"dimensions":[{"code":"campusId","type":"BIGINT","refTable":"sys_campus_profile"}]} |
| bi_dashboard_config | DashboardConfig | layout_schema | PAGE_SCHEMA | {components:[{type:string, props:object, sortNo:number}], theme:object, form:object, tracking:object} | 组件类型必须来自模板组件白名单;表单字段必须有唯一 fieldCode | {"components":[{"type":"banner","props":{"title":"开学季体验课"},"sortNo":1}],"form":{"fields":["guardianMobile"]}} |
| bi_dashboard_config | DashboardConfig | refresh_rule | DASHBOARD_LAYOUT | {widgets:[{widgetCode:string, metricCode:string, type:string, x:number, y:number, w:number, h:number}], theme:string} | 组件编码唯一;指标必须启用 | {"widgets":[{"widgetCode":"ARR","metricCode":"monthly_revenue","type":"card","w":3,"h":1}]} |
| bi_metric_alert_task | MetricAlertTask | threshold_rule | ALERT_THRESHOLD | {operator:string, value:number, durationMinutes:number, severity:string, notifyRule:object} | 阈值必须与指标单位一致 | {"operator":"<","value":80,"severity":"HIGH"} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| bi_metric_definition | MetricDefinition | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| bi_metric_definition | MetricDefinition | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| bi_metric_definition | MetricDefinition | metric_domain | METRIC_DOMAIN | 招生、课消、财务、教学、服务、库存、巡课 | 非终态,可按状态机或字典规则流转 | 招生/课消/财务/教学/服务/库存/巡课 |
| bi_metric_definition | MetricDefinition | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| bi_metric_snapshot | MetricSnapshot | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| bi_metric_snapshot | MetricSnapshot | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| bi_dashboard_config | DashboardConfig | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| bi_dashboard_config | DashboardConfig | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| bi_dashboard_config | DashboardConfig | dashboard_type | DASHBOARD_TYPE | 集团、校区、教师、销售、学员、监管、巡课 | 非终态,可按状态机或字典规则流转 | 集团/校区/教师/销售/学员/监管/巡课 |
| bi_dashboard_config | DashboardConfig | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| bi_metric_alert_task | MetricAlertTask | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| bi_metric_alert_task | MetricAlertTask | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| bi_metric_alert_task | MetricAlertTask | alert_status | ALERT_STATUS | 待处理、处理中、已关闭、误报 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待处理/处理中/已关闭/误报 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 引用对象 | 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 | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | crm_lead | Lead | guardian_mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | crm_lead | Lead | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | con_contract | Contract | tax_amount | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 引用对象 | fin_voucher | FinanceVoucher | voucher_no | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | hr_payslip | PayrollPayslip | payslip_no | 普通 | PAYROLL_MASK | 默认仅本人和授权人力/财务可见;社保、公积金字段按后台开关展示 | 工资条批量导出必须走高敏审批并限制下载次数 | 发布、撤回、重发、查看、确认、异议、导出全链路审计 | 教师/员工端仅查看本人电子工资条;PC 按岗位与审批展示 |
| 引用对象 | hr_payslip | PayrollPayslip | gross_salary | 普通 | PAYROLL_MASK | 默认仅本人和授权人力/财务可见;社保、公积金字段按后台开关展示 | 工资条批量导出必须走高敏审批并限制下载次数 | 发布、撤回、重发、查看、确认、异议、导出全链路审计 | 教师/员工端仅查看本人电子工资条;PC 按岗位与审批展示 |
| 引用对象 | hr_payslip | PayrollPayslip | net_salary | 普通 | PAYROLL_MASK | 默认仅本人和授权人力/财务可见;社保、公积金字段按后台开关展示 | 工资条批量导出必须走高敏审批并限制下载次数 | 发布、撤回、重发、查看、确认、异议、导出全链路审计 | 教师/员工端仅查看本人电子工资条;PC 按岗位与审批展示 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| bi_metric_definition | MetricDefinition | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| bi_metric_definition | MetricDefinition | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| bi_metric_definition | MetricDefinition | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| bi_metric_definition | MetricDefinition | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| bi_metric_definition | MetricDefinition | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| bi_metric_definition | MetricDefinition | created_at | DATETIME | 是 | 创建时间 | 普通 |
| bi_metric_definition | MetricDefinition | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| bi_metric_definition | MetricDefinition | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| bi_metric_definition | MetricDefinition | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| bi_metric_definition | MetricDefinition | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| bi_metric_definition | MetricDefinition | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| bi_metric_definition | MetricDefinition | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| bi_metric_definition | MetricDefinition | metric_code | VARCHAR(64) | 是 | 指标编码,唯一 | 普通 |
| bi_metric_definition | MetricDefinition | metric_name | VARCHAR(128) | 是 | 指标名称 | 普通 |
| bi_metric_definition | MetricDefinition | metric_domain | VARCHAR(32) | 是 | 招生/课消/财务/教学/服务/库存/巡课 | 普通 |
| bi_metric_definition | MetricDefinition | calculation_rule | TEXT | 是 | 口径定义 | 普通 |
| bi_metric_definition | MetricDefinition | dimension_schema | JSON | 否 | 可用维度 | 普通 |
| bi_metric_definition | MetricDefinition | enabled | TINYINT | 是 | 是否启用 | 普通 |
| bi_metric_snapshot | MetricSnapshot | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| bi_metric_snapshot | MetricSnapshot | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| bi_metric_snapshot | MetricSnapshot | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| bi_metric_snapshot | MetricSnapshot | created_at | DATETIME | 是 | 创建时间 | 普通 |
| bi_metric_snapshot | MetricSnapshot | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| bi_metric_snapshot | MetricSnapshot | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| bi_metric_snapshot | MetricSnapshot | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| bi_metric_snapshot | MetricSnapshot | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| bi_metric_snapshot | MetricSnapshot | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| bi_metric_snapshot | MetricSnapshot | metric_code | VARCHAR(64) | 是 | 指标编码 | 普通 |
| bi_metric_snapshot | MetricSnapshot | stat_date | DATE | 是 | 统计日期 | 普通 |
| bi_metric_snapshot | MetricSnapshot | dimension_json | JSON | 否 | 维度值 | 普通 |
| bi_metric_snapshot | MetricSnapshot | metric_value | DECIMAL(18,4) | 是 | 指标值 | 普通 |
| bi_dashboard_config | DashboardConfig | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| bi_dashboard_config | DashboardConfig | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| bi_dashboard_config | DashboardConfig | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| bi_dashboard_config | DashboardConfig | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| bi_dashboard_config | DashboardConfig | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| bi_dashboard_config | DashboardConfig | created_at | DATETIME | 是 | 创建时间 | 普通 |
| bi_dashboard_config | DashboardConfig | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| bi_dashboard_config | DashboardConfig | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| bi_dashboard_config | DashboardConfig | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| bi_dashboard_config | DashboardConfig | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| bi_dashboard_config | DashboardConfig | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| bi_dashboard_config | DashboardConfig | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| bi_dashboard_config | DashboardConfig | dashboard_code | VARCHAR(64) | 是 | 大屏编码,唯一 | 普通 |
| bi_dashboard_config | DashboardConfig | dashboard_name | VARCHAR(128) | 是 | 大屏名称 | 普通 |
| bi_dashboard_config | DashboardConfig | dashboard_type | VARCHAR(32) | 是 | 集团/校区/教师/销售/学员/监管/巡课 | 普通 |
| bi_dashboard_config | DashboardConfig | layout_schema | JSON | 是 | 大屏布局 | 普通 |
| bi_dashboard_config | DashboardConfig | refresh_rule | JSON | 是 | 刷新与轮播规则 | 普通 |
| bi_dashboard_config | DashboardConfig | enabled | TINYINT | 是 | 是否启用 | 普通 |
| bi_metric_alert_task | MetricAlertTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| bi_metric_alert_task | MetricAlertTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| bi_metric_alert_task | MetricAlertTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| bi_metric_alert_task | MetricAlertTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| bi_metric_alert_task | MetricAlertTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| bi_metric_alert_task | MetricAlertTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| bi_metric_alert_task | MetricAlertTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| bi_metric_alert_task | MetricAlertTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| bi_metric_alert_task | MetricAlertTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| bi_metric_alert_task | MetricAlertTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| bi_metric_alert_task | MetricAlertTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| bi_metric_alert_task | MetricAlertTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| bi_metric_alert_task | MetricAlertTask | alert_no | VARCHAR(64) | 是 | 预警编号,唯一 | 普通 |
| bi_metric_alert_task | MetricAlertTask | metric_code | VARCHAR(64) | 是 | 指标编码 | 普通 |
| bi_metric_alert_task | MetricAlertTask | trigger_value | DECIMAL(18,4) | 是 | 触发值 | 普通 |
| bi_metric_alert_task | MetricAlertTask | threshold_rule | JSON | 是 | 阈值规则 | 普通 |
| bi_metric_alert_task | MetricAlertTask | owner_id | BIGINT | 否 | 责任人 ID | 普通 |
| bi_metric_alert_task | MetricAlertTask | alert_status | VARCHAR(32) | 是 | 待处理/处理中/已关闭/误报 | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| bi_metric_definition | MetricDefinition | 指标定义 | 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,必填)、metric_code(VARCHAR(64),必填)、metric_name(VARCHAR(128),必填)、metric_domain(VARCHAR(32),必填)、calculation_rule(TEXT,必填)、dimension_schema(JSON)、enabled(TINYINT,必填) | uk_metric_code、idx_domain |
| bi_metric_snapshot | MetricSnapshot | 指标快照 | 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,必填)、metric_code(VARCHAR(64),必填)、stat_date(DATE,必填)、dimension_json(JSON)、metric_value(DECIMAL(18,4),必填) | idx_metric_date、idx_org |
| bi_dashboard_config | DashboardConfig | 数据大屏配置 | 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,必填)、dashboard_code(VARCHAR(64),必填)、dashboard_name(VARCHAR(128),必填)、dashboard_type(VARCHAR(32),必填)、layout_schema(JSON,必填)、refresh_rule(JSON,必填)、enabled(TINYINT,必填) | uk_dashboard_code、idx_type |
| bi_metric_alert_task | MetricAlertTask | 指标异常预警任务 | 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,必填)、alert_no(VARCHAR(64),必填)、metric_code(VARCHAR(64),必填)、trigger_value(DECIMAL(18,4),必填)、threshold_rule(JSON,必填)、owner_id(BIGINT)、alert_status(VARCHAR(32),必填) | uk_alert_no、idx_metric_status |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 线索 | 新建 -> 已分配 -> 跟进中 -> 已邀约 -> 已试听 -> 待签约 -> 已成交 -> 已流失 | 顾问跟进、试听反馈、合同创建、流失原因 |
| 合同 | 草稿 -> 待审批 -> 待签署 -> 已签署 -> 已备案 -> 已收款 -> 履约中 -> 已结课 -> 已退费 -> 已作废 | 优惠审批、电子签、监管备案、收款、课消、退费 |
| 课次 | 未开始 -> 待签到 -> 已签到 -> 已课消 -> 请假 -> 补课 -> 旷课 -> 异常待确认 | 排课发布、签到、课消、请假、补课和人工确认 |
| 督课评分 | 待评分 -> 系统初评 -> 待复核 -> 已确认 -> 申诉中 -> 已调整 -> 已归档 | 学生数据采集、教师数据采集、系统评分、督课复核、校长确认和申诉处理 |
| 监管报送 | 待生成 -> 待报送 -> 报送中 -> 成功 -> 失败 -> 待重报 -> 人工处理 | 合同备案、收款、课消、退费报送与回执 |
| 学习任务 | 未开始 -> 学习中 -> 已提交 -> 已批改 -> 需订正 -> 已完成 -> 已过期 | 资源学习、作业提交、教师批改和进度归档 |
| 直播房间 | 草稿 -> 待开播 -> 直播中 -> 已结束 -> 回放生成中 -> 可回放 -> 异常 -> 已关闭 | 创建房间、供应商资源申请、教师开播、下课、录制转码、回放发布和异常关闭 |
| 直播连麦请求 | 未举手 -> 已举手排队 -> 教师邀请中 -> 连接中 -> 上麦中 -> 已下麦 -> 已拒绝 -> 已取消 -> 已超时 -> 连接失败 | 学员举手进入队列,教师处理后进入邀请和连接;取消、拒绝、超时、失败、下麦均写入互动事件和连麦请求记录 |
| 直播连麦座席 | 空闲 -> 占用中 -> 静音 -> 下麦中 -> 已释放 -> 异常 | 教师端按座席管理当前上麦人员,人数达到上限后新请求继续排队或提示人数已满 |
| 请假补课 | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 家长请假、教务审批、课消冻结或回滚、补课安排、家长确认和补课完成 |
| 试听课 | 已预约 -> 已提醒 -> 已到访 -> 已试听 -> 待反馈 -> 已反馈 -> 已转化 -> 未到访 -> 已关闭 | 预约、提醒、到访签到、教师反馈、家长评价、未到访唤醒和转化 |
| 补课改期取消 | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 家长发起改期或取消,教务处理候选课次和课消冲正,最终回到补课安排或关闭 |
| 设备维修工单 | 待派单 -> 已派单 -> 已接单 -> 排查中 -> 待恢复校验 -> 已恢复 -> 已关闭 -> 已升级 | 视频设备离线告警生成维修工单,恢复后回测直播、回放、录像索引 |
| 国税核验配置 | 草稿 -> 启用中 -> 频控中 -> 异常 -> 已停用 -> 已过期 | 校区税务主体、官方接口凭证、额度、启用状态和调用日志 |
| 课堂端会话 | 待绑定 -> 已绑定 -> 待开课 -> 授课中 -> 暂停中 -> 已结束 -> 异常断开 | 教师或教室设备创建课堂会话,TV 与教师端完成绑定后同步课件、互动和课堂状态;断开后可重连,结束后归档审计。 |
| TV 课件播放 | 未加载 -> 加载中 -> 播放中 -> 暂停 -> 互动展示中 -> 播放失败 -> 已退出 | TV 端接收课堂联动指令,按课件类型播放或展示,失败时回传错误码并提示教师端重试。 |
| 教师端工作台任务 | 待处理 -> 处理中 -> 已完成 -> 已驳回 -> 已超时 -> 已取消 | 课程、批改、审批、培训、报销、工资条和直播任务统一进入工作台待办,并按业务模块回写处理状态。 |
| 员工推广资产 | 待生成 -> 已生成 -> 分享中 -> 已停用 -> 已失效 -> 生成失败 | 员工在教师端领取活动后生成专属短链、二维码和海报,活动停用或超期后资产失效 |
| 员工分享记录 | 已分享 -> 已访问 -> 已扫码 -> 已留资 -> 已生成线索 -> 已预约试听 -> 已签约 -> 已流失 | 外部访问、扫码、留资和转化阶段均回写员工分享记录 |
数据驾驶舱涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
数据驾驶舱涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
数据驾驶舱涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
数据驾驶舱涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
数据驾驶舱涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
数据驾驶舱涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- 配置指标:需映射菜单、按钮、接口和字段权限
- 刷新快照:需映射菜单、按钮、接口和字段权限
- 查看大屏:需映射菜单、按钮、接口和字段权限
- 异常订阅:需映射菜单、按钮、接口和字段权限
- 异常处理:需映射菜单、按钮、接口和字段权限
- 口径审批:需映射菜单、按钮、接口和字段权限
- 下钻明细:需映射菜单、按钮、接口和字段权限
- 导出报表:需映射菜单、按钮、接口和字段权限
- 触发预警:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 账套反结账审批 | 已结账期间需要反结账或更正税务资料 | 校区财务提交 -> 总部财务复核 -> 财务负责人终审 | 通过后解锁期间并记录调整原因 | 保留反结账前后凭证、税表和审批说明 |
| 物料采购审批 | 采购金额超过阈值、跨校区采购或固定资产采购 | 申请人 -> 校区负责人 -> 采购/财务 -> 总部审批 | 通过后生成采购订单和到货验收任务 | 保留预算、供应商、报价和采购合同附件 |
| 固定资产报废审批 | 固定资产、图书或高价值物料需要报废 | 责任人提交 -> 校区负责人 -> 资产管理员 -> 财务复核 | 通过后出库、报废并生成财务核销记录 | 保留照片、盘点记录、处置说明和残值 |
| 转校审批 | 学员权益跨校区转移 | 原校区校长 -> 目标校区校长 -> 财务确认 | 权益和服务归属迁移 | 记录转出转入校区和余额 |
| 合同作废审批 | 已签署或已收款合同作废 | 顾问提交 -> 校长 -> 财务 | 合同作废并回滚相关权益 | 保留作废原因和关联订单 |
| 课消撤销审批 | 已确认收入的课消记录撤销 | 教务提交 -> 校长 -> 财务 | 撤销课消、恢复课时、冲回收入 | 记录原课次和撤销原因 |
| 录像调取审批 | 非巡课任务内调取历史录像或导出重点片段 | 申请人 -> 校长/区域负责人 -> 数据管理员 | 授权限时查看、导出或驳回 | 记录调取原因、录像范围、查看人和下载日志 |
| 督课评分复核 | 教学质量分低于阈值、教师提出申诉或总部抽检命中 | 教研督导 -> 校长/区域教学负责人 -> 总部教研 | 维持评分、调整评分或生成整改复训任务 | 保留评分明细、回放片段、调整原因和复核人 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 新线索分配提醒 | 课程顾问 | 线索分配成功 | 站内信、App、企微 | 学员姓名、来源渠道、校区、保护期 |
| 跟进超时提醒 | 课程顾问/销售主管 | 超过首响或回访 SLA | 站内信、App | 客户姓名、超时时长、下次跟进时间 |
| 试听预约通知 | 家长/教师/顾问 | 试听课预约成功或变更 | 小程序、短信、App | 上课时间、校区、教室、教师 |
| 收款成功通知 | 家长/顾问/财务 | 支付成功 | 小程序、站内信 | 订单金额、课程、支付时间 |
| 库存预警 | 库管/校区负责人 | 物料或礼品低于安全库存 | 站内信、App、企微 | SKU、校区、当前库存、安全库存、补货建议 |
| 积分兑换核销通知 | 学员/家长/校区前台 | 兑换成功、即将过期或核销完成 | 小程序、App、站内信 | 礼品名称、兑换码、核销校区、有效期 |
| 到校签到通知 | 家长 | 人脸或人工签到成功 | 小程序、App | 学员姓名、签到时间、校区、课程 |
| 摄像头离线告警 | 设备管理员/校区前台 | 摄像头心跳超时或拉流失败 | 站内信、App | 校区、教室、摄像头编号、品牌、异常时间 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/metrics/snapshots | POST/GET | 数仓到指标中心 | metricCode, period, orgId, value, dimensions | snapshotId, versionNo | metric + period + org 唯一 |
| /api/v1/metrics/alerts | POST/GET | 数据中心 到业务负责人 | metricCode, thresholdRule, dimensionScope, ownerId, requestId | alertTaskId, alertStatus, drilldownUrl | metricCode + dimension + period 幂等 |
| /api/v1/dashboard/headquarter | GET | PC Web 到数仓 | period, regionId, metricGroup | cards, trends, rankings, alerts | 按数据范围过滤 |
| /api/v1/dashboard/campus-ranking | GET | PC Web 到数仓 | period, metricCode, regionId | rankingRows, delta, drilldownUrl | 指标口径版本锁定 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| bi_metric_definition | 指标定义 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、metric_code、metric_name、metric_domain、calculation_rule、dimension_schema、enabled | uk_metric_code、idx_domain |
| bi_metric_snapshot | 指标快照 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、metric_code、stat_date、dimension_json、metric_value | idx_metric_date、idx_org |
| bi_dashboard_config | 数据大屏配置 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、dashboard_code、dashboard_name、dashboard_type、layout_schema、refresh_rule、enabled | uk_dashboard_code、idx_type |
| bi_metric_alert_task | 指标异常预警任务 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、alert_no、metric_code、trigger_value、threshold_rule、owner_id、alert_status | uk_alert_no、idx_metric_status |
DDL 草案
bi_metric_definitionMetricDefinition
CREATE TABLE `bi_metric_definition` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`metric_code` VARCHAR(64) NOT NULL COMMENT '指标编码,唯一;数据级别:普通',
`metric_name` VARCHAR(128) NOT NULL COMMENT '指标名称;数据级别:普通',
`metric_domain` VARCHAR(32) NOT NULL COMMENT '招生/课消/财务/教学/服务/库存/巡课;数据级别:普通',
`calculation_rule` TEXT NOT NULL COMMENT '口径定义;数据级别:普通',
`dimension_schema` JSON NULL COMMENT '可用维度;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_metric_code` (`metric_code`),
KEY `idx_domain` (`metric_domain`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MetricDefinition:指标定义';
bi_metric_snapshotMetricSnapshot
CREATE TABLE `bi_metric_snapshot` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`metric_code` VARCHAR(64) NOT NULL COMMENT '指标编码;数据级别:普通',
`stat_date` DATE NOT NULL COMMENT '统计日期;数据级别:普通',
`dimension_json` JSON NULL COMMENT '维度值;数据级别:普通',
`metric_value` DECIMAL(18,4) NOT NULL COMMENT '指标值;数据级别:普通',
PRIMARY KEY (`id`),
KEY `idx_metric_date` (`metric_code`, `stat_date`),
KEY `idx_org` (`org_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MetricSnapshot:指标快照';
bi_dashboard_configDashboardConfig
CREATE TABLE `bi_dashboard_config` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`dashboard_code` VARCHAR(64) NOT NULL COMMENT '大屏编码,唯一;数据级别:普通',
`dashboard_name` VARCHAR(128) NOT NULL COMMENT '大屏名称;数据级别:普通',
`dashboard_type` VARCHAR(32) NOT NULL COMMENT '集团/校区/教师/销售/学员/监管/巡课;数据级别:普通',
`layout_schema` JSON NOT NULL COMMENT '大屏布局;数据级别:普通',
`refresh_rule` JSON NOT NULL COMMENT '刷新与轮播规则;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_dashboard_code` (`dashboard_code`),
KEY `idx_type` (`dashboard_type`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='DashboardConfig:数据大屏配置';
bi_metric_alert_taskMetricAlertTask
CREATE TABLE `bi_metric_alert_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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`alert_no` VARCHAR(64) NOT NULL COMMENT '预警编号,唯一;数据级别:普通',
`metric_code` VARCHAR(64) NOT NULL COMMENT '指标编码;数据级别:普通',
`trigger_value` DECIMAL(18,4) NOT NULL COMMENT '触发值;数据级别:普通',
`threshold_rule` JSON NOT NULL COMMENT '阈值规则;数据级别:普通',
`owner_id` BIGINT NULL COMMENT '责任人 ID;数据级别:普通',
`alert_status` VARCHAR(32) NOT NULL COMMENT '待处理/处理中/已关闭/误报;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_alert_no` (`alert_no`),
KEY `idx_metric_status` (`metric_code`, `alert_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MetricAlertTask:指标异常预警任务';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-003 | 试听预约和反馈 | 线索已分配并选择体验课 | 预约试听、教师填写反馈 | 客户状态更新,生成报价任务 | 高 |
| TC-005 | 电子合同签署和收款 | 合同模板启用 | 生成合同、家长签署、支付 | 合同已签署、订单已收款、权益生效 | 高 |
| TC-007 | 入班排课冲突校验 | 教师同时间已有课程 | 为同教师同时间排课 | 系统拦截并提示冲突对象 | 高 |
| TC-008 | 人脸签到自动课消 | 学员已授权人脸且课次待签到 | 模拟设备回传识别事件 | 签到成功、课消成功、家长收到通知 | 高 |
| TC-011 | 学员端访问授权资源 | 合同权益生效 | 学员登录微信小程序或 App 打开课程资源 | 资源可访问并记录学习进度,家长端仅查看学习报告摘要 | 高 |
| TC-012 | 合同到期资源自动失效 | 合同有效期已过 | 学员访问课程资源 | 提示权限过期,不再播放资源 | 高 |
| TC-013 | 教师发布作业并批改 | 课次已完成 | 教师发布作业,学员提交,教师批改 | 学员端展示批改结果和成长档案 | 中 |
| TC-014 | 学管风险预警生成 | 学员剩余课时低于阈值 | 刷新风险学员池 | 生成续费培育任务并通知学管 | 高 |
| TC-017 | 薪资课酬核算 | 教师授课和课消数据完整 | 执行月度薪资核算 | 课酬、提成、冲回金额计算正确 | 中 |
| TC-021 | 跨校区数据隔离 | 创建两个校区和不同校区账号 | 校区 A 账号访问校区 B 客户 | 无法查看或仅显示授权范围数据 | 高 |
| TC-BI-ENH-001 | 指标闭环交付闭环验收 | 集团大屏、异常明细、指标下钻相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐指标阈值、异常订阅、责任人指派、处理反馈、升级和关闭。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 异常指标能下钻到业务对象和处理责任人。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-BI-ENH-002 | 口径治理交付闭环验收 | 指标配置、驾驶舱、报表详情相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐指标口径、数据来源、刷新时间、版本变更审批和历史对比提示。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 报表展示指标值时同时展示口径版本和刷新时间。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-BI-ENH-003 | 下钻权限交付闭环验收 | 大屏下钻、明细表、导出弹窗相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐下钻权限、导出审批、水印、敏感字段脱敏和审计。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 无权限用户只能看到汇总或脱敏数据。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 组织与校区 | 导入集团、品牌、法人主体、区域、校区、部门、岗位 | 总部组织树、校区编码、法人关系、营业时间 | 组织层级正确且权限可继承 |
| 账号与权限 | 初始化总部、区域、校区、顾问、教务、教师、财务、家长、学员角色 | 账号、角色、菜单、按钮、字段、数据范围 | 测试账号可按角色访问指定页面 |
| 课程与价格 | 导入课程、班型、课包、课时、价格、适用校区 | 课程编码、班型、价格表、有效期、赠课规则 | 报价和合同可正确引用价格 |
| 优惠规则 | 初始化折扣、满减、优惠券、老带新、多科联报和组合包规则 | 规则编码、叠加互斥、适用课程、校区、有效期、审批阈值 | 报价单可正确计算并生成分摊明细 |
| 合同模板 | 配置多个统一电子合同模板 | 模板编号、适用课程、条款变量、签署人规则 | 合同生成内容完整且可签署 |
| 审批规则 | 配置优惠、退费、转课、导出、薪资、课消撤销审批流 | 审批对象、条件、节点、超时提醒 | 测试单据可进入正确审批链 |
| 财务科目 | 配置收款、预收、课消收入、退费、薪资、报销和内置科目映射 | 科目、辅助核算、校区、项目、部门 | 凭证可生成并写入测试账套 |
| 多账套会计 | 按校区初始化独立账套、会计期间、凭证字、科目和税务参数 | 账套编码、法人主体、校区、期间、税种、申报模板 | 校区账套可独立记账,总部可汇总和复核 |
| 指标闭环交付配置 | 初始化补齐指标阈值、异常订阅、责任人指派、处理反馈、升级和关闭。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 集团大屏、异常明细、指标下钻 | 异常指标能下钻到业务对象和处理责任人。 |
| 口径治理交付配置 | 初始化补齐指标口径、数据来源、刷新时间、版本变更审批和历史对比提示。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 指标配置、驾驶舱、报表详情 | 报表展示指标值时同时展示口径版本和刷新时间。 |
| 下钻权限交付配置 | 初始化补齐下钻权限、导出审批、水印、敏感字段脱敏和审计。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 大屏下钻、明细表、导出弹窗 | 无权限用户只能看到汇总或脱敏数据。 |