zcui/saber3/docs/sql/workflow-menu-init.sql

133 lines
5.5 KiB
MySQL
Raw Permalink Normal View History

2026-06-16 14:07:58 +08:00
-- ========================================================
-- 工作流审批中心 - 菜单及权限初始化 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);