xlcp-backend/yudao-module-prison/src/main/resources/sql/assessment_migration_simple.sql
tangweijie dc65ef8d24 refactor: 重构评估模块为答题模块,整合到问卷记录服务
主要变更:
- 删除 assessment 模块,原有功能整合到 questionnaire-record
- 新增 answer 模块处理答题记录
- QuestionnaireRecordServiceImpl 扩展测评执行、评分、统计功能
- 更新枚举类状态定义(1-待测评 2-测评中 3-已完成 4-已过期 5-已取消)
- 消费记录模块新增明细相关接口

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-15 22:35:42 +08:00

172 lines
8.2 KiB
SQL
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.

-- =====================================================
-- XL监狱综合管理平台 - 测评执行模块数据库迁移脚本
-- 简化版(直接执行,无需 IF 判断)
-- =====================================================
-- =====================================================
-- 1. 更新 prison_questionnaire_record 表结构
-- 添加测评执行所需字段
-- =====================================================
-- 添加问卷名称字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `questionnaire_name` varchar(200) DEFAULT NULL COMMENT '问卷名称' AFTER `questionnaire_id`;
-- 添加罪犯姓名字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `prisoner_name` varchar(100) DEFAULT NULL COMMENT '罪犯姓名' AFTER `prisoner_no`;
-- 添加开始时间字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `start_time` datetime DEFAULT NULL COMMENT '开始时间';
-- 添加结束时间字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `end_time` datetime DEFAULT NULL COMMENT '结束时间';
-- 添加截止日期字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `deadline` datetime DEFAULT NULL COMMENT '截止日期';
-- 添加客观题得分字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `objective_score` decimal(10,2) DEFAULT 0.00 COMMENT '客观题得分';
-- 添加主观题得分字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `subjective_score` decimal(10,2) DEFAULT 0.00 COMMENT '主观题得分';
-- 添加总分字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `total_score` decimal(10,2) DEFAULT NULL COMMENT '总分';
-- 添加及格分数字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `pass_score` decimal(10,2) DEFAULT NULL COMMENT '及格分数';
-- 添加及格状态字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `pass_status` tinyint DEFAULT NULL COMMENT '及格状态1-及格 2-不及格 3-待评阅';
-- 添加风险等级字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `risk_level` tinyint DEFAULT NULL COMMENT '风险等级1-高风险 2-中风险 3-低风险';
-- 添加评阅人ID字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `evaluator_id` bigint DEFAULT NULL COMMENT '评阅人ID';
-- 添加评阅人姓名字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `evaluator_name` varchar(100) DEFAULT NULL COMMENT '评阅人姓名';
-- 添加评阅时间字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `evaluate_time` datetime DEFAULT NULL COMMENT '评阅时间';
-- 添加参与人数字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `participant_count` int DEFAULT 0 COMMENT '参与人数';
-- 添加完成人数字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `completed_count` int DEFAULT 0 COMMENT '完成人数';
-- 添加答题用时字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `duration` int DEFAULT NULL COMMENT '答题用时(秒)';
-- 添加备注字段
ALTER TABLE `prison_questionnaire_record`
ADD COLUMN `remark` varchar(500) DEFAULT NULL COMMENT '备注';
-- =====================================================
-- 2. 创建答卷详情表 (prison_questionnaire_answer)
-- =====================================================
CREATE TABLE `prison_questionnaire_answer` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '答案ID',
`record_id` bigint NOT NULL COMMENT '测评记录ID',
`question_id` bigint NOT NULL COMMENT '题目ID',
`question_type` tinyint NOT NULL COMMENT '题目类型1-单选 2-多选 3-判断 4-填空 5-简述',
`question_content` varchar(500) NOT NULL COMMENT '题目内容',
`answer_content` text COMMENT '答案内容',
`score` decimal(10,2) DEFAULT 0.00 COMMENT '得分',
`is_correct` bit(1) DEFAULT NULL COMMENT '是否正确',
`is_manual_score` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否需要人工评分',
`manual_score` decimal(10,2) DEFAULT NULL COMMENT '人工评分分数',
`manual_comment` varchar(500) DEFAULT NULL COMMENT '人工评语',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_questionnaire_answer_record_id` (`record_id`),
KEY `idx_questionnaire_answer_question_id` (`question_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='问卷答题详情表';
-- =====================================================
-- 3. 创建测评统计表 (prison_questionnaire_statistics)
-- =====================================================
CREATE TABLE `prison_questionnaire_statistics` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '统计ID',
`questionnaire_id` bigint NOT NULL COMMENT '问卷ID',
`questionnaire_name` varchar(200) NOT NULL COMMENT '问卷名称',
`stat_date` date NOT NULL COMMENT '统计日期',
`total_count` int NOT NULL DEFAULT 0 COMMENT '发起总数',
`completed_count` int NOT NULL DEFAULT 0 COMMENT '完成数量',
`completion_rate` decimal(5,2) DEFAULT 0.00 COMMENT '完成率',
`average_score` decimal(10,2) DEFAULT 0.00 COMMENT '平均分',
`pass_rate` decimal(5,2) DEFAULT 0.00 COMMENT '及格率',
`high_risk_count` int NOT NULL DEFAULT 0 COMMENT '高风险人数',
`medium_risk_count` int NOT NULL DEFAULT 0 COMMENT '中风险人数',
`low_risk_count` int NOT NULL DEFAULT 0 COMMENT '低风险人数',
`creator` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
PRIMARY KEY (`id`),
KEY `idx_questionnaire_statistics_questionnaire_id` (`questionnaire_id`),
KEY `idx_questionnaire_statistics_stat_date` (`stat_date`),
UNIQUE KEY `uk_questionnaire_date` (`questionnaire_id`, `stat_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='问卷测评统计表';
-- =====================================================
-- 4. 添加菜单权限
-- =====================================================
-- 发起测评
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
SELECT '发起测评', 'prison:questionnaire-record:initiate', 3, 6, id, '', '', '', 0
FROM system_menu WHERE name = '问卷记录管理' LIMIT 1;
-- 开始测评
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
SELECT '开始测评', 'prison:questionnaire-record:start', 3, 7, id, '', '', '', 0
FROM system_menu WHERE name = '问卷记录管理' LIMIT 1;
-- 提交答卷
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
SELECT '提交答卷', 'prison:questionnaire-record:submit', 3, 8, id, '', '', '', 0
FROM system_menu WHERE name = '问卷记录管理' LIMIT 1;
-- 结束测评
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
SELECT '结束测评', 'prison:questionnaire-record:finish', 3, 9, id, '', '', '', 0
FROM system_menu WHERE name = '问卷记录管理' LIMIT 1;
-- 取消测评
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
SELECT '取消测评', 'prison:questionnaire-record:cancel', 3, 10, id, '', '', '', 0
FROM system_menu WHERE name = '问卷记录管理' LIMIT 1;
-- 人工评分
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, component, status)
SELECT '人工评分', 'prison:questionnaire-record:score', 3, 11, id, '', '', '', 0
FROM system_menu WHERE name = '问卷记录管理' LIMIT 1;
SELECT '数据库迁移完成!';