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
-- =====================================================================
-- 四模块“导入”按钮权限 合并补丁
--   1) 采购订单导入  erp:purchase-order:import
--   2) 销售订单导入  erp:sale-order:import
--   3) 计量器具导入  mes:dv-metering:import
--   4) 员工合同导入  hrm:employee-contract:import
--
-- 用法:在【目标数据库】上整体执行一次即可(本地开发库 / 远程测试库 / 生产库)。
-- 特点:
--   * 动态取 system_menu 最大 id + 1,不会与既有菜单 id 撞车;
--   * 按 permission 判断,幂等,可重复执行;
--   * 仅授权“超级管理员”角色 role_id=1;如要让其它角色也能导入,
--     请在【系统管理 → 角色管理】里勾选对应“XX导入”按钮。
-- 注意:
--   * parent_id 为各模块菜单 id(采购订单=2666、销售订单=2638、计量器具=5380、员工合同=1063105)。
--     若目标库菜单结构被改过,请先核对这几个父菜单 id 再执行。
-- =====================================================================
 
-- ------------- 1) 采购订单导入 -------------
SET @perm_exists := (SELECT COUNT(*) FROM system_menu WHERE permission = 'erp:purchase-order:import');
SET @new_id := IFNULL((SELECT MAX(id) FROM system_menu), 0) + 1;
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component,
                         component_name, status, visible, keep_alive, always_show,
                         creator, create_time, updater, update_time, deleted)
SELECT @new_id, '采购订单导入', 'erp:purchase-order:import', 3, 8, 2666, '', '#', '', NULL,
       0, 1, 0, 1, '1', NOW(), '1', NOW(), 0
FROM DUAL WHERE @perm_exists = 0;
SET @menu_id := (SELECT id FROM system_menu WHERE permission = 'erp:purchase-order:import');
SET @grant_exists := (SELECT COUNT(*) FROM system_role_menu WHERE role_id = 1 AND menu_id = @menu_id);
INSERT INTO system_role_menu (role_id, menu_id, creator, create_time, updater, update_time, deleted)
SELECT 1, @menu_id, '1', NOW(), '1', NOW(), 0 FROM DUAL
WHERE @menu_id IS NOT NULL AND @grant_exists = 0;
 
-- ------------- 2) 销售订单导入 -------------
SET @perm_exists := (SELECT COUNT(*) FROM system_menu WHERE permission = 'erp:sale-order:import');
SET @new_id := IFNULL((SELECT MAX(id) FROM system_menu), 0) + 1;
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component,
                         component_name, status, visible, keep_alive, always_show,
                         creator, create_time, updater, update_time, deleted)
SELECT @new_id, '销售订单导入', 'erp:sale-order:import', 3, 8, 2638, '', '#', '', NULL,
       0, 1, 0, 1, '1', NOW(), '1', NOW(), 0
FROM DUAL WHERE @perm_exists = 0;
SET @menu_id := (SELECT id FROM system_menu WHERE permission = 'erp:sale-order:import');
SET @grant_exists := (SELECT COUNT(*) FROM system_role_menu WHERE role_id = 1 AND menu_id = @menu_id);
INSERT INTO system_role_menu (role_id, menu_id, creator, create_time, updater, update_time, deleted)
SELECT 1, @menu_id, '1', NOW(), '1', NOW(), 0 FROM DUAL
WHERE @menu_id IS NOT NULL AND @grant_exists = 0;
 
-- ------------- 3) 计量器具导入 -------------
SET @perm_exists := (SELECT COUNT(*) FROM system_menu WHERE permission = 'mes:dv-metering:import');
SET @new_id := IFNULL((SELECT MAX(id) FROM system_menu), 0) + 1;
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component,
                         component_name, status, visible, keep_alive, always_show,
                         creator, create_time, updater, update_time, deleted)
SELECT @new_id, '计量器具导入', 'mes:dv-metering:import', 3, 8, 5380, '', '#', '', NULL,
       0, 1, 0, 1, '1', NOW(), '1', NOW(), 0
FROM DUAL WHERE @perm_exists = 0;
SET @menu_id := (SELECT id FROM system_menu WHERE permission = 'mes:dv-metering:import');
SET @grant_exists := (SELECT COUNT(*) FROM system_role_menu WHERE role_id = 1 AND menu_id = @menu_id);
INSERT INTO system_role_menu (role_id, menu_id, creator, create_time, updater, update_time, deleted)
SELECT 1, @menu_id, '1', NOW(), '1', NOW(), 0 FROM DUAL
WHERE @menu_id IS NOT NULL AND @grant_exists = 0;
 
-- ------------- 4) 员工合同导入 -------------
SET @perm_exists := (SELECT COUNT(*) FROM system_menu WHERE permission = 'hrm:employee-contract:import');
SET @new_id := IFNULL((SELECT MAX(id) FROM system_menu), 0) + 1;
INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component,
                         component_name, status, visible, keep_alive, always_show,
                         creator, create_time, updater, update_time, deleted)
SELECT @new_id, '合同导入', 'hrm:employee-contract:import', 3, 5, 1063105, '', '#', '', NULL,
       0, 1, 0, 1, '1', NOW(), '1', NOW(), 0
FROM DUAL WHERE @perm_exists = 0;
SET @menu_id := (SELECT id FROM system_menu WHERE permission = 'hrm:employee-contract:import');
SET @grant_exists := (SELECT COUNT(*) FROM system_role_menu WHERE role_id = 1 AND menu_id = @menu_id);
INSERT INTO system_role_menu (role_id, menu_id, creator, create_time, updater, update_time, deleted)
SELECT 1, @menu_id, '1', NOW(), '1', NOW(), 0 FROM DUAL
WHERE @menu_id IS NOT NULL AND @grant_exists = 0;