xinli/z_Project change/进度汇总/剩余功能模块开发计划.md
2025-11-12 15:25:47 +08:00

171 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 剩余功能模块开发计划
## 当前进度总结
### ✅ 已完成模块
1. **量表管理**
2. **题目与选项管理**
3. **因子与计分规则**
4. **测评执行模块**
5. **测评报告生成**
6. **结果解释配置**
7. **用户档案管理**
8. **自定义问卷基础功能**
9. **二维码管理**
10. **网站内容管理**
### ❌ 待开发模块
#### 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
- [ ] 权限验证拦截器
- [ ] 前端权限配置页面
**功能**:
- 部门/班级与量表关联
- 权限级别控制
- 批量权限设置
---
## 开发优先级
### 第一优先级(核心功能)
1. **危机预警模块** - 必须在报告生成后自动检测预警
### 第二优先级(重要功能)
2. **数据统计模块** - 提供数据分析和可视化
### 第三优先级(增强功能)
3. **量表权限管理** - 精细化权限控制
4. **语音读题功能** - 提升用户体验
---
## 下一步行动
1. **立即开发**: 危机预警模块预计2-3小时
- 创建预警规则实体类
- 创建Mapper、Service、Controller
- 在报告生成服务中集成预警检测
- 创建前端管理页面
2. **后续开发**: 数据统计模块预计3-4小时
3. **可选开发**: 权限管理和语音读题(根据需求决定)
---
## 技术要点
### 危机预警检测逻辑
```java
// 在 PsyAssessmentReportServiceImpl.generateReport() 方法最后添加
// 自动预警检测
warningService.checkAndCreateWarnings(assessmentId);
```
### 预警规则匹配
```java
// 根据因子得分或总分匹配预警规则
// 如果得分超过阈值,创建预警记录
if (factorScore > rule.getScoreMin() && factorScore <= rule.getScoreMax()) {
createWarning(assessment, factor, score, rule);
}
```
---
## 文件清单(危机预警模块)
### 后端8个文件
1. `PsyWarning.java` ✅ 已创建
2. `PsyWarningRule.java` - 待创建
3. `PsyWarningMapper.java` - 待创建
4. `PsyWarningMapper.xml` - 待创建
5. `PsyWarningRuleMapper.java` - 待创建
6. `PsyWarningRuleMapper.xml` - 待创建
7. `IPsyWarningService.java` - 待创建
8. `PsyWarningServiceImpl.java` - 待创建
9. `IPsyWarningRuleService.java` - 待创建
10. `PsyWarningRuleServiceImpl.java` - 待创建
11. `PsyWarningController.java` - 待创建
12. `PsyWarningRuleController.java` - 待创建
### 前端4个文件
13. `warning.js` - API接口
14. `warningRule.js` - 预警规则API
15. `warning/index.vue` - 预警管理页面
16. `warning/rule.vue` - 预警规则配置页面
---
## 预计完成时间
- **危机预警模块**: 2-3小时
- **数据统计模块**: 3-4小时
- **量表权限管理**: 1-2小时
- **语音读题功能**: 2-3小时
**总计**: 8-12小时