update_20260916_leave_freshman_proxy_college.sql 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. -- =============================================================================
  2. -- 生产环境:一年级请假代理学院(人文学院)配置
  3. -- 日期:2026-09-16
  4. -- 配套代码:一年级请假时,二级学院审批人 / 分管领导改走 sys_config 配置的学院
  5. -- 销假流程无需执行本脚本
  6. -- =============================================================================
  7. -- 执行顺序:
  8. -- 1)先跑「一、核对」全部 SELECT,确认人文学院 dept_id、审批人、分管领导
  9. -- 2)若 1.1 的 dept_id 不是 202512231307170003,先改「二」里 INSERT/UPDATE 的 config_value
  10. -- 3)再执行「二、写入参数」
  11. -- 4)部署新后端并重启(或刷新系统参数缓存)
  12. -- =============================================================================
  13. -- -----------------------------------------------------------------------------
  14. -- 一、核对(只读,请先执行并人工确认)
  15. -- -----------------------------------------------------------------------------
  16. -- 1.1 人文学院 dept_id(生产参考:202512231307170003 / xy-19,以本查询为准)
  17. SELECT dept_id,
  18. dept_name,
  19. dept_category,
  20. parent_id,
  21. status,
  22. del_flag
  23. FROM sys_dept
  24. WHERE dept_name = '人文学院'
  25. AND del_flag = '0';
  26. -- 1.2 是否已存在配置
  27. SELECT config_id, config_key, config_value, remark
  28. FROM sys_config
  29. WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId';
  30. -- 1.3 人文学院请假二级学院审批人(role_key = xsqj-ejxyspr)必须有人,否则一年级无法提交
  31. -- 将 @proxy_college_id 换成 1.1 查到的 dept_id
  32. SET @proxy_college_id = 202512231307170003;
  33. SELECT u.user_id,
  34. u.user_name,
  35. u.nick_name,
  36. d.dept_id,
  37. d.dept_name,
  38. r.role_key
  39. FROM sys_user u
  40. INNER JOIN sys_user_role ur ON u.user_id = ur.user_id
  41. INNER JOIN sys_role r ON ur.role_id = r.role_id
  42. INNER JOIN sys_dept d ON u.dept_id = d.dept_id
  43. WHERE u.del_flag = '0'
  44. AND u.status = '0'
  45. AND u.account_type = '1'
  46. AND d.del_flag = '0'
  47. AND d.status = '0'
  48. AND r.role_key = 'xsqj-ejxyspr'
  49. AND (d.dept_id = @proxy_college_id OR FIND_IN_SET(@proxy_college_id, d.ancestors));
  50. -- 1.4 人文学院分管领导(xg_college_leader)必须有人,否则一年级长假无法提交
  51. SELECT id, college_id, college_name, leader_id, leader_name, deleted
  52. FROM xg_college_leader
  53. WHERE college_id = @proxy_college_id
  54. AND deleted = 0;
  55. -- 1.5 入学年缺失的在籍学生(提交请假会被系统拒绝,建议上线前处理)
  56. SELECT s.id,
  57. s.student_no,
  58. s.name,
  59. s.enrollment_year AS student_enrollment_year,
  60. c.id AS class_id,
  61. c.class_name,
  62. c.enrollment_year AS class_enrollment_year
  63. FROM xg_student_msg s
  64. LEFT JOIN xg_class_msg c ON s.class_id = c.id AND c.deleted = 0
  65. WHERE s.deleted = 0
  66. AND IFNULL(s.student_status, '1') = '1'
  67. AND COALESCE(c.enrollment_year, s.enrollment_year) IS NULL
  68. LIMIT 200;
  69. -- -----------------------------------------------------------------------------
  70. -- 二、写入系统参数(确认 1.1 的 dept_id 后执行)
  71. -- -----------------------------------------------------------------------------
  72. -- !! 若生产人文学院 dept_id 与下方不一致,请先替换两处 '202512231307170003'
  73. INSERT INTO sys_config (
  74. config_id,
  75. tenant_id,
  76. config_name,
  77. config_key,
  78. config_value,
  79. config_type,
  80. create_dept,
  81. create_by,
  82. create_time,
  83. remark
  84. )
  85. SELECT
  86. 2026091601,
  87. '000000',
  88. '一年级请假代理学院ID',
  89. 'xg.studentLeave.freshmanProxyCollegeId',
  90. '202512231307170003',
  91. 'N',
  92. 103,
  93. 1,
  94. NOW(),
  95. '一年级学生请假时,二级学院审批人与分管领导改走此人文学院 dept_id;每年9月1日按入学年切届'
  96. FROM DUAL
  97. WHERE NOT EXISTS (
  98. SELECT 1 FROM sys_config WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId'
  99. );
  100. -- 若参数已存在但值不对,执行下面 UPDATE(按需取消注释并改 dept_id)
  101. -- UPDATE sys_config
  102. -- SET config_value = '202512231307170003',
  103. -- update_by = 1,
  104. -- update_time = NOW(),
  105. -- remark = '一年级学生请假时,二级学院审批人与分管领导改走此人文学院 dept_id;每年9月1日按入学年切届'
  106. -- WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId';
  107. -- 写入后复查
  108. SELECT config_id, config_key, config_value, remark
  109. FROM sys_config
  110. WHERE config_key = 'xg.studentLeave.freshmanProxyCollegeId';
  111. -- 完成后:部署本次后端代码并重启应用(或刷新系统参数缓存)