xinli/z_Project change/进度汇总/20-自定义问卷功能增强开发记录.md
2025-11-12 15:25:47 +08:00

6.3 KiB
Raw Blame History

自定义问卷功能增强开发记录

📋 任务概述

开发日期: 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 字段,支持问卷解释配置
    • 添加索引和外键约束

新增表结构:

-- 问卷答案详情表
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: 评分时间

修改表结构:

-- 解释配置表
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