Files
hzdyjs/docs/设计文档/database/学工管理-学生信息管理/10-student-management-table-fix.sql
T
2025-07-19 10:18:27 +08:00

442 lines
21 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.
-- ==========================================
-- 学生信息管理模块表结构完整修复脚本
-- 版本:V2.0.0
-- 功能:补充缺失字段,创建完整表结构
-- 作者:Cursor AI 辅助
-- 时间:2025-01-12
-- 问题:代码期望的表结构与实际数据库表结构不匹配
-- ==========================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- 检查并修复 xg_student_info 表结构
-- ----------------------------
-- 先删除旧表(如果存在)
DROP TABLE IF EXISTS `xg_student_info`;
-- 重新创建完整的 xg_student_info 表
CREATE TABLE `xg_student_info` (
-- 标准基础字段(必须)
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint(20) DEFAULT NULL 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 '更新时间',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)',
-- 基本信息字段(与XML映射完全匹配)
`student_no` varchar(32) NOT NULL COMMENT '学号',
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`name` varchar(50) NOT NULL COMMENT '姓名',
`name_pinyin` varchar(200) DEFAULT NULL COMMENT '姓名拼音',
`gender` char(1) NOT NULL COMMENT '性别:M-男,F-女',
`birth_date` date DEFAULT NULL COMMENT '出生日期',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
`political_status` varchar(20) DEFAULT NULL COMMENT '政治面貌',
-- 学籍信息字段
`student_status` char(1) DEFAULT '1' COMMENT '学籍状态:1-在籍,2-休学,3-复学,4-退学,5-毕业',
`enrollment_year` int(4) DEFAULT NULL COMMENT '入学年份',
`enrollment_date` date DEFAULT NULL COMMENT '入学日期',
`school_system` int(2) DEFAULT 4 COMMENT '学制(年)',
`education_level` varchar(20) DEFAULT NULL COMMENT '学历层次',
`training_type` varchar(20) DEFAULT NULL COMMENT '培养方式',
-- 专业班级信息字段
`major_code` varchar(20) DEFAULT NULL COMMENT '专业代码',
`major_name` varchar(100) DEFAULT NULL COMMENT '专业名称',
`class_code` varchar(32) DEFAULT NULL COMMENT '班级代码',
`class_name` varchar(100) DEFAULT NULL COMMENT '班级名称',
-- 学院信息字段(关键缺失字段)
`college_code` varchar(20) DEFAULT NULL COMMENT '学院代码',
`college_name` varchar(100) DEFAULT NULL COMMENT '学院名称',
-- 教师信息字段
`counselor_id` bigint(20) DEFAULT NULL COMMENT '辅导员ID',
`counselor_name` varchar(50) DEFAULT NULL COMMENT '辅导员姓名',
`class_teacher_id` bigint(20) DEFAULT NULL COMMENT '班主任ID',
`class_teacher_name` varchar(50) DEFAULT NULL COMMENT '班主任姓名',
-- 联系信息字段
`phone` varchar(20) DEFAULT NULL COMMENT '手机号码',
`email` varchar(100) DEFAULT NULL COMMENT '电子邮箱',
`qq` varchar(20) DEFAULT NULL COMMENT 'QQ号码',
`wechat` varchar(50) DEFAULT NULL COMMENT '微信号',
-- 地址信息字段
`dorm_building` varchar(50) DEFAULT NULL COMMENT '宿舍楼栋',
`dorm_room` varchar(20) DEFAULT NULL COMMENT '宿舍房间',
`home_address` varchar(200) DEFAULT NULL COMMENT '家庭地址',
`home_zip_code` varchar(10) DEFAULT NULL COMMENT '家庭邮编',
-- 紧急联系人信息字段
`emergency_contact` varchar(50) DEFAULT NULL COMMENT '紧急联系人',
`emergency_phone` varchar(20) DEFAULT NULL COMMENT '紧急联系人电话',
`emergency_relation` varchar(20) DEFAULT NULL COMMENT '紧急联系人关系',
-- 家庭信息字段
`family_address` varchar(200) DEFAULT NULL COMMENT '家庭住址',
`family_zip_code` varchar(10) DEFAULT NULL COMMENT '家庭邮编',
`father_name` varchar(50) DEFAULT NULL COMMENT '父亲姓名',
`father_phone` varchar(20) DEFAULT NULL COMMENT '父亲电话',
`father_job` varchar(100) DEFAULT NULL COMMENT '父亲工作',
`mother_name` varchar(50) DEFAULT NULL COMMENT '母亲姓名',
`mother_phone` varchar(20) DEFAULT NULL COMMENT '母亲电话',
`mother_job` varchar(100) DEFAULT NULL COMMENT '母亲工作',
`guardian_name` varchar(50) DEFAULT NULL COMMENT '监护人姓名',
`guardian_phone` varchar(20) DEFAULT NULL COMMENT '监护人电话',
`guardian_relation` varchar(20) DEFAULT NULL COMMENT '监护人关系',
-- 健康信息字段
`health_status` varchar(20) DEFAULT NULL COMMENT '健康状况',
`allergies` varchar(200) DEFAULT NULL COMMENT '过敏史',
`medical_history` varchar(500) DEFAULT NULL COMMENT '病史',
`blood_type` varchar(5) DEFAULT NULL COMMENT '血型',
`height` decimal(5,2) DEFAULT NULL COMMENT '身高(cm)',
`weight` decimal(5,2) DEFAULT NULL COMMENT '体重(kg)',
-- 个人特征字段
`hobbies` varchar(200) DEFAULT NULL COMMENT '兴趣爱好',
`specialties` varchar(200) DEFAULT NULL COMMENT '特长',
`personal_statement` text DEFAULT NULL COMMENT '个人简介',
-- 特殊群体标识字段(关键缺失字段)
`is_orphan` tinyint(1) DEFAULT 0 COMMENT '是否孤儿:0-否,1-是',
`is_disabled` tinyint(1) DEFAULT 0 COMMENT '是否残疾:0-否,1-是',
`is_minority` tinyint(1) DEFAULT 0 COMMENT '是否少数民族:0-否,1-是',
`is_from_poor_family` tinyint(1) DEFAULT 0 COMMENT '是否贫困生:0-否,1-是',
-- 资助信息字段
`poverty_level` varchar(20) DEFAULT NULL COMMENT '贫困等级',
`has_grant` tinyint(1) DEFAULT 0 COMMENT '是否有助学金:0-否,1-是',
`grant_amount` decimal(10,2) DEFAULT NULL COMMENT '助学金金额',
`has_loan` tinyint(1) DEFAULT 0 COMMENT '是否有助学贷款:0-否,1-是',
`loan_amount` decimal(10,2) DEFAULT NULL COMMENT '助学贷款金额',
-- 银行信息字段
`bank_card_no` varchar(30) DEFAULT NULL COMMENT '银行卡号',
`bank_name` varchar(100) DEFAULT NULL COMMENT '开户银行',
`bank_branch` varchar(100) DEFAULT NULL COMMENT '开户支行',
-- 状态管理字段
`info_status` char(1) DEFAULT '1' COMMENT '信息状态:1-正常,2-待审核,3-审核中,4-已驳回,5-已锁定',
`data_source` varchar(20) DEFAULT 'manual' COMMENT '数据来源:manual-手工录入,import-批量导入,sync-系统同步',
`last_batch_id` bigint(20) DEFAULT NULL COMMENT '最后修改批次ID',
`last_audit_time` datetime DEFAULT NULL COMMENT '最后审核时间',
-- 扩展字段
`ext_field1` varchar(200) DEFAULT NULL COMMENT '扩展字段1',
`ext_field2` varchar(200) DEFAULT NULL COMMENT '扩展字段2',
`ext_field3` varchar(200) DEFAULT NULL COMMENT '扩展字段3',
`ext_field4` varchar(200) DEFAULT NULL COMMENT '扩展字段4',
`ext_field5` varchar(500) DEFAULT NULL COMMENT '扩展字段5',
-- 备注字段
`remark` varchar(500) DEFAULT NULL COMMENT '备注信息',
-- 主键和索引
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_student_no_tenant` (`student_no`, `tenant_id`),
UNIQUE KEY `uk_id_card_tenant` (`id_card`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_deleted` (`deleted`),
KEY `idx_name` (`name`),
KEY `idx_college_code` (`college_code`),
KEY `idx_class_code` (`class_code`),
KEY `idx_student_status` (`student_status`),
KEY `idx_info_status` (`info_status`),
KEY `idx_enrollment_year` (`enrollment_year`),
KEY `idx_major_code` (`major_code`),
KEY `idx_counselor_id` (`counselor_id`),
KEY `idx_class_teacher_id` (`class_teacher_id`),
KEY `idx_last_batch_id` (`last_batch_id`),
KEY `idx_phone` (`phone`),
KEY `idx_create_time` (`create_time`),
KEY `idx_college_class` (`college_code`, `class_code`),
KEY `idx_status_filter` (`tenant_id`, `student_status`, `info_status`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';
-- ----------------------------
-- 检查并修复 xg_class_info 表结构
-- ----------------------------
-- 先删除旧表(如果存在)
DROP TABLE IF EXISTS `xg_class_info`;
-- 重新创建完整的 xg_class_info 表
CREATE TABLE `xg_class_info` (
-- 标准基础字段(必须)
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint(20) DEFAULT NULL 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 '更新时间',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)',
-- 班级基础信息
`class_code` varchar(32) NOT NULL COMMENT '班级代码',
`class_name` varchar(100) NOT NULL COMMENT '班级名称',
`class_type` varchar(20) DEFAULT 'regular' COMMENT '班级类型',
`grade` varchar(10) NOT NULL COMMENT '年级',
`enrollment_year` int(4) NOT NULL COMMENT '入学年份',
`graduation_year` int(4) DEFAULT NULL COMMENT '毕业年份',
-- 专业信息
`major_code` varchar(20) DEFAULT NULL COMMENT '专业代码',
`major_name` varchar(100) DEFAULT NULL COMMENT '专业名称',
-- 学院信息(关键字段)
`college_code` varchar(20) DEFAULT NULL COMMENT '学院代码',
`college_name` varchar(100) DEFAULT NULL COMMENT '学院名称',
-- 教师信息
`counselor_id` bigint(20) DEFAULT NULL COMMENT '辅导员ID',
`counselor_name` varchar(50) DEFAULT NULL COMMENT '辅导员姓名',
`class_teacher_id` bigint(20) DEFAULT NULL COMMENT '班主任ID',
`class_teacher_name` varchar(50) DEFAULT NULL COMMENT '班主任姓名',
-- 班级状态
`class_status` char(1) DEFAULT '1' COMMENT '班级状态:1-正常,2-暂停,3-毕业,4-解散',
-- 人数统计
`current_student_count` int(11) DEFAULT 0 COMMENT '当前学生人数',
`max_student_count` int(11) DEFAULT 50 COMMENT '最大学生人数',
`male_count` int(11) DEFAULT 0 COMMENT '男生人数',
`female_count` int(11) DEFAULT 0 COMMENT '女生人数',
-- 班级描述
`class_description` varchar(500) DEFAULT NULL COMMENT '班级描述',
`class_notes` varchar(500) DEFAULT NULL COMMENT '班级备注',
-- 扩展字段
`ext_field1` varchar(200) DEFAULT NULL COMMENT '扩展字段1',
`ext_field2` varchar(200) DEFAULT NULL COMMENT '扩展字段2',
`ext_field3` varchar(200) DEFAULT NULL COMMENT '扩展字段3',
-- 备注字段
`remark` varchar(500) DEFAULT NULL COMMENT '备注信息',
-- 主键和索引
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_class_code_tenant` (`class_code`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_deleted` (`deleted`),
KEY `idx_college_code` (`college_code`),
KEY `idx_enrollment_year` (`enrollment_year`),
KEY `idx_grade` (`grade`),
KEY `idx_major_code` (`major_code`),
KEY `idx_counselor_id` (`counselor_id`),
KEY `idx_class_teacher_id` (`class_teacher_id`),
KEY `idx_class_status` (`class_status`),
KEY `idx_college_grade` (`college_code`, `grade`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班级信息表';
-- ----------------------------
-- 创建其他相关表(保持原有设计)
-- ----------------------------
-- 班级学生关联表
DROP TABLE IF EXISTS `xg_class_student`;
CREATE TABLE `xg_class_student` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(20) NOT NULL 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 '更新时间',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)',
`class_id` bigint(20) NOT NULL COMMENT '班级ID',
`student_id` bigint(20) NOT NULL COMMENT '学生ID',
`student_no` varchar(32) NOT NULL COMMENT '学号',
`class_position` varchar(20) DEFAULT NULL COMMENT '班级职务',
`join_time` datetime DEFAULT NULL COMMENT '加入时间',
`leave_time` datetime DEFAULT NULL COMMENT '离开时间',
`relation_status` char(1) DEFAULT '1' COMMENT '关系状态:1-正常,2-转出,3-转入,4-休学,5-退学',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_class_student` (`class_id`, `student_id`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_student_id` (`student_id`),
KEY `idx_relation_status` (`relation_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班级学生关联表';
-- 信息采集批次表
DROP TABLE IF EXISTS `xg_collection_batch`;
CREATE TABLE `xg_collection_batch` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint(20) DEFAULT NULL 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 '更新时间',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)',
`batch_code` varchar(32) NOT NULL COMMENT '批次编号',
`batch_name` varchar(100) NOT NULL COMMENT '批次名称',
`batch_type` varchar(20) DEFAULT 'regular' COMMENT '批次类型',
`batch_description` varchar(500) DEFAULT NULL COMMENT '批次描述',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`batch_status` char(1) DEFAULT '1' COMMENT '批次状态:1-准备中,2-进行中,3-已结束',
`target_count` int(11) DEFAULT 0 COMMENT '目标数量',
`current_count` int(11) DEFAULT 0 COMMENT '当前数量',
`completed_count` int(11) DEFAULT 0 COMMENT '完成数量',
`approved_count` int(11) DEFAULT 0 COMMENT '审核通过数量',
`rejected_count` int(11) DEFAULT 0 COMMENT '审核驳回数量',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_batch_code` (`batch_code`, `tenant_id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_batch_status` (`batch_status`),
KEY `idx_start_time` (`start_time`),
KEY `idx_end_time` (`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次表';
-- 审核记录表
DROP TABLE IF EXISTS `xg_audit_record`;
CREATE TABLE `xg_audit_record` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`tenant_id` varchar(20) NOT NULL DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint(20) DEFAULT NULL 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 '更新时间',
`deleted` tinyint(1) DEFAULT 0 COMMENT '删除标志(0代表存在 1代表删除)',
`business_type` varchar(20) NOT NULL COMMENT '业务类型',
`business_id` bigint(20) NOT NULL COMMENT '业务ID',
`batch_id` bigint(20) NOT NULL COMMENT '批次ID',
`audit_level` tinyint(1) NOT NULL COMMENT '审核级别',
`audit_order` int(11) DEFAULT 1 COMMENT '审核顺序',
`auditor_id` bigint(20) NOT NULL COMMENT '审核人ID',
`auditor_name` varchar(50) NOT NULL COMMENT '审核人姓名',
`audit_status` char(1) DEFAULT '1' COMMENT '审核状态:1-待审核,2-审核中,3-已通过,4-已驳回',
`audit_result` varchar(20) DEFAULT NULL COMMENT '审核结果',
`audit_opinion` varchar(500) DEFAULT NULL COMMENT '审核意见',
`final_result` varchar(20) DEFAULT NULL COMMENT '最终结果',
`submit_time` datetime DEFAULT NULL COMMENT '提交时间',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`submitter_id` bigint(20) DEFAULT NULL COMMENT '提交人ID',
`submitter_name` varchar(50) DEFAULT NULL COMMENT '提交人姓名',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_business` (`business_type`, `business_id`),
KEY `idx_batch_id` (`batch_id`),
KEY `idx_auditor_id` (`auditor_id`),
KEY `idx_audit_status` (`audit_status`),
KEY `idx_submit_time` (`submit_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核记录表';
-- ----------------------------
-- 插入示例数据(用于测试)
-- ----------------------------
-- 插入学院示例数据
INSERT INTO `xg_student_info` (
`id`, `tenant_id`, `student_no`, `name`, `gender`, `birth_date`, `id_card`, `phone`, `email`,
`major_code`, `major_name`, `class_code`, `class_name`,
`college_code`, `college_name`, `enrollment_year`, `student_status`, `info_status`,
`is_from_poor_family`, `is_minority`, `is_disabled`, `is_orphan`,
`create_by`, `create_time`, `update_by`, `update_time`
) VALUES
(1, '000000', '2023001001', '张三', 'M', '2000-01-01', '110101200001010001', '13800138001', 'zhangsan@example.com',
'CS001', '计算机科学与技术', 'CS2023001', '计算机2023-1班',
'CS', '计算机学院', 2023, '1', '1',
0, 0, 0, 0,
1, NOW(), 1, NOW()),
(2, '000000', '2023001002', '李四', 'F', '2000-02-02', '110101200002020002', '13800138002', 'lisi@example.com',
'CS001', '计算机科学与技术', 'CS2023001', '计算机2023-1班',
'CS', '计算机学院', 2023, '1', '1',
1, 0, 0, 0,
1, NOW(), 1, NOW()),
(3, '000000', '2023002001', '王五', 'M', '2000-03-03', '110101200003030003', '13800138003', 'wangwu@example.com',
'EE001', '电子信息工程', 'EE2023001', '电子2023-1班',
'EE', '电子信息学院', 2023, '1', '1',
0, 1, 0, 0,
1, NOW(), 1, NOW());
-- 插入班级示例数据
INSERT INTO `xg_class_info` (
`id`, `tenant_id`, `class_code`, `class_name`, `class_type`, `grade`, `enrollment_year`, `graduation_year`,
`major_code`, `major_name`, `college_code`, `college_name`,
`class_status`, `current_student_count`, `max_student_count`, `male_count`, `female_count`,
`create_by`, `create_time`, `update_by`, `update_time`
) VALUES
(1, '000000', 'CS2023001', '计算机2023-1班', '本科', '2023', 2023, 2027,
'CS001', '计算机科学与技术', 'CS', '计算机学院',
'1', 2, 50, 1, 1,
1, NOW(), 1, NOW()),
(2, '000000', 'EE2023001', '电子2023-1班', '本科', '2023', 2023, 2027,
'EE001', '电子信息工程', 'EE', '电子信息学院',
'1', 1, 50, 1, 0,
1, NOW(), 1, NOW());
-- ----------------------------
-- 验证表结构和数据
-- ----------------------------
-- 验证 xg_student_info 表结构
SELECT '=== xg_student_info 表结构验证 ===' as 'Result';
DESC xg_student_info;
-- 验证关键字段是否存在
SELECT '=== 关键字段验证 ===' as 'Result';
SELECT
CASE WHEN COUNT(*) > 0 THEN '✅ college_code 字段存在' ELSE '❌ college_code 字段缺失' END as 'college_code_check'
FROM information_schema.COLUMNS
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'college_code';
SELECT
CASE WHEN COUNT(*) > 0 THEN '✅ is_from_poor_family 字段存在' ELSE '❌ is_from_poor_family 字段缺失' END as 'poor_family_check'
FROM information_schema.COLUMNS
WHERE table_schema = DATABASE() AND table_name = 'xg_student_info' AND column_name = 'is_from_poor_family';
-- 测试统计查询(原来报错的SQL)
SELECT '=== 统计查询测试 ===' as 'Result';
SELECT
college_code,
college_name,
count(*) as total_count,
sum(case when gender = 'M' then 1 else 0 end) as male_count,
sum(case when gender = 'F' then 1 else 0 end) as female_count,
sum(case when student_status = '1' then 1 else 0 end) as active_count,
sum(case when student_status = '2' then 1 else 0 end) as suspended_count,
sum(case when student_status = '5' then 1 else 0 end) as graduated_count,
sum(case when is_from_poor_family = 1 then 1 else 0 end) as poor_family_count,
sum(case when is_minority = 1 then 1 else 0 end) as minority_count,
sum(case when is_disabled = 1 then 1 else 0 end) as disabled_count,
sum(case when is_orphan = 1 then 1 else 0 end) as orphan_count
FROM xg_student_info
WHERE deleted = 0 AND tenant_id = '000000'
GROUP BY college_code, college_name
ORDER BY college_code;
-- 恢复外键检查
SET FOREIGN_KEY_CHECKS = 1;
-- ----------------------------
-- 脚本执行完成提示
-- ----------------------------
SELECT '==============================' as 'Result';
SELECT '✅ 学生信息管理表结构修复完成!' as 'Result';
SELECT '✅ 所有缺失字段已补充' as 'Result';
SELECT '✅ 统计查询功能已修复' as 'Result';
SELECT '✅ 示例数据已插入' as 'Result';
SELECT '请重启后端服务并刷新前端页面' as 'Result';
SELECT '==============================' as 'Result';