210 lines
6.3 KiB
Markdown
210 lines
6.3 KiB
Markdown
# 自定义问卷功能增强开发记录
|
||
|
||
## 📋 任务概述
|
||
|
||
**开发日期**: 2025-01-XX
|
||
**模块名称**: 自定义问卷功能增强
|
||
**任务类型**: 功能增强与完善
|
||
|
||
---
|
||
|
||
## 🎯 需求说明
|
||
|
||
### 1. 菜单统一
|
||
- ✅ 删除"问卷管理"菜单,统一使用"自定义问卷"
|
||
|
||
### 2. 问卷测评功能
|
||
- 自定义问卷要像量表一样可以分配给用户进行测量
|
||
- 管理员可以设置对应的得分
|
||
- 在解释配置中可以设定对应的分数进行说明测量之后的结果
|
||
|
||
### 3. 题目类型支持
|
||
- 支持多种题目类型:单选、多选、判断、填空、排序、计算、简答、问答、作文
|
||
|
||
### 4. 主观题评分
|
||
- 管理员能汇总主观题进行评分
|
||
|
||
### 5. 成绩排名
|
||
- 管理员能查看所有问卷人员以及对应的分数和排名
|
||
- 排名从上往下是第一名往下排队
|
||
|
||
---
|
||
|
||
## ✅ 已完成工作
|
||
|
||
### 1. 菜单统一 ✅
|
||
- ✅ 修改SQL脚本,将"问卷管理"菜单改为"自定义问卷"
|
||
- ✅ 修改前端路由,将"问卷管理"改为"自定义问卷"
|
||
- ✅ 更新菜单图标为`edit`
|
||
|
||
**修改文件**:
|
||
- `sql/psychological_system_complete.sql` - 菜单配置SQL
|
||
- `ruoyi-ui/src/router/index.js` - 前端路由配置
|
||
|
||
### 2. 数据库表结构增强 ✅
|
||
- ✅ 创建问卷答案详情表 `psy_questionnaire_answer_detail`
|
||
- 存储每道题的答案
|
||
- 支持客观题和主观题
|
||
- 支持管理员评分功能
|
||
- ✅ 修改解释配置表 `psy_result_interpretation`
|
||
- 添加 `questionnaire_id` 字段,支持问卷解释配置
|
||
- 添加索引和外键约束
|
||
|
||
**新增表结构**:
|
||
```sql
|
||
-- 问卷答案详情表
|
||
psy_questionnaire_answer_detail
|
||
- detail_id: 详情ID
|
||
- answer_id: 答案ID(关联问卷答题记录)
|
||
- item_id: 题目ID
|
||
- option_id: 选项ID(单选/判断)
|
||
- option_ids: 选项ID列表(多选)
|
||
- answer_text: 文本答案(填空、简答、问答、作文)
|
||
- answer_score: 答案得分
|
||
- is_subjective: 是否主观题
|
||
- is_scored: 是否已评分
|
||
- scored_by: 评分人
|
||
- scored_time: 评分时间
|
||
```
|
||
|
||
**修改表结构**:
|
||
```sql
|
||
-- 解释配置表
|
||
psy_result_interpretation
|
||
- questionnaire_id: 问卷ID(新增)
|
||
```
|
||
|
||
---
|
||
|
||
## 🚧 待完成工作
|
||
|
||
### 1. 问卷测评功能(类似量表测评)
|
||
- [ ] 创建问卷测评实体类 `PsyQuestionnaireAnswerDetail`
|
||
- [ ] 创建问卷测评Mapper和Service
|
||
- [ ] 创建问卷测评Controller
|
||
- [ ] 开始问卷测评接口
|
||
- [ ] 获取问卷题目接口
|
||
- [ ] 保存答案接口
|
||
- [ ] 提交问卷接口
|
||
- [ ] 自动计分服务(客观题)
|
||
- [ ] 创建问卷测评前端页面
|
||
- [ ] 问卷列表页面
|
||
- [ ] 开始问卷页面
|
||
- [ ] 答题页面(支持多种题型)
|
||
- [ ] 提交问卷页面
|
||
|
||
### 2. 多种题目类型支持
|
||
- [ ] 题目类型枚举定义
|
||
- [ ] radio: 单选
|
||
- [ ] checkbox: 多选
|
||
- [ ] boolean: 判断
|
||
- [ ] input: 填空
|
||
- [ ] sort: 排序
|
||
- [ ] calculate: 计算
|
||
- [ ] text: 简答
|
||
- [ ] textarea: 问答
|
||
- [ ] essay: 作文
|
||
- [ ] 题目管理页面增强
|
||
- [ ] 题目类型选择器
|
||
- [ ] 不同题型的编辑界面
|
||
- [ ] 选项配置(单选、多选、判断)
|
||
- [ ] 文本答案配置(填空、简答、问答、作文)
|
||
|
||
### 3. 主观题评分功能
|
||
- [ ] 主观题评分管理页面
|
||
- [ ] 待评分题目列表
|
||
- [ ] 评分界面
|
||
- [ ] 批量评分功能
|
||
- [ ] 主观题评分接口
|
||
- [ ] 获取待评分题目接口
|
||
- [ ] 提交评分接口
|
||
- [ ] 批量评分接口
|
||
|
||
### 4. 成绩排名功能
|
||
- [ ] 成绩排名查询接口
|
||
- [ ] 按问卷ID查询排名
|
||
- [ ] 按用户ID查询排名
|
||
- [ ] 排名计算逻辑(从高到低)
|
||
- [ ] 成绩排名展示页面
|
||
- [ ] 排名列表(表格)
|
||
- [ ] 排名统计图表
|
||
- [ ] 导出排名数据
|
||
|
||
### 5. 解释配置增强
|
||
- [ ] 解释配置页面增强
|
||
- [ ] 支持选择问卷
|
||
- [ ] 问卷解释配置界面
|
||
- [ ] 解释配置查询接口
|
||
- [ ] 按问卷ID查询解释
|
||
- [ ] 按分数范围匹配解释
|
||
|
||
---
|
||
|
||
## 📁 涉及文件
|
||
|
||
### 后端文件
|
||
- `ry-news-system/src/main/java/com/ddnai/system/domain/psychology/PsyQuestionnaireAnswerDetail.java` (待创建)
|
||
- `ry-news-system/src/main/java/com/ddnai/system/mapper/psychology/PsyQuestionnaireAnswerDetailMapper.java` (待创建)
|
||
- `ry-news-system/src/main/java/com/ddnai/system/service/psychology/IPsyQuestionnaireAnswerDetailService.java` (待创建)
|
||
- `ry-news-system/src/main/java/com/ddnai/system/service/impl/psychology/PsyQuestionnaireAnswerDetailServiceImpl.java` (待创建)
|
||
- `ry-news-admin/src/main/java/com/ddnai/web/controller/psychology/PsyQuestionnaireAnswerController.java` (待创建)
|
||
- `ry-news-system/src/main/java/com/ddnai/system/domain/psychology/PsyResultInterpretation.java` (待修改)
|
||
- `ry-news-system/src/main/resources/mapper/system/psychology/PsyQuestionnaireAnswerDetailMapper.xml` (待创建)
|
||
|
||
### 前端文件
|
||
- `ruoyi-ui/src/views/psychology/questionnaire/answer/index.vue` (待创建)
|
||
- `ruoyi-ui/src/views/psychology/questionnaire/answer/taking.vue` (待创建)
|
||
- `ruoyi-ui/src/views/psychology/questionnaire/score/index.vue` (待创建)
|
||
- `ruoyi-ui/src/views/psychology/questionnaire/rank/index.vue` (待创建)
|
||
- `ruoyi-ui/src/api/psychology/questionnaire.js` (待修改)
|
||
|
||
### 数据库文件
|
||
- `sql/psychological_system_complete.sql` (已修改)
|
||
|
||
---
|
||
|
||
## 📝 技术要点
|
||
|
||
### 1. 题目类型判断
|
||
- 客观题:radio、checkbox、boolean、input(有标准答案)、sort、calculate
|
||
- 主观题:text、textarea、essay、input(无标准答案)
|
||
|
||
### 2. 自动计分逻辑
|
||
- 客观题:提交时自动计算得分
|
||
- 主观题:需要管理员手动评分
|
||
|
||
### 3. 排名计算
|
||
- 按总分从高到低排序
|
||
- 相同分数按提交时间排序(先提交的排名靠前)
|
||
|
||
### 4. 解释配置匹配
|
||
- 根据问卷ID和分数范围匹配解释
|
||
- 支持多个分数区间配置
|
||
|
||
---
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
1. 问卷测评功能要参考量表测评的实现方式
|
||
2. 题目类型要支持所有9种类型
|
||
3. 主观题评分要有明确的权限控制
|
||
4. 排名计算要考虑相同分数的情况
|
||
5. 解释配置要同时支持量表和问卷
|
||
|
||
---
|
||
|
||
## 📌 下一步计划
|
||
|
||
1. 创建问卷答案详情实体类和Mapper
|
||
2. 实现问卷测评基础功能(开始、答题、提交)
|
||
3. 实现多种题目类型的答题界面
|
||
4. 实现主观题评分功能
|
||
5. 实现成绩排名功能
|
||
6. 完善解释配置功能
|
||
|
||
---
|
||
|
||
**创建时间**: 2025-01-XX
|
||
**最后更新**: 2025-01-XX
|
||
|