-- 派车日历:运输管理 -> 库存管理之后。MySQL 5.7 / Web 菜单。 -- 目录+页面符合侧栏分组机制。沿用运输计划查看角色,不新增业务写权限。 -- 可重复执行;不恢复管理员已软删除的菜单或角色授权。 SET NAMES utf8mb4; START TRANSACTION; INSERT INTO sys_menu ( id,menu_name,parent_id,menu_type,path,component,perms,is_frame,visible,status, tenant_no,order_num,remark,create_by,create_dept_id,create_time,update_time,del_flag ) SELECT '54d662d4-e392-46ca-af4d-008de4c69379','派车日历',parent.id,'M','calendar-module',NULL,NULL, 1,'1','1',parent.tenant_no,COALESCE(stock.order_num,6)+1,'派车日历目录','system','',NOW(),NOW(),0 FROM sys_menu parent JOIN sys_menu root ON root.id=parent.parent_id AND root.tenant_no=parent.tenant_no JOIN sys_menu stock ON stock.parent_id=parent.id AND stock.tenant_no=parent.tenant_no WHERE parent.id='PL_MENU_ROOT' AND parent.path='/pl' AND parent.del_flag=0 AND parent.tenant_no='shanxia2.0' AND root.parent_id='0' AND root.path='/web' AND root.del_flag=0 AND stock.id='PL_GROUP_STOCK' AND stock.del_flag=0 AND NOT EXISTS (SELECT 1 FROM sys_menu existing WHERE existing.id='54d662d4-e392-46ca-af4d-008de4c69379' OR (existing.tenant_no=parent.tenant_no AND existing.parent_id=parent.id AND existing.path='calendar-module')); INSERT INTO sys_menu ( id,menu_name,parent_id,menu_type,path,component,perms,is_frame,visible,status, tenant_no,order_num,remark,create_by,create_dept_id,create_time,update_time,del_flag ) SELECT 'f9ec4b5b-44f8-4520-a1da-21ac070b2ed0','派车日历',folder.id,'C','dispatch-calendar', 'pl/dispatch-calendar/index','pl:dispatch-calendar:list',1,'1','1',folder.tenant_no,1, '按计划日期查看车辆运输任务','system','',NOW(),NOW(),0 FROM sys_menu folder JOIN sys_menu parent ON parent.id=folder.parent_id AND parent.tenant_no=folder.tenant_no AND parent.del_flag=0 JOIN sys_menu root ON root.id=parent.parent_id AND root.tenant_no=folder.tenant_no AND root.del_flag=0 WHERE folder.id='54d662d4-e392-46ca-af4d-008de4c69379' AND folder.del_flag=0 AND folder.tenant_no='shanxia2.0' AND parent.id='PL_MENU_ROOT' AND root.path='/web' AND root.parent_id='0' AND NOT EXISTS (SELECT 1 FROM sys_menu existing WHERE existing.id='f9ec4b5b-44f8-4520-a1da-21ac070b2ed0' OR (existing.tenant_no=folder.tenant_no AND existing.perms='pl:dispatch-calendar:list')); INSERT INTO sys_role_menu ( id,role_id,menu_id,tenant_no,order_num,remark,create_by,create_dept_id,create_time,update_time,del_flag ) SELECT UUID(),r.id,target.id,r.tenant_no,0,'沿用运输计划查看权限:派车日历','system','',NOW(),NOW(),0 FROM sys_role r JOIN sys_menu leaf ON leaf.perms='pl:dispatch-calendar:list' AND leaf.tenant_no=r.tenant_no AND leaf.del_flag=0 JOIN sys_menu folder ON folder.id=leaf.parent_id AND folder.tenant_no=r.tenant_no AND folder.del_flag=0 JOIN sys_menu parent ON parent.id=folder.parent_id AND parent.tenant_no=r.tenant_no AND parent.del_flag=0 JOIN sys_menu root ON root.id=parent.parent_id AND root.tenant_no=r.tenant_no AND root.del_flag=0 JOIN sys_menu target ON target.id IN (leaf.id,folder.id,parent.id,root.id) AND target.tenant_no=r.tenant_no WHERE r.tenant_no='shanxia2.0' AND r.del_flag=0 AND parent.id='PL_MENU_ROOT' AND root.parent_id='0' AND root.path='/web' AND EXISTS ( SELECT 1 FROM sys_role_menu access_row JOIN sys_menu plan_menu ON plan_menu.id=access_row.menu_id WHERE access_row.role_id=r.id AND access_row.tenant_no=r.tenant_no AND plan_menu.tenant_no=r.tenant_no AND access_row.del_flag=0 AND plan_menu.del_flag=0 AND plan_menu.perms='pl:plan:list' ) AND NOT EXISTS ( SELECT 1 FROM sys_role_menu existing WHERE existing.role_id=r.id AND existing.menu_id=target.id AND existing.tenant_no=r.tenant_no ); COMMIT;