-- ============================================================================= -- 生产环境:一年级请假代理学院(人文学院)配置 -- 日期:2026-09-16 -- 配套代码:一年级请假时,二级学院审批人 / 分管领导改走 sys_config 配置的学院 -- 销假流程无需执行本脚本 -- ============================================================================= -- 执行顺序: -- 1)先跑「一、核对」全部 SELECT,确认人文学院 dept_id、审批人、分管领导 -- 2)若 1.1 的 dept_id 不是 202512231307170003,先改「二」里 INSERT/UPDATE 的 config_value -- 3)再执行「二、写入参数」 -- 4)部署新后端并重启(或刷新系统参数缓存) -- ============================================================================= -- ----------------------------------------------------------------------------- -- 一、核对(只读,请先执行并人工确认) -- ----------------------------------------------------------------------------- -- 1.1 人文学院 dept_id(生产参考:202512231307170003 / xy-19,以本查询为准) SELECT dept_id, dept_name, dept_category, parent_id, status, del_flag FROM sys_dept WHERE dept_name = '人文学院' AND del_flag = '0'; -- 1.2 是否已存在配置 SELECT config_id, config_key, config_value, remark FROM sys_config WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId'; -- 1.3 人文学院请假二级学院审批人(role_key = xsqj-ejxyspr)必须有人,否则一年级无法提交 -- 将 @proxy_college_id 换成 1.1 查到的 dept_id SET @proxy_college_id = 202512231307170003; SELECT u.user_id, u.user_name, u.nick_name, d.dept_id, d.dept_name, r.role_key FROM sys_user u INNER JOIN sys_user_role ur ON u.user_id = ur.user_id INNER JOIN sys_role r ON ur.role_id = r.role_id INNER JOIN sys_dept d ON u.dept_id = d.dept_id WHERE u.del_flag = '0' AND u.status = '0' AND u.account_type = '1' AND d.del_flag = '0' AND d.status = '0' AND r.role_key = 'xsqj-ejxyspr' AND (d.dept_id = @proxy_college_id OR FIND_IN_SET(@proxy_college_id, d.ancestors)); -- 1.4 人文学院分管领导(xg_college_leader)必须有人,否则一年级长假无法提交 SELECT id, college_id, college_name, leader_id, leader_name, deleted FROM xg_college_leader WHERE college_id = @proxy_college_id AND deleted = 0; -- 1.5 入学年缺失的在籍学生(提交请假会被系统拒绝,建议上线前处理) SELECT s.id, s.student_no, s.name, s.enrollment_year AS student_enrollment_year, c.id AS class_id, c.class_name, c.enrollment_year AS class_enrollment_year FROM xg_student_msg s LEFT JOIN xg_class_msg c ON s.class_id = c.id AND c.deleted = 0 WHERE s.deleted = 0 AND IFNULL(s.student_status, '1') = '1' AND COALESCE(c.enrollment_year, s.enrollment_year) IS NULL LIMIT 200; -- ----------------------------------------------------------------------------- -- 二、写入系统参数(确认 1.1 的 dept_id 后执行) -- ----------------------------------------------------------------------------- -- !! 若生产人文学院 dept_id 与下方不一致,请先替换两处 '202512231307170003' INSERT INTO sys_config ( config_id, tenant_id, config_name, config_key, config_value, config_type, create_dept, create_by, create_time, remark ) SELECT 2026091601, '000000', '一年级请假代理学院ID', 'xg.studentLeave.freshmanProxyCollegeId', '202512231307170003', 'N', 103, 1, NOW(), '一年级学生请假时,二级学院审批人与分管领导改走此人文学院 dept_id;每年9月1日按入学年切届' FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM sys_config WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId' ); -- 若参数已存在但值不对,执行下面 UPDATE(按需取消注释并改 dept_id) -- UPDATE sys_config -- SET config_value = '202512231307170003', -- update_by = 1, -- update_time = NOW(), -- remark = '一年级学生请假时,二级学院审批人与分管领导改走此人文学院 dept_id;每年9月1日按入学年切届' -- WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId'; -- 写入后复查 SELECT config_id, config_key, config_value, remark FROM sys_config WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId'; -- 完成后:部署本次后端代码并重启应用(或刷新系统参数缓存)