Files
hzdyjs/docs/需求文档/奖惩补贴需求/奖学金管理基础数据-兼得关系增强-安全版.sql
T
2025-08-07 18:40:25 +08:00

107 lines
5.8 KiB
SQL

-- =====================================================
-- 奖学金管理模块 - 兼得关系增强数据安全升级脚本
-- 版本: v1.1-安全版
-- 创建时间: 2025-01-27
-- 说明: 避免MySQL子查询限制的安全版本
-- =====================================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- =====================================================
-- 1. 新增关系类型字典 (如果不存在)
-- =====================================================
-- 1.1 新增关系类型字典主类型
INSERT IGNORE INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `create_by`, `create_time`, `remark`) VALUES
(2000000000000000015, '兼得关系细分类型', 'jcbt_relation_type', 1, NOW(), '奖学金兼得关系的具体类型');
-- 1.2 新增关系类型字典数据
INSERT IGNORE INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `create_by`, `create_time`, `remark`) VALUES
(2000000000000015001, 1, '兼容', 'COMPATIBLE', 'jcbt_relation_type', '', 'success', 'N', 1, NOW(), '可以同时获得'),
(2000000000000015002, 2, '互斥', 'EXCLUSIVE', 'jcbt_relation_type', '', 'danger', 'N', 1, NOW(), '不能同时获得'),
(2000000000000015003, 3, '优先级', 'PRIORITY', 'jcbt_relation_type', '', 'warning', 'N', 1, NOW(), '有优先级关系');
-- =====================================================
-- 2. 更新现有奖学金类型的兼得类型为CUSTOM
-- =====================================================
-- 更新现有已设置兼得关系的奖学金类型
UPDATE `jcbt_scholarship_type`
SET `compatibility_type` = 'CUSTOM',
`update_time` = NOW(),
`update_by` = 1
WHERE `id` IN (1, 2, 3, 4, 5, 6, 7)
AND `deleted` = 0
AND `compatibility_type` != 'CUSTOM';
-- =====================================================
-- 3. 新增权限配置 (如果不存在)
-- =====================================================
-- 3.1 奖学金类型管理权限细化
INSERT IGNORE 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`, `remark`) VALUES
(9000000000000001101, '奖学金类型查询', 9000000000000001001, 1, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipType:query', '#', 1, NOW(), ''),
(9000000000000001102, '奖学金类型新增', 9000000000000001001, 2, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipType:add', '#', 1, NOW(), ''),
(9000000000000001103, '奖学金类型修改', 9000000000000001001, 3, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipType:edit', '#', 1, NOW(), ''),
(9000000000000001104, '奖学金类型删除', 9000000000000001001, 4, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipType:remove', '#', 1, NOW(), ''),
(9000000000000001105, '奖学金类型导出', 9000000000000001001, 5, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipType:export', '#', 1, NOW(), ''),
(9000000000000001106, '兼得关系配置', 9000000000000001001, 6, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipType:compatibility', '#', 1, NOW(), '兼得关系配置权限');
-- =====================================================
-- 4. 示例数据:带自定义兼得关系的新奖学金类型 (如果不存在)
-- =====================================================
-- 4.1 新增一个示例专项奖学金 (如果不存在)
INSERT IGNORE INTO `jcbt_scholarship_type` (`id`, `type_code`, `type_name`, `type_category`, `level_type`, `award_amount`, `description`, `application_guide`, `compatibility_type`, `status`, `sort_order`, `is_system`, `tenant_id`, `create_by`, `create_time`) VALUES
(8, 'ZX_EXCELLENT', '卓越学子奖学金', 'SPECIAL', 'SPECIAL', 8000.00, '表彰在学业、创新、社会工作等方面全面发展的优秀学生', '需同时满足学业、创新、社会工作等多项要求', 'CUSTOM', 1, 1, 0, 1, 1, NOW());
-- 4.2 配置卓越学子奖学金的兼得关系(与所有其他奖学金互斥)
INSERT IGNORE INTO `jcbt_scholarship_compatibility` (`id`, `type_id_1`, `type_id_2`, `relation_type`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(15, 8, 1, 'EXCLUSIVE', 0, '卓越学子奖学金与一等学业奖学金互斥', 1, 1, NOW()),
(16, 8, 2, 'EXCLUSIVE', 0, '卓越学子奖学金与二等学业奖学金互斥', 1, 1, NOW()),
(17, 8, 3, 'EXCLUSIVE', 0, '卓越学子奖学金与三等学业奖学金互斥', 1, 1, NOW()),
(18, 8, 4, 'EXCLUSIVE', 0, '卓越学子奖学金与创新特等奖学金互斥', 1, 1, NOW()),
(19, 8, 5, 'EXCLUSIVE', 0, '卓越学子奖学金与创新一等奖学金互斥', 1, 1, NOW()),
(20, 8, 6, 'EXCLUSIVE', 0, '卓越学子奖学金与社会工作一等奖学金互斥', 1, 1, NOW()),
(21, 8, 7, 'EXCLUSIVE', 0, '卓越学子奖学金与社会工作二等奖学金互斥', 1, 1, NOW());
-- =====================================================
-- 5. 验证升级结果
-- =====================================================
-- 5.1 显示升级后的状态
SELECT '=== 升级完成!当前状态统计 ===' AS status;
SELECT
'兼得关系类型字典' AS item,
COUNT(*) AS count
FROM sys_dict_data
WHERE dict_type = 'jcbt_compatibility_type';
SELECT
'关系细分类型字典' AS item,
COUNT(*) AS count
FROM sys_dict_data
WHERE dict_type = 'jcbt_relation_type';
SELECT
'兼得关系记录' AS item,
COUNT(*) AS count
FROM jcbt_scholarship_compatibility
WHERE deleted = 0;
SELECT
'CUSTOM类型奖学金' AS item,
COUNT(*) AS count
FROM jcbt_scholarship_type
WHERE compatibility_type = 'CUSTOM' AND deleted = 0;
-- =====================================================
-- 结束
-- =====================================================
SET FOREIGN_KEY_CHECKS = 1;
SELECT '奖学金兼得关系增强功能升级完成!' AS result;