-- 小程序运输管理 -> 派车日历。MySQL 5.7;仅新增查看入口和祖先授权。 -- 沿用运输计划/派车日历查看角色,不恢复管理员软删除的菜单或授权。 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 '9c3e5ab2-3ef2-4c71-a385-7335d08df4ba','派车日历',p.id,'C','mp-webview',NULL, 'mini:pl:dispatch-calendar:list',1,'1','1',p.tenant_no,7,'小程序 H5 按日期纵向派车日历','system','',NOW(),NOW(),0 FROM sys_menu p JOIN sys_menu root ON root.id=p.parent_id AND root.tenant_no=p.tenant_no WHERE p.id='MINI_PL_ROOT' AND p.path='/mini/pl' AND p.del_flag=0 AND p.tenant_no='shanxia2.0' AND root.parent_id='0' AND root.path='/mini' AND root.del_flag=0 AND NOT EXISTS (SELECT 1 FROM sys_menu existing WHERE existing.id='9c3e5ab2-3ef2-4c71-a385-7335d08df4ba' OR (existing.tenant_no=p.tenant_no AND existing.perms='mini: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='mini:pl:dispatch-calendar:list' AND leaf.tenant_no=r.tenant_no AND leaf.del_flag=0 JOIN sys_menu p ON p.id=leaf.parent_id AND p.tenant_no=r.tenant_no AND p.del_flag=0 JOIN sys_menu root ON root.id=p.parent_id AND root.tenant_no=r.tenant_no AND root.del_flag=0 JOIN sys_menu target ON target.id IN (leaf.id,p.id,root.id) AND target.tenant_no=r.tenant_no WHERE r.tenant_no='shanxia2.0' AND r.del_flag=0 AND p.id='MINI_PL_ROOT' AND p.path='/mini/pl' AND root.parent_id='0' AND root.path='/mini' AND EXISTS ( SELECT 1 FROM sys_role_menu access_row JOIN sys_menu source ON source.id=access_row.menu_id WHERE access_row.role_id=r.id AND access_row.tenant_no=r.tenant_no AND source.tenant_no=r.tenant_no AND access_row.del_flag=0 AND source.del_flag=0 AND source.perms IN ('pl:plan:list','pl:dispatch-calendar:list','mini:pl:plan:manage') ) 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;