-- 设备管理菜单,目标菜单表:sys_menu_wcs -- 可重复执行,不会重复插入同名同路径菜单。 INSERT INTO sys_menu_wcs (menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) SELECT '设备管理', 0, 1, 'deviceManagement', NULL, NULL, 'DeviceManagement', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', NOW(), '', NULL, 'WCS设备管理目录' WHERE NOT EXISTS ( SELECT 1 FROM sys_menu_wcs WHERE parent_id = 0 AND path = 'deviceManagement' ); SET @device_parent_id = ( SELECT menu_id FROM sys_menu_wcs WHERE parent_id = 0 AND path = 'deviceManagement' ORDER BY menu_id LIMIT 1 ); INSERT INTO sys_menu_wcs (menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) SELECT '设备监控', @device_parent_id, 1, 'monitoring', 'device/monitoring', NULL, 'DeviceMonitoring', 1, 0, 'C', '0', '0', 'device:monitor:view', 'dashboard', 'admin', NOW(), '', NULL, '输送机、堆垛机、RGV、机械手实时监控' WHERE NOT EXISTS ( SELECT 1 FROM sys_menu_wcs WHERE parent_id = @device_parent_id AND path = 'monitoring' ); INSERT INTO sys_menu_wcs (menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) SELECT '设备报警记录', @device_parent_id, 2, 'warring', 'device/warring/index', NULL, 'DeviceWarring', 1, 0, 'C', '0', '0', 'device:warring:list', 'bug', 'admin', NOW(), '', NULL, 'device_warring设备报警记录' WHERE NOT EXISTS ( SELECT 1 FROM sys_menu_wcs WHERE parent_id = @device_parent_id AND path = 'warring' ); SET @device_warring_id = ( SELECT menu_id FROM sys_menu_wcs WHERE parent_id = @device_parent_id AND path = 'warring' ORDER BY menu_id LIMIT 1 ); INSERT INTO sys_menu_wcs (menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) SELECT '报警记录导出', @device_warring_id, 1, '#', '', NULL, '', 1, 0, 'F', '0', '0', 'device:warring:export', '#', 'admin', NOW(), '', NULL, '设备报警记录导出按钮权限' WHERE NOT EXISTS ( SELECT 1 FROM sys_menu_wcs WHERE parent_id = @device_warring_id AND perms = 'device:warring:export' ); -- 将设备管理目录、页面和导出权限授予当前所有启用角色。 -- 后续新建角色仍可在角色管理页面中按需勾选。 INSERT INTO sys_role_menu (role_id, menu_id) SELECT role.role_id, menu.menu_id FROM sys_role role JOIN sys_menu_wcs menu ON menu.menu_id IN ( @device_parent_id, (SELECT monitor_menu.menu_id FROM sys_menu_wcs monitor_menu WHERE monitor_menu.parent_id = @device_parent_id AND monitor_menu.path = 'monitoring' ORDER BY monitor_menu.menu_id LIMIT 1), @device_warring_id, (SELECT export_menu.menu_id FROM sys_menu_wcs export_menu WHERE export_menu.parent_id = @device_warring_id AND export_menu.perms = 'device:warring:export' ORDER BY export_menu.menu_id LIMIT 1) ) WHERE role.status = '0' AND NOT EXISTS ( SELECT 1 FROM sys_role_menu role_menu WHERE role_menu.role_id = role.role_id AND role_menu.menu_id = menu.menu_id );