-- 风险预警保持二级(仍挂在案件管理下),改为目录后挂 13 条规则三级子菜单 -- 不改变 parent_id / sort,只把自身从页面改为目录 UPDATE t_menu SET menu_type = 1, component = NULL, path = '/case-management/risk-warning', update_time = NOW() WHERE menu_name = '风险预警' AND path = '/case-management/risk-warning' AND deleted_flag = 0; INSERT INTO t_menu (menu_name, menu_type, parent_id, sort, path, component, frame_flag, cache_flag, visible_flag, disabled_flag, perms_type, icon, deleted_flag, create_user_id, create_time, update_time) SELECT v.menu_name, 2, p.menu_id, v.sort_num, v.path, '/business/case-management/risk-warning.vue', false, false, true, false, 1, NULL, false, 1, NOW(), NOW() FROM t_menu p CROSS JOIN (VALUES ('审议受案超时', 1, '/case-management/risk-warning/accept-timeout', 'accept_timeout'), ('立案审查期限', 2, '/case-management/risk-warning/filing-deadline', 'filing_deadline'), ('取保候审传讯', 3, '/case-management/risk-warning/bail-summons', 'bail_summons'), ('取保候审期限', 4, '/case-management/risk-warning/bail-expire', 'bail_expire'), ('受案后无活动', 5, '/case-management/risk-warning/accept-inactivity', 'accept_inactivity'), ('立案后无活动', 6, '/case-management/risk-warning/filing-inactivity', 'filing_inactivity'), ('刑拘通知书', 7, '/case-management/risk-warning/detention-notice', 'detention_notice'), ('刑拘羁押期限', 8, '/case-management/risk-warning/detention-deadline', 'detention_deadline'), ('逮捕通知书', 9, '/case-management/risk-warning/arrest-notice', 'arrest_notice'), ('逮捕羁押期限', 10, '/case-management/risk-warning/arrest-deadline', 'arrest_deadline'), ('监视居住期限', 11, '/case-management/risk-warning/residential-expire', 'residential_expire'), ('监视居住传讯', 12, '/case-management/risk-warning/residential-summons', 'residential_summons'), ('指定居所通知', 13, '/case-management/risk-warning/designated-notice', 'designated_notice') ) AS v(menu_name, sort_num, path, rule_code) WHERE p.menu_name = '风险预警' AND p.path = '/case-management/risk-warning' AND p.deleted_flag = 0 AND NOT EXISTS (SELECT 1 FROM t_menu x WHERE x.path = v.path AND x.deleted_flag = 0); -- 原功能点仍挂在「风险预警」目录下 UPDATE t_menu f SET parent_id = p.menu_id, context_menu_id = p.menu_id, update_time = NOW() FROM t_menu p WHERE p.menu_name = '风险预警' AND p.path = '/case-management/risk-warning' AND p.deleted_flag = 0 AND f.deleted_flag = 0 AND f.menu_type = 3 AND f.web_perms IN ('risk-warning:query', 'risk-warning:view', 'risk-warning:process', 'risk-warning:ignore'); -- 有「风险预警」权限的角色同步绑定全部规则子菜单 INSERT INTO t_role_menu (role_id, menu_id) SELECT rm.role_id, c.menu_id FROM t_role_menu rm JOIN t_menu p ON p.menu_id = rm.menu_id JOIN t_menu c ON c.parent_id = p.menu_id AND c.deleted_flag = 0 AND c.menu_type = 2 WHERE p.menu_name = '风险预警' AND p.path = '/case-management/risk-warning' AND p.deleted_flag = 0 AND NOT EXISTS ( SELECT 1 FROM t_role_menu x WHERE x.role_id = rm.role_id AND x.menu_id = c.menu_id );