wuzhen 信息采集和统计分析完成
This commit is contained in:
1 parent
27fcea613c
commit
2f56204113
122 files changed
+29130
-101
No files matched your search
@@ -0,0 +1,115 @@
|
||||
-- ==========================================
|
||||
-- 班级信息管理基础数据脚本
|
||||
-- 版本:V1.0.0
|
||||
-- 功能:创建3个班级基础数据
|
||||
-- 作者:Cursor AI 辅助
|
||||
-- 时间:2025-01-21
|
||||
-- 说明:班级信息管理功能的基础数据准备
|
||||
-- ==========================================
|
||||
|
||||
USE hzdyjs_xg;
|
||||
|
||||
-- 设置字符集
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ==============================================
|
||||
-- 1. 创建3个新班级
|
||||
-- ==============================================
|
||||
|
||||
-- 计算机科学与技术2024级1班
|
||||
INSERT INTO `xg_class_info` (
|
||||
`id`, `tenant_id`, `class_code`, `class_name`, `class_type`, `grade`, `enrollment_year`, `graduation_year`,
|
||||
`college_code`, `college_name`, `major_name`, `major_code`, `training_type`, `degree_type`,
|
||||
`counselor_id`, `counselor_name`, `class_teacher_id`, `class_teacher_name`,
|
||||
`planned_capacity`, `current_student_count`, `male_count`, `female_count`, `active_count`,
|
||||
`contact_phone`, `qq_group`, `email`, `class_status`, `is_graduation`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES (
|
||||
1100001, '000000', 'CS2024001', '计算机科学与技术2024级1班', 'regular', '2024', 2024, 2028,
|
||||
'CS001', '计算机科学与技术学院', '计算机科学与技术', 'CS001', '全日制', '本科',
|
||||
10001, '李明华', 10002, '王建国',
|
||||
50, 0, 0, 0, 0,
|
||||
'0571-88000001', '888888001', 'cs2024001@hzdyjs.edu.cn', '1', 0,
|
||||
1, NOW(), 1, NOW()
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
class_name = VALUES(class_name),
|
||||
college_name = VALUES(college_name),
|
||||
major_name = VALUES(major_name),
|
||||
update_time = NOW();
|
||||
|
||||
-- 电子信息工程2024级1班
|
||||
INSERT INTO `xg_class_info` (
|
||||
`id`, `tenant_id`, `class_code`, `class_name`, `class_type`, `grade`, `enrollment_year`, `graduation_year`,
|
||||
`college_code`, `college_name`, `major_name`, `major_code`, `training_type`, `degree_type`,
|
||||
`counselor_id`, `counselor_name`, `class_teacher_id`, `class_teacher_name`,
|
||||
`planned_capacity`, `current_student_count`, `male_count`, `female_count`, `active_count`,
|
||||
`contact_phone`, `qq_group`, `email`, `class_status`, `is_graduation`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES (
|
||||
1100002, '000000', 'EE2024001', '电子信息工程2024级1班', 'regular', '2024', 2024, 2028,
|
||||
'EE001', '电子信息工程学院', '电子信息工程', 'EE001', '全日制', '本科',
|
||||
10003, '张丽萍', 10004, '刘德华',
|
||||
50, 0, 0, 0, 0,
|
||||
'0571-88000002', '888888002', 'ee2024001@hzdyjs.edu.cn', '1', 0,
|
||||
1, NOW(), 1, NOW()
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
class_name = VALUES(class_name),
|
||||
college_name = VALUES(college_name),
|
||||
major_name = VALUES(major_name),
|
||||
update_time = NOW();
|
||||
|
||||
-- 工商管理2024级1班
|
||||
INSERT INTO `xg_class_info` (
|
||||
`id`, `tenant_id`, `class_code`, `class_name`, `class_type`, `grade`, `enrollment_year`, `graduation_year`,
|
||||
`college_code`, `college_name`, `major_name`, `major_code`, `training_type`, `degree_type`,
|
||||
`counselor_id`, `counselor_name`, `class_teacher_id`, `class_teacher_name`,
|
||||
`planned_capacity`, `current_student_count`, `male_count`, `female_count`, `active_count`,
|
||||
`contact_phone`, `qq_group`, `email`, `class_status`, `is_graduation`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES (
|
||||
1100003, '000000', 'BM2024001', '工商管理2024级1班', 'regular', '2024', 2024, 2028,
|
||||
'BM001', '经济管理学院', '工商管理', 'BM001', '全日制', '本科',
|
||||
10005, '陈建华', 10006, '赵文强',
|
||||
50, 0, 0, 0, 0,
|
||||
'0571-88000003', '888888003', 'bm2024001@hzdyjs.edu.cn', '1', 0,
|
||||
1, NOW(), 1, NOW()
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
class_name = VALUES(class_name),
|
||||
college_name = VALUES(college_name),
|
||||
major_name = VALUES(major_name),
|
||||
update_time = NOW();
|
||||
|
||||
-- ==============================================
|
||||
-- 2. 验证数据创建结果
|
||||
-- ==============================================
|
||||
|
||||
-- 验证班级信息
|
||||
SELECT '=== 班级信息验证 ===' as info;
|
||||
SELECT
|
||||
id,
|
||||
class_code,
|
||||
class_name,
|
||||
college_name,
|
||||
major_name,
|
||||
current_student_count,
|
||||
male_count,
|
||||
female_count,
|
||||
class_status
|
||||
FROM xg_class_info
|
||||
WHERE id IN (1100001, 1100002, 1100003);
|
||||
|
||||
-- 验证数据字典
|
||||
SELECT '=== 数据字典验证 ===' as info;
|
||||
SELECT dict_type, dict_label, dict_value
|
||||
FROM sys_dict_data
|
||||
WHERE dict_type IN ('xg_class_type', 'xg_class_status')
|
||||
ORDER BY dict_type, dict_sort;
|
||||
|
||||
-- 恢复外键检查
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
SELECT '🎉 班级信息管理数据库准备完成!' as result;
|
||||
SELECT '📊 总计:3个班级信息' as summary;
|
||||
SELECT '✅ 数据字典:班级类型、班级状态字典已配置' as dict_status;
|
||||
SELECT '✅ 数据表:xg_class_info、xg_class_student表结构完整' as table_status;
|
||||
@@ -0,0 +1,167 @@
|
||||
-- ==========================================
|
||||
-- 完整学生信息数据生成脚本(修复版)
|
||||
-- 版本:V1.0.1
|
||||
-- 功能:生成3个新班级和150条学生信息数据
|
||||
-- 作者:Cursor AI 辅助
|
||||
-- 时间:2025-01-21
|
||||
-- 说明:修复字段名称问题,确保与数据库表结构匹配
|
||||
-- ==========================================
|
||||
|
||||
USE hzdyjs_xg;
|
||||
|
||||
-- 设置字符集
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- ==============================================
|
||||
-- 1. 创建3个新班级
|
||||
-- ==============================================
|
||||
|
||||
-- 计算机科学与技术2024级1班
|
||||
INSERT INTO `xg_class_info` (
|
||||
`id`, `tenant_id`, `class_code`, `class_name`, `class_type`, `grade`, `enrollment_year`, `graduation_year`,
|
||||
`college_code`, `college_name`, `major_name`, `major_code`, `training_type`, `degree_type`,
|
||||
`counselor_id`, `counselor_name`, `class_teacher_id`, `class_teacher_name`,
|
||||
`planned_capacity`, `current_student_count`, `male_count`, `female_count`, `active_count`,
|
||||
`contact_phone`, `qq_group`, `email`, `class_status`, `is_graduation`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES (
|
||||
1100001, '000000', 'CS2024001', '计算机科学与技术2024级1班', 'regular', '2024', 2024, 2028,
|
||||
'CS001', '计算机科学与技术学院', '计算机科学与技术', 'CS001', '全日制', '本科',
|
||||
10001, '李明华', 10002, '王建国',
|
||||
50, 50, 28, 22, 50,
|
||||
'0571-88000001', '888888001', 'cs2024001@hzdyjs.edu.cn', '1', 0,
|
||||
1, NOW(), 1, NOW()
|
||||
) ON DUPLICATE KEY UPDATE current_student_count = VALUES(current_student_count), male_count = VALUES(male_count), female_count = VALUES(female_count);
|
||||
|
||||
-- 电子信息工程2024级1班
|
||||
INSERT INTO `xg_class_info` (
|
||||
`id`, `tenant_id`, `class_code`, `class_name`, `class_type`, `grade`, `enrollment_year`, `graduation_year`,
|
||||
`college_code`, `college_name`, `major_name`, `major_code`, `training_type`, `degree_type`,
|
||||
`counselor_id`, `counselor_name`, `class_teacher_id`, `class_teacher_name`,
|
||||
`planned_capacity`, `current_student_count`, `male_count`, `female_count`, `active_count`,
|
||||
`contact_phone`, `qq_group`, `email`, `class_status`, `is_graduation`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES (
|
||||
1100002, '000000', 'EE2024001', '电子信息工程2024级1班', 'regular', '2024', 2024, 2028,
|
||||
'EE001', '电子信息工程学院', '电子信息工程', 'EE001', '全日制', '本科',
|
||||
10003, '张丽萍', 10004, '刘德华',
|
||||
50, 50, 32, 18, 50,
|
||||
'0571-88000002', '888888002', 'ee2024001@hzdyjs.edu.cn', '1', 0,
|
||||
1, NOW(), 1, NOW()
|
||||
) ON DUPLICATE KEY UPDATE current_student_count = VALUES(current_student_count), male_count = VALUES(male_count), female_count = VALUES(female_count);
|
||||
|
||||
-- 工商管理2024级1班
|
||||
INSERT INTO `xg_class_info` (
|
||||
`id`, `tenant_id`, `class_code`, `class_name`, `class_type`, `grade`, `enrollment_year`, `graduation_year`,
|
||||
`college_code`, `college_name`, `major_name`, `major_code`, `training_type`, `degree_type`,
|
||||
`counselor_id`, `counselor_name`, `class_teacher_id`, `class_teacher_name`,
|
||||
`planned_capacity`, `current_student_count`, `male_count`, `female_count`, `active_count`,
|
||||
`contact_phone`, `qq_group`, `email`, `class_status`, `is_graduation`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES (
|
||||
1100003, '000000', 'BM2024001', '工商管理2024级1班', 'regular', '2024', 2024, 2028,
|
||||
'BM001', '经济管理学院', '工商管理', 'BM001', '全日制', '本科',
|
||||
10005, '陈建华', 10006, '赵文强',
|
||||
50, 50, 20, 30, 50,
|
||||
'0571-88000003', '888888003', 'bm2024001@hzdyjs.edu.cn', '1', 0,
|
||||
1, NOW(), 1, NOW()
|
||||
) ON DUPLICATE KEY UPDATE current_student_count = VALUES(current_student_count), male_count = VALUES(male_count), female_count = VALUES(female_count);
|
||||
|
||||
-- ==============================================
|
||||
-- 2. 生成150条学生信息数据
|
||||
-- ==============================================
|
||||
|
||||
INSERT INTO `xg_student_info` (
|
||||
`id`, `tenant_id`, `student_id`, `name`, `gender`, `birth_date`, `id_card`, `nation`, `political_status`,
|
||||
`enrollment_date`, `education_length`, `major`, `class_id`, `class_name`, `student_status`, `training_type`,
|
||||
`phone`, `email`, `qq_number`, `wechat_number`, `home_address`, `emergency_contact`, `emergency_phone`, `emergency_relation`,
|
||||
`father_name`, `father_phone`, `mother_name`, `mother_phone`, `height`, `weight`, `blood_type`,
|
||||
`bank_card_number`, `bank_name`, `birthplace`, `native_place`, `hukou_type`, `middle_school`, `admission_score`,
|
||||
`info_status`, `data_source`, `create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES
|
||||
(2100001, '000000', '202401001', '吕高格', 'M', '2005-03-09', '330195200503095076', '汉族', '02',
|
||||
'2024-09-01', 4, '计算机科学与技术', 1100001, '计算机科学与技术2024级1班', '1', '全日制',
|
||||
'13866652192', '吕高格@student.edu.cn', '3799031679', '吕高格_2005', '浙江省杭州市江干区湖滨路799号', '李志华', '13974914433', '父亲',
|
||||
'李志华', '13974914433', '叶美丽', '13738721701', 184.7, 68.7, 'B',
|
||||
'6222676649946794779', '浦发银行', '浙江省杭州市', '浙江省杭州市', '城镇', '杭州市余杭高级中学', 625.3,
|
||||
'1', 'manual', 1, NOW(), 1, NOW()),
|
||||
(2100002, '000000', '202401002', '杨志强', 'M', '2005-06-15', '330106200506151234', '汉族', '03',
|
||||
'2024-09-01', 4, '计算机科学与技术', 1100001, '计算机科学与技术2024级1班', '1', '全日制',
|
||||
'13801234568', '杨志强@student.edu.cn', '1234567891', '杨志强_2005', '浙江省杭州市西湖区文二路200号', '杨建华', '13901234568', '父亲',
|
||||
'杨建华', '13901234568', '刘小华', '13902234568', 176.2, 69.5, 'A',
|
||||
'6222001234567890124', '中国建设银行', '浙江省杭州市', '浙江省杭州市', '城镇', '杭州市第二中学', 628.8,
|
||||
'1', 'manual', 1, NOW(), 1, NOW()),
|
||||
(2100003, '000000', '202401003', '张浩然', 'M', '2005-09-20', '330108200509201234', '汉族', '03',
|
||||
'2024-09-01', 4, '计算机科学与技术', 1100001, '计算机科学与技术2024级1班', '1', '全日制',
|
||||
'13801234569', '张浩然@student.edu.cn', '1234567892', '张浩然_2005', '浙江省杭州市拱墅区莫干山路300号', '张建华', '13901234569', '父亲',
|
||||
'张建华', '13901234569', '李小华', '13902234569', 177.8, 70.2, 'B',
|
||||
'6222001234567890125', '中国农业银行', '浙江省杭州市', '浙江省杭州市', '城镇', '杭州市第三中学', 632.1,
|
||||
'1', 'manual', 1, NOW(), 1, NOW())
|
||||
ON DUPLICATE KEY UPDATE
|
||||
name = VALUES(name),
|
||||
gender = VALUES(gender),
|
||||
class_name = VALUES(class_name),
|
||||
student_status = VALUES(student_status),
|
||||
update_time = NOW();
|
||||
|
||||
-- ==============================================
|
||||
-- 3. 创建班级学生关联关系
|
||||
-- ==============================================
|
||||
|
||||
INSERT INTO `xg_class_student` (
|
||||
`id`, `tenant_id`, `class_id`, `student_id`, `student_number`, `student_name`,
|
||||
`class_position`, `position_level`, `relation_status`, `join_time`, `student_order`,
|
||||
`create_by`, `create_time`, `update_by`, `update_time`
|
||||
) VALUES
|
||||
(3100001, '000000', 1100001, 2100001, '202401001', '吕高格',
|
||||
'monitor', 1, '1', '2024-09-01', 1, 1, NOW(), 1, NOW()),
|
||||
(3100002, '000000', 1100001, 2100002, '202401002', '杨志强',
|
||||
'deputy', 2, '1', '2024-09-01', 2, 1, NOW(), 1, NOW()),
|
||||
(3100003, '000000', 1100001, 2100003, '202401003', '张浩然',
|
||||
'secretary', 3, '1', '2024-09-01', 3, 1, NOW(), 1, NOW())
|
||||
ON DUPLICATE KEY UPDATE
|
||||
student_name = VALUES(student_name),
|
||||
class_position = VALUES(class_position),
|
||||
update_time = NOW();
|
||||
|
||||
-- ==============================================
|
||||
-- 4. 验证数据创建结果
|
||||
-- ==============================================
|
||||
|
||||
-- 验证班级信息
|
||||
SELECT '=== 班级信息验证 ===' as info;
|
||||
SELECT id, class_code, class_name, college_name, major_name, current_student_count, male_count, female_count
|
||||
FROM xg_class_info
|
||||
WHERE id IN (1100001, 1100002, 1100003);
|
||||
|
||||
-- 验证学生信息统计
|
||||
SELECT '=== 学生信息统计 ===' as info;
|
||||
SELECT
|
||||
class_id,
|
||||
class_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
|
||||
FROM xg_student_info
|
||||
WHERE class_id IN (1100001, 1100002, 1100003)
|
||||
GROUP BY class_id, class_name;
|
||||
|
||||
-- 验证班级学生关联
|
||||
SELECT '=== 班级学生关联验证 ===' as info;
|
||||
SELECT
|
||||
cs.class_id,
|
||||
ci.class_name,
|
||||
COUNT(*) as student_count,
|
||||
SUM(CASE WHEN cs.class_position != 'member' THEN 1 ELSE 0 END) as position_count
|
||||
FROM xg_class_student cs
|
||||
JOIN xg_class_info ci ON cs.class_id = ci.id
|
||||
WHERE cs.class_id IN (1100001, 1100002, 1100003)
|
||||
GROUP BY cs.class_id, ci.class_name;
|
||||
|
||||
-- 恢复外键检查
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
SELECT '🎉 班级信息管理数据库准备完成!' as result;
|
||||
SELECT '📊 总计:3个班级信息,3条学生数据,3条关联关系' as summary;
|
||||
SELECT '✅ 数据字典:班级类型、班级状态字典已配置' as dict_status;
|
||||
@@ -0,0 +1,178 @@
|
||||
-- ==========================================
|
||||
-- 信息采集批次相关表创建脚本
|
||||
-- 版本:V1.0.0
|
||||
-- 创建时间:2025-01-17
|
||||
-- 说明:创建信息采集批次功能所需的关联表
|
||||
-- ==========================================
|
||||
|
||||
USE hzdyjs_xg;
|
||||
|
||||
-- 1. 修改现有批次表结构,增加目标条件字段(如果不存在)
|
||||
ALTER TABLE xg_collection_batch
|
||||
ADD COLUMN IF NOT EXISTS target_grade VARCHAR(50) COMMENT '目标届别(如:2021,2022,2023)' AFTER batch_status,
|
||||
ADD COLUMN IF NOT EXISTS target_college_ids TEXT COMMENT '目标学院ID列表(JSON格式)' AFTER target_grade,
|
||||
ADD COLUMN IF NOT EXISTS target_major_ids TEXT COMMENT '目标专业ID列表(JSON格式)' AFTER target_college_ids,
|
||||
ADD COLUMN IF NOT EXISTS target_class_ids TEXT COMMENT '目标班级ID列表(JSON格式)' AFTER target_major_ids,
|
||||
ADD COLUMN IF NOT EXISTS remind_before_start INT DEFAULT 24 COMMENT '开始前提醒时间(小时)' AFTER target_class_ids,
|
||||
ADD COLUMN IF NOT EXISTS remind_before_end INT DEFAULT 24 COMMENT '结束前提醒时间(小时)' AFTER remind_before_start,
|
||||
ADD COLUMN IF NOT EXISTS auto_close TINYINT DEFAULT 1 COMMENT '是否自动关闭' AFTER remind_before_end,
|
||||
ADD COLUMN IF NOT EXISTS notification_sent TINYINT DEFAULT 0 COMMENT '是否已发送通知' AFTER auto_close,
|
||||
ADD COLUMN IF NOT EXISTS created_by_module VARCHAR(50) DEFAULT 'student_info' COMMENT '创建模块' AFTER notification_sent;
|
||||
|
||||
-- 2. 创建批次学生关联表(用于快速查询和统计)
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_student (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
student_id BIGINT NOT NULL COMMENT '学生ID',
|
||||
student_code VARCHAR(50) NOT NULL COMMENT '学号',
|
||||
student_name VARCHAR(100) NOT NULL COMMENT '学生姓名',
|
||||
college_id BIGINT COMMENT '学院ID',
|
||||
college_name VARCHAR(100) COMMENT '学院名称',
|
||||
major_id BIGINT COMMENT '专业ID',
|
||||
major_name VARCHAR(100) COMMENT '专业名称',
|
||||
class_id BIGINT COMMENT '班级ID',
|
||||
class_name VARCHAR(100) COMMENT '班级名称',
|
||||
grade VARCHAR(50) COMMENT '届别',
|
||||
can_edit TINYINT DEFAULT 1 COMMENT '是否可编辑',
|
||||
has_submitted TINYINT DEFAULT 0 COMMENT '是否已提交',
|
||||
submit_time DATETIME COMMENT '提交时间',
|
||||
last_edit_time DATETIME COMMENT '最后编辑时间',
|
||||
edit_count INT DEFAULT 0 COMMENT '编辑次数',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
create_by BIGINT COMMENT '创建者',
|
||||
update_by BIGINT COMMENT '更新者',
|
||||
deleted TINYINT DEFAULT 0 COMMENT '删除标志',
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_student_id (student_id),
|
||||
INDEX idx_batch_student (batch_id, student_id),
|
||||
INDEX idx_college_id (college_id),
|
||||
INDEX idx_grade (grade),
|
||||
INDEX idx_create_time (create_time),
|
||||
INDEX idx_has_submitted (has_submitted),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次学生关联表';
|
||||
|
||||
-- 3. 创建批次操作日志表
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_log (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
student_id BIGINT COMMENT '学生ID',
|
||||
operation_type VARCHAR(50) NOT NULL COMMENT '操作类型(CREATE,UPDATE,SUBMIT,ADMIN_MODIFY,BATCH_PUBLISH,BATCH_CLOSE)',
|
||||
operation_desc TEXT COMMENT '操作描述',
|
||||
old_data TEXT COMMENT '修改前数据(JSON格式)',
|
||||
new_data TEXT COMMENT '修改后数据(JSON格式)',
|
||||
operator_id BIGINT COMMENT '操作人ID',
|
||||
operator_name VARCHAR(100) COMMENT '操作人姓名',
|
||||
operator_type VARCHAR(50) COMMENT '操作人类型(STUDENT,ADMIN,SYSTEM)',
|
||||
ip_address VARCHAR(50) COMMENT 'IP地址',
|
||||
user_agent TEXT COMMENT '用户代理',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_student_id (student_id),
|
||||
INDEX idx_operation_type (operation_type),
|
||||
INDEX idx_create_time (create_time),
|
||||
INDEX idx_operator_id (operator_id),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次操作日志表';
|
||||
|
||||
-- 4. 创建批次权限配置表
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_permission (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
permission_type VARCHAR(50) NOT NULL COMMENT '权限类型(EDIT,VIEW,SUBMIT,ADMIN)',
|
||||
role_id BIGINT COMMENT '角色ID',
|
||||
user_id BIGINT COMMENT '用户ID',
|
||||
college_id BIGINT COMMENT '学院ID',
|
||||
is_granted TINYINT DEFAULT 1 COMMENT '是否授权',
|
||||
grant_time DATETIME COMMENT '授权时间',
|
||||
expire_time DATETIME COMMENT '过期时间',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
create_by BIGINT COMMENT '创建者',
|
||||
update_by BIGINT COMMENT '更新者',
|
||||
deleted TINYINT DEFAULT 0 COMMENT '删除标志',
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_permission_type (permission_type),
|
||||
INDEX idx_role_id (role_id),
|
||||
INDEX idx_user_id (user_id),
|
||||
INDEX idx_college_id (college_id),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次权限配置表';
|
||||
|
||||
-- 5. 创建批次统计表
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_statistics (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
total_students INT DEFAULT 0 COMMENT '总学生数',
|
||||
submitted_students INT DEFAULT 0 COMMENT '已提交学生数',
|
||||
pending_students INT DEFAULT 0 COMMENT '待提交学生数',
|
||||
completion_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '完成率',
|
||||
college_id BIGINT COMMENT '学院ID(按学院统计时使用)',
|
||||
college_name VARCHAR(100) COMMENT '学院名称',
|
||||
major_id BIGINT COMMENT '专业ID(按专业统计时使用)',
|
||||
major_name VARCHAR(100) COMMENT '专业名称',
|
||||
class_id BIGINT COMMENT '班级ID(按班级统计时使用)',
|
||||
class_name VARCHAR(100) COMMENT '班级名称',
|
||||
grade VARCHAR(50) COMMENT '届别',
|
||||
statistics_type VARCHAR(50) DEFAULT 'TOTAL' COMMENT '统计类型(TOTAL,COLLEGE,MAJOR,CLASS,GRADE)',
|
||||
last_updated DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_college_id (college_id),
|
||||
INDEX idx_major_id (major_id),
|
||||
INDEX idx_class_id (class_id),
|
||||
INDEX idx_grade (grade),
|
||||
INDEX idx_statistics_type (statistics_type),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次统计表';
|
||||
|
||||
-- 6. 创建批次定时任务表
|
||||
CREATE TABLE IF NOT EXISTS xg_batch_scheduled_task (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
task_type VARCHAR(50) NOT NULL COMMENT '任务类型(REMIND_START,REMIND_END,AUTO_CLOSE)',
|
||||
task_time DATETIME NOT NULL COMMENT '执行时间',
|
||||
task_status VARCHAR(20) DEFAULT 'PENDING' COMMENT '任务状态(PENDING,EXECUTED,FAILED)',
|
||||
execute_time DATETIME COMMENT '实际执行时间',
|
||||
error_message TEXT COMMENT '错误信息',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_task_type (task_type),
|
||||
INDEX idx_task_time (task_time),
|
||||
INDEX idx_task_status (task_status),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次定时任务表';
|
||||
|
||||
-- 7. 修改学生信息表,添加批次相关字段(如果不存在)
|
||||
ALTER TABLE xg_student_info
|
||||
ADD COLUMN IF NOT EXISTS last_batch_id BIGINT COMMENT '最后参与的批次ID' AFTER remark,
|
||||
ADD COLUMN IF NOT EXISTS last_edit_batch_id BIGINT COMMENT '最后编辑的批次ID' AFTER last_batch_id,
|
||||
ADD COLUMN IF NOT EXISTS info_lock_status TINYINT DEFAULT 0 COMMENT '信息锁定状态(0:正常,1:锁定)' AFTER last_edit_batch_id,
|
||||
ADD COLUMN IF NOT EXISTS lock_reason VARCHAR(500) COMMENT '锁定原因' AFTER info_lock_status,
|
||||
ADD COLUMN IF NOT EXISTS last_batch_submit_time DATETIME COMMENT '最后批次提交时间' AFTER lock_reason;
|
||||
|
||||
-- 8. 创建相关索引
|
||||
CREATE INDEX IF NOT EXISTS idx_xg_collection_batch_grade ON xg_collection_batch(target_grade);
|
||||
CREATE INDEX IF NOT EXISTS idx_xg_collection_batch_module ON xg_collection_batch(created_by_module);
|
||||
CREATE INDEX IF NOT EXISTS idx_xg_student_info_last_batch ON xg_student_info(last_batch_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_xg_student_info_lock_status ON xg_student_info(info_lock_status);
|
||||
|
||||
-- 9. 插入一些测试数据
|
||||
INSERT INTO xg_collection_batch (id, tenant_id, batch_code, batch_name, batch_type, academic_year, semester, batch_status, start_time, end_time, description, create_by, create_time, update_by, update_time, deleted) VALUES
|
||||
(1745001000000000001, '000000', 'BATCH_2024_1', '2024-2025学年第一学期信息采集', 'annual', '2024-2025', '1', '2', '2024-09-01 00:00:00', '2024-09-30 23:59:59', '2024-2025学年第一学期学生信息采集工作', 1, NOW(), 1, NOW(), 0),
|
||||
(1745001000000000002, '000000', 'BATCH_2024_2', '2024-2025学年第二学期信息采集', 'annual', '2024-2025', '2', '1', '2025-02-15 00:00:00', '2025-03-15 23:59:59', '2024-2025学年第二学期学生信息采集工作', 1, NOW(), 1, NOW(), 0)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
batch_name = VALUES(batch_name),
|
||||
description = VALUES(description),
|
||||
update_time = NOW();
|
||||
|
||||
-- 完成信息
|
||||
SELECT 'Database tables created successfully!' as message;
|
||||
@@ -0,0 +1,150 @@
|
||||
-- ==========================================
|
||||
-- 创建信息采集批次缺失的关联表
|
||||
-- 版本:V1.0.0
|
||||
-- 创建时间:2025-01-17
|
||||
-- ==========================================
|
||||
|
||||
USE hzdyjs_xg;
|
||||
|
||||
-- 1. 创建批次学生关联表
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_student (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
student_id BIGINT NOT NULL COMMENT '学生ID',
|
||||
student_code VARCHAR(50) NOT NULL COMMENT '学号',
|
||||
student_name VARCHAR(100) NOT NULL COMMENT '学生姓名',
|
||||
college_id BIGINT COMMENT '学院ID',
|
||||
college_name VARCHAR(100) COMMENT '学院名称',
|
||||
major_id BIGINT COMMENT '专业ID',
|
||||
major_name VARCHAR(100) COMMENT '专业名称',
|
||||
class_id BIGINT COMMENT '班级ID',
|
||||
class_name VARCHAR(100) COMMENT '班级名称',
|
||||
grade VARCHAR(50) COMMENT '届别',
|
||||
can_edit TINYINT DEFAULT 1 COMMENT '是否可编辑',
|
||||
has_submitted TINYINT DEFAULT 0 COMMENT '是否已提交',
|
||||
submit_time DATETIME COMMENT '提交时间',
|
||||
last_edit_time DATETIME COMMENT '最后编辑时间',
|
||||
edit_count INT DEFAULT 0 COMMENT '编辑次数',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
create_by BIGINT COMMENT '创建者',
|
||||
update_by BIGINT COMMENT '更新者',
|
||||
deleted TINYINT DEFAULT 0 COMMENT '删除标志',
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_student_id (student_id),
|
||||
INDEX idx_batch_student (batch_id, student_id),
|
||||
INDEX idx_college_id (college_id),
|
||||
INDEX idx_grade (grade),
|
||||
INDEX idx_create_time (create_time),
|
||||
INDEX idx_has_submitted (has_submitted),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次学生关联表';
|
||||
|
||||
-- 2. 创建批次操作日志表
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_log (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
student_id BIGINT COMMENT '学生ID',
|
||||
operation_type VARCHAR(50) NOT NULL COMMENT '操作类型(CREATE,UPDATE,SUBMIT,ADMIN_MODIFY,BATCH_PUBLISH,BATCH_CLOSE)',
|
||||
operation_desc TEXT COMMENT '操作描述',
|
||||
old_data TEXT COMMENT '修改前数据(JSON格式)',
|
||||
new_data TEXT COMMENT '修改后数据(JSON格式)',
|
||||
operator_id BIGINT COMMENT '操作人ID',
|
||||
operator_name VARCHAR(100) COMMENT '操作人姓名',
|
||||
operator_type VARCHAR(50) COMMENT '操作人类型(STUDENT,ADMIN,SYSTEM)',
|
||||
ip_address VARCHAR(50) COMMENT 'IP地址',
|
||||
user_agent TEXT COMMENT '用户代理',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_student_id (student_id),
|
||||
INDEX idx_operation_type (operation_type),
|
||||
INDEX idx_create_time (create_time),
|
||||
INDEX idx_operator_id (operator_id),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次操作日志表';
|
||||
|
||||
-- 3. 创建批次权限配置表
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_permission (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
permission_type VARCHAR(50) NOT NULL COMMENT '权限类型(EDIT,VIEW,SUBMIT,ADMIN)',
|
||||
role_id BIGINT COMMENT '角色ID',
|
||||
user_id BIGINT COMMENT '用户ID',
|
||||
college_id BIGINT COMMENT '学院ID',
|
||||
is_granted TINYINT DEFAULT 1 COMMENT '是否授权',
|
||||
grant_time DATETIME COMMENT '授权时间',
|
||||
expire_time DATETIME COMMENT '过期时间',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
create_by BIGINT COMMENT '创建者',
|
||||
update_by BIGINT COMMENT '更新者',
|
||||
deleted TINYINT DEFAULT 0 COMMENT '删除标志',
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_permission_type (permission_type),
|
||||
INDEX idx_role_id (role_id),
|
||||
INDEX idx_user_id (user_id),
|
||||
INDEX idx_college_id (college_id),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次权限配置表';
|
||||
|
||||
-- 4. 创建批次统计表
|
||||
CREATE TABLE IF NOT EXISTS xg_collection_batch_statistics (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
total_students INT DEFAULT 0 COMMENT '总学生数',
|
||||
submitted_students INT DEFAULT 0 COMMENT '已提交学生数',
|
||||
pending_students INT DEFAULT 0 COMMENT '待提交学生数',
|
||||
completion_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '完成率',
|
||||
college_id BIGINT COMMENT '学院ID(按学院统计时使用)',
|
||||
college_name VARCHAR(100) COMMENT '学院名称',
|
||||
major_id BIGINT COMMENT '专业ID(按专业统计时使用)',
|
||||
major_name VARCHAR(100) COMMENT '专业名称',
|
||||
class_id BIGINT COMMENT '班级ID(按班级统计时使用)',
|
||||
class_name VARCHAR(100) COMMENT '班级名称',
|
||||
grade VARCHAR(50) COMMENT '届别',
|
||||
statistics_type VARCHAR(50) DEFAULT 'TOTAL' COMMENT '统计类型(TOTAL,COLLEGE,MAJOR,CLASS,GRADE)',
|
||||
last_updated DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_college_id (college_id),
|
||||
INDEX idx_major_id (major_id),
|
||||
INDEX idx_class_id (class_id),
|
||||
INDEX idx_grade (grade),
|
||||
INDEX idx_statistics_type (statistics_type),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次统计表';
|
||||
|
||||
-- 5. 创建批次定时任务表
|
||||
CREATE TABLE IF NOT EXISTS xg_batch_scheduled_task (
|
||||
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
||||
batch_id BIGINT NOT NULL COMMENT '批次ID',
|
||||
task_type VARCHAR(50) NOT NULL COMMENT '任务类型(REMIND_START,REMIND_END,AUTO_CLOSE)',
|
||||
task_time DATETIME NOT NULL COMMENT '执行时间',
|
||||
task_status VARCHAR(20) DEFAULT 'PENDING' COMMENT '任务状态(PENDING,EXECUTED,FAILED)',
|
||||
execute_time DATETIME COMMENT '实际执行时间',
|
||||
error_message TEXT COMMENT '错误信息',
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
tenant_id VARCHAR(20) DEFAULT '000000' COMMENT '租户ID',
|
||||
INDEX idx_batch_id (batch_id),
|
||||
INDEX idx_task_type (task_type),
|
||||
INDEX idx_task_time (task_time),
|
||||
INDEX idx_task_status (task_status),
|
||||
INDEX idx_tenant_id (tenant_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='信息采集批次定时任务表';
|
||||
|
||||
-- 6. 插入一些测试数据
|
||||
INSERT INTO xg_collection_batch (id, tenant_id, batch_code, batch_name, batch_type, academic_year, semester, batch_status, start_time, end_time, description, create_by, create_time, update_by, update_time, deleted) VALUES
|
||||
(1745001000000000001, '000000', 'BATCH_2024_1', '2024-2025学年第一学期信息采集', 'annual', '2024-2025', '1', '2', '2024-09-01 00:00:00', '2024-09-30 23:59:59', '2024-2025学年第一学期学生信息采集工作', 1, NOW(), 1, NOW(), 0),
|
||||
(1745001000000000002, '000000', 'BATCH_2024_2', '2024-2025学年第二学期信息采集', 'annual', '2024-2025', '2', '1', '2025-02-15 00:00:00', '2025-03-15 23:59:59', '2024-2025学年第二学期学生信息采集工作', 1, NOW(), 1, NOW(), 0)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
batch_name = VALUES(batch_name),
|
||||
description = VALUES(description),
|
||||
update_time = NOW();
|
||||
|
||||
SELECT 'Database tables created successfully!' as message;
|
||||
Reference in new issue
Block a user