-- ============================================================================ -- 贫困生认定申请表字段修复脚本 -- 创建时间: 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. 重新启动后端服务 -- ============================================================================