190 lines
8.5 KiB
SQL
190 lines
8.5 KiB
SQL
-- ============================================================================
|
|
-- 贫困生认定申请表字段修复脚本
|
|
-- 创建时间: 2025-01-03
|
|
-- 描述: 修复 jcbt_poverty_application 表缺失的字段
|
|
-- ============================================================================
|
|
|
|
-- 检查并添加缺失的字段到 jcbt_poverty_application 表
|
|
|
|
-- 1. 检查表是否存在,如不存在则创建完整表
|
|
CREATE TABLE IF NOT EXISTS `jcbt_poverty_application` (
|
|
`id` bigint(20) NOT NULL COMMENT '主键ID',
|
|
`application_no` varchar(50) DEFAULT NULL COMMENT '申请编号',
|
|
`academic_year` varchar(20) DEFAULT NULL COMMENT '学年',
|
|
`term` int(11) DEFAULT NULL COMMENT '学期',
|
|
`student_id` bigint(20) DEFAULT NULL COMMENT '学生ID',
|
|
`student_no` varchar(50) DEFAULT NULL COMMENT '学号',
|
|
`student_name` varchar(100) DEFAULT NULL COMMENT '学生姓名',
|
|
`gender` varchar(10) DEFAULT NULL COMMENT '性别',
|
|
`college_id` bigint(20) DEFAULT NULL COMMENT '学院ID',
|
|
`college_name` varchar(100) DEFAULT NULL COMMENT '学院名称',
|
|
`major_id` bigint(20) DEFAULT NULL COMMENT '专业ID',
|
|
`major_name` varchar(100) DEFAULT NULL COMMENT '专业名称',
|
|
`class_id` bigint(20) DEFAULT NULL COMMENT '班级ID',
|
|
`class_name` varchar(100) DEFAULT NULL COMMENT '班级名称',
|
|
`recognition_group` varchar(50) DEFAULT NULL COMMENT '认定群体(特殊群体/其他群体)',
|
|
`recognition_type_id` bigint(20) DEFAULT NULL COMMENT '认定类型ID',
|
|
`recognition_type_code` varchar(50) DEFAULT NULL COMMENT '认定类型编码',
|
|
`recognition_type_name` varchar(100) DEFAULT NULL COMMENT '认定类型名称',
|
|
`assistance_type_ids` varchar(500) DEFAULT NULL COMMENT '申请自助类型ID数组(多选)',
|
|
`assistance_type_names` varchar(500) DEFAULT NULL COMMENT '申请自助类型名称(多个用逗号分隔)',
|
|
`family_economy_summary` text COMMENT '家庭经济情况摘要',
|
|
`attach_application_form_url` varchar(500) DEFAULT NULL COMMENT '申请表附件URL',
|
|
`attach_application_form_id` bigint(20) DEFAULT NULL COMMENT '申请表附件ID',
|
|
`attach_survey_form_url` varchar(500) DEFAULT NULL COMMENT '调查表附件URL',
|
|
`attach_survey_form_id` bigint(20) DEFAULT NULL COMMENT '调查表附件ID',
|
|
`status` varchar(20) DEFAULT 'DRAFT' COMMENT '申请状态(DRAFT-草稿,SUBMITTED-已提交,REVIEWING-审核中,APPROVED-已通过,REJECTED-已拒绝,WITHDRAWN-已撤回)',
|
|
`submitter_id` bigint(20) DEFAULT NULL COMMENT '提交人ID',
|
|
`submitter_name` varchar(100) DEFAULT NULL COMMENT '提交人姓名',
|
|
`submit_time` datetime DEFAULT NULL COMMENT '提交时间',
|
|
`auditor_id` bigint(20) DEFAULT NULL COMMENT '审核人ID',
|
|
`auditor_name` varchar(100) DEFAULT NULL COMMENT '审核人姓名',
|
|
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
|
`audit_opinion` text COMMENT '审核意见',
|
|
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
`deleted` bigint(20) DEFAULT '0' COMMENT '逻辑删除标记(0-正常,非0-已删除)',
|
|
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
|
`create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
|
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
|
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
|
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_student_no` (`student_no`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_academic_year` (`academic_year`),
|
|
KEY `idx_college_id` (`college_id`),
|
|
KEY `idx_tenant_deleted` (`tenant_id`, `deleted`),
|
|
KEY `idx_create_time` (`create_time`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='贫困生认定申请表';
|
|
|
|
-- 2. 如果表已存在但缺少字段,则添加缺失字段
|
|
-- 添加 term 字段(如果不存在)
|
|
SET @sql = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'term');
|
|
|
|
SET @sql = IF(@sql = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN term int(11) DEFAULT NULL COMMENT ''学期'' AFTER academic_year',
|
|
'SELECT ''term字段已存在'' as result');
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 添加 attach_application_form_id 字段(如果不存在)
|
|
SET @sql = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'attach_application_form_id');
|
|
|
|
SET @sql = IF(@sql = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN attach_application_form_id bigint(20) DEFAULT NULL COMMENT ''申请表附件ID'' AFTER attach_application_form_url',
|
|
'SELECT ''attach_application_form_id字段已存在'' as result');
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 添加 submit_time 字段(如果不存在)
|
|
SET @sql = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'submit_time');
|
|
|
|
SET @sql = IF(@sql = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN submit_time datetime DEFAULT NULL COMMENT ''提交时间'' AFTER submitter_name',
|
|
'SELECT ''submit_time字段已存在'' as result');
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 添加 auditor_id 字段(如果不存在)
|
|
SET @sql = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'auditor_id');
|
|
|
|
SET @sql = IF(@sql = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN auditor_id bigint(20) DEFAULT NULL COMMENT ''审核人ID'' AFTER submit_time',
|
|
'SELECT ''auditor_id字段已存在'' as result');
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 添加 auditor_name 字段(如果不存在)
|
|
SET @sql = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'auditor_name');
|
|
|
|
SET @sql = IF(@sql = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN auditor_name varchar(100) DEFAULT NULL COMMENT ''审核人姓名'' AFTER auditor_id',
|
|
'SELECT ''auditor_name字段已存在'' as result');
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 添加 audit_time 字段(如果不存在)
|
|
SET @sql = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'audit_time');
|
|
|
|
SET @sql = IF(@sql = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN audit_time datetime DEFAULT NULL COMMENT ''审核时间'' AFTER auditor_name',
|
|
'SELECT ''audit_time字段已存在'' as result');
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 添加 audit_opinion 字段(如果不存在)
|
|
SET @sql = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'audit_opinion');
|
|
|
|
SET @sql = IF(@sql = 0,
|
|
'ALTER TABLE jcbt_poverty_application ADD COLUMN audit_opinion text COMMENT ''审核意见'' AFTER audit_time',
|
|
'SELECT ''audit_opinion字段已存在'' as result');
|
|
|
|
PREPARE stmt FROM @sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 3. 验证表结构
|
|
SELECT 'Table structure verification:' as message;
|
|
DESCRIBE jcbt_poverty_application;
|
|
|
|
-- 4. 检查缺失的字段
|
|
SELECT
|
|
'Missing fields check:' as message,
|
|
CASE
|
|
WHEN (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'term') = 0
|
|
THEN 'term字段缺失'
|
|
ELSE 'term字段存在'
|
|
END as term_status,
|
|
CASE
|
|
WHEN (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'jcbt_poverty_application'
|
|
AND COLUMN_NAME = 'attach_application_form_id') = 0
|
|
THEN 'attach_application_form_id字段缺失'
|
|
ELSE 'attach_application_form_id字段存在'
|
|
END as attach_application_form_id_status;
|
|
|
|
-- ============================================================================
|
|
-- 使用说明:
|
|
-- 1. 连接到对应的数据库
|
|
-- 2. 执行本脚本
|
|
-- 3. 检查输出结果,确认所有字段都已正确添加
|
|
-- 4. 重新启动后端服务
|
|
-- ============================================================================
|