4.2 KiB
4.2 KiB
剩余功能模块开发计划
当前进度总结
✅ 已完成模块
- 量表管理 ✅
- 题目与选项管理 ✅
- 因子与计分规则 ✅
- 测评执行模块 ✅
- 测评报告生成 ✅
- 结果解释配置 ✅
- 用户档案管理 ✅
- 自定义问卷基础功能 ✅
- 二维码管理 ✅
- 网站内容管理 ✅
❌ 待开发模块
1. 危机预警模块 ⭐⭐⭐⭐⭐(最高优先级)
状态: 已创建实体类 PsyWarning.java
待完成:
- 预警规则实体类
PsyWarningRule.java - Mapper接口和XML
- Service接口和实现(包含自动预警检测)
- Controller
- 前端API和页面
核心功能:
- 预警规则配置
- 自动预警检测(在报告生成后触发)
- 预警记录查询
- 预警处理(处理、解除、归档)
- 预警通知(通知管理员)
集成点:
- 在
PsyAssessmentReportServiceImpl.generateReport()方法中调用预警检测 - 在测评提交后自动检测预警
2. 语音读题功能 ⭐⭐⭐
状态: 数据库表已存在 psy_voice_config
待完成:
- 实体类
PsyVoiceConfig.java - Mapper、Service、Controller
- TTS集成(阿里云/腾讯云或本地)
- 前端音频播放组件
功能:
- 语音配置管理
- 题目语音生成
- 音频播放控制
3. 数据统计模块 ⭐⭐⭐⭐
状态: 需要新建
待完成:
PsyStatisticsController- 统计Service
- 前端统计页面(ECharts图表)
功能:
- 团体统计(完成率、平均分、因子分布)
- 个体统计(历史测评轨迹)
- 因子趋势分析
- 部门/班级对比
- 数据导出
4. 量表权限管理 ⭐⭐⭐
状态: 数据库表已存在 psy_scale_permission
待完成:
- 实体类
PsyScalePermission.java - Mapper、Service、Controller
- 权限验证拦截器
- 前端权限配置页面
功能:
- 部门/班级与量表关联
- 权限级别控制
- 批量权限设置
开发优先级
第一优先级(核心功能)
- 危机预警模块 - 必须在报告生成后自动检测预警
第二优先级(重要功能)
- 数据统计模块 - 提供数据分析和可视化
第三优先级(增强功能)
- 量表权限管理 - 精细化权限控制
- 语音读题功能 - 提升用户体验
下一步行动
-
立即开发: 危机预警模块(预计2-3小时)
- 创建预警规则实体类
- 创建Mapper、Service、Controller
- 在报告生成服务中集成预警检测
- 创建前端管理页面
-
后续开发: 数据统计模块(预计3-4小时)
-
可选开发: 权限管理和语音读题(根据需求决定)
技术要点
危机预警检测逻辑
// 在 PsyAssessmentReportServiceImpl.generateReport() 方法最后添加
// 自动预警检测
warningService.checkAndCreateWarnings(assessmentId);
预警规则匹配
// 根据因子得分或总分匹配预警规则
// 如果得分超过阈值,创建预警记录
if (factorScore > rule.getScoreMin() && factorScore <= rule.getScoreMax()) {
createWarning(assessment, factor, score, rule);
}
文件清单(危机预警模块)
后端(8个文件)
PsyWarning.java✅ 已创建PsyWarningRule.java- 待创建PsyWarningMapper.java- 待创建PsyWarningMapper.xml- 待创建PsyWarningRuleMapper.java- 待创建PsyWarningRuleMapper.xml- 待创建IPsyWarningService.java- 待创建PsyWarningServiceImpl.java- 待创建IPsyWarningRuleService.java- 待创建PsyWarningRuleServiceImpl.java- 待创建PsyWarningController.java- 待创建PsyWarningRuleController.java- 待创建
前端(4个文件)
warning.js- API接口warningRule.js- 预警规则APIwarning/index.vue- 预警管理页面warning/rule.vue- 预警规则配置页面
预计完成时间
- 危机预警模块: 2-3小时
- 数据统计模块: 3-4小时
- 量表权限管理: 1-2小时
- 语音读题功能: 2-3小时
总计: 8-12小时