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