Files
training-system/training/workspace/specs/V2-StatisticsCenter.md
2026-05-12 12:24:11 +08:00

20 KiB
Raw Blame History

V2 统计报表中心 - 产品需求文档

版本V2.0.0-draft 作者Product Agent 日期2026-02-04 状态:待评审


一、功能概述

1.1 背景与目标

背景V1 版本完成了培训系统的基础功能,但管理层无法量化培训效果,讲师无法追踪学员学习情况,缺乏数据支撑决策。

目标:构建统计报表中心,让培训效果可量化、可追踪、可对比。

1.2 目标用户

角色 核心诉求
管理员 全局数据概览,跨部门对比,发现问题部门
讲师 本部门数据,学员学习进度,考试成绩分布
学员 个人学习记录,成绩趋势,与平均水平对比

1.3 功能边界

范围 说明
包含 数据看板、培训统计、考试统计、学员统计、数据导出
不包含 实时监控、预测分析、自定义报表设计器

二、功能清单

2.1 模块总览

统计报表中心
├── 2.1 数据概览看板
│   ├── 关键指标卡片
│   ├── 趋势图表
│   └── 快捷入口
│
├── 2.2 培训统计
│   ├── 培训计划完成率
│   ├── 知识学习统计
│   └── 部门培训排名
│
├── 2.3 考试统计
│   ├── 考试通过率
│   ├── 成绩分布
│   └── 题目正确率分析
│
├── 2.4 学员统计
│   ├── 学员学习排行
│   ├── 个人学习报告
│   └── 学习时长统计
│
└── 2.5 数据导出
    ├── Excel 导出
    └── 定期报表

三、详细需求

3.1 数据概览看板

3.1.1 功能描述

为不同角色提供个性化的数据概览首页,一目了然掌握关键指标。

3.1.2 管理员看板

关键指标卡片4个

指标 计算方式 对比
总学员数 状态=启用的学员数量 较上月增减
本月培训完成率 本月已完成培训人次 / 本月应完成培训人次 较上月变化
本月考试通过率 本月通过考试人次 / 本月参考人次 较上月变化
活跃学员数 本月有学习行为的学员数 较上月增减

趋势图表

  • 近6个月培训完成率趋势折线图
  • 近6个月考试通过率趋势折线图
  • 部门培训完成率排名横向柱状图TOP 8

快捷入口

  • 查看详细培训报表
  • 查看详细考试报表
  • 导出月度汇总

3.1.3 讲师看板

关键指标卡片4个

指标 范围
本部门学员数 本部门
本部门培训完成率 本部门本月
本部门考试通过率 本部门本月
待批阅数 如有主观题V2暂无

趋势图表

  • 本部门近6个月培训完成率趋势
  • 本部门学员学习进度分布(饼图:已完成/进行中/未开始)

3.1.4 学员看板

关键指标卡片4个

指标 说明
我的培训进度 已完成/总计划数
我的考试成绩 最近一次考试分数
学习排名 在本部门的排名
累计学习时长 总学习时长

图表

  • 我的成绩趋势近5次考试
  • 与部门平均分对比

3.1.5 验收标准

Feature: 数据概览看板

Scenario: 管理员查看全局看板
  Given 我是管理员角色
  When 我进入统计报表中心
  Then 我应该看到4个关键指标卡片
  And 我应该看到培训完成率趋势图
  And 我应该看到部门排名图表
  And 所有数据应反映全平台数据

Scenario: 讲师查看部门看板
  Given 我是讲师角色
  When 我进入统计报表中心
  Then 所有数据应仅包含本部门数据
  And 我不应该看到其他部门的数据

Scenario: 指标卡片显示环比变化
  Given 当前月份培训完成率为 80%
  And 上月培训完成率为 75%
  When 我查看培训完成率卡片
  Then 应显示 "+5%" 的环比增长标记
  And 增长应显示为绿色

3.2 培训统计

3.2.1 培训计划完成率

筛选条件

  • 时间范围:本月/本季度/本年度/自定义
  • 部门:全部/指定部门(管理员可选)
  • 培训计划:全部/指定计划

统计维度

维度 指标
按计划 计划名称、应参加人数、实际完成人数、完成率
按部门 部门名称、计划数、完成率、排名
按时间 月度完成率趋势

列表展示

培训计划 部门 应参加 已完成 完成率 状态
2026Q1安全培训 救援一部 50 45 90% 进行中
新员工入职培训 救援二部 20 20 100% 已结束

3.2.2 知识学习统计

统计内容

  • 知识总数、已发布数
  • 学习总人次
  • 热门知识 TOP 10按学习人次
  • 最少学习知识(提醒优化或下架)

3.2.3 验收标准

Feature: 培训统计

Scenario: 按部门查看培训完成率
  Given 我是管理员
  When 我选择按部门维度查看
  Then 应显示所有部门的培训完成率列表
  And 列表应按完成率降序排列
  And 应显示部门排名

Scenario: 筛选指定时间范围
  Given 我在培训统计页面
  When 我选择时间范围为 "2026年1月"
  Then 所有数据应仅包含该月份的培训数据

Scenario: 导出培训报表
  Given 我在培训统计页面
  When 我点击导出按钮
  Then 应下载 Excel 文件
  And 文件应包含当前筛选条件下的所有数据

3.3 考试统计

3.3.1 考试通过率

筛选条件

  • 时间范围:本月/本季度/本年度/自定义
  • 部门:全部/指定部门
  • 考试:全部/指定考试

统计指标

指标 说明
参考人数 实际参加考试的人数
通过人数 分数 >= 及格线的人数
通过率 通过人数 / 参考人数
平均分 所有考生的平均分数
最高分 / 最低分 分数极值

3.3.2 成绩分布

图表展示

  • 分数段分布柱状图0-59 / 60-69 / 70-79 / 80-89 / 90-100
  • 各部门平均分对比(横向柱状图)

列表展示

考试名称 参考人数 通过率 平均分 最高分 最低分
安全规范考核 120 85% 78.5 98 42
月度技能测试 95 72% 71.2 100 35

3.3.3 题目正确率分析

功能描述:分析每道题的正确率,发现难题和易错题。

统计内容

字段 说明
题目内容 题干摘要前50字
题型 单选/多选/判断
作答人次 该题被作答的总次数
正确率 正确人次 / 作答人次
错误选项分布 各错误选项的选择占比

排序

  • 默认按正确率升序(易错题优先)
  • 可切换按作答人次排序

用途

  • 正确率 < 30% 的题目:可能题目有问题或知识点难度大
  • 正确率 > 95% 的题目:可能过于简单

3.3.4 验收标准

Feature: 考试统计

Scenario: 查看考试成绩分布
  Given 我在考试统计页面
  When 我选择某场考试
  Then 应显示分数段分布柱状图
  And 应显示通过率、平均分等指标

Scenario: 查看题目正确率
  Given 我在考试统计页面
  When 我点击 "题目分析"
  And 选择某场考试
  Then 应显示该考试所有题目的正确率
  And 默认按正确率升序排列
  And 可以查看每道题的错误选项分布

Scenario: 识别易错题
  Given 某道题的正确率为 25%
  When 我查看题目分析列表
  Then 该题应标记为 "易错题"
  And 应显示主要错误选项

3.4 学员统计

3.4.1 学员学习排行

排行维度

  • 学习时长排行(本月/本季度)
  • 考试成绩排行(平均分/最高分)
  • 培训完成数排行

展示内容

排名 学员 部门 学习时长 完成培训数 平均分
1 张三 救援一部 45h 8 92
2 李四 救援二部 42h 7 88

范围控制

  • 管理员:可查看全平台排行
  • 讲师:仅可查看本部门排行
  • 学员:可查看本部门排行,自己会高亮显示

3.4.2 个人学习报告

入口

  • 讲师点击学员姓名进入
  • 学员点击"我的学习报告"进入

报告内容

模块 内容
基本信息 姓名、部门、入职时间、角色
学习概览 累计学习时长、完成培训数、参加考试数
培训记录 参加的培训计划列表,包含进度和状态
考试记录 参加的考试列表,包含成绩和是否通过
成绩趋势 近10次考试成绩折线图
能力雷达图 按知识分类的掌握程度(基于考试正确率)

3.4.3 学习时长统计

统计规则

  • 知识学习:从打开到关闭/切换的时长上限30分钟/次)
  • 视频学习:实际播放时长
  • 考试时长:从开始到交卷的时长

展示

  • 个人:日/周/月学习时长统计
  • 部门:部门平均学习时长、学习时长分布

3.4.4 验收标准

Feature: 学员统计

Scenario: 查看学习排行榜
  Given 我是讲师
  When 我进入学员排行榜页面
  Then 应显示本部门学员排行
  And 不应显示其他部门学员

Scenario: 查看个人学习报告
  Given 我是讲师
  When 我点击某学员的姓名
  Then 应进入该学员的学习报告页面
  And 应显示该学员的培训记录
  And 应显示该学员的考试记录
  And 应显示成绩趋势图

Scenario: 学员查看自己的报告
  Given 我是学员
  When 我点击 "我的学习报告"
  Then 应显示我的学习报告
  And 应显示我在部门中的排名

3.5 数据导出

3.5.1 Excel 导出

支持导出的报表

报表 内容 权限
培训完成率报表 按计划/部门的完成率明细 管理员、讲师
考试成绩报表 学员成绩明细 管理员、讲师
学员学习报表 学员学习时长和完成情况 管理员、讲师
题目分析报表 题目正确率明细 管理员、讲师

导出规则

  • 导出当前筛选条件下的数据
  • 文件名格式:报表类型_日期_导出人.xlsx
  • 单次导出上限10000 条记录

3.5.2 验收标准

Feature: 数据导出

Scenario: 导出考试成绩报表
  Given 我在考试统计页面
  And 当前筛选条件为 "2026年1月"
  When 我点击导出按钮
  Then 应下载 Excel 文件
  And 文件名应为 "考试成绩报表_20260204_张三.xlsx"
  And 数据应仅包含20261月的考试成绩

Scenario: 导出数据量限制
  Given 当前筛选条件下有 15000 条记录
  When 我点击导出按钮
  Then 应提示 "数据量超过限制,请缩小筛选范围"

四、数据模型(建议)

4.1 新增统计表(可选,用于性能优化)

日统计汇总表 (stat_daily_summary)

字段 类型 说明
id Long 主键
stat_date Date 统计日期
department_id Long 部门ID0=全平台)
total_users Integer 学员总数
active_users Integer 活跃学员数
training_complete_count Integer 培训完成人次
exam_pass_count Integer 考试通过人次
exam_total_count Integer 考试参与人次
total_learning_minutes Long 总学习时长(分钟)

学习时长记录表 (stat_learning_log)

字段 类型 说明
id Long 主键
user_id Long 用户ID
knowledge_id Long 知识ID
start_time DateTime 开始时间
end_time DateTime 结束时间
duration_seconds Integer 学习时长(秒)
create_time DateTime 创建时间

五、页面原型

5.1 管理员数据看板

┌────────────────────────────────────────────────────────────────────────────┐
│  统计报表中心                                                              │
├────────────────────────────────────────────────────────────────────────────┤
│                                                                            │
│  ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐             │
│  │  总学员数   │ │ 培训完成率  │ │ 考试通过率  │ │ 活跃学员数  │             │
│  │    486     │ │    82%     │ │    78%     │ │    312     │             │
│  │   +12 ↑   │ │   +5% ↑   │ │   -2% ↓   │ │   +28 ↑   │             │
│  └────────────┘ └────────────┘ └────────────┘ └────────────┘             │
│                                                                            │
│  ┌─────────────────────────────────┐ ┌─────────────────────────────────┐  │
│  │ 培训完成率趋势                   │ │ 部门培训完成率排名               │  │
│  │                                 │ │                                 │  │
│  │  100%│                         │ │ 救援一部  ████████████  92%     │  │
│  │   80%│    ╭──╮    ╭──╮        │ │ 救援三部  ██████████    85%     │  │
│  │   60%│╭──╯  ╰──╮╭╯  ╰──      │ │ 救援二部  █████████     80%     │  │
│  │   40%│           ╰            │ │ 救援四部  ███████       72%     │  │
│  │      └─────────────────       │ │ 综合部    ██████        65%     │  │
│  │       9  10  11  12  1   2    │ │                                 │  │
│  └─────────────────────────────────┘ └─────────────────────────────────┘  │
│                                                                            │
│  [查看培训详情]  [查看考试详情]  [导出月度报表]                            │
│                                                                            │
└────────────────────────────────────────────────────────────────────────────┘

5.2 考试统计页面

┌────────────────────────────────────────────────────────────────────────────┐
│  统计报表中心 > 考试统计                                                   │
├────────────────────────────────────────────────────────────────────────────┤
│                                                                            │
│  时间范围: [本月 ▼]  部门: [全部 ▼]  考试: [全部 ▼]    [查询]  [导出]    │
│                                                                            │
│  ┌─────────────────────────────────┐ ┌─────────────────────────────────┐  │
│  │ 成绩分布                         │ │ 汇总指标                        │  │
│  │                                 │ │                                 │  │
│  │      ┌───┐                      │ │  参考人数:     320              │  │
│  │      │   │ ┌───┐                │ │  通过人数:     256              │  │
│  │ ┌───┐│   │ │   │ ┌───┐         │ │  通过率:       80%              │  │
│  │ │   ││   │ │   │ │   │ ┌───┐   │ │  平均分:       76.5             │  │
│  │ │   ││   │ │   │ │   │ │   │   │ │  最高分:       100              │  │
│  │ └───┘└───┘ └───┘ └───┘ └───┘   │ │  最低分:       32               │  │
│  │ 0-59 60-69 70-79 80-89 90-100  │ │                                 │  │
│  └─────────────────────────────────┘ └─────────────────────────────────┘  │
│                                                                            │
│  ┌──────────────────────────────────────────────────────────────────────┐  │
│  │ 考试名称          参考人数   通过率   平均分   最高分   操作         │  │
│  ├──────────────────────────────────────────────────────────────────────┤  │
│  │ 安全规范考核        120       85%     78.5     98     [详情][分析]  │  │
│  │ 月度技能测试         95       72%     71.2    100     [详情][分析]  │  │
│  │ 新员工入职考试       45       91%     82.3     96     [详情][分析]  │  │
│  └──────────────────────────────────────────────────────────────────────┘  │
│                                                                            │
│                                                      < 1  2  3 >          │
└────────────────────────────────────────────────────────────────────────────┘

六、非功能需求

类型 要求
性能 看板页面加载时间 < 2秒
性能 报表查询响应时间 < 3秒万级数据
兼容性 支持 Chrome、Edge、Firefox 最新版本
数据安全 严格按角色和部门隔离数据
导出 Excel 导出支持 .xlsx 格式

七、不做什么Out of Scope

排除项 原因
实时数据监控 V2 不需要实时性T+1 统计即可
自定义报表设计器 复杂度高,用户需求不明确
数据预测/AI分析 数据量不足,价值有限
打印报表 使用 Excel 导出替代

八、里程碑建议

阶段 内容 建议周期
M1 数据看板(管理员+讲师+学员) -
M2 培训统计 + 考试统计 -
M3 学员统计 + 数据导出 -
M4 测试 + 优化 -

九、开放问题

问题 待确认
学习时长统计是否需要精确到秒级? 建议分钟级即可
是否需要支持定时自动发送报表邮件? 建议 V3 考虑
能力雷达图的维度如何定义? 建议按知识分类一级目录

文档状态:待评审