442 lines
21 KiB
SQL
442 lines
21 KiB
SQL
-- ==========================================
|
||
-- 学生信息管理模块表结构完整修复脚本
|
||
-- 版本: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 '性别:0-男,1-女',
|
||
`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'; |