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

262 lines
14 KiB
SQL

-- 权限数据迁移脚本
-- 说明:为批次管理功能创建必要的权限配置和角色权限
-- 执行时间:2025-01-13
-- ===========================================
-- 1. 创建批次管理相关权限
-- ===========================================
-- 信息采集批次管理权限
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES
(2001, '信息采集批次', 2000, 1, 'collection-batch', 'xg-xx/collectionBatch/index', '', 1, 0, 'C', '0', '0', 'xg:collectionBatch:list', 'batch', 1, NOW(), 1, NOW(), '信息采集批次管理菜单'),
(2002, '批次查询', 2001, 1, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:query', '#', 1, NOW(), 1, NOW(), ''),
(2003, '批次新增', 2001, 2, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:add', '#', 1, NOW(), 1, NOW(), ''),
(2004, '批次修改', 2001, 3, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:edit', '#', 1, NOW(), 1, NOW(), ''),
(2005, '批次删除', 2001, 4, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:remove', '#', 1, NOW(), 1, NOW(), ''),
(2006, '批次导出', 2001, 5, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:export', '#', 1, NOW(), 1, NOW(), ''),
(2007, '批次发布', 2001, 6, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:publish', '#', 1, NOW(), 1, NOW(), ''),
(2008, '批次统计', 2001, 7, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:statistics', '#', 1, NOW(), 1, NOW(), ''),
(2009, '批次复制', 2001, 8, '', '', '', 1, 0, 'F', '0', '0', 'xg:collectionBatch:copy', '#', 1, NOW(), 1, NOW(), '');
-- 学生信息管理权限(增强)
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES
(2010, '学生信息管理', 2000, 2, 'student-info', 'xg-xx/studentInfo/index', '', 1, 0, 'C', '0', '0', 'xg:studentInfo:list', 'student', 1, NOW(), 1, NOW(), '学生信息管理菜单'),
(2011, '学生信息查询', 2010, 1, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:query', '#', 1, NOW(), 1, NOW(), ''),
(2012, '学生信息新增', 2010, 2, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:add', '#', 1, NOW(), 1, NOW(), ''),
(2013, '学生信息修改', 2010, 3, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:edit', '#', 1, NOW(), 1, NOW(), ''),
(2014, '学生信息删除', 2010, 4, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:remove', '#', 1, NOW(), 1, NOW(), ''),
(2015, '学生信息导出', 2010, 5, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:export', '#', 1, NOW(), 1, NOW(), ''),
(2016, '学生信息导入', 2010, 6, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:import', '#', 1, NOW(), 1, NOW(), ''),
(2017, '学生信息审核', 2010, 7, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:approve', '#', 1, NOW(), 1, NOW(), ''),
(2018, '学生信息提交', 2010, 8, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:submit', '#', 1, NOW(), 1, NOW(), ''),
(2019, '学生信息撤回', 2010, 9, '', '', '', 1, 0, 'F', '0', '0', 'xg:studentInfo:withdraw', '#', 1, NOW(), 1, NOW(), '');
-- 批次权限管理
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES
(2020, '批次权限管理', 2000, 3, 'batch-permission', 'xg-xx/batchPermission/index', '', 1, 0, 'C', '0', '0', 'xg:batchPermission:list', 'permission', 1, NOW(), 1, NOW(), '批次权限管理菜单'),
(2021, '权限查询', 2020, 1, '', '', '', 1, 0, 'F', '0', '0', 'xg:batchPermission:query', '#', 1, NOW(), 1, NOW(), ''),
(2022, '权限配置', 2020, 2, '', '', '', 1, 0, 'F', '0', '0', 'xg:batchPermission:config', '#', 1, NOW(), 1, NOW(), ''),
(2023, '权限修改', 2020, 3, '', '', '', 1, 0, 'F', '0', '0', 'xg:batchPermission:edit', '#', 1, NOW(), 1, NOW(), ''),
(2024, '权限删除', 2020, 4, '', '', '', 1, 0, 'F', '0', '0', 'xg:batchPermission:remove', '#', 1, NOW(), 1, NOW(), '');
-- ===========================================
-- 2. 创建角色权限配置
-- ===========================================
-- 为学生处管理员角色分配所有权限
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, menu_id FROM sys_menu WHERE menu_id BETWEEN 2001 AND 2024
ON DUPLICATE KEY UPDATE role_id = VALUES(role_id);
-- 为二级学院管理员角色分配部分权限
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 2, menu_id FROM sys_menu WHERE menu_id IN (2001, 2002, 2007, 2008, 2010, 2011, 2017, 2018, 2019, 2020, 2021)
ON DUPLICATE KEY UPDATE role_id = VALUES(role_id);
-- 为辅导员角色分配基础权限
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 3, menu_id FROM sys_menu WHERE menu_id IN (2010, 2011, 2017, 2018, 2019)
ON DUPLICATE KEY UPDATE role_id = VALUES(role_id);
-- 为班主任角色分配基础权限
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 4, menu_id FROM sys_menu WHERE menu_id IN (2010, 2011, 2017, 2018, 2019)
ON DUPLICATE KEY UPDATE role_id = VALUES(role_id);
-- ===========================================
-- 3. 创建默认批次权限配置
-- ===========================================
-- 为默认批次创建权限配置
INSERT INTO xg_batch_permission (
permission_id,
batch_id,
role_id,
role_name,
permission_type,
can_view,
can_edit,
can_submit,
can_approve,
can_reject,
can_withdraw,
start_time,
end_time,
is_active,
create_by,
create_time,
update_by,
update_time,
tenant_id,
deleted
) VALUES
-- 学生处管理员权限
(1, 1, 1, '学生处管理员', 'ADMIN', 1, 1, 1, 1, 1, 1, '2024-09-01 00:00:00', '2025-08-31 23:59:59', 1, 1, NOW(), 1, NOW(), '000000', 0),
-- 二级学院管理员权限
(2, 1, 2, '二级学院管理员', 'COLLEGE_ADMIN', 1, 1, 1, 1, 1, 1, '2024-09-01 00:00:00', '2025-08-31 23:59:59', 1, 1, NOW(), 1, NOW(), '000000', 0),
-- 辅导员权限
(3, 1, 3, '辅导员', 'COUNSELOR', 1, 1, 1, 1, 1, 0, '2024-09-01 00:00:00', '2025-08-31 23:59:59', 1, 1, NOW(), 1, NOW(), '000000', 0),
-- 班主任权限
(4, 1, 4, '班主任', 'CLASS_TEACHER', 1, 1, 1, 1, 1, 0, '2024-09-01 00:00:00', '2025-08-31 23:59:59', 1, 1, NOW(), 1, NOW(), '000000', 0),
-- 学生权限
(5, 1, 5, '学生', 'STUDENT', 1, 1, 1, 0, 0, 0, '2024-09-01 00:00:00', '2025-08-31 23:59:59', 1, 1, NOW(), 1, NOW(), '000000', 0);
-- ===========================================
-- 4. 创建字典数据
-- ===========================================
-- 批次类型字典
INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES
(101, '信息采集批次类型', 'xg_batch_type', '0', 1, NOW(), 1, NOW(), '信息采集批次类型列表');
INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES
(1001, 1, '年度批次', 'ANNUAL', 'xg_batch_type', '', 'primary', 'Y', '0', 1, NOW(), 1, NOW(), '年度信息采集批次'),
(1002, 2, '学期批次', 'SEMESTER', 'xg_batch_type', '', 'info', 'N', '0', 1, NOW(), 1, NOW(), '学期信息采集批次'),
(1003, 3, '临时批次', 'TEMPORARY', 'xg_batch_type', '', 'warning', 'N', '0', 1, NOW(), 1, NOW(), '临时信息采集批次'),
(1004, 4, '补录批次', 'SUPPLEMENT', 'xg_batch_type', '', 'success', 'N', '0', 1, NOW(), 1, NOW(), '补录信息采集批次');
-- 批次状态字典
INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES
(102, '信息采集批次状态', 'xg_batch_status', '0', 1, NOW(), 1, NOW(), '信息采集批次状态列表');
INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES
(1005, 1, '草稿', 'DRAFT', 'xg_batch_status', '', 'info', 'Y', '0', 1, NOW(), 1, NOW(), '批次草稿状态'),
(1006, 2, '活跃', 'ACTIVE', 'xg_batch_status', '', 'success', 'N', '0', 1, NOW(), 1, NOW(), '批次活跃状态'),
(1007, 3, '暂停', 'PAUSED', 'xg_batch_status', '', 'warning', 'N', '0', 1, NOW(), 1, NOW(), '批次暂停状态'),
(1008, 4, '已结束', 'COMPLETED', 'xg_batch_status', '', 'danger', 'N', '0', 1, NOW(), 1, NOW(), '批次已结束状态'),
(1009, 5, '已取消', 'CANCELLED', 'xg_batch_status', '', 'default', 'N', '0', 1, NOW(), 1, NOW(), '批次已取消状态');
-- 提交状态字典
INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES
(103, '学生信息提交状态', 'xg_submission_status', '0', 1, NOW(), 1, NOW(), '学生信息提交状态列表');
INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES
(1010, 1, '草稿', 'DRAFT', 'xg_submission_status', '', 'info', 'Y', '0', 1, NOW(), 1, NOW(), '信息草稿状态'),
(1011, 2, '已提交', 'SUBMITTED', 'xg_submission_status', '', 'primary', 'N', '0', 1, NOW(), 1, NOW(), '信息已提交状态'),
(1012, 3, '已审核', 'APPROVED', 'xg_submission_status', '', 'success', 'N', '0', 1, NOW(), 1, NOW(), '信息已审核状态'),
(1013, 4, '已拒绝', 'REJECTED', 'xg_submission_status', '', 'danger', 'N', '0', 1, NOW(), 1, NOW(), '信息已拒绝状态'),
(1014, 5, '已撤回', 'WITHDRAWN', 'xg_submission_status', '', 'warning', 'N', '0', 1, NOW(), 1, NOW(), '信息已撤回状态');
-- 权限类型字典
INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES
(104, '批次权限类型', 'xg_permission_type', '0', 1, NOW(), 1, NOW(), '批次权限类型列表');
INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES
(1015, 1, '系统管理员', 'ADMIN', 'xg_permission_type', '', 'danger', 'N', '0', 1, NOW(), 1, NOW(), '系统管理员权限'),
(1016, 2, '学院管理员', 'COLLEGE_ADMIN', 'xg_permission_type', '', 'warning', 'N', '0', 1, NOW(), 1, NOW(), '学院管理员权限'),
(1017, 3, '辅导员', 'COUNSELOR', 'xg_permission_type', '', 'primary', 'N', '0', 1, NOW(), 1, NOW(), '辅导员权限'),
(1018, 4, '班主任', 'CLASS_TEACHER', 'xg_permission_type', '', 'info', 'N', '0', 1, NOW(), 1, NOW(), '班主任权限'),
(1019, 5, '学生', 'STUDENT', 'xg_permission_type', '', 'success', 'Y', '0', 1, NOW(), 1, NOW(), '学生权限');
-- ===========================================
-- 5. 创建业务期间配置
-- ===========================================
-- 创建默认业务期间
INSERT INTO xg_business_period (
period_id,
batch_id,
period_name,
period_type,
start_time,
end_time,
target_roles,
is_active,
description,
create_by,
create_time,
update_by,
update_time,
tenant_id,
deleted
) VALUES
-- 学生填报期间
(1, 1, '学生信息填报期间', 'STUDENT_FILL', '2024-09-01 00:00:00', '2024-09-30 23:59:59', 'STUDENT', 1, '学生可以填报和修改个人信息的时间段', 1, NOW(), 1, NOW(), '000000', 0),
-- 辅导员审核期间
(2, 1, '辅导员审核期间', 'COUNSELOR_REVIEW', '2024-10-01 00:00:00', '2024-10-15 23:59:59', 'COUNSELOR', 1, '辅导员审核学生信息的时间段', 1, NOW(), 1, NOW(), '000000', 0),
-- 学院管理员审核期间
(3, 1, '学院管理员审核期间', 'COLLEGE_REVIEW', '2024-10-16 00:00:00', '2024-10-31 23:59:59', 'COLLEGE_ADMIN', 1, '学院管理员最终审核的时间段', 1, NOW(), 1, NOW(), '000000', 0);
-- ===========================================
-- 6. 权限迁移验证
-- ===========================================
-- 验证权限配置
SELECT '📋 权限配置验证' as 'Permission Verification';
-- 检查菜单权限
SELECT
'菜单权限' as '配置项',
COUNT(*) as '总数量',
COUNT(CASE WHEN status = '0' THEN 1 END) as '启用数量'
FROM sys_menu
WHERE menu_id BETWEEN 2001 AND 2024;
-- 检查角色权限
SELECT
'角色权限' as '配置项',
COUNT(*) as '总数量',
COUNT(DISTINCT role_id) as '角色数量'
FROM sys_role_menu
WHERE menu_id BETWEEN 2001 AND 2024;
-- 检查批次权限
SELECT
'批次权限' as '配置项',
COUNT(*) as '总数量',
COUNT(CASE WHEN is_active = 1 THEN 1 END) as '活跃数量'
FROM xg_batch_permission
WHERE deleted = 0;
-- 检查字典数据
SELECT
'字典数据' as '配置项',
COUNT(*) as '总数量',
COUNT(CASE WHEN status = '0' THEN 1 END) as '启用数量'
FROM sys_dict_data
WHERE dict_code BETWEEN 1001 AND 1019;
-- 检查业务期间
SELECT
'业务期间' as '配置项',
COUNT(*) as '总数量',
COUNT(CASE WHEN is_active = 1 THEN 1 END) as '活跃数量'
FROM xg_business_period
WHERE deleted = 0;
-- ===========================================
-- 7. 记录权限迁移日志
-- ===========================================
-- 记录权限迁移完成日志
INSERT INTO xg_batch_operation_log (
log_id,
batch_id,
operation_type,
operation_description,
operator_id,
operator_name,
operation_time,
operation_result,
operation_details,
create_by,
create_time,
tenant_id,
deleted
) VALUES (
3,
1,
'PERMISSION_MIGRATION',
'权限数据迁移完成',
1,
'System',
NOW(),
'SUCCESS',
'权限配置迁移成功完成,包括菜单权限、角色权限、批次权限、字典数据和业务期间配置',
1,
NOW(),
'000000',
0
);
SELECT '✅ 权限数据迁移完成!' as 'Permission Migration Status';