feat(leave): 一年级请假二级学院与分管领导改走人文学院

按入学年与每年9月1日切届判定一年级;代理学院 dept_id 通过 sys_config 配置,提交时覆写选人,流程定义与销假不变。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
“wuzhen”andCursor committed 2026-09-16 09:10:11 +08:00
1 parent 08fbb49e89
commit a76fd32d71
5 files changed
+232 -48

No files matched your search

@@ -0,0 +1,123 @@
-- =============================================================================
-- 生产环境:一年级请假代理学院(人文学院)配置
-- 日期: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';
-- 完成后:部署本次后端代码并重启应用(或刷新系统参数缓存)