删除sql和md文件,减轻干扰

This commit is contained in:
zlwu committed 2025-08-18 09:45:35 +08:00
1 parent c9f3687c70
commit adfbb74699
266 files changed
+1155 -48917

No files matched your search

@@ -1,138 +0,0 @@
-- =====================================================
-- 奖学金管理模块 - 兼得关系增强数据增量升级脚本
-- 版本: 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;
@@ -1,107 +0,0 @@
-- =====================================================
-- 奖学金管理模块 - 兼得关系增强数据安全升级脚本
-- 版本: 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;
@@ -1,134 +0,0 @@
-- =====================================================
-- 奖学金管理模块 - 兼得关系增强数据升级脚本
-- 版本: v1.1
-- 创建时间: 2025-01-27
-- 说明: 增强兼得关系配置功能,新增自定义配置选项
-- =====================================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- =====================================================
-- 1. 新增兼得关系类型字典数据
-- =====================================================
-- 1.1 在现有兼得关系类型基础上新增CUSTOM选项
INSERT 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
(2000000000000005004, 4, '自定义配置', 'CUSTOM', 'jcbt_compatibility_type', '', 'primary', 'N', 1, NOW(), '可自定义具体的兼得关系');
-- 1.2 新增关系类型字典 (用于关系表)
INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `create_by`, `create_time`, `remark`) VALUES
(2000000000000000010, '兼得关系细分类型', 'jcbt_relation_type', 1, NOW(), '奖学金兼得关系的具体类型');
INSERT 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
(2000000000000010001, 1, '兼容', 'COMPATIBLE', 'jcbt_relation_type', '', 'success', 'N', 1, NOW(), '可以同时获得'),
(2000000000000010002, 2, '互斥', 'EXCLUSIVE', 'jcbt_relation_type', '', 'danger', 'N', 1, NOW(), '不能同时获得'),
(2000000000000010003, 3, '优先级', 'PRIORITY', 'jcbt_relation_type', '', 'warning', 'N', 1, NOW(), '有优先级关系');
-- =====================================================
-- 2. 创建兼得关系表 (如果不存在)
-- =====================================================
CREATE TABLE IF NOT EXISTS `jcbt_scholarship_compatibility` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`type_id_1` BIGINT(20) NOT NULL COMMENT '奖学金类型1',
`type_id_2` BIGINT(20) NOT NULL COMMENT '奖学金类型2',
`relation_type` VARCHAR(20) NOT NULL COMMENT '关系类型:COMPATIBLE-兼容,EXCLUSIVE-互斥,PRIORITY-优先级关系',
`priority_level` INT DEFAULT 0 COMMENT '优先级(relation_type为PRIORITY时有效)',
`description` VARCHAR(500) DEFAULT NULL COMMENT '关系描述',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_types_tenant` (`type_id_1`, `type_id_2`, `tenant_id`, `deleted`),
INDEX `idx_type1_relation` (`type_id_1`, `relation_type`),
INDEX `idx_type2_relation` (`type_id_2`, `relation_type`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='奖学金兼得关系表';
-- =====================================================
-- 3. 更新现有奖学金类型的兼得类型为CUSTOM
-- =====================================================
-- 3.1 更新现有已设置兼得关系的奖学金类型
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;
-- =====================================================
-- 4. 迁移现有兼得关系数据到关系表 (如果表中没有数据)
-- =====================================================
-- 4.1 检查关系表是否为空,如果为空则插入基础关系数据
INSERT INTO `jcbt_scholarship_compatibility` (`id`, `type_id_1`, `type_id_2`, `relation_type`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`)
SELECT * FROM (
SELECT 1 as id, 1 as type_id_1, 2 as type_id_2, 'EXCLUSIVE' as relation_type, 0 as priority_level, '一等与二等学业奖学金互斥' as description, 1 as tenant_id, 1 as create_by, NOW() as create_time
UNION ALL
SELECT 2, 1, 3, 'EXCLUSIVE', 0, '一等与三等学业奖学金互斥', 1, 1, NOW()
UNION ALL
SELECT 3, 2, 3, 'EXCLUSIVE', 0, '二等与三等学业奖学金互斥', 1, 1, NOW()
UNION ALL
SELECT 4, 1, 4, 'COMPATIBLE', 0, '学业奖学金与创新奖学金可兼得', 1, 1, NOW()
UNION ALL
SELECT 5, 1, 6, 'COMPATIBLE', 0, '学业奖学金与社会工作奖学金可兼得', 1, 1, NOW()
UNION ALL
SELECT 6, 4, 6, 'COMPATIBLE', 0, '创新奖学金与社会工作奖学金可兼得', 1, 1, NOW()
UNION ALL
SELECT 7, 4, 5, 'PRIORITY', 1, '创新特等奖学金优先于一等奖学金', 1, 1, NOW()
) AS temp_data
WHERE NOT EXISTS (SELECT 1 FROM `jcbt_scholarship_compatibility` WHERE `deleted` = 0);
-- =====================================================
-- 5. 新增权限配置
-- =====================================================
-- 5.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`, `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(), '兼得关系配置权限');
-- =====================================================
-- 6. 示例数据:带自定义兼得关系的新奖学金类型
-- =====================================================
-- 6.1 新增一个示例专项奖学金
INSERT 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());
-- 6.2 配置卓越学子奖学金的兼得关系(与所有其他奖学金互斥)
INSERT INTO `jcbt_scholarship_compatibility` (`id`, `type_id_1`, `type_id_2`, `relation_type`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(8, 8, 1, 'EXCLUSIVE', 0, '卓越学子奖学金与一等学业奖学金互斥', 1, 1, NOW()),
(9, 8, 2, 'EXCLUSIVE', 0, '卓越学子奖学金与二等学业奖学金互斥', 1, 1, NOW()),
(10, 8, 3, 'EXCLUSIVE', 0, '卓越学子奖学金与三等学业奖学金互斥', 1, 1, NOW()),
(11, 8, 4, 'EXCLUSIVE', 0, '卓越学子奖学金与创新特等奖学金互斥', 1, 1, NOW()),
(12, 8, 5, 'EXCLUSIVE', 0, '卓越学子奖学金与创新一等奖学金互斥', 1, 1, NOW()),
(13, 8, 6, 'EXCLUSIVE', 0, '卓越学子奖学金与社会工作一等奖学金互斥', 1, 1, NOW()),
(14, 8, 7, 'EXCLUSIVE', 0, '卓越学子奖学金与社会工作二等奖学金互斥', 1, 1, NOW());
-- =====================================================
-- 7. 操作日志记录
-- =====================================================
INSERT INTO `sys_oper_log` (`oper_id`, `title`, `business_type`, `method`, `request_method`, `operator_type`, `oper_name`, `dept_name`, `oper_url`, `oper_ip`, `oper_location`, `oper_param`, `json_result`, `status`, `error_msg`, `oper_time`, `cost_time`) VALUES
(9000000000000002001, '奖学金兼得关系增强', 1, '数据升级', 'POST', 1, 'admin', '系统部门', '/jcbt/compatibility/upgrade', '127.0.0.1', '内网IP', '升级兼得关系配置功能', '{"code":200,"msg":"升级成功"}', 0, NULL, NOW(), 0);
-- =====================================================
-- 结束
-- =====================================================
SET FOREIGN_KEY_CHECKS = 1;
-- 兼得关系增强数据升级完成
SELECT '奖学金兼得关系增强功能升级完成!新增CUSTOM自定义配置选项' AS result;
@@ -1,212 +0,0 @@
-- =====================================================
-- 奖学金管理模块 - 基础数据初始化脚本
-- 版本: v1.0
-- 创建时间: 2025-01-27
-- 说明: 包含字典数据、示例奖学金类型和基础规则配置
-- =====================================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- =====================================================
-- 1. 系统字典数据
-- =====================================================
-- 1.1 奖学金类别字典
INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `create_by`, `create_time`, `remark`) VALUES
(2000000000000000001, '奖学金类别', 'jcbt_scholarship_category', 1, NOW(), '奖学金类别分类'),
(2000000000000000002, '奖学金等级', 'jcbt_scholarship_level', 1, NOW(), '奖学金等级分类'),
(2000000000000000003, '申请状态', 'jcbt_application_status', 1, NOW(), '奖学金申请状态'),
(2000000000000000004, '批次状态', 'jcbt_batch_status', 1, NOW(), '评定批次状态'),
(2000000000000000005, '兼得关系类型', 'jcbt_compatibility_type', 1, NOW(), '奖学金兼得关系类型'),
(2000000000000000006, '规则类型', 'jcbt_rule_type', 1, NOW(), '评定规则类型'),
(2000000000000000007, '评定方法', 'jcbt_evaluation_method', 1, NOW(), '评定方法类型'),
(2000000000000000008, '审核结果', 'jcbt_review_result', 1, NOW(), '审核结果类型'),
(2000000000000000009, '附件类型', 'jcbt_attachment_type', 1, NOW(), '申请材料附件类型');
-- 1.2 奖学金类别数据
INSERT 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
(2000000000000001001, 1, '学业奖学金', 'ACADEMIC', 'jcbt_scholarship_category', '', 'primary', 'N', 1, NOW(), '基于学业成绩的奖学金'),
(2000000000000001002, 2, '创新奖学金', 'INNOVATION', 'jcbt_scholarship_category', '', 'success', 'N', 1, NOW(), '基于创新能力的奖学金'),
(2000000000000001003, 3, '社会工作奖学金', 'SOCIAL', 'jcbt_scholarship_category', '', 'info', 'N', 1, NOW(), '基于社会工作的奖学金'),
(2000000000000001004, 4, '专项奖学金', 'SPECIAL', 'jcbt_scholarship_category', '', 'warning', 'N', 1, NOW(), '特定条件的专项奖学金');
-- 1.3 奖学金等级数据
INSERT 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
(2000000000000002001, 1, '特等奖学金', 'SPECIAL', 'jcbt_scholarship_level', '', 'danger', 'N', 1, NOW(), '最高等级奖学金'),
(2000000000000002002, 2, '一等奖学金', 'FIRST', 'jcbt_scholarship_level', '', 'primary', 'N', 1, NOW(), '一等奖学金'),
(2000000000000002003, 3, '二等奖学金', 'SECOND', 'jcbt_scholarship_level', '', 'success', 'N', 1, NOW(), '二等奖学金'),
(2000000000000002004, 4, '三等奖学金', 'THIRD', 'jcbt_scholarship_level', '', 'info', 'N', 1, NOW(), '三等奖学金');
-- 1.4 申请状态数据
INSERT 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
(2000000000000003001, 1, '待审核', 'PENDING', 'jcbt_application_status', '', 'warning', 'N', 1, NOW(), '申请待审核状态'),
(2000000000000003002, 2, '已通过', 'APPROVED', 'jcbt_application_status', '', 'success', 'N', 1, NOW(), '申请已通过'),
(2000000000000003003, 3, '已拒绝', 'REJECTED', 'jcbt_application_status', '', 'danger', 'N', 1, NOW(), '申请已拒绝'),
(2000000000000003004, 4, '已撤回', 'WITHDRAWN', 'jcbt_application_status', '', 'info', 'N', 1, NOW(), '申请已撤回');
-- 1.5 批次状态数据
INSERT 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
(2000000000000004001, 1, '草稿', 'DRAFT', 'jcbt_batch_status', '', 'info', 'N', 1, NOW(), '批次草稿状态'),
(2000000000000004002, 2, '进行中', 'ACTIVE', 'jcbt_batch_status', '', 'primary', 'N', 1, NOW(), '批次进行中'),
(2000000000000004003, 3, '已完成', 'COMPLETED', 'jcbt_batch_status', '', 'success', 'N', 1, NOW(), '批次已完成'),
(2000000000000004004, 4, '已取消', 'CANCELLED', 'jcbt_batch_status', '', 'danger', 'N', 1, NOW(), '批次已取消');
-- 1.6 兼得关系类型数据
INSERT 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
(2000000000000005001, 1, '兼容', 'COMPATIBLE', 'jcbt_compatibility_type', '', 'success', 'N', 1, NOW(), '可以同时获得'),
(2000000000000005002, 2, '互斥', 'EXCLUSIVE', 'jcbt_compatibility_type', '', 'danger', 'N', 1, NOW(), '不能同时获得'),
(2000000000000005003, 3, '优先级', 'PRIORITY', 'jcbt_compatibility_type', '', 'warning', 'N', 1, NOW(), '有优先级关系');
-- 1.7 规则类型数据
INSERT 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
(2000000000000006001, 1, '自动评定', 'AUTO', 'jcbt_rule_type', '', 'primary', 'N', 1, NOW(), '系统自动评定'),
(2000000000000006002, 2, '手动申请', 'MANUAL', 'jcbt_rule_type', '', 'info', 'N', 1, NOW(), '学生手动申请'),
(2000000000000006003, 3, '混合模式', 'HYBRID', 'jcbt_rule_type', '', 'warning', 'N', 1, NOW(), '自动+手动混合');
-- 1.8 评定方法数据
INSERT 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
(2000000000000007001, 1, '积分制', 'SCORE', 'jcbt_evaluation_method', '', 'primary', 'N', 1, NOW(), '按积分高低评定'),
(2000000000000007002, 2, '排名制', 'RANKING', 'jcbt_evaluation_method', '', 'success', 'N', 1, NOW(), '按排名先后评定'),
(2000000000000007003, 3, '阈值制', 'THRESHOLD', 'jcbt_evaluation_method', '', 'info', 'N', 1, NOW(), '达到阈值即可');
-- 1.9 审核结果数据
INSERT 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
(2000000000000008001, 1, '通过', 'APPROVED', 'jcbt_review_result', '', 'success', 'N', 1, NOW(), '审核通过'),
(2000000000000008002, 2, '拒绝', 'REJECTED', 'jcbt_review_result', '', 'danger', 'N', 1, NOW(), '审核拒绝'),
(2000000000000008003, 3, '退回修改', 'RETURNED', 'jcbt_review_result', '', 'warning', 'N', 1, NOW(), '退回修改');
-- 1.10 附件类型数据
INSERT 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
(2000000000000009001, 1, '成绩单', 'TRANSCRIPT', 'jcbt_attachment_type', '', 'primary', 'N', 1, NOW(), '学业成绩单'),
(2000000000000009002, 2, '证书', 'CERTIFICATE', 'jcbt_attachment_type', '', 'success', 'N', 1, NOW(), '获奖证书'),
(2000000000000009003, 3, '证明材料', 'PROOF', 'jcbt_attachment_type', '', 'info', 'N', 1, NOW(), '相关证明材料'),
(2000000000000009004, 4, '其他', 'OTHER', 'jcbt_attachment_type', '', 'default', 'N', 1, NOW(), '其他材料');
-- =====================================================
-- 2. 基础奖学金类型数据
-- =====================================================
-- 2.1 学业奖学金类型
INSERT INTO `jcbt_scholarship_type` (`id`, `type_code`, `type_name`, `type_category`, `level_type`, `award_amount`, `description`, `application_guide`, `status`, `sort_order`, `is_system`, `tenant_id`, `create_by`, `create_time`) VALUES
(1, 'XY_FIRST', '一等学业奖学金', 'ACADEMIC', 'FIRST', 5000.00, '面向综合成绩排名前5%的优秀学生', '需提交成绩单、综合素质评价等材料', 1, 1, 1, 1, 1, NOW()),
(2, 'XY_SECOND', '二等学业奖学金', 'ACADEMIC', 'SECOND', 3000.00, '面向综合成绩排名前15%的优良学生', '需提交成绩单、综合素质评价等材料', 1, 2, 1, 1, 1, NOW()),
(3, 'XY_THIRD', '三等学业奖学金', 'ACADEMIC', 'THIRD', 1500.00, '面向综合成绩排名前30%的合格学生', '需提交成绩单、综合素质评价等材料', 1, 3, 1, 1, 1, NOW());
-- 2.2 创新奖学金类型
INSERT INTO `jcbt_scholarship_type` (`id`, `type_code`, `type_name`, `type_category`, `level_type`, `award_amount`, `description`, `application_guide`, `status`, `sort_order`, `is_system`, `tenant_id`, `create_by`, `create_time`) VALUES
(4, 'CX_SPECIAL', '创新创业特等奖学金', 'INNOVATION', 'SPECIAL', 10000.00, '在创新创业方面有突出表现的学生', '需提交创新创业项目材料、获奖证书等', 1, 1, 1, 1, 1, NOW()),
(5, 'CX_FIRST', '创新创业一等奖学金', 'INNOVATION', 'FIRST', 6000.00, '在创新创业方面表现优秀的学生', '需提交创新创业项目材料、获奖证书等', 1, 2, 1, 1, 1, NOW());
-- 2.3 社会工作奖学金类型
INSERT INTO `jcbt_scholarship_type` (`id`, `type_code`, `type_name`, `type_category`, `level_type`, `award_amount`, `description`, `application_guide`, `status`, `sort_order`, `is_system`, `tenant_id`, `create_by`, `create_time`) VALUES
(6, 'SH_FIRST', '社会工作一等奖学金', 'SOCIAL', 'FIRST', 4000.00, '在社会工作和志愿服务方面表现突出', '需提交社会工作证明、志愿服务记录等', 1, 1, 1, 1, 1, NOW()),
(7, 'SH_SECOND', '社会工作二等奖学金', 'SOCIAL', 'SECOND', 2500.00, '在社会工作和志愿服务方面表现良好', '需提交社会工作证明、志愿服务记录等', 1, 2, 1, 1, 1, NOW());
-- =====================================================
-- 3. 奖学金兼得关系配置
-- =====================================================
-- 3.1 学业奖学金内部互斥关系
INSERT INTO `jcbt_scholarship_compatibility` (`id`, `type_id_1`, `type_id_2`, `relation_type`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(1, 1, 2, 'EXCLUSIVE', 0, '一等与二等学业奖学金互斥', 1, 1, NOW()),
(2, 1, 3, 'EXCLUSIVE', 0, '一等与三等学业奖学金互斥', 1, 1, NOW()),
(3, 2, 3, 'EXCLUSIVE', 0, '二等与三等学业奖学金互斥', 1, 1, NOW());
-- 3.2 不同类别奖学金兼容关系
INSERT INTO `jcbt_scholarship_compatibility` (`id`, `type_id_1`, `type_id_2`, `relation_type`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(4, 1, 4, 'COMPATIBLE', 0, '学业奖学金与创新奖学金可兼得', 1, 1, NOW()),
(5, 1, 6, 'COMPATIBLE', 0, '学业奖学金与社会工作奖学金可兼得', 1, 1, NOW()),
(6, 4, 6, 'COMPATIBLE', 0, '创新奖学金与社会工作奖学金可兼得', 1, 1, NOW());
-- 3.3 创新奖学金内部优先级关系
INSERT INTO `jcbt_scholarship_compatibility` (`id`, `type_id_1`, `type_id_2`, `relation_type`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(7, 4, 5, 'PRIORITY', 1, '创新特等奖学金优先于一等奖学金', 1, 1, NOW());
-- =====================================================
-- 4. 基础评定规则配置
-- =====================================================
-- 4.1 一等学业奖学金评定规则
INSERT INTO `jcbt_scholarship_rule` (`id`, `rule_code`, `rule_name`, `scholarship_type_id`, `rule_type`, `evaluation_method`, `min_score`, `is_active`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(1, 'XY_FIRST_RULE', '一等学业奖学金评定规则', 1, 'AUTO', 'SCORE', 90.00, 1, 1, '自动评定一等学业奖学金的标准规则', 1, 1, NOW());
-- 4.2 一等学业奖学金规则条件
INSERT INTO `jcbt_scholarship_rule_condition` (`id`, `rule_id`, `condition_group`, `field_name`, `field_type`, `operator_type`, `condition_value`, `weight`, `is_required`, `error_message`, `sort_order`, `tenant_id`, `create_by`, `create_time`) VALUES
(1, 1, 'MAIN_GROUP', 'gpa', 'NUMBER', 'GTE', '3.7', 0.50, 1, 'GPA需≥3.7', 1, 1, 1, NOW()),
(2, 1, 'MAIN_GROUP', 'moral_score', 'NUMBER', 'GTE', '85', 0.30, 1, '德育分需≥85分', 2, 1, 1, NOW()),
(3, 1, 'MAIN_GROUP', 'credit_completed', 'NUMBER', 'GTE', '30', 0.10, 1, '已修学分需≥30', 3, 1, 1, NOW()),
(4, 1, 'MAIN_GROUP', 'disciplinary_action', 'BOOLEAN', 'EQ', 'false', 0.10, 1, '不能有违纪记录', 4, 1, 1, NOW());
-- 4.3 二等学业奖学金评定规则
INSERT INTO `jcbt_scholarship_rule` (`id`, `rule_code`, `rule_name`, `scholarship_type_id`, `rule_type`, `evaluation_method`, `min_score`, `is_active`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(2, 'XY_SECOND_RULE', '二等学业奖学金评定规则', 2, 'AUTO', 'SCORE', 80.00, 1, 2, '自动评定二等学业奖学金的标准规则', 1, 1, NOW());
-- 4.4 二等学业奖学金规则条件
INSERT INTO `jcbt_scholarship_rule_condition` (`id`, `rule_id`, `condition_group`, `field_name`, `field_type`, `operator_type`, `condition_value`, `weight`, `is_required`, `error_message`, `sort_order`, `tenant_id`, `create_by`, `create_time`) VALUES
(5, 2, 'MAIN_GROUP', 'gpa', 'NUMBER', 'GTE', '3.3', 0.50, 1, 'GPA需≥3.3', 1, 1, 1, NOW()),
(6, 2, 'MAIN_GROUP', 'moral_score', 'NUMBER', 'GTE', '80', 0.30, 1, '德育分需≥80分', 2, 1, 1, NOW()),
(7, 2, 'MAIN_GROUP', 'credit_completed', 'NUMBER', 'GTE', '30', 0.10, 1, '已修学分需≥30', 3, 1, 1, NOW()),
(8, 2, 'MAIN_GROUP', 'disciplinary_action', 'BOOLEAN', 'EQ', 'false', 0.10, 1, '不能有违纪记录', 4, 1, 1, NOW());
-- 4.5 创新奖学金评定规则
INSERT INTO `jcbt_scholarship_rule` (`id`, `rule_code`, `rule_name`, `scholarship_type_id`, `rule_type`, `evaluation_method`, `min_score`, `is_active`, `priority_level`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(3, 'CX_SPECIAL_RULE', '创新创业特等奖学金评定规则', 4, 'MANUAL', 'THRESHOLD', 85.00, 1, 1, '创新创业特等奖学金手动申请评定规则', 1, 1, NOW());
-- 4.6 创新特等奖学金规则条件
INSERT INTO `jcbt_scholarship_rule_condition` (`id`, `rule_id`, `condition_group`, `field_name`, `field_type`, `operator_type`, `condition_value`, `weight`, `is_required`, `error_message`, `sort_order`, `tenant_id`, `create_by`, `create_time`) VALUES
(9, 3, 'ACADEMIC_GROUP', 'gpa', 'NUMBER', 'GTE', '3.0', 0.30, 1, 'GPA需≥3.0', 1, 1, 1, NOW()),
(10, 3, 'INNOVATION_GROUP', 'innovation_projects', 'NUMBER', 'GTE', '1', 0.40, 1, '需有创新项目≥1项', 2, 1, 1, NOW()),
(11, 3, 'INNOVATION_GROUP', 'competition_awards', 'NUMBER', 'GTE', '1', 0.30, 1, '需有竞赛获奖≥1项', 3, 1, 1, NOW());
-- =====================================================
-- 5. 示例评定批次
-- =====================================================
-- 5.1 创建2024-2025学年第一学期批次
INSERT INTO `jcbt_scholarship_batch` (`id`, `batch_code`, `batch_name`, `academic_year`, `semester`, `batch_type`, `start_time`, `end_time`, `apply_start_time`, `apply_end_time`, `review_start_time`, `review_end_time`, `status`, `description`, `tenant_id`, `create_by`, `create_time`) VALUES
(1, 'BATCH_2024_1', '2024-2025学年第一学期奖学金评定', '2024-2025', 1, 'REGULAR', '2024-09-01 00:00:00', '2024-12-31 23:59:59', '2024-10-01 00:00:00', '2024-10-31 23:59:59', '2024-11-01 00:00:00', '2024-11-30 23:59:59', 'ACTIVE', '2024-2025学年第一学期常规奖学金评定批次', 1, 1, NOW());
-- =====================================================
-- 6. 菜单权限配置
-- =====================================================
-- 6.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`, `remark`) VALUES
(9000000000000001000, '奖学金管理', 2000, 6, 'jcbt', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'money', 1, NOW(), '奖学金管理主菜单');
-- 6.2 奖学金管理子菜单
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`, `remark`) VALUES
-- 奖项管理
(9000000000000001001, '奖项管理', 9000000000000001000, 1, 'type', 'jcbt/type/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:type:list', 'education', 1, NOW(), '奖学金类型管理'),
-- 规则配置
(9000000000000001002, '规则配置', 9000000000000001000, 2, 'rule', 'jcbt/rule/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:rule:list', 'tool', 1, NOW(), '评定规则配置'),
-- 批次管理
(9000000000000001003, '批次管理', 9000000000000001000, 3, 'batch', 'jcbt/batch/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:batch:list', 'date-range', 1, NOW(), '评定批次管理'),
-- 名额分配
(9000000000000001004, '名额分配', 9000000000000001000, 4, 'quota', 'jcbt/quota/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:quota:list', 'number', 1, NOW(), '名额分配管理'),
-- 申请管理
(9000000000000001005, '申请管理', 9000000000000001000, 5, 'application', 'jcbt/application/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:application:list', 'form', 1, NOW(), '申请记录管理'),
-- 审核管理
(9000000000000001006, '审核管理', 9000000000000001000, 6, 'review', 'jcbt/review/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:review:list', 'check', 1, NOW(), '审核记录管理'),
-- 获奖记录
(9000000000000001007, '获奖记录', 9000000000000001000, 7, 'award', 'jcbt/award/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:award:list', 'trophy', 1, NOW(), '获奖记录管理'),
-- 统计报表
(9000000000000001008, '统计报表', 9000000000000001000, 8, 'statistics', 'jcbt/statistics/index', NULL, 1, 0, 'C', '0', '0', 'jcbt:statistics:list', 'chart', 1, NOW(), '统计报表查看');
-- =====================================================
-- 7. 操作日志
-- =====================================================
INSERT INTO `sys_oper_log` (`oper_id`, `title`, `business_type`, `method`, `request_method`, `operator_type`, `oper_name`, `dept_name`, `oper_url`, `oper_ip`, `oper_location`, `oper_param`, `json_result`, `status`, `error_msg`, `oper_time`, `cost_time`) VALUES
(9000000000000002000, '奖学金管理模块', 0, '数据初始化', 'POST', 1, 'admin', '系统部门', '/jcbt/init', '127.0.0.1', '内网IP', '初始化奖学金管理基础数据', '{"code":200,"msg":"初始化成功"}', 0, NULL, NOW(), 0);
-- =====================================================
-- 结束
-- =====================================================
SET FOREIGN_KEY_CHECKS = 1;
-- 基础数据初始化完成
SELECT '奖学金管理模块基础数据初始化完成!' AS result;
@@ -1,366 +0,0 @@
-- =====================================================
-- 奖学金管理模块 - 数据库建表脚本
-- 版本: v1.0
-- 创建时间: 2025-01-27
-- 说明: 遵循项目统一的数据库规范,支持多租户和逻辑删除
-- =====================================================
-- 设置字符集
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- =====================================================
-- 1. 奖学金类型管理表
-- =====================================================
-- 1.1 奖学金类型表
DROP TABLE IF EXISTS `jcbt_scholarship_type`;
CREATE TABLE `jcbt_scholarship_type` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`type_code` VARCHAR(50) NOT NULL COMMENT '奖学金类型编码',
`type_name` VARCHAR(100) NOT NULL COMMENT '奖学金名称',
`type_category` VARCHAR(20) NOT NULL COMMENT '奖学金类别:ACADEMIC-学业奖学金,INNOVATION-创新奖学金,SOCIAL-社会工作奖学金,SPECIAL-专项奖学金',
`level_type` VARCHAR(20) DEFAULT NULL COMMENT '等级类型:FIRST-一等,SECOND-二等,THIRD-三等,SPECIAL-特等',
`award_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '奖励金额',
`description` TEXT DEFAULT NULL COMMENT '奖学金描述',
`application_guide` TEXT DEFAULT NULL COMMENT '申请指南',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
`sort_order` INT DEFAULT 0 COMMENT '排序号',
`is_system` TINYINT(1) DEFAULT 0 COMMENT '是否系统内置:0-否,1-是',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_type_code_tenant` (`type_code`, `tenant_id`, `deleted`),
INDEX `idx_category_status` (`type_category`, `status`),
INDEX `idx_tenant_status` (`tenant_id`, `status`, `deleted`),
INDEX `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='奖学金类型表';
-- 1.2 奖学金兼得关系表
DROP TABLE IF EXISTS `jcbt_scholarship_compatibility`;
CREATE TABLE `jcbt_scholarship_compatibility` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`type_id_1` BIGINT(20) NOT NULL COMMENT '奖学金类型1',
`type_id_2` BIGINT(20) NOT NULL COMMENT '奖学金类型2',
`relation_type` VARCHAR(20) NOT NULL COMMENT '关系类型:COMPATIBLE-兼容,EXCLUSIVE-互斥,PRIORITY-优先级关系',
`priority_level` INT DEFAULT 0 COMMENT '优先级(relation_type为PRIORITY时有效)',
`description` VARCHAR(500) DEFAULT NULL COMMENT '关系描述',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_types_tenant` (`type_id_1`, `type_id_2`, `tenant_id`, `deleted`),
INDEX `idx_type1_relation` (`type_id_1`, `relation_type`),
INDEX `idx_type2_relation` (`type_id_2`, `relation_type`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='奖学金兼得关系表';
-- =====================================================
-- 2. 灵活规则引擎表
-- =====================================================
-- 2.1 评定规则主表
DROP TABLE IF EXISTS `jcbt_scholarship_rule`;
CREATE TABLE `jcbt_scholarship_rule` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`rule_code` VARCHAR(50) NOT NULL COMMENT '规则编码',
`rule_name` VARCHAR(100) NOT NULL COMMENT '规则名称',
`scholarship_type_id` BIGINT(20) NOT NULL COMMENT '关联奖学金类型ID',
`rule_type` VARCHAR(20) NOT NULL COMMENT '规则类型:AUTO-自动评定,MANUAL-手动申请,HYBRID-混合模式',
`evaluation_method` VARCHAR(20) NOT NULL COMMENT '评定方法:SCORE-积分制,RANKING-排名制,THRESHOLD-阈值制',
`min_score` DECIMAL(8,2) DEFAULT NULL COMMENT '最低分数要求',
`is_active` TINYINT(1) DEFAULT 1 COMMENT '是否激活:0-否,1-是',
`priority_level` INT DEFAULT 0 COMMENT '规则优先级',
`description` TEXT DEFAULT NULL COMMENT '规则描述',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_rule_code_tenant` (`rule_code`, `tenant_id`, `deleted`),
INDEX `idx_scholarship_type` (`scholarship_type_id`),
INDEX `idx_rule_type_active` (`rule_type`, `is_active`),
INDEX `idx_tenant_active` (`tenant_id`, `is_active`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='奖学金评定规则主表';
-- 2.2 规则条件表
DROP TABLE IF EXISTS `jcbt_scholarship_rule_condition`;
CREATE TABLE `jcbt_scholarship_rule_condition` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`rule_id` BIGINT(20) NOT NULL COMMENT '规则ID',
`condition_group` VARCHAR(50) NOT NULL COMMENT '条件组标识(同组内为AND关系,不同组为OR关系)',
`field_name` VARCHAR(100) NOT NULL COMMENT '字段名称',
`field_type` VARCHAR(20) NOT NULL COMMENT '字段类型:NUMBER-数字,STRING-字符串,DATE-日期,BOOLEAN-布尔',
`operator_type` VARCHAR(20) NOT NULL COMMENT '操作符:EQ-等于,GT-大于,GTE-大于等于,LT-小于,LTE-小于等于,IN-包含,NOT_IN-不包含,LIKE-模糊匹配,BETWEEN-区间',
`condition_value` TEXT NOT NULL COMMENT '条件值(JSON格式存储复杂数据)',
`weight` DECIMAL(5,2) DEFAULT 1.00 COMMENT '权重',
`is_required` TINYINT(1) DEFAULT 1 COMMENT '是否必要条件:0-否,1-是',
`error_message` VARCHAR(200) DEFAULT NULL COMMENT '不满足条件时的提示信息',
`sort_order` INT DEFAULT 0 COMMENT '排序号',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
INDEX `idx_rule_group` (`rule_id`, `condition_group`),
INDEX `idx_field_operator` (`field_name`, `operator_type`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='规则条件表';
-- 2.3 规则动作表
DROP TABLE IF EXISTS `jcbt_scholarship_rule_action`;
CREATE TABLE `jcbt_scholarship_rule_action` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`rule_id` BIGINT(20) NOT NULL COMMENT '规则ID',
`action_type` VARCHAR(20) NOT NULL COMMENT '动作类型:CALCULATE-计算分数,NOTIFY-通知,LOG-记录日志,EXECUTE-执行方法',
`action_config` TEXT NOT NULL COMMENT '动作配置(JSON格式)',
`execution_order` INT DEFAULT 0 COMMENT '执行顺序',
`is_enabled` TINYINT(1) DEFAULT 1 COMMENT '是否启用:0-否,1-是',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
INDEX `idx_rule_order` (`rule_id`, `execution_order`),
INDEX `idx_action_type` (`action_type`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='规则动作表';
-- =====================================================
-- 3. 批次与名额管理表
-- =====================================================
-- 3.1 评定批次表
DROP TABLE IF EXISTS `jcbt_scholarship_batch`;
CREATE TABLE `jcbt_scholarship_batch` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`batch_code` VARCHAR(50) NOT NULL COMMENT '批次编码',
`batch_name` VARCHAR(100) NOT NULL COMMENT '批次名称',
`academic_year` VARCHAR(20) NOT NULL COMMENT '学年',
`semester` TINYINT(1) NOT NULL COMMENT '学期:1-第一学期,2-第二学期,3-全年',
`batch_type` VARCHAR(20) NOT NULL COMMENT '批次类型:REGULAR-常规批次,SPECIAL-专项批次,SUPPLEMENTARY-补充批次',
`start_time` DATETIME NOT NULL COMMENT '开始时间',
`end_time` DATETIME NOT NULL COMMENT '结束时间',
`apply_start_time` DATETIME DEFAULT NULL COMMENT '申请开始时间',
`apply_end_time` DATETIME DEFAULT NULL COMMENT '申请结束时间',
`review_start_time` DATETIME DEFAULT NULL COMMENT '审核开始时间',
`review_end_time` DATETIME DEFAULT NULL COMMENT '审核结束时间',
`status` VARCHAR(20) DEFAULT 'DRAFT' COMMENT '状态:DRAFT-草稿,ACTIVE-进行中,COMPLETED-已完成,CANCELLED-已取消',
`description` TEXT DEFAULT NULL COMMENT '批次描述',
`notice_content` TEXT DEFAULT NULL COMMENT '通知内容',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_batch_code_tenant` (`batch_code`, `tenant_id`, `deleted`),
INDEX `idx_academic_year` (`academic_year`, `semester`),
INDEX `idx_status_time` (`status`, `start_time`, `end_time`),
INDEX `idx_tenant_status` (`tenant_id`, `status`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评定批次表';
-- 3.2 名额分配表
DROP TABLE IF EXISTS `jcbt_scholarship_quota`;
CREATE TABLE `jcbt_scholarship_quota` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`batch_id` BIGINT(20) NOT NULL COMMENT '批次ID',
`scholarship_type_id` BIGINT(20) NOT NULL COMMENT '奖学金类型ID',
`allocation_level` VARCHAR(20) NOT NULL COMMENT '分配级别:UNIVERSITY-全校,COLLEGE-学院,MAJOR-专业,CLASS-班级',
`target_dept_id` BIGINT(20) DEFAULT NULL COMMENT '目标部门ID(学院/专业/班级)',
`total_quota` INT NOT NULL DEFAULT 0 COMMENT '总名额',
`used_quota` INT NOT NULL DEFAULT 0 COMMENT '已使用名额',
`reserved_quota` INT NOT NULL DEFAULT 0 COMMENT '预留名额',
`allocation_rule` TEXT DEFAULT NULL COMMENT '分配规则(JSON格式)',
`allocation_basis` VARCHAR(500) DEFAULT NULL COMMENT '分配依据说明',
`is_adjustable` TINYINT(1) DEFAULT 1 COMMENT '是否可调整:0-否,1-是',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_batch_type_dept` (`batch_id`, `scholarship_type_id`, `target_dept_id`, `deleted`),
INDEX `idx_batch_level` (`batch_id`, `allocation_level`),
INDEX `idx_dept_quota` (`target_dept_id`, `total_quota`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='名额分配表';
-- =====================================================
-- 4. 申请与审核管理表
-- =====================================================
-- 4.1 申请记录表
DROP TABLE IF EXISTS `jcbt_scholarship_application`;
CREATE TABLE `jcbt_scholarship_application` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`application_no` VARCHAR(50) NOT NULL COMMENT '申请编号',
`batch_id` BIGINT(20) NOT NULL COMMENT '批次ID',
`scholarship_type_id` BIGINT(20) NOT NULL COMMENT '奖学金类型ID',
`student_id` BIGINT(20) NOT NULL COMMENT '学生ID',
`student_no` VARCHAR(50) NOT NULL COMMENT '学号',
`student_name` VARCHAR(100) NOT NULL COMMENT '学生姓名',
`dept_id` BIGINT(20) NOT NULL COMMENT '所属部门ID',
`major_id` BIGINT(20) DEFAULT NULL COMMENT '专业ID',
`class_id` BIGINT(20) DEFAULT NULL COMMENT '班级ID',
`application_type` VARCHAR(20) NOT NULL COMMENT '申请类型:STUDENT-学生申请,AUTO-自动评定,DIRECT-直接指定',
`current_status` VARCHAR(20) DEFAULT 'PENDING' COMMENT '当前状态:PENDING-待审核,APPROVED-已通过,REJECTED-已拒绝,WITHDRAWN-已撤回',
`apply_reason` TEXT DEFAULT NULL COMMENT '申请理由',
`self_evaluation` TEXT DEFAULT NULL COMMENT '自我评价',
`calculated_score` DECIMAL(8,2) DEFAULT NULL COMMENT '系统计算分数',
`final_score` DECIMAL(8,2) DEFAULT NULL COMMENT '最终评定分数',
`ranking_in_dept` INT DEFAULT NULL COMMENT '在院系的排名',
`ranking_in_major` INT DEFAULT NULL COMMENT '在专业的排名',
`submit_time` DATETIME DEFAULT NULL COMMENT '提交时间',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_application_no` (`application_no`),
INDEX `idx_batch_type_student` (`batch_id`, `scholarship_type_id`, `student_id`),
INDEX `idx_student_status` (`student_id`, `current_status`),
INDEX `idx_dept_batch` (`dept_id`, `batch_id`),
INDEX `idx_status_score` (`current_status`, `final_score`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='奖学金申请记录表';
-- 4.2 申请材料表
DROP TABLE IF EXISTS `jcbt_scholarship_attachment`;
CREATE TABLE `jcbt_scholarship_attachment` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`application_id` BIGINT(20) NOT NULL COMMENT '申请ID',
`attachment_type` VARCHAR(20) NOT NULL COMMENT '附件类型:TRANSCRIPT-成绩单,CERTIFICATE-证书,PROOF-证明材料,OTHER-其他',
`file_name` VARCHAR(200) NOT NULL COMMENT '文件名称',
`file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
`file_size` BIGINT DEFAULT NULL COMMENT '文件大小(字节)',
`file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型',
`upload_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
`is_required` TINYINT(1) DEFAULT 0 COMMENT '是否必需:0-否,1-是',
`description` VARCHAR(500) DEFAULT NULL COMMENT '附件描述',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
INDEX `idx_application_type` (`application_id`, `attachment_type`),
INDEX `idx_upload_time` (`upload_time`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='申请材料附件表';
-- 4.3 审核记录表
DROP TABLE IF EXISTS `jcbt_scholarship_review`;
CREATE TABLE `jcbt_scholarship_review` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`application_id` BIGINT(20) NOT NULL COMMENT '申请ID',
`review_level` VARCHAR(20) NOT NULL COMMENT '审核级别:DEPT-院系审核,UNIVERSITY-校级审核',
`reviewer_id` BIGINT(20) NOT NULL COMMENT '审核人ID',
`reviewer_name` VARCHAR(100) NOT NULL COMMENT '审核人姓名',
`review_result` VARCHAR(20) NOT NULL COMMENT '审核结果:APPROVED-通过,REJECTED-拒绝,RETURNED-退回修改',
`review_score` DECIMAL(8,2) DEFAULT NULL COMMENT '审核评分',
`review_opinion` TEXT DEFAULT NULL COMMENT '审核意见',
`review_time` DATETIME NOT NULL COMMENT '审核时间',
`next_reviewer_id` BIGINT(20) DEFAULT NULL COMMENT '下一审核人ID',
`is_final_review` TINYINT(1) DEFAULT 0 COMMENT '是否最终审核:0-否,1-是',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
INDEX `idx_application_level` (`application_id`, `review_level`),
INDEX `idx_reviewer_time` (`reviewer_id`, `review_time`),
INDEX `idx_result_time` (`review_result`, `review_time`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='审核记录表';
-- =====================================================
-- 5. 获奖记录与统计表
-- =====================================================
-- 5.1 获奖记录表
DROP TABLE IF EXISTS `jcbt_scholarship_award`;
CREATE TABLE `jcbt_scholarship_award` (
`id` BIGINT(20) NOT NULL COMMENT '主键ID',
`award_no` VARCHAR(50) NOT NULL COMMENT '获奖编号',
`application_id` BIGINT(20) NOT NULL COMMENT '申请ID',
`batch_id` BIGINT(20) NOT NULL COMMENT '批次ID',
`scholarship_type_id` BIGINT(20) NOT NULL COMMENT '奖学金类型ID',
`student_id` BIGINT(20) NOT NULL COMMENT '学生ID',
`student_no` VARCHAR(50) NOT NULL COMMENT '学号',
`student_name` VARCHAR(100) NOT NULL COMMENT '学生姓名',
`dept_id` BIGINT(20) NOT NULL COMMENT '所属部门ID',
`award_amount` DECIMAL(10,2) NOT NULL COMMENT '奖励金额',
`award_level` VARCHAR(20) DEFAULT NULL COMMENT '获奖等级',
`final_score` DECIMAL(8,2) DEFAULT NULL COMMENT '最终得分',
`ranking_in_dept` INT DEFAULT NULL COMMENT '院系排名',
`award_date` DATE NOT NULL COMMENT '获奖日期',
`certificate_no` VARCHAR(100) DEFAULT NULL COMMENT '证书编号',
`is_published` TINYINT(1) DEFAULT 0 COMMENT '是否公示:0-否,1-是',
`publish_date` DATE DEFAULT NULL COMMENT '公示日期',
`is_paid` TINYINT(1) DEFAULT 0 COMMENT '是否已发放:0-否,1-是',
`pay_date` DATE DEFAULT NULL COMMENT '发放日期',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`tenant_id` BIGINT(20) NOT NULL COMMENT '租户ID',
`create_by` BIGINT(20) DEFAULT NULL COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` BIGINT(20) DEFAULT NULL COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) DEFAULT 0 COMMENT '删除标记:0-正常,1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_award_no` (`award_no`),
INDEX `idx_batch_type` (`batch_id`, `scholarship_type_id`),
INDEX `idx_student_award` (`student_id`, `award_date`),
INDEX `idx_dept_batch` (`dept_id`, `batch_id`),
INDEX `idx_publish_pay` (`is_published`, `is_paid`),
INDEX `idx_tenant` (`tenant_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='奖学金获奖记录表';
-- =====================================================
-- 6. 性能优化索引
-- =====================================================
-- 申请查询优化索引
CREATE INDEX `idx_app_batch_status_score` ON `jcbt_scholarship_application`
(`batch_id`, `current_status`, `final_score` DESC);
-- 获奖记录查询优化索引
CREATE INDEX `idx_award_student_date` ON `jcbt_scholarship_award`
(`student_id`, `award_date` DESC);
-- 规则条件查询优化索引
CREATE INDEX `idx_rule_condition_field` ON `jcbt_scholarship_rule_condition`
(`rule_id`, `field_name`, `operator_type`);
-- 名额统计查询优化索引
CREATE INDEX `idx_quota_batch_dept_usage` ON `jcbt_scholarship_quota`
(`batch_id`, `target_dept_id`, `used_quota`, `total_quota`);
-- =====================================================
-- 结束
-- =====================================================
SET FOREIGN_KEY_CHECKS = 1;
-- 建表脚本执行完成
SELECT '奖学金管理模块建表脚本执行完成!' AS result;