138 lines
6.6 KiB
SQL
138 lines
6.6 KiB
SQL
-- =====================================================
|
|
-- 奖学金管理模块 - 兼得关系增强数据增量升级脚本
|
|
-- 版本: v1.1-增量版
|
|
-- 创建时间: 2025-01-27
|
|
-- 说明: 只执行还未完成的增量更新部分
|
|
-- =====================================================
|
|
|
|
-- 设置字符集
|
|
SET NAMES utf8mb4;
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
-- =====================================================
|
|
-- 1. 检查并新增关系类型字典 (如果不存在)
|
|
-- =====================================================
|
|
|
|
-- 1.1 查找可用的dict_id
|
|
SET @next_dict_id = (SELECT MAX(dict_id) + 1 FROM sys_dict_type WHERE dict_id < 3000000000000000000);
|
|
|
|
-- 1.2 新增关系类型字典 (如果不存在)
|
|
INSERT IGNORE INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `create_by`, `create_time`, `remark`)
|
|
SELECT @next_dict_id, '兼得关系细分类型', 'jcbt_relation_type', 1, NOW(), '奖学金兼得关系的具体类型'
|
|
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_type` WHERE `dict_type` = 'jcbt_relation_type');
|
|
|
|
-- 1.3 新增关系类型字典数据 (如果不存在)
|
|
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
|
|
((SELECT MAX(dict_code) + 1 FROM sys_dict_data WHERE dict_code < 3000000000000000000), 1, '兼容', 'COMPATIBLE', 'jcbt_relation_type', '', 'success', 'N', 1, NOW(), '可以同时获得'),
|
|
((SELECT MAX(dict_code) + 2 FROM sys_dict_data WHERE dict_code < 3000000000000000000), 2, '互斥', 'EXCLUSIVE', 'jcbt_relation_type', '', 'danger', 'N', 1, NOW(), '不能同时获得'),
|
|
((SELECT MAX(dict_code) + 3 FROM sys_dict_data WHERE dict_code < 3000000000000000000), 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 配置卓越学子奖学金的兼得关系(与所有其他奖学金互斥)- 使用动态ID
|
|
SET @scholarship_8_exists = (SELECT COUNT(*) FROM jcbt_scholarship_type WHERE id = 8);
|
|
SET @max_compatibility_id = (SELECT COALESCE(MAX(id), 0) FROM jcbt_scholarship_compatibility);
|
|
|
|
INSERT INTO `jcbt_scholarship_compatibility` (`id`, `type_id_1`, `type_id_2`, `relation_type`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`)
|
|
SELECT
|
|
@max_compatibility_id + ROW_NUMBER() OVER (ORDER BY temp.type_id_2),
|
|
8,
|
|
temp.type_id_2,
|
|
'EXCLUSIVE',
|
|
0,
|
|
CONCAT('卓越学子奖学金与', temp.type_name, '互斥'),
|
|
1,
|
|
1,
|
|
NOW()
|
|
FROM (
|
|
SELECT 1 as type_id_2, '一等学业奖学金' as type_name
|
|
UNION ALL SELECT 2, '二等学业奖学金'
|
|
UNION ALL SELECT 3, '三等学业奖学金'
|
|
UNION ALL SELECT 4, '创新特等奖学金'
|
|
UNION ALL SELECT 5, '创新一等奖学金'
|
|
UNION ALL SELECT 6, '社会工作一等奖学金'
|
|
UNION ALL SELECT 7, '社会工作二等奖学金'
|
|
) temp
|
|
WHERE @scholarship_8_exists > 0
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM jcbt_scholarship_compatibility
|
|
WHERE type_id_1 = 8 AND type_id_2 = temp.type_id_2 AND deleted = 0
|
|
);
|
|
|
|
-- =====================================================
|
|
-- 5. 验证升级结果
|
|
-- =====================================================
|
|
|
|
-- 5.1 显示升级后的状态
|
|
SELECT '=== 升级完成!当前状态统计 ===' AS status;
|
|
|
|
SELECT
|
|
'兼得关系类型字典' AS item,
|
|
COUNT(*) AS count
|
|
FROM sys_dict_data
|
|
WHERE dict_type = 'jcbt_compatibility_type'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'关系细分类型字典' AS item,
|
|
COUNT(*) AS count
|
|
FROM sys_dict_data
|
|
WHERE dict_type = 'jcbt_relation_type'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'兼得关系记录' AS item,
|
|
COUNT(*) AS count
|
|
FROM jcbt_scholarship_compatibility
|
|
WHERE deleted = 0
|
|
|
|
UNION ALL
|
|
|
|
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; |