-- ============================================================================ -- 贫困生认定申请管理 - 数据库表创建脚本 -- 创建时间: 2024-12-19 -- 描述: 创建贫困生认定申请相关的数据库表、菜单权限和测试数据 -- ============================================================================ -- ============================================================================ -- 1. 创建贫困生认定申请表 -- ============================================================================ CREATE TABLE IF NOT EXISTS `jcbt_poverty_application` ( `id` bigint(20) NOT NULL COMMENT '主键ID', `application_no` varchar(50) DEFAULT NULL COMMENT '申请编号', `academic_year` varchar(20) DEFAULT NULL COMMENT '学年', `term` int(11) DEFAULT NULL COMMENT '学期', `student_id` bigint(20) DEFAULT NULL COMMENT '学生ID', `student_no` varchar(50) DEFAULT NULL COMMENT '学号', `student_name` varchar(100) DEFAULT NULL COMMENT '学生姓名', `gender` varchar(10) DEFAULT NULL COMMENT '性别', `college_id` bigint(20) DEFAULT NULL COMMENT '学院ID', `college_name` varchar(100) DEFAULT NULL COMMENT '学院名称', `major_id` bigint(20) DEFAULT NULL COMMENT '专业ID', `major_name` varchar(100) DEFAULT NULL COMMENT '专业名称', `class_id` bigint(20) DEFAULT NULL COMMENT '班级ID', `class_name` varchar(100) DEFAULT NULL COMMENT '班级名称', `recognition_group` varchar(50) DEFAULT NULL COMMENT '认定群体(特殊群体/其他群体)', `recognition_type_id` bigint(20) DEFAULT NULL COMMENT '认定类型ID', `recognition_type_code` varchar(50) DEFAULT NULL COMMENT '认定类型编码', `recognition_type_name` varchar(100) DEFAULT NULL COMMENT '认定类型名称', `assistance_type_ids` varchar(500) DEFAULT NULL COMMENT '申请自助类型ID数组(多选)', `assistance_type_names` varchar(500) DEFAULT NULL COMMENT '申请自助类型名称(多个用逗号分隔)', `family_economy_summary` text COMMENT '家庭经济情况摘要', `attach_application_form_url` varchar(500) DEFAULT NULL COMMENT '申请表附件URL', `attach_application_form_id` bigint(20) DEFAULT NULL COMMENT '申请表附件ID', `attach_survey_form_url` varchar(500) DEFAULT NULL COMMENT '调查表附件URL', `attach_survey_form_id` bigint(20) DEFAULT NULL COMMENT '调查表附件ID', `status` varchar(20) DEFAULT 'DRAFT' COMMENT '申请状态(DRAFT-草稿,SUBMITTED-已提交,REVIEWING-审核中,APPROVED-已通过,REJECTED-已拒绝,WITHDRAWN-已撤回)', `submitter_id` bigint(20) DEFAULT NULL COMMENT '提交人ID', `submitter_name` varchar(100) DEFAULT NULL COMMENT '提交人姓名', `submit_time` datetime DEFAULT NULL COMMENT '提交时间', `auditor_id` bigint(20) DEFAULT NULL COMMENT '审核人ID', `auditor_name` varchar(100) DEFAULT NULL COMMENT '审核人姓名', `audit_time` datetime DEFAULT NULL COMMENT '审核时间', `audit_opinion` text COMMENT '审核意见', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `deleted` bigint(20) DEFAULT '0' COMMENT '逻辑删除标记(0-正常,非0-已删除)', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_student_no` (`student_no`), KEY `idx_status` (`status`), KEY `idx_academic_year` (`academic_year`), KEY `idx_college_id` (`college_id`), KEY `idx_tenant_deleted` (`tenant_id`, `deleted`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='贫困生认定申请表'; -- ============================================================================ -- 2. 插入菜单权限配置 -- ============================================================================ -- 2.1 插入主菜单(贫困生认定申请管理) INSERT INTO sys_menu VALUES( '1954043650013946881', '贫困生认定申请管理', '1851080776692494337', '4', 'jcbt:poverty:application:list', 'poverty/Application/index', '', '', '1', '0', 'C', '0', '0', 'jcbt:poverty:application:list', 'education', '103', '1', NOW(), NULL, NULL, '' ); -- 2.2 插入按钮权限 -- 查询按钮 INSERT INTO sys_menu VALUES( '1954043651013946881', '贫困生认定申请查询', '1954043650013946881', '1', 'jcbt:poverty:application:query', '', '', '', '1', '0', 'F', '0', '0', 'jcbt:poverty:application:query', '#', '103', '1', NOW(), NULL, NULL, '' ); -- 新增按钮 INSERT INTO sys_menu VALUES( '1954043652013946881', '贫困生认定申请新增', '1954043650013946881', '2', 'jcbt:poverty:application:add', '', '', '', '1', '0', 'F', '0', '0', 'jcbt:poverty:application:add', '#', '103', '1', NOW(), NULL, NULL, '' ); -- 修改按钮 INSERT INTO sys_menu VALUES( '1954043653013946881', '贫困生认定申请修改', '1954043650013946881', '3', 'jcbt:poverty:application:edit', '', '', '', '1', '0', 'F', '0', '0', 'jcbt:poverty:application:edit', '#', '103', '1', NOW(), NULL, NULL, '' ); -- 删除按钮 INSERT INTO sys_menu VALUES( '1954043654013946881', '贫困生认定申请删除', '1954043650013946881', '4', 'jcbt:poverty:application:remove', '', '', '', '1', '0', 'F', '0', '0', 'jcbt:poverty:application:remove', '#', '103', '1', NOW(), NULL, NULL, '' ); -- 导出按钮 INSERT INTO sys_menu VALUES( '1954043655013946881', '贫困生认定申请导出', '1954043650013946881', '5', 'jcbt:poverty:application:export', '', '', '', '1', '0', 'F', '0', '0', 'jcbt:poverty:application:export', '#', '103', '1', NOW(), NULL, NULL, '' ); -- 审核按钮 INSERT INTO sys_menu VALUES( '1954043656013946881', '贫困生认定申请审核', '1954043650013946881', '6', 'jcbt:poverty:application:audit', '', '', '', '1', '0', 'F', '0', '0', 'jcbt:poverty:application:audit', '#', '103', '1', NOW(), NULL, NULL, '' ); -- ============================================================================ -- 3. 插入字典数据 -- ============================================================================ -- 3.1 申请状态字典 INSERT INTO sys_dict_type VALUES( (SELECT IFNULL(MAX(dict_id), 0) + 1 FROM sys_dict_type t), '贫困生申请状态', 'jcbt_poverty_application_status', '0', '103', '1', NOW(), NULL, NULL, '贫困生认定申请状态选项' ); -- 获取刚插入的字典类型ID SET @dict_type_id = (SELECT dict_id FROM sys_dict_type WHERE dict_type = 'jcbt_poverty_application_status'); -- 插入状态字典数据 INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 1, 1, '草稿', 'DRAFT', 'jcbt_poverty_application_status', '', 'info', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请草稿状态'); INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 2, 2, '已提交', 'SUBMITTED', 'jcbt_poverty_application_status', '', 'primary', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已提交状态'); INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 3, 3, '审核中', 'REVIEWING', 'jcbt_poverty_application_status', '', 'warning', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请审核中状态'); INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 4, 4, '已通过', 'APPROVED', 'jcbt_poverty_application_status', '', 'success', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已通过状态'); INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 5, 5, '已拒绝', 'REJECTED', 'jcbt_poverty_application_status', '', 'danger', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已拒绝状态'); INSERT INTO sys_dict_data VALUES(@dict_type_id * 10 + 6, 6, '已撤回', 'WITHDRAWN', 'jcbt_poverty_application_status', '', 'info', 'N', '0', '103', '1', NOW(), NULL, NULL, '申请已撤回状态'); -- ============================================================================ -- 4. 插入测试数据 -- ============================================================================ INSERT INTO `jcbt_poverty_application` VALUES (1954048400013946881, 'PK2024001', '2024-2025', 1, 1001, '202401001', '张三', '男', 101, '计算机学院', 10101, '计算机科学与技术', 1010101, '计软2401班', '其他群体', 1, 'TYPE001', '一般困难', '1,2', '学费减免,生活补助', '家庭经济困难,父母务农收入微薄', '', NULL, '', NULL, 'SUBMITTED', 1001, '张三', '2024-12-01 10:00:00', NULL, NULL, NULL, NULL, '因家庭经济困难申请贫困生认定', 0, '000000', 103, '2024-12-01 09:30:00', 103, '2024-12-01 10:00:00'), (1954048401013946881, 'PK2024002', '2024-2025', 1, 1002, '202401002', '李四', '女', 102, '外国语学院', 10201, '英语', 1020101, '英语2401班', '特殊群体', 2, 'TYPE002', '特别困难', '1,3', '学费减免,勤工助学', '单亲家庭,母亲重病', '', NULL, '', NULL, 'REVIEWING', 1002, '李四', '2024-12-02 14:00:00', 201, '王老师', NULL, NULL, '单亲家庭申请特别困难认定', 0, '000000', 103, '2024-12-02 13:30:00', 201, '2024-12-02 14:00:00'), (1954048402013946881, 'PK2024003', '2024-2025', 1, 1003, '202401003', '王五', '男', 101, '计算机学院', 10102, '软件工程', 1010201, '软工2401班', '其他群体', 1, 'TYPE001', '一般困难', '2', '生活补助', '家庭收入较低', '', NULL, '', NULL, 'APPROVED', 1003, '王五', '2024-11-28 16:00:00', 201, '王老师', '2024-11-30 10:00:00', '符合认定条件,予以通过', '已通过认定审核', 0, '000000', 103, '2024-11-28 15:30:00', 201, '2024-11-30 10:00:00'), (1954048403013946881, 'PK2024004', '2024-2025', 1, 1004, '202401004', '赵六', '女', 103, '经济管理学院', 10301, '会计学', 1030101, '会计2401班', '其他群体', 1, 'TYPE001', '一般困难', '1,2,3', '学费减免,生活补助,勤工助学', '家庭经济确实困难', '', NULL, '', NULL, 'DRAFT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '正在准备申请材料', 0, '000000', 103, '2024-12-05 11:00:00', 103, '2024-12-05 11:00:00'), (1954048404013946881, 'PK2024005', '2024-2025', 1, 1005, '202401005', '钱七', '男', 104, '机械工程学院', 10401, '机械设计制造及其自动化', 1040101, '机械2401班', '特殊群体', 2, 'TYPE002', '特别困难', '1,2', '学费减免,生活补助', '建档立卡贫困户', '', NULL, '', NULL, 'REJECTED', 1005, '钱七', '2024-11-25 09:00:00', 202, '李老师', '2024-11-27 15:00:00', '材料不够完整,请补充相关证明', '需要补充材料后重新申请', 0, '000000', 103, '2024-11-25 08:30:00', 202, '2024-11-27 15:00:00'); -- ============================================================================ -- 5. 创建索引优化 -- ============================================================================ -- 优化查询性能的复合索引 CREATE INDEX idx_student_status_time ON jcbt_poverty_application(student_id, status, create_time); CREATE INDEX idx_college_year_status ON jcbt_poverty_application(college_id, academic_year, status); CREATE INDEX idx_auditor_time ON jcbt_poverty_application(auditor_id, audit_time); -- ============================================================================ -- 6. 数据统计视图(可选) -- ============================================================================ -- 创建状态统计视图 CREATE OR REPLACE VIEW v_poverty_application_statistics AS SELECT status, COUNT(*) as count, academic_year, college_name FROM jcbt_poverty_application WHERE deleted = 0 GROUP BY status, academic_year, college_name; -- ============================================================================ -- 脚本执行完成 -- ============================================================================ -- 执行完成后请检查: -- 1. 表结构是否创建成功: SHOW CREATE TABLE jcbt_poverty_application; -- 2. 菜单权限是否正确: SELECT * FROM sys_menu WHERE menu_name LIKE '%贫困生%'; -- 3. 测试数据是否插入: SELECT COUNT(*) FROM jcbt_poverty_application; -- ============================================================================