版本: V1.4 更新时间: 2026-04-16
DAN测评是一个针对儿童注意力、专注力、记忆力、逻辑思维等多维能力的综合评估系统。测评结果用于:
| 变化项 | V1.3(旧) | V1.4(新) |
|---|---|---|
| 等级概念 | DAN等级 A/B/C/D | 取消,改为测评包 |
| 能力维度 | 固定五维(注意力/专注力/记忆力/逻辑/综合) | 指标体系,可配置 |
| 任务推荐 | 无 | 自动推荐+手动确认 |
| 收费方式 | 无 | P2阶段与外部系统集成 |
| 测评包 | 适用年龄 | 类型 | 说明 |
|---|---|---|---|
| A1 | 7-9岁 | 儿童认知能力发展 | 儿童认知能力综合评估 |
| A2 | 10岁以上 | 青少年核心素养 | 青少年核心素养综合评估 |
| B1 | 7-9岁 | 儿童家庭环境 | 家庭环境评估 |
| B2 | 10岁以上 | 青少年家庭环境 | 家庭环境评估 |
| B3 | 7-9岁 | 儿童学习习惯 | 学习习惯评估 |
| B4 | 10岁以上 | 青少年学习习惯 | 学习习惯评估 |
| B5 | 7-9岁 | 儿童心理状态 | 心理状态评估 |
| B6 | 10岁以上 | 职业发展 | 职业发展评估 |
| 组件 | 状态 | 说明 |
|---|---|---|
DanAssessmentResult 实体 |
⚠️ 已定义 | 存在于 entity/DanAssessmentResult.java |
AssessmentAppointment 实体 |
⚠️ 已定义 | 存在于 entity/AssessmentAppointment.java |
| DAN测评 API | ❌ 不存在 | 无对应 Controller |
| 预约 API | ⚠️ 部分实现 | 依赖 Appointment 实体 |
| 前端页面 | ❌ 不存在 | 无对应页面 |
指标是测评的最小评估单元,每个指标有唯一的指标编码、所属能力维度、等级阈值。
| 属性 | 类型 | 说明 |
|---|---|---|
| indicatorCode | String | 指标编码,如 COG001(认知能力)、EMI001(情绪心理) |
| indicatorName | String | 指标名称 |
| dimension | String | 能力维度(COG/EMI/SOC/PHY) |
| description | String | 指标说明 |
| levelThresholds | JSON | 等级阈值,如 {"高":80,"中":60,"低":0} |
| sortOrder | Integer | 排序 |
| 维度编码 | 维度名称 |
|---|---|
| COG | 认知能力 |
| EMI | 情绪心理 |
| SOC | 社会关系 |
| PHY | 身体健康 |
每个测评包包含一组指标,定义见下表:
| 测评包 | 包含指标 |
|---|---|
| A1(儿童认知能力发展-7-9岁) | COG001, COG002, COG003, COG004, COG005 |
| A2(青少年核心素养-10岁以上) | COG001, COG002, COG003, COG004, COG005, COG006 |
| B1(儿童家庭环境-7-9岁) | EMI001, EMI002, SOC001 |
| B2(青少年家庭环境-10岁以上) | EMI001, EMI002, EMI003, SOC001, SOC002 |
| B3(儿童学习习惯-7-9岁) | SOC001, SOC002, PHY001 |
| B4(青少年学习习惯-10岁以上) | SOC001, SOC002, SOC003, PHY001, PHY002 |
| B5(儿童心理状态-7-9岁) | EMI001, EMI002, PHY001 |
| B6(职业发展-10岁以上) | EMI001, EMI002, EMI003, PHY001, PHY002 |
每个指标可关联多个任务模板,用于测评后的任务推荐。
| 指标 | 推荐任务模板类型 |
|---|---|
| COG001(认知灵活) | 认知灵活性训练、多任务切换 |
| COG002(工作记忆) | 工作记忆训练、数字记忆 |
| COG003(注意力广度) | 舒尔特方格、视觉搜索 |
| COG004(注意力稳定性) | 专注力训练、静态任务 |
| COG005(逻辑推理) | 逻辑思维训练、 puzzles |
| COG006(问题解决) | 策略游戏、方案规划 |
| EMI001(情绪识别) | 情绪日记、情绪识别训练 |
| EMI002(情绪调节) | 情绪调节练习、放松训练 |
| EMI003(抗压能力) | 压力应对训练、心理韧性 |
| SOC001(社交技能) | 社交互动练习、沟通训练 |
| SOC002(合作能力) | 团队合作任务、小组活动 |
| PHY001(运动协调) | 运动游戏、协调性训练 |
| PHY002(身体耐力) | 体能训练、耐力运动 |
| 需求ID | 描述 | 优先级 | 状态 |
|---|---|---|---|
| DAN-001 | 测评预约创建与管理 | P0 | ⚠️ 部分实现 |
| DAN-002 | 测评结果录入与存储(按指标) | P0 | ⚠️ 已定义实体 |
| DAN-003 | 测评结果列表查询 | P0 | ❌ 未实现 |
| DAN-004 | 测评结果详情查看 | P0 | ❌ 未实现 |
| DAN-005 | 指标得分展示 | P0 | ⚠️ 已定义字段 |
| DAN-006 | 指标等级计算 | P0 | ❌ 未实现 |
| DAN-007 | 历史趋势对比 | P1 | ❌ 未实现 |
| DAN-008 | 成长建议生成(按指标) | P1 | ❌ 未实现 |
| DAN-009 | 下次复测提醒 | P1 | ❌ 未实现 |
| DAN-010 | 测评报告导出 | P1 | ❌ 未实现 |
| DAN-011 | 测评统计报表 | P1 | ❌ 未实现 |
| DAN-012 | 测评包管理 | P1 | ❌ 未实现 |
| DAN-013 | 指标库管理 | P1 | ❌ 未实现 |
| DAN-014 | 指标-模板映射管理 | P1 | ❌ 未实现 |
| DAN-015 | 任务自动推荐 | P1 | ❌ 未实现 |
| DAN-016 | 收费集成预留 | P2 | ❌ 未实现 |
| DAN-017 | 成长规划师录入权限 | P0 | ⚠️ 已定义 |
| DAN-018 | 家长查看权限 | P0 | ⚠️ 已定义 |
| DAN-019 | 测评数据脱敏 | P2 | ❌ 未实现 |
管理测评包的定义,包括测评包编码、名称、适用年龄范围、包含的指标列表。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 主键 |
| packageCode | String | 是 | 测评包编码(A1/A2/B1-B6) |
| packageName | String | 是 | 测评包名称 |
| ageRangeMin | Integer | 是 | 适用最小年龄 |
| ageRangeMax | Integer | 是 | 适用最大年龄 |
| category | String | 是 | 分类(认知能力/核心能力/家庭环境/行为表现/心理状态) |
| indicators | JSON | 是 | 指标编码数组,如 ["ATT001","MEM001"] |
| description | String | 否 | 说明 |
| isActive | Integer | 是 | 是否启用(1启用/0禁用) |
| createdAt | Date | 是 | 创建时间 |
| updatedAt | Date | 是 | 更新时间 |
管理指标的定义,支持指标的增删改查。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 主键 |
| indicatorCode | String | 是 | 指标编码(如 ATT001) |
| indicatorName | String | 是 | 指标名称 |
| dimension | String | 是 | 能力维度 |
| description | String | 否 | 指标说明 |
| levelThresholds | JSON | 是 | 等级阈值(如 {"高":80,"中":60,"低":0}) |
| sortOrder | Integer | 否 | 排序 |
| isActive | Integer | 是 | 是否启用 |
| createdAt | Date | 是 | 创建时间 |
| updatedAt | Date | 是 | 更新时间 |
管理指标与任务模板的关联关系,支持自动推荐逻辑。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 主键 |
| indicatorCode | String | 是 | 指标编码 |
| templateId | Long | 是 | 任务模板ID |
| weight | Integer | 否 | 推荐权重(1-10) |
| isActive | Integer | 是 | 是否启用 |
| createdAt | Date | 是 | 创建时间 |
| updatedAt | Date | 是 | 更新时间 |
家长或成长规划师为孩子预约DAN测评,选择测评时间、成长规划师和测评包。
家长/成长规划师 → 选择测评包 → 选择时间 → 预约记录生成 → 成长规划师确认 → 测评执行 → 标记完成
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| childId | Long | 是 | 预约的孩子 |
| teacherId | Long | 是 | 成长规划师 |
| packageCode | String | 是 | 测评包编码 |
| appointmentDate | Date | 是 | 预约日期 |
| appointmentTime | String | 是 | 预约时间(HH:mm) |
| notes | String | 否 | 备注 |
| status | String | 是 | pending/completed/cancelled |
成长规划师完成测评后,录入测评结果并存储。测评结果按指标存储得分。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 主键 |
| childId | Long | 是 | 测评的孩子 |
| teacherId | Long | 是 | 成长规划师ID |
| appointmentId | Long | 否 | 关联的预约ID |
| packageCode | String | 是 | 测评包编码 |
| indicatorScores | JSON | 是 | 指标得分数组 |
// indicatorScores 示例
[
{"code": "ATT001", "name": "注意力广度", "score": 85, "level": "高"},
{"code": "MEM001", "name": "短时记忆", "score": 72, "level": "中"},
{"code": "LOG001", "name": "逻辑推理", "score": 90, "level": "高"}
]
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| assessmentDate | Date | 是 | 测评日期 |
| durationMinutes | Integer | 否 | 测评时长 |
| gameRecords | String | 否 | 游戏记录(JSON) |
| analysisReport | String | 否 | 分析报告 |
| growthSuggestions | String | 否 | 成长建议(按指标生成) |
| nextReviewDate | Date | 否 | 下次复测日期 |
| status | String | 是 | draft/completed/archived |
| createdAt | Date | 是 | 创建时间 |
| updatedAt | Date | 是 | 更新时间 |
draft:草稿(成长规划师录入中)completed:已完成(正式结果)archived:已归档(历史记录)根据孩子ID查询测评记录列表,支持筛选和分页。
| 条件 | 类型 | 说明 |
|---|---|---|
| childId | Long | 孩子ID(必填) |
| timeRange | String | 时间范围(recent_month/recent_quarter/all) |
| packageCode | String | 测评包筛选 |
| status | String | 状态筛选 |
查看单次测评的完整结果。
| 模块 | 内容 |
|---|---|
| 基本信息 | 测评日期、成长规划师、测评包、测评时长 |
| 指标得分 | indicatorScores 完整展示,按维度分组 |
| 指标等级 | 每个指标的等级(高/中/低) |
| 分析报告 | analysisReport 全文 |
| 成长建议 | growthSuggestions 全文(按指标维度) |
| 下次复测 | nextReviewDate |
根据指标得分和等级阈值计算指标等级。
// 指标定义
{"indicatorCode": "ATT001", "levelThresholds": {"高":80,"中":60,"低":0}}
// 得分85 → 等级"高"
// 得分65 → 等级"中"
// 得分55 → 等级"低"
展示孩子历次测评各指标的趋势变化。
根据测评结果(按指标)生成针对性的成长建议。
测评完成后,根据指标得分自动推荐相关任务模板,家长可手动选择确认。
测评完成 → 系统分析指标得分 → 筛选得分低的指标
→ 查找对应任务模板 → 按权重排序 → 展示推荐列表
→ 家长选择确认 → 创建任务
根据 nextReviewDate 发送复测提醒。
将测评结果导出为PDF格式。
提供测评统计功能。
P2阶段与外部收费系统集成,目前预留接口。
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| GET | /api/dan/packages | 测评包列表 | 公开 |
| GET | /api/dan/packages/{code} | 测评包详情 | 公开 |
| POST | /api/dan/packages | 创建测评包 | 管理员 |
| PUT | /api/dan/packages/{id} | 更新测评包 | 管理员 |
| DELETE | /api/dan/packages/{id} | 删除测评包 | 管理员 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| GET | /api/dan/indicators | 指标列表 | 公开 |
| GET | /api/dan/indicators/{code} | 指标详情 | 公开 |
| POST | /api/dan/indicators | 创建指标 | 管理员 |
| PUT | /api/dan/indicators/{id} | 更新指标 | 管理员 |
| DELETE | /api/dan/indicators/{id} | 删除指标 | 管理员 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| GET | /api/dan/indicator-template | 映射列表 | 成长规划师 |
| POST | /api/dan/indicator-template | 创建映射 | 管理员 |
| PUT | /api/dan/indicator-template/{id} | 更新映射 | 管理员 |
| DELETE | /api/dan/indicator-template/{id} | 删除映射 | 管理员 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| POST | /api/dan/appointments | 创建预约 | 家长/成长规划师 |
| GET | /api/dan/appointments | 预约列表 | 家长/成长规划师 |
| GET | /api/dan/appointments/{id} | 预约详情 | 家长/成长规划师 |
| PUT | /api/dan/appointments/{id} | 修改预约 | 家长/成长规划师 |
| DELETE | /api/dan/appointments/{id} | 取消预约 | 家长/成长规划师 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| POST | /api/dan/results | 创建测评记录 | 成长规划师 |
| GET | /api/dan/results/child/{childId} | 测评列表 | 家长/成长规划师 |
| GET | /api/dan/results/{id} | 测评详情 | 家长/成长规划师 |
| PUT | /api/dan/results/{id} | 更新测评记录 | 成长规划师 |
| DELETE | /api/dan/results/{id} | 删除测评记录 | 成长规划师 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| GET | /api/dan/results/{id}/recommend-tasks | 获取推荐任务 | 家长 |
| POST | /api/dan/results/{id}/confirm-tasks | 确认推荐任务 | 家长 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| GET | /api/dan/analysis/{id} | 能力分析 | 家长/成长规划师 |
| GET | /api/dan/trend/{childId} | 历史趋势 | 家长/成长规划师 |
| GET | /api/dan/statistics/child/{childId} | 测评统计 | 家长/成长规划师 |
| GET | /api/dan/statistics/family/{familyId} | 家庭统计 | 家长 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| GET | /api/dan/export/{id} | 导出PDF报告 | 家长/成长规划师 |
| 方法 | 路径 | 功能 | 权限 |
|---|---|---|---|
| POST | /api/dan/payment/create | 创建支付订单 | 家长 |
| POST | /api/dan/payment/callback | 支付回调 | 外部系统 |
| 页面 | 路径 | 功能 |
|---|---|---|
| 测评包选择 | /pages/dan/packages |
选择测评包 |
| 预约页面 | /pages/dan/appointment |
预约创建与管理 |
| 测评列表 | /pages/dan/list |
测评历史记录 |
| 测评详情 | /pages/dan/detail |
测评结果详情 |
| 指标雷达图 | /pages/dan/radar |
能力维度雷达图 |
| 趋势对比 | /pages/dan/trend |
历史趋势图表 |
| 任务推荐 | /pages/dan/recommend |
任务推荐确认 |
| 统计报表 | /pages/dan/statistics |
测评统计 |
| 管理后台 | /pages/admin/dan |
测评包/指标/映射管理 |
CREATE TABLE dan_package (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
package_code VARCHAR(10) NOT NULL UNIQUE,
package_name VARCHAR(50) NOT NULL,
age_range_min INT NOT NULL,
age_range_max INT NOT NULL,
category VARCHAR(20) NOT NULL,
indicators JSON NOT NULL,
description TEXT,
price DECIMAL(10,2) DEFAULT 0,
is_active TINYINT DEFAULT 1,
created_at DATETIME,
updated_at DATETIME,
INDEX idx_code (package_code),
INDEX idx_category (category)
);
CREATE TABLE dan_indicator (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
indicator_code VARCHAR(20) NOT NULL UNIQUE,
indicator_name VARCHAR(50) NOT NULL,
dimension VARCHAR(20) NOT NULL,
description TEXT,
level_thresholds JSON NOT NULL,
sort_order INT DEFAULT 0,
is_active TINYINT DEFAULT 1,
created_at DATETIME,
updated_at DATETIME,
INDEX idx_code (indicator_code),
INDEX idx_dimension (dimension)
);
CREATE TABLE dan_indicator_template (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
indicator_code VARCHAR(20) NOT NULL,
template_id BIGINT NOT NULL,
weight INT DEFAULT 5,
is_active TINYINT DEFAULT 1,
created_at DATETIME,
updated_at DATETIME,
INDEX idx_indicator (indicator_code),
INDEX idx_template (template_id)
);
CREATE TABLE dan_appointment (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
child_id BIGINT NOT NULL,
teacher_id BIGINT,
package_code VARCHAR(10) NOT NULL,
appointment_date DATE NOT NULL,
appointment_time VARCHAR(10) NOT NULL,
notes TEXT,
payment_status VARCHAR(20) DEFAULT 'unpaid',
status VARCHAR(20) DEFAULT 'pending',
created_at DATETIME,
updated_at DATETIME,
INDEX idx_child (child_id),
INDEX idx_teacher (teacher_id),
INDEX idx_date (appointment_date)
);
CREATE TABLE dan_assessment_result (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
child_id BIGINT NOT NULL,
teacher_id BIGINT NOT NULL,
appointment_id BIGINT,
package_code VARCHAR(10) NOT NULL,
indicator_scores JSON NOT NULL,
assessment_date DATE NOT NULL,
duration_minutes INT,
game_records JSON,
analysis_report TEXT,
growth_suggestions TEXT,
next_review_date DATE,
status VARCHAR(20) DEFAULT 'draft',
created_at DATETIME,
updated_at DATETIME,
INDEX idx_child (child_id),
INDEX idx_teacher (teacher_id),
INDEX idx_date (assessment_date),
INDEX idx_package (package_code)
);
DAN-012 测评包管理
DAN-013 指标库管理
DAN-014 指标-模板映射
DAN-001 预约管理
DAN-002 测评结果录入
DAN-003 测评列表查询
DAN-004 测评详情
DAN-006 指标等级计算
DAN-007 历史趋势
DAN-008 成长建议
DAN-015 任务自动推荐
DAN-009 复测提醒
cfc-backend/src/main/java/com/etotem/cfc/entity/DanAssessmentResult.java - 需增加 packageCode 和 indicatorScorescfc-backend/src/main/java/com/etotem/cfc/entity/AssessmentAppointment.java - 需增加 packageCodecfc-backend/src/main/java/com/etotem/cfc/entity/DanPackage.javacfc-backend/src/main/java/com/etotem/cfc/entity/DanIndicator.javacfc-backend/src/main/java/com/etotem/cfc/entity/DanIndicatorTemplate.javacfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanPackageController.javacfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanIndicatorController.javacfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanAssessmentController.javacfc-backend/src/main/java/com/etotem/cfc/controller/dan/DanRecommendController.javacfc-frontend/pages/dan/ 目录及页面| 功能 | 优先级 | 说明 |
|---|---|---|
| 测评包CRUD | P0 | 后端API + 管理后台 |
| 指标库CRUD | P0 | 后端API + 管理后台 |
| 映射管理 | P0 | 后端API + 管理后台 |
| 预约CRUD | P0 | 后端API |
| 结果录入 | P0 | 后端API + 指标等级计算 |
| 列表查询 | P0 | 后端API + 前端 |
| 详情展示 | P0 | 前端页面(按指标) |
| 等级计算 | P1 | 自动计算逻辑 |
| 趋势分析 | P1 | 后端API + 前端图表 |
| 成长建议 | P1 | 规则引擎 |
| 任务推荐 | P1 | 推荐算法 + 家长确认 |
| 复测提醒 | P1 | 定时任务 |
| 报告导出 | P2 | PDF生成 |
| 统计报表 | P2 | 统计API |
| 收费集成 | P2 | P2阶段讨论 |