xiaoyi
10 天以前 fae95228037f0c1304c1917ae5fff452f2160c5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
-- ============================================================
-- 下线「审批中心 → 请假」重复菜单页
-- 生成时间:2026-10-30
--
-- 背景:系统里存在两套请假功能——
--
--   A. 审批中心 → OA示例 → 请假查询(菜单 1118)
--      数据源 bpm_oa_leave,已清空(10 条全是伪造流程实例)
--      挂在 visible=0 的「OA 示例」下,只授权给租户管理员
--      普通员工访问返回 403,点「进度」会因流程实例不存在而报错
--
--   B. 人事审批 → 请假申请(菜单 6003)
--      数据源 hrm_leave_application,与考勤/薪资打通
--      已配置 BPM 审批(qingjia v2,挂在 hrm_attendance_approve 分类下)
--      是正规在用的那一套
--
-- 结论:A 是旧演示页面,与 B 完全重复且已无数据,直接下线。
--      代码(bpm/oa/leave)保留,日后需要时可恢复菜单。
--
-- 做法:软删除菜单 1118 及其两个按钮权限(1119 查询 / 1120 创建)
--      不物理删除,可回滚
-- 回滚:UPDATE system_menu SET deleted=b'0' WHERE id IN (1118,1119,1120);
-- ============================================================
 
-- ---------- 1. 处理前快照 ----------
SELECT id, name, parent_id, path, component, permission, type, visible+0 AS vis
  FROM system_menu WHERE id IN (1118, 1119, 1120) AND deleted = b'0';
 
-- ---------- 2. 软删除菜单及其按钮权限 ----------
UPDATE system_menu
   SET deleted = b'1', updater = '1', update_time = NOW()
 WHERE id IN (1118, 1119, 1120)
   AND deleted = b'0';
 
-- ---------- 3. 清理角色菜单关联,避免残留权限 ----------
DELETE FROM system_role_menu WHERE menu_id IN (1118, 1119, 1120);
 
-- ---------- 4. 校验 ----------
SELECT COUNT(*) AS 剩余有效菜单数 FROM system_menu
 WHERE id IN (1118, 1119, 1120) AND deleted = b'0';
 
SELECT COUNT(*) AS 剩余角色关联数 FROM system_role_menu
 WHERE menu_id IN (1118, 1119, 1120);
 
-- ---------- 5. 确认 HRM 请假菜单完好 ----------
SELECT id, name, path, component, visible+0 AS vis
  FROM system_menu WHERE id = 6003 AND deleted = b'0';