-- 工艺知识库菜单整理:保留原页面、权限及按钮,仅新增目录并调整父级。
|
-- 在目标库执行前请先备份 system_menu 和 system_role_menu。
|
-- 通过组件路径定位已有菜单,不依赖跨项目的固定菜单 ID。
|
SET @process_parent := (SELECT id FROM system_menu WHERE path = '/process-design' AND parent_id = 0 AND deleted = b'0' LIMIT 1);
|
|
INSERT INTO system_menu (name, permission, type, sort, parent_id, path, icon, status, visible, keep_alive, always_show, creator, updater)
|
SELECT '工艺知识库', '', 1, 1, @process_parent, 'knowledge', 'lucide:library-big', 0, b'1', b'1', b'1', '1', '1'
|
WHERE @process_parent IS NOT NULL
|
AND NOT EXISTS (SELECT 1 FROM system_menu WHERE parent_id = @process_parent AND path = 'knowledge' AND deleted = b'0');
|
|
SET @knowledge_menu := (SELECT id FROM system_menu WHERE parent_id = @process_parent AND path = 'knowledge' AND type = 1 AND deleted = b'0' LIMIT 1);
|
|
-- 只向已有相关页面权限的角色开放目录,不扩大业务页面权限。
|
INSERT INTO system_role_menu (role_id, menu_id, creator, updater, tenant_id)
|
SELECT DISTINCT rm.role_id, @knowledge_menu, '1', '1', rm.tenant_id
|
FROM system_role_menu rm JOIN system_menu m ON m.id = rm.menu_id
|
WHERE @knowledge_menu IS NOT NULL AND rm.deleted = b'0' AND m.deleted = b'0'
|
AND m.component IN ('mes/process-design/parameter/index', 'mes/process-design/template/index', 'mes/process-design/process/index')
|
AND NOT EXISTS (SELECT 1 FROM system_role_menu existing WHERE existing.role_id = rm.role_id AND existing.tenant_id = rm.tenant_id AND existing.menu_id = @knowledge_menu AND existing.deleted = b'0');
|
|
UPDATE system_menu SET parent_id = @knowledge_menu, updater = '1', update_time = NOW()
|
WHERE @knowledge_menu IS NOT NULL AND parent_id = @process_parent AND deleted = b'0'
|
AND component IN ('mes/process-design/parameter/index', 'mes/process-design/template/index', 'mes/process-design/process/index');
|