2026-10-25-pl-dispatch-calendar-menu.sql 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. -- 派车日历:运输管理 -> 库存管理之后。MySQL 5.7 / Web 菜单。
  2. -- 目录+页面符合侧栏分组机制。沿用运输计划查看角色,不新增业务写权限。
  3. -- 可重复执行;不恢复管理员已软删除的菜单或角色授权。
  4. SET NAMES utf8mb4;
  5. START TRANSACTION;
  6. INSERT INTO sys_menu (
  7. id,menu_name,parent_id,menu_type,path,component,perms,is_frame,visible,status,
  8. tenant_no,order_num,remark,create_by,create_dept_id,create_time,update_time,del_flag
  9. )
  10. SELECT '54d662d4-e392-46ca-af4d-008de4c69379','派车日历',parent.id,'M','calendar-module',NULL,NULL,
  11. 1,'1','1',parent.tenant_no,COALESCE(stock.order_num,6)+1,'派车日历目录','system','',NOW(),NOW(),0
  12. FROM sys_menu parent
  13. JOIN sys_menu root ON root.id=parent.parent_id AND root.tenant_no=parent.tenant_no
  14. JOIN sys_menu stock ON stock.parent_id=parent.id AND stock.tenant_no=parent.tenant_no
  15. WHERE parent.id='PL_MENU_ROOT' AND parent.path='/pl' AND parent.del_flag=0 AND parent.tenant_no='shanxia2.0'
  16. AND root.parent_id='0' AND root.path='/web' AND root.del_flag=0
  17. AND stock.id='PL_GROUP_STOCK' AND stock.del_flag=0
  18. AND NOT EXISTS (SELECT 1 FROM sys_menu existing WHERE existing.id='54d662d4-e392-46ca-af4d-008de4c69379'
  19. OR (existing.tenant_no=parent.tenant_no AND existing.parent_id=parent.id AND existing.path='calendar-module'));
  20. INSERT INTO sys_menu (
  21. id,menu_name,parent_id,menu_type,path,component,perms,is_frame,visible,status,
  22. tenant_no,order_num,remark,create_by,create_dept_id,create_time,update_time,del_flag
  23. )
  24. SELECT 'f9ec4b5b-44f8-4520-a1da-21ac070b2ed0','派车日历',folder.id,'C','dispatch-calendar',
  25. 'pl/dispatch-calendar/index','pl:dispatch-calendar:list',1,'1','1',folder.tenant_no,1,
  26. '按计划日期查看车辆运输任务','system','',NOW(),NOW(),0
  27. FROM sys_menu folder
  28. JOIN sys_menu parent ON parent.id=folder.parent_id AND parent.tenant_no=folder.tenant_no AND parent.del_flag=0
  29. JOIN sys_menu root ON root.id=parent.parent_id AND root.tenant_no=folder.tenant_no AND root.del_flag=0
  30. WHERE folder.id='54d662d4-e392-46ca-af4d-008de4c69379' AND folder.del_flag=0 AND folder.tenant_no='shanxia2.0'
  31. AND parent.id='PL_MENU_ROOT' AND root.path='/web' AND root.parent_id='0'
  32. AND NOT EXISTS (SELECT 1 FROM sys_menu existing WHERE existing.id='f9ec4b5b-44f8-4520-a1da-21ac070b2ed0'
  33. OR (existing.tenant_no=folder.tenant_no AND existing.perms='pl:dispatch-calendar:list'));
  34. INSERT INTO sys_role_menu (
  35. id,role_id,menu_id,tenant_no,order_num,remark,create_by,create_dept_id,create_time,update_time,del_flag
  36. )
  37. SELECT UUID(),r.id,target.id,r.tenant_no,0,'沿用运输计划查看权限:派车日历','system','',NOW(),NOW(),0
  38. FROM sys_role r
  39. JOIN sys_menu leaf ON leaf.perms='pl:dispatch-calendar:list' AND leaf.tenant_no=r.tenant_no AND leaf.del_flag=0
  40. JOIN sys_menu folder ON folder.id=leaf.parent_id AND folder.tenant_no=r.tenant_no AND folder.del_flag=0
  41. JOIN sys_menu parent ON parent.id=folder.parent_id AND parent.tenant_no=r.tenant_no AND parent.del_flag=0
  42. JOIN sys_menu root ON root.id=parent.parent_id AND root.tenant_no=r.tenant_no AND root.del_flag=0
  43. JOIN sys_menu target ON target.id IN (leaf.id,folder.id,parent.id,root.id) AND target.tenant_no=r.tenant_no
  44. WHERE r.tenant_no='shanxia2.0' AND r.del_flag=0
  45. AND parent.id='PL_MENU_ROOT' AND root.parent_id='0' AND root.path='/web'
  46. AND EXISTS (
  47. SELECT 1 FROM sys_role_menu access_row JOIN sys_menu plan_menu ON plan_menu.id=access_row.menu_id
  48. WHERE access_row.role_id=r.id AND access_row.tenant_no=r.tenant_no AND plan_menu.tenant_no=r.tenant_no
  49. AND access_row.del_flag=0 AND plan_menu.del_flag=0 AND plan_menu.perms='pl:plan:list'
  50. )
  51. AND NOT EXISTS (
  52. 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
  53. );
  54. COMMIT;