2026-09-03-pl-plan-archive-price-perm.sql 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. -- 运输计划归档:查看单价金额按钮权限
  2. -- 设计: docs/superpowers/specs/2026-09-03-pl-plan-archive-price-permission-design.md
  3. SET NAMES utf8mb4;
  4. INSERT INTO `sys_menu` (
  5. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  6. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  7. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  8. )
  9. SELECT
  10. 'PL_PLAN_ARCHIVE_PRICE', '查看单价金额', 'PL_PLAN_ARCHIVE', 'F', '', '',
  11. 'pl:plan-archive:price', 1, '1', '1', 'shanxia2.0', 4, NULL,
  12. 'system', '', NOW(), NULL, NOW(), 0
  13. FROM DUAL
  14. WHERE NOT EXISTS (
  15. SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_PLAN_ARCHIVE_PRICE' AND `del_flag` = 0
  16. );
  17. -- 已拥有归档页(父菜单)的角色:补 price
  18. INSERT INTO `sys_role_menu` (
  19. `id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
  20. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  21. )
  22. SELECT
  23. REPLACE(UUID(), '-', ''),
  24. rm.role_id,
  25. 'PL_PLAN_ARCHIVE_PRICE',
  26. rm.tenant_no,
  27. 0,
  28. NULL,
  29. 'system',
  30. '',
  31. NOW(),
  32. NULL,
  33. NOW(),
  34. 0
  35. FROM `sys_role_menu` rm
  36. WHERE rm.menu_id = 'PL_PLAN_ARCHIVE'
  37. AND rm.del_flag = 0
  38. AND NOT EXISTS (
  39. SELECT 1 FROM `sys_role_menu` x
  40. WHERE x.role_id = rm.role_id
  41. AND x.menu_id = 'PL_PLAN_ARCHIVE_PRICE'
  42. AND x.del_flag = 0
  43. );
  44. -- 已拥有「归档」按钮的角色:补 price(防止仅有按钮无父菜单行时漏补)
  45. INSERT INTO `sys_role_menu` (
  46. `id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
  47. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  48. )
  49. SELECT
  50. REPLACE(UUID(), '-', ''),
  51. rm.role_id,
  52. 'PL_PLAN_ARCHIVE_PRICE',
  53. rm.tenant_no,
  54. 0,
  55. NULL,
  56. 'system',
  57. '',
  58. NOW(),
  59. NULL,
  60. NOW(),
  61. 0
  62. FROM `sys_role_menu` rm
  63. WHERE rm.menu_id = 'PL_PLAN_ARCHIVE_A'
  64. AND rm.del_flag = 0
  65. AND NOT EXISTS (
  66. SELECT 1 FROM `sys_role_menu` x
  67. WHERE x.role_id = rm.role_id
  68. AND x.menu_id = 'PL_PLAN_ARCHIVE_PRICE'
  69. AND x.del_flag = 0
  70. );