xinli/z_Project change/1-开发计划.md

573 lines
12 KiB
Markdown
Raw Normal View History

2025-11-03 18:21:32 +08:00
# 心理测评系统开发计划
## 项目概述
基于RuoYi-Vue框架Spring Boot + Vue + MySQL构建的心理测评系统满足罪犯心理测评特殊需求。
---
## 第一阶段:数据库设计与初始化 ✅ 已完成
### 1.1 完善现有数据库表结构
**当前状态**已有基础的心理测评表结构psy_assessment_system.sql
#### 需要补充的表:
1. **用户档案扩展表** (psy_user_profile)
- 关联sys_user
- 支持自定义档案项
- 不同年龄段字段模板
2. **量表权限表** (psy_scale_permission)
- 关联部门/班级与量表
- 权限级别控制
3. **问卷功能表** (psy_questionnaire)
- 自定义问卷管理
- 多种题目类型支持
4. **语音读题表** (psy_voice_config)
- 题目与语音文件关联
- TTS配置
5. **危机预警表** (psy_warning)
- 预警规则设置
- 预警记录
- 预警解除记录
6. **二维码管理表** (psy_qrcode)
- 扫码测试配置
- 扫码记录
7. **数据备份表** (sys_backup)
- 备份任务记录
- 备份文件管理
8. **心理网站内容表** (psy_website_content)
- 文章、公告管理
- 个性化配置
9. **开放式API配置表** (sys_api_config)
- API密钥管理
- 接口权限控制
### 1.2 初始化必填量表数据
根据需求文档要求的量表,录入:
- COPA系列量表7个COPA-SAI、COPA-PI、COPA-TCMI、COPA-SCMI、COPA-MPI、暴力倾向、自杀倾向
- 经典量表MMPI、SCL-90、SAS、SDS、16PF、EPQ等50+量表
- 每题包含:题目内容、选项、计分规则、因子归属
**工作内容**
- 设计量表数据导入脚本
- 批量导入题目和选项
- 设置因子计分规则
- 配置结果解释标准
---
## 第二阶段核心功能模块开发预计8天
### 2.1 量表管理模块1.5天)
**后端**
- `PsyScaleController` - 量表CRUD
- `PsyScaleServiceImpl` - 业务逻辑
- `PsyScaleMapper` - 数据访问
**功能点**
- ✅ 量表列表查询(分页、筛选)
- ✅ 新增/编辑/删除量表
- ✅ 量表详情查看
- ✅ 量表状态管理(启用/停用)
- ✅ 量表导入导出Excel模板
**前端**
- 量表管理页面 (`views/psychology/scale/index.vue`)
- 量表编辑弹窗(题目批量编辑)
- 量表详情页面
### 2.2 题目与选项管理1.5天)
**后端**
- `PsyItemController` / `PsyOptionController`
- 批量操作接口
**功能点**
- ✅ 题目列表(树形展示)
- ✅ 题目编辑(富文本)
- ✅ 选项配置
- ✅ 批量导入题目Excel
- ✅ 题目排序拖拽
**前端**
- 题目编辑器(支持选项配置)
- 批量导入组件
### 2.3 因子与计分规则1天
**后端**
- `PsyFactorController` / `PsyFactorRuleController`
**功能点**
- ✅ 因子配置
- ✅ 因子公式设置
- ✅ 权重配置
- ✅ 反向计分设置
**前端**
- 因子配置界面
- 公式编辑器
### 2.4 测评执行模块2天⭐⭐⭐⭐⭐
**后端**
- `PsyAssessmentController`
- `PsyAssessmentAnswerController`
**核心功能**
-**开始测评**:创建测评记录
-**暂停/恢复测评**:保存进度、断点续测
-**提交测评**:计算总分、因子分
-**防重复提交**:校验机制
**答题接口设计**
```java
// 开始测评
POST /psychology/assessment/start
// 获取题目
GET /psychology/assessment/{assessmentId}/items
// 保存答案
POST /psychology/assessment/answer
// 暂停测评
POST /psychology/assessment/{assessmentId}/pause
// 恢复测评
POST /psychology/assessment/{assessmentId}/resume
// 提交测评
POST /psychology/assessment/{assessmentId}/submit
```
**前端**
- 测评页面 (`views/psychology/assessment/index.vue`)
- 答题界面(单选/多选/矩阵)
- 进度条显示
- 暂停/恢复按钮
### 2.5 语音读题功能1天⭐⭐⭐⭐⭐
**后端**
- 语音配置管理
- TTS接口集成
**实现方案**
1. **方案A推荐**:集成阿里云/腾讯云TTS
- 优点:质量高、稳定
- 成本:按调用量计费
2. **方案B**本地TTS引擎
- 优点:免费、离线可用
- 缺点:质量一般
3. **方案C**:预录音频文件
- 优点:质量可控
- 缺点:存储量大、需要人工录音
**API接口**
```java
// 获取题目语音
GET /psychology/voice/item/{itemId}
// 批量生成语音
POST /psychology/voice/batch-generate
```
**前端**
- 音频播放控件
- 播放/暂停/进度控制
- 自动播放开关
### 2.6 测评报告生成1天
**后端**
- `PsyReportController`
- 报告生成服务
**功能点**
- ✅ 自动生成标准报告
- ✅ 因子得分展示
- ✅ 结果解释(根据得分区间)
- ✅ 建议与指导
-**自定义报告**(管理员可编辑)
- ✅ PDF导出
**报告内容**
- 基本信息
- 各因子得分雷达图
- 结果解释
- 风险评估
- 改进建议
**前端**
- 报告展示页面
- 报告编辑功能(富文本)
- PDF预览/下载
### 2.7 危机预警模块1天⭐⭐⭐⭐⭐
**后端**
- `PsyWarningController`
**功能点**
- ✅ 预警规则设置(因子阈值)
- ✅ 自动预警检测
- ✅ 预警记录查询
- ✅ 预警解除功能
- ✅ 预警通知(只通知管理员)
**预警逻辑**
```java
// 提交测评后自动检测
if (factorScore > warningThreshold) {
createWarning(assessment, factor, score);
notifyAdmin(warning);
}
```
**前端**
- 预警规则配置页面
- 预警记录列表
- 预警详情查看
---
## 第三阶段扩展功能开发预计6天
### 3.1 用户档案管理1天⭐⭐⭐⭐⭐
**后端**
- `PsyProfileController`
- 档案模板配置
**功能点**
- ✅ 档案字段自定义
- ✅ 不同年龄段模板
- ✅ 档案信息CRUD
- ✅ 档案导入导出
**前端**
- 档案管理页面
- 自定义字段配置
- 批量导入
### 3.2 自定义问卷模块1.5天)⭐⭐⭐⭐⭐
**后端**
- `PsyQuestionnaireController`
- 多种题目类型支持
**支持的题目类型**
- 单选radio
- 多选checkbox
- 判断boolean
- 填空input
- 排序sort
- 计算calculate
- 简答text
- 问答textarea
- 作文essay
**功能点**
- ✅ 问卷创建/编辑
- ✅ 题目类型配置
- ✅ 自动计分(客观题)
- ✅ 成绩排名统计
- ✅ 组卷方式(自助/随机/手动)
**前端**
- 问卷编辑器
- 题目类型选择器
- 答题页面
- 成绩统计图表
### 3.3 二维码功能0.5天)⭐⭐⭐⭐⭐
**后端**
- `PsyQrcodeController`
- 二维码生成服务
**功能点**
- ✅ 生成测评二维码
- ✅ 扫码测试
- ✅ 扫码查看报告
- ✅ 扫码注册/登录
**实现**
- 使用开源库生成二维码
- 短链接支持
**前端**
- 二维码生成/展示
- 扫码页面(移动端适配)
### 3.4 心理网站模块1天⭐⭐⭐⭐⭐
**后端**
- `PsyWebsiteController`
**功能点**
- ✅ 文章发布/编辑
- ✅ 栏目管理
- ✅ 留言评论
- ✅ 个性化配置
- ✅ 开启/关闭网站功能
**前端**
- 网站模板(可定制)
- 前台展示页面
- 后台管理页面
### 3.5 数据统计模块1天
**后端**
- `PsyStatisticsController`
**统计维度**
- 团体统计
- 个体统计
- 测评轨迹
- 因子趋势分析
- 部门/班级对比
**前端**
- 统计图表ECharts
- 数据导出
### 3.6 权限与批量管理0.5天)
**后端**
- 集成现有权限系统
- 批量权限设置接口
**功能点**
- ✅ 量表权限配置(部门/班级)
- ✅ 批量设置用户权限
- ✅ 独立权限设置
- ✅ 注册用户权限预定义
---
## 第四阶段系统集成与接口预计3天
### 4.1 开放式API接口1.5天)⭐⭐
**后端**
- `ApiController` - 公共API入口
- API密钥验证拦截器
- API文档Swagger
**API接口设计**
```java
// 用户同步
POST /api/v1/users/sync
// 测评结果推送
POST /api/v1/assessments/sync
// 获取量表列表
GET /api/v1/scales
// 提交测评结果
POST /api/v1/assessments/submit
```
**安全措施**
- API Key认证
- 请求签名验证
- 访问频率限制
- IP白名单
### 4.2 数据备份与还原1天
**后端**
- `BackupController`
- 定时任务
**功能点**
- ✅ 一键备份(数据库+文件)
- ✅ 备份下载
- ✅ 一键还原
- ✅ 自动定期备份
- ✅ 备份清理策略
**实现**
- MySQL导出脚本
- 文件压缩打包
- 远程存储支持
### 4.3 单机/网络模式切换0.5天)
**配置管理**
- 配置文件切换
- 数据库连接管理
- 网络检测
---
## 第五阶段前端UI优化预计4天
### 5.1 管理后台界面2天
**页面开发**
- 量表管理 (`views/psychology/scale/`)
- 题目编辑 (`views/psychology/item/`)
- 测评记录 (`views/psychology/assessment/`)
- 统计报表 (`views/psychology/statistics/`)
- 系统配置 (`views/psychology/config/`)
**组件开发**
- 题目编辑器
- 计分规则配置器
- 报告编辑器
- 二维码生成器
### 5.2 移动端适配1天⭐⭐⭐⭐⭐
**功能**
- 响应式布局
- 触屏优化
- 扫码功能
- 语音播放优化
### 5.3 用户体验优化1天
- 加载动画
- 错误提示优化
- 快捷键支持
- 无感知自动保存
---
## 第六阶段测试与优化预计3天
### 6.1 功能测试1天
- 量表管理测试
- 测评流程测试
- 报告生成测试
- 预警功能测试
### 6.2 性能测试1天
- 并发测评压力测试
- 数据库查询优化
- 缓存策略
- 接口响应优化
### 6.3 Bug修复1天
- 修复测试发现的问题
- 代码review
- 安全漏洞检查
---
## 第七阶段部署与文档预计2天
### 7.1 部署准备1天
- 生产环境配置
- 数据库初始化脚本
- Nginx配置
- SSL证书配置
### 7.2 文档编写1天
- 系统使用手册
- API接口文档
- 运维文档
- 常见问题FAQ
---
## 技术栈确认
### 后端
- Spring Boot 2.5.15
- Spring Security + JWT
- MyBatis
- MySQL 5.7+
- Redis缓存
- Druid连接池
### 前端
- Vue 2.6.12
- Element UI 2.15
- Axios
- Vuex
- ECharts图表
- VueRouter
### 工具库
- TTS阿里云/腾讯云
- 二维码qr-code
- Excel导入导出POI
- PDF生成iText/Flying Saucer
- 文件上传OSS可选
---
## 关键需求清单(必须实现)
### ★级功能
- [x] 语音真人读题
- [x] 暂停/恢复测评
- [x] 自定义用户档案
- [x] 自定义量表
- [x] 自定义问卷(多种题型)
- [x] 自定义测评结果
- [x] 二维码扫码功能
- [x] 无人数限制普查
- [x] 心理网站功能
- [x] 自动危机预警
- [x] 开放式API对接
### 必需量表
- COPA-SAI
- COPA-PI
- COPA-TCMI
- COPA-SCMI
- COPA-MPI
- 罪犯暴力倾向量表
- 罪犯自杀倾向量表
- MMPI
- SCL-90
- SAS
- SDS
- 其他50+量表
---
## 开发进度安排
| 阶段 | 天数 | 关键里程碑 |
|------|------|-----------|
| 第一阶段 | 2天 | 数据库设计完成,必填量表导入 |
| 第二阶段 | 8天 | 核心功能可用 |
| 第三阶段 | 6天 | 扩展功能完成 |
| 第四阶段 | 3天 | API接口对外开放 |
| 第五阶段 | 4天 | 前端界面完善 |
| 第六阶段 | 3天 | 系统测试通过 |
| 第七阶段 | 2天 | 正式上线 |
| **总计** | **28天** | **完整系统交付** |
---
## 风险与应对
1. **TTS成本控制**
- 风险评估:大量语音生成会产生费用
- 应对优先使用本地TTS预留API接入
2. **性能瓶颈**
- 风险评估:大批量测评可能出现性能问题
- 应对数据库优化、Redis缓存、异步处理
3. **量表数据准确性**
- 风险评估:计分规则复杂易错
- 应对:充分测试、人工复核
4. **移动端兼容性**
- 风险评估:不同设备适配问题
- 应对:响应式设计、兼容性测试
---
## 下一步行动
**第一阶段已完成情况:**
1. ✅ 数据库设计27张表
2. ✅ 量表管理模块CRUD完整
3. ✅ 菜单配置与权限
4. ✅ 可在浏览器正常运行
**准备就绪的技术环境:**
- ✅ 项目框架RuoYi-Vue
- ✅ 数据库设计SQL脚本
- ✅ 基础架构Controller-Service-Mapper
- ✅ 量表管理功能可用
---
**计划制定日期**2025-11-01
**预计完成日期**2025-11-29