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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
| -- 补齐缺失的光伏电站管理 / 光伏逆变器管理菜单及按钮权限。
| -- 背景:20260807_energy_storage_monitoring_menu.sql 只对这两个菜单做了改名 UPDATE,
| -- 但菜单本身从未 INSERT(光伏相关页面/路由一直存在),导致角色编辑里看不到、
| -- 后端权限数组里也没有对应 perms,工作台光伏看板按权限展示时永远不显示。
| -- 参照 20260725_device_management_energy_storage_menu.sql 模板,幂等可重复执行。
|
| -- 光储监控设备管理目录(原设备管理,path = /deviceManagement)
| SET @device_monitoring_id := (
| SELECT menu_id
| FROM sys_menu
| WHERE parent_id = 0
| AND menu_type = 'M'
| AND (path = '/deviceManagement' OR perms = '/deviceManagement')
| ORDER BY menu_id
| LIMIT 1
| );
|
| -- 1. 光伏电站管理(order 2,与 20260807 改名脚本的排序一致)
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '光伏电站管理', @device_monitoring_id, 2, '/deviceManagement/photovoltaicStation/list',
| 'deviceManagement/photovoltaicStation', NULL, 1, 0, 'C', '0', 0,
| '/deviceManagement/photovoltaicStation', '#', 'admin', NOW(), '光伏电站管理页面'
| WHERE @device_monitoring_id IS NOT NULL
| AND NOT EXISTS (
| SELECT 1 FROM sys_menu
| WHERE parent_id = @device_monitoring_id
| AND (path = '/deviceManagement/photovoltaicStation/list'
| OR perms = '/deviceManagement/photovoltaicStation')
| );
|
| SET @photovoltaic_station_id := (
| SELECT menu_id
| FROM sys_menu
| WHERE parent_id = @device_monitoring_id
| AND (path = '/deviceManagement/photovoltaicStation/list'
| OR perms = '/deviceManagement/photovoltaicStation')
| ORDER BY menu_id
| LIMIT 1
| );
|
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '光伏查询', @photovoltaic_station_id, 1, '', NULL, NULL, 1, 0, 'F', '0', 0,
| '/deviceManagement/photovoltaicStation/select', '#', 'admin', NOW(), '光伏电站查询按钮权限'
| WHERE @photovoltaic_station_id IS NOT NULL
| AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @photovoltaic_station_id
| AND perms = '/deviceManagement/photovoltaicStation/select');
|
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '光伏新增', @photovoltaic_station_id, 2, '', NULL, NULL, 1, 0, 'F', '0', 0,
| '/deviceManagement/photovoltaicStation/add', '#', 'admin', NOW(), '光伏电站新增按钮权限'
| WHERE @photovoltaic_station_id IS NOT NULL
| AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @photovoltaic_station_id
| AND perms = '/deviceManagement/photovoltaicStation/add');
|
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '光伏删除', @photovoltaic_station_id, 3, '', NULL, NULL, 1, 0, 'F', '0', 0,
| '/deviceManagement/photovoltaicStation/del', '#', 'admin', NOW(), '光伏电站删除按钮权限'
| WHERE @photovoltaic_station_id IS NOT NULL
| AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @photovoltaic_station_id
| AND perms = '/deviceManagement/photovoltaicStation/del');
|
| -- 2. 光伏逆变器管理(order 4)
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '光伏逆变器管理', @device_monitoring_id, 4, '/deviceManagement/photovoltaicInverter/list',
| 'deviceManagement/photovoltaicInverter', NULL, 1, 0, 'C', '0', 0,
| '/deviceManagement/photovoltaicInverter', '#', 'admin', NOW(), '光伏逆变器管理页面'
| WHERE @device_monitoring_id IS NOT NULL
| AND NOT EXISTS (
| SELECT 1 FROM sys_menu
| WHERE parent_id = @device_monitoring_id
| AND (path = '/deviceManagement/photovoltaicInverter/list'
| OR perms = '/deviceManagement/photovoltaicInverter')
| );
|
| SET @photovoltaic_inverter_id := (
| SELECT menu_id
| FROM sys_menu
| WHERE parent_id = @device_monitoring_id
| AND (path = '/deviceManagement/photovoltaicInverter/list'
| OR perms = '/deviceManagement/photovoltaicInverter')
| ORDER BY menu_id
| LIMIT 1
| );
|
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '逆变器查询', @photovoltaic_inverter_id, 1, '', NULL, NULL, 1, 0, 'F', '0', 0,
| '/deviceManagement/photovoltaicInverter/select', '#', 'admin', NOW(), '光伏逆变器查询按钮权限'
| WHERE @photovoltaic_inverter_id IS NOT NULL
| AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @photovoltaic_inverter_id
| AND perms = '/deviceManagement/photovoltaicInverter/select');
|
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '逆变器新增', @photovoltaic_inverter_id, 2, '', NULL, NULL, 1, 0, 'F', '0', 0,
| '/deviceManagement/photovoltaicInverter/add', '#', 'admin', NOW(), '光伏逆变器新增按钮权限'
| WHERE @photovoltaic_inverter_id IS NOT NULL
| AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @photovoltaic_inverter_id
| AND perms = '/deviceManagement/photovoltaicInverter/add');
|
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '逆变器修改', @photovoltaic_inverter_id, 3, '', NULL, NULL, 1, 0, 'F', '0', 0,
| '/deviceManagement/photovoltaicInverter/update', '#', 'admin', NOW(), '光伏逆变器修改按钮权限'
| WHERE @photovoltaic_inverter_id IS NOT NULL
| AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @photovoltaic_inverter_id
| AND perms = '/deviceManagement/photovoltaicInverter/update');
|
| INSERT INTO sys_menu
| (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
| menu_type, visible, status, perms, icon, create_by, create_time, remark)
| SELECT '逆变器删除', @photovoltaic_inverter_id, 4, '', NULL, NULL, 1, 0, 'F', '0', 0,
| '/deviceManagement/photovoltaicInverter/del', '#', 'admin', NOW(), '光伏逆变器删除按钮权限'
| WHERE @photovoltaic_inverter_id IS NOT NULL
| AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @photovoltaic_inverter_id
| AND perms = '/deviceManagement/photovoltaicInverter/del');
|
| -- 3. 按 20260807 规范重排目录下子菜单顺序:
| -- 1=监控摄像头列表 2=光伏电站管理 3=储能电站管理 4=光伏逆变器管理 5=储能能量链管理
| UPDATE sys_menu
| SET order_num = CASE path
| WHEN '/deviceManagement/list' THEN 1
| WHEN '/deviceManagement/photovoltaicStation/list' THEN 2
| WHEN '/deviceManagement/energyStorage/list' THEN 3
| WHEN '/deviceManagement/photovoltaicInverter/list' THEN 4
| WHEN '/deviceManagement/energyChain/list' THEN 5
| ELSE order_num
| END, update_time = NOW()
| WHERE parent_id = @device_monitoring_id;
|
| -- 4. 授权:已拥有"光储监控设备管理"目录的角色,同步获得两个光伏菜单
| INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
| SELECT DISTINCT role_id, m.menu_id
| FROM sys_role_menu r
| JOIN sys_menu m ON m.parent_id = @device_monitoring_id
| AND m.path IN ('/deviceManagement/photovoltaicStation/list',
| '/deviceManagement/photovoltaicInverter/list')
| WHERE r.menu_id = @device_monitoring_id;
|
| -- 5. 管理员角色(role_id = 1)默认拥有
| INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
| SELECT 1, menu_id
| FROM sys_menu
| WHERE parent_id = @device_monitoring_id
| AND path IN ('/deviceManagement/photovoltaicStation/list',
| '/deviceManagement/photovoltaicInverter/list');
|
|