- 添加问卷问题批量更新API: POST /prison/question/batch-update - 修复savePartitions循环调用API问题 (50题只需1次请求) - 修复onPartitionDragEnd拖拽排序性能问题 - 修复onQuestionDragEnd问题拖拽排序性能问题 - 添加QuestionBatchUpdateReqVO请求对象 - 添加自动填充来源字典SQL (35个选项)
74 lines
4.0 KiB
SQL
74 lines
4.0 KiB
SQL
-- =====================================================
|
||
-- XL监狱综合管理平台 - 问卷系统增强脚本
|
||
-- 执行日期:2026-01-13
|
||
-- =====================================================
|
||
|
||
-- 切换到目标数据库
|
||
USE xlcp_dev;
|
||
|
||
-- =====================================================
|
||
-- 1. 问题表 (prison_question) 新增字段
|
||
-- =====================================================
|
||
ALTER TABLE prison_question
|
||
ADD COLUMN part_name VARCHAR(100) COMMENT '分区名称(Part名称),用于将问题分组' AFTER is_required,
|
||
ADD COLUMN part_sort INT DEFAULT 0 COMMENT '分区排序(同一问卷内的分区序号)' AFTER part_name,
|
||
ADD COLUMN help_text VARCHAR(500) COMMENT '帮助说明文字' AFTER part_sort,
|
||
ADD COLUMN placeholder VARCHAR(200) COMMENT '占位提示(填空题/数字题显示)' AFTER help_text,
|
||
ADD COLUMN default_value VARCHAR(200) COMMENT '默认值' AFTER placeholder,
|
||
ADD COLUMN auto_fill_type VARCHAR(20) DEFAULT 'NONE' COMMENT '自动填充类型:NONE-无 AUTO-系统自动填充 MANUAL-手动输入' AFTER default_value,
|
||
ADD COLUMN auto_fill_source VARCHAR(100) COMMENT '自动填充来源:dict:字典类型 / field:字段名 示例:dict:system_user_sex 或 field:prisonerName' AFTER auto_fill_type,
|
||
ADD COLUMN display_condition VARCHAR(500) COMMENT '显示条件JSON:{\"field\":\"字段名\",\"operator\":\">=\",\"value\":\"值\"} 示例:{\"field\":\"riskLevel\",\"operator\":\">=\",\"value\":\"3\"}' AFTER auto_fill_source,
|
||
ADD COLUMN min_value INT COMMENT '最小值(数字/评分题)' AFTER display_condition,
|
||
ADD COLUMN max_value INT COMMENT '最大值(数字/评分题)' AFTER min_value;
|
||
|
||
-- =====================================================
|
||
-- 2. 问卷表 (prison_questionnaire) 新增字段
|
||
-- =====================================================
|
||
ALTER TABLE prison_questionnaire
|
||
ADD COLUMN cover_image VARCHAR(500) COMMENT '封面图片URL' AFTER status,
|
||
ADD COLUMN instruction VARCHAR(1000) COMMENT '填写说明' AFTER cover_image,
|
||
ADD COLUMN estimated_time INT COMMENT '预计耗时(分钟)' AFTER instruction,
|
||
ADD COLUMN part_count INT DEFAULT 0 COMMENT '分区数量' AFTER estimated_time,
|
||
ADD COLUMN allow_anonymous TINYINT(1) DEFAULT 1 COMMENT '是否允许匿名:0-否 1-是' AFTER part_count;
|
||
|
||
-- =====================================================
|
||
-- 3. 验证脚本 - 查看新增字段
|
||
-- =====================================================
|
||
SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
|
||
FROM INFORMATION_SCHEMA.COLUMNS
|
||
WHERE TABLE_SCHEMA = 'xlcp_dev'
|
||
AND TABLE_NAME = 'prison_question'
|
||
AND COLUMN_NAME LIKE 'part_%'
|
||
OR COLUMN_NAME = 'help_text'
|
||
OR COLUMN_NAME = 'placeholder'
|
||
OR COLUMN_NAME = 'default_value'
|
||
OR COLUMN_NAME LIKE 'auto_%'
|
||
OR COLUMN_NAME = 'display_condition'
|
||
OR COLUMN_NAME IN ('min_value', 'max_value')
|
||
ORDER BY ORDINAL_POSITION;
|
||
|
||
SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
|
||
FROM INFORMATION_SCHEMA.COLUMNS
|
||
WHERE TABLE_SCHEMA = 'xlcp_dev'
|
||
AND TABLE_NAME = 'prison_questionnaire'
|
||
AND COLUMN_NAME IN ('cover_image', 'instruction', 'estimated_time', 'part_count', 'allow_anonymous')
|
||
ORDER BY ORDINAL_POSITION;
|
||
|
||
-- =====================================================
|
||
-- 4. 问题类型字典数据(如果需要)
|
||
-- =====================================================
|
||
-- 问题类型:1-单选 2-多选 3-填空 4-评分 5-日期 6-数字
|
||
-- INSERT INTO system_dict_data (dict_type, dict_value, dict_label, sort_order, status)
|
||
-- VALUES ('prison_question_type', '5', '日期', 5, '0'),
|
||
-- ('prison_question_type', '6', '数字', 6, '0');
|
||
|
||
-- =====================================================
|
||
-- 5. 自动填充类型字典数据
|
||
-- =====================================================
|
||
-- INSERT INTO system_dict_data (dict_type, dict_value, dict_label, sort_order, status)
|
||
-- VALUES ('question_auto_fill_type', 'NONE', '无', 1, '0'),
|
||
-- ('question_auto_fill_type', 'AUTO', '系统自动填充', 2, '0'),
|
||
-- ('question_auto_fill_type', 'MANUAL', '手动输入', 3, '0');
|
||
|
||
SELECT '脚本执行完成!请验证字段是否添加成功。' AS RESULT;
|