# 心理测评系统开发计划 ## 项目概述 基于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