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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| -- ============================================================
| -- 诚发五金:恢复工作流(协同办公 / 审批中心 / 流程管理)菜单
| -- 背景:BPM 流程定义、表单、分类、待办数据均在库中,但菜单树被裁剪,
| -- 只剩若干孤立的按钮权限(如 bpm:form:query、bpm:task:query),
| -- 导致「提交审批」后审批人没有待办入口,业务单据无法流转。
| -- 目标库:诚发五金客户库(本地为 CFWJ),请按实际库名执行或先 USE。
| -- 幂等:REPLACE 按固定菜单 ID 覆盖;角色授权按 code + NOT EXISTS 去重。
| -- 注意:本脚本不含 tenant_id(单租户)。
| -- ============================================================
|
| -- 1. 菜单与按钮权限(ID 沿用标准 BPM 菜单 ID,覆盖同 ID 的历史残留按钮)
| REPLACE INTO `system_menu`
| (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`)
| VALUES
| (1185,'协同办公','',1,50,0,'/bpm','fa:medium',NULL,NULL,0,b'1',b'0',b'1'),
| (1186,'流程管理','',1,1,1185,'manager','fa:dedent',NULL,NULL,0,b'1',b'0',b'1'),
| (1200,'审批中心','',2,2,1185,'task','fa:tasks',NULL,NULL,0,b'1',b'0',b'1'),
| (1193,'流程模型','',2,1,1186,'model','fa-solid:project-diagram','bpm/model/index','BpmModel',0,b'1',b'0',b'1'),
| (1187,'流程表单','',2,2,1186,'form','fa:hdd-o','bpm/form/index','BpmForm',0,b'1',b'0',b'1'),
| (2714,'流程分类','',2,3,1186,'category','fa:object-ungroup','bpm/category/index','BpmCategory',0,b'1',b'0',b'1'),
| (1209,'用户分组','',2,4,1186,'user-group','fa:user-secret','bpm/group/index','BpmUserGroup',0,b'1',b'0',b'1'),
| (1188,'表单查询','bpm:form:query',3,1,1187,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1189,'表单创建','bpm:form:create',3,2,1187,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1190,'表单更新','bpm:form:update',3,3,1187,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1191,'表单删除','bpm:form:delete',3,4,1187,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1192,'表单导出','bpm:form:export',3,5,1187,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1194,'模型查询','bpm:model:query',3,1,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1195,'模型创建','bpm:model:create',3,2,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1197,'模型更新','bpm:model:update',3,4,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1198,'模型删除','bpm:model:delete',3,5,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1199,'模型发布','bpm:model:deploy',3,6,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (2913,'流程清理','bpm:model:clean',3,7,1193,'','',NULL,'',0,b'1',b'0',b'1'),
| (1215,'流程定义查询','bpm:process-definition:query',3,10,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1216,'流程任务分配规则查询','bpm:task-assign-rule:query',3,20,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1217,'流程任务分配规则创建','bpm:task-assign-rule:create',3,21,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1218,'流程任务分配规则更新','bpm:task-assign-rule:update',3,22,1193,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (2720,'发起流程','',2,0,1200,'create','fa-solid:grin-stars','bpm/processInstance/create/index','BpmProcessInstanceCreate',0,b'1',b'0',b'1'),
| (1201,'我的流程','',2,1,1200,'my','fa-solid:book','bpm/processInstance/index','BpmProcessInstanceMy',0,b'1',b'0',b'1'),
| (1207,'待办任务','',2,10,1200,'todo','fa:slack','bpm/task/todo/index','BpmTodoTask',0,b'1',b'0',b'1'),
| (1208,'已办任务','',2,20,1200,'done','fa:delicious','bpm/task/done/index','BpmDoneTask',0,b'1',b'0',b'1'),
| (2713,'抄送我的','bpm:process-instance-cc:query',2,30,1200,'copy','ep:copy-document','bpm/task/copy/index','BpmProcessInstanceCopy',0,b'1',b'0',b'1'),
| (1202,'流程实例的查询','bpm:process-instance:query',3,1,1201,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1219,'流程实例的创建','bpm:process-instance:create',3,2,1201,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1220,'流程实例的取消','bpm:process-instance:cancel',3,3,1201,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1221,'流程任务的查询','bpm:task:query',3,1,1207,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1222,'流程任务的更新','bpm:task:update',3,2,1207,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1210,'用户组查询','bpm:user-group:query',3,1,1209,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1211,'用户组创建','bpm:user-group:create',3,2,1209,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1212,'用户组更新','bpm:user-group:update',3,3,1209,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (1213,'用户组删除','bpm:user-group:delete',3,4,1209,'','',NULL,NULL,0,b'1',b'0',b'1'),
| (2715,'分类查询','bpm:category:query',3,1,2714,'','',NULL,'',0,b'1',b'0',b'1'),
| (2716,'分类创建','bpm:category:create',3,2,2714,'','',NULL,'',0,b'1',b'0',b'1'),
| (2717,'分类更新','bpm:category:update',3,3,2714,'','',NULL,'',0,b'1',b'0',b'1'),
| (2718,'分类删除','bpm:category:delete',3,4,2714,'','',NULL,'',0,b'1',b'0',b'1')
| ;
|
| -- 2. 审批中心授权:此前已持有 BPM 查询按钮的角色,恢复后即可看到待办/已办/我的流程
| -- (流程管理仅超级管理员可见,不在此授权)
| INSERT INTO `system_role_menu` (`role_id`, `menu_id`, `creator`, `updater`, `deleted`)
| SELECT r.`id`, m.`menu_id`, 'admin', 'admin', b'0'
| FROM `system_role` r
| CROSS JOIN (
| SELECT 1185 AS `menu_id` UNION ALL SELECT 1200 UNION ALL SELECT 2720
| UNION ALL SELECT 1201 UNION ALL SELECT 1202 UNION ALL SELECT 1219
| UNION ALL SELECT 1220 UNION ALL SELECT 1207 UNION ALL SELECT 1221
| UNION ALL SELECT 1222 UNION ALL SELECT 1208 UNION ALL SELECT 2713
| ) m
| WHERE r.`deleted` = b'0'
| AND r.`code` IN ('common', 'tenant_admin', 'test-dp', 'coffee', '员工', '总经理', 'JL')
| AND NOT EXISTS (
| SELECT 1 FROM `system_role_menu` rm
| WHERE rm.`role_id` = r.`id` AND rm.`menu_id` = m.`menu_id` AND rm.`deleted` = b'0'
| );
|
| -- 3. 验证:应返回 40 条菜单,且 1185 / 1200 / 1207 存在父子关系
| -- SELECT id, name, type, parent_id, path, component FROM system_menu
| -- WHERE id IN (1185, 1186, 1187, 1193, 1200, 1201, 1207, 1208, 2713);
|
|