migration_20260725_pl_tripartite_menus.sql 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. -- 基础信息库:全部车辆/驾押人员拆分为三方与山峡四菜单
  2. -- 三方车辆(原全部车辆信息)
  3. UPDATE sys_menu
  4. SET menu_name = '三方车辆', order_num = 2, remark = '承运商/三方车辆', update_time = NOW()
  5. WHERE id = 'PL_VEHICLE' AND del_flag = 0;
  6. -- 三方驾押人员(新建)
  7. INSERT INTO sys_menu (
  8. id, menu_name, parent_id, menu_type, path, component, perms,
  9. is_frame, visible, status, tenant_no, order_num, remark,
  10. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  11. ) SELECT
  12. 'PL_PERSONNEL_CARRIER', '三方驾押人员', 'PL_GROUP_BASE', 'C',
  13. 'personnel-carrier', 'pl/personnel/index', 'pl:personnel-carrier:list',
  14. 1, '1', '1', 'shanxia2.0', 3, '非山峡驾押人员',
  15. 'system', '', NOW(), NULL, NOW(), 0
  16. FROM DUAL
  17. WHERE NOT EXISTS (
  18. SELECT 1 FROM sys_menu WHERE id = 'PL_PERSONNEL_CARRIER' AND del_flag = 0
  19. );
  20. -- 山峡自有车辆
  21. UPDATE sys_menu
  22. SET order_num = 4, update_time = NOW()
  23. WHERE id = 'PL_SELF_VEHICLE' AND del_flag = 0;
  24. -- 山峡驾押人员(原驾押人员信息)
  25. UPDATE sys_menu
  26. SET menu_name = '山峡驾押人员', order_num = 5, update_time = NOW()
  27. WHERE id = 'PL_DRIVER' AND del_flag = 0;
  28. -- 运输地址库顺延
  29. UPDATE sys_menu
  30. SET order_num = 6, update_time = NOW()
  31. WHERE id = 'PL_TRANSPORT_ADDRESS' AND del_flag = 0;
  32. -- 拥有 PL_DRIVER 或 PL_VEHICLE 权限的角色,补全三方驾押人员菜单
  33. INSERT INTO sys_role_menu (
  34. id, role_id, menu_id, tenant_no, order_num, remark,
  35. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  36. )
  37. SELECT DISTINCT
  38. CONCAT('PLPCM_', SUBSTRING(MD5(CONCAT(rm.role_id, '-PL_PERSONNEL_CARRIER')), 1, 24)),
  39. rm.role_id,
  40. 'PL_PERSONNEL_CARRIER',
  41. COALESCE(rm.tenant_no, 'shanxia2.0'),
  42. 0,
  43. 'pl personnel carrier menu auto grant',
  44. 'system',
  45. '',
  46. NOW(),
  47. NULL,
  48. NOW(),
  49. 0
  50. FROM sys_role_menu rm
  51. WHERE rm.del_flag = 0
  52. AND rm.menu_id IN ('PL_DRIVER', 'PL_VEHICLE')
  53. AND NOT EXISTS (
  54. SELECT 1
  55. FROM sys_role_menu x
  56. WHERE x.role_id = rm.role_id
  57. AND x.menu_id = 'PL_PERSONNEL_CARRIER'
  58. AND x.del_flag = 0
  59. );