-- ======================================================== -- 工作流审批中心 - 菜单及权限初始化 SQL -- 适用:BladeX 微服务平台(标准版,无多租户字段) -- 说明:给所有人查看,不设置按钮级权限 -- 执行方式:在数据库客户端中逐条执行,或作为脚本批量执行 -- ======================================================== -- -------------------------------------------------------- -- 1. 插入菜单数据(blade_menu 表) -- 标准版字段:不含 tenant_id -- -------------------------------------------------------- -- 父菜单:工作流审批中心 INSERT INTO blade_menu ( id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted ) VALUES ( 10001, 0, 'workflow', '业务流程', '工作流审批中心', '/workflow', 'icon-caidan', 1, 1, 0, 2, '工作流审批中心', 0 ); -- 子菜单:我的待办 INSERT INTO blade_menu ( id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted ) VALUES ( 10002, 10001, 'workflow_todo', '我的待办', '我的待办', '/workflow/todo', 'iconfont iconicon_study', 1, 1, 0, 2, '我的待办任务', 0 ); -- 子菜单:我的已办 INSERT INTO blade_menu ( id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted ) VALUES ( 10003, 10001, 'workflow_done', '我的已办', '我的已办', '/workflow/done', 'iconfont iconicon_study', 2, 1, 0, 2, '我的已办记录', 0 ); -- 子菜单:我的申请 INSERT INTO blade_menu ( id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted ) VALUES ( 10004, 10001, 'workflow_my', '我的申请', '我的申请', '/workflow/my', 'iconfont iconicon_study', 3, 1, 0, 2, '我的申请流程', 0 ); -- 子菜单:我的流程(统一视图) INSERT INTO blade_menu ( id, parent_id, code, name, alias, path, source, sort, category, action, is_open, remark, is_deleted ) VALUES ( 10005, 10001, 'workflow_process', '我的流程', '我的流程', '/workflow/process', 'iconfont iconicon_study', 4, 1, 0, 2, '我的流程统一视图', 0 ); -- -------------------------------------------------------- -- 2. 分配菜单给所有角色(blade_role_menu 表) -- 不设置按钮权限,所有登录用户均可查看 -- -------------------------------------------------------- -- 获取所有角色并分配菜单(排除已删除的角色) -- 注意:如果只需要给特定角色,请修改 WHERE 条件 INSERT INTO blade_role_menu (role_id, menu_id) SELECT r.id, 10001 FROM blade_role r WHERE r.is_deleted = 0; INSERT INTO blade_role_menu (role_id, menu_id) SELECT r.id, 10002 FROM blade_role r WHERE r.is_deleted = 0; INSERT INTO blade_role_menu (role_id, menu_id) SELECT r.id, 10003 FROM blade_role r WHERE r.is_deleted = 0; INSERT INTO blade_role_menu (role_id, menu_id) SELECT r.id, 10004 FROM blade_role r WHERE r.is_deleted = 0; INSERT INTO blade_role_menu (role_id, menu_id) SELECT r.id, 10005 FROM blade_role r WHERE r.is_deleted = 0; -- -------------------------------------------------------- -- 3. 【可选】仅给管理员角色分配(注释掉上方批量插入,取消下方注释) -- -------------------------------------------------------- /* INSERT INTO blade_role_menu (role_id, menu_id) VALUES (1, 10001); INSERT INTO blade_role_menu (role_id, menu_id) VALUES (1, 10002); INSERT INTO blade_role_menu (role_id, menu_id) VALUES (1, 10003); INSERT INTO blade_role_menu (role_id, menu_id) VALUES (1, 10004); INSERT INTO blade_role_menu (role_id, menu_id) VALUES (1, 10005); */ -- ======================================================== -- 回滚 SQL(如需删除工作流审批中心菜单及权限) -- 执行方式:单独执行以下语句,或取消注释后批量执行 -- ======================================================== -- -------------------------------------------------------- -- 步骤 1:删除角色菜单关联(blade_role_menu 表) -- -------------------------------------------------------- -- 删除所有角色与工作流菜单的关联 DELETE FROM blade_role_menu WHERE menu_id IN (10001, 10002, 10003, 10004, 10005); -- -------------------------------------------------------- -- 步骤 2:删除菜单数据(blade_menu 表) -- -------------------------------------------------------- -- 先删除子菜单,再删除父菜单(避免外键约束问题) DELETE FROM blade_menu WHERE id IN (10002, 10003, 10004, 10005); DELETE FROM blade_menu WHERE id = 10001; -- -------------------------------------------------------- -- 步骤 3:【可选】清理按钮权限(如果后续添加了按钮级权限) -- -------------------------------------------------------- -- 如果为工作流菜单添加了按钮权限(blade_menu 表中 category=2 的记录),一并删除 -- DELETE FROM blade_role_menu WHERE menu_id IN ( -- SELECT id FROM blade_menu WHERE parent_id IN (10001, 10002, 10003, 10004, 10005) -- ); -- DELETE FROM blade_menu WHERE parent_id IN (10001, 10002, 10003, 10004, 10005); -- -------------------------------------------------------- -- 回滚验证查询(执行回滚后,以下查询应返回空结果) -- -------------------------------------------------------- -- SELECT * FROM blade_menu WHERE id IN (10001, 10002, 10003, 10004, 10005); -- SELECT * FROM blade_role_menu WHERE menu_id IN (10001, 10002, 10003, 10004, 10005);