2026-10-08-sample-freight-menu.sql 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. -- =============================================================================
  2. -- 运费信息菜单:插入 sys_menu,并授权给已有「样本信息管理」的角色
  3. -- 菜单位置:样本信息管理 之下、缴费财务确认及开票 之上
  4. -- id: 50000000000000000000000000000021
  5. -- perms: cell-storage:sample-freight:list
  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. )
  12. SELECT
  13. '50000000000000000000000000000021',
  14. '运费信息',
  15. 'CEL00000000000000000000000000001',
  16. 'C',
  17. 'sample-freight',
  18. '/cell-storage/sample-freight/index',
  19. 'cell-storage:sample-freight:list',
  20. 1,
  21. '1',
  22. '1',
  23. 'zkxw',
  24. (SELECT order_num + 1 FROM sys_menu WHERE id = '50000000000000000000000000000013' AND del_flag = 0 LIMIT 1),
  25. '细胞存储:运费信息',
  26. NULL,
  27. '',
  28. NOW(),
  29. NULL,
  30. NOW(),
  31. 0
  32. FROM DUAL
  33. WHERE NOT EXISTS (
  34. SELECT 1 FROM sys_menu m
  35. WHERE m.del_flag = 0
  36. AND (
  37. m.id = '50000000000000000000000000000021'
  38. OR m.perms = 'cell-storage:sample-freight:list'
  39. )
  40. );
  41. -- 已有样本信息管理权限的角色补授权(幂等)
  42. INSERT INTO sys_role_menu (
  43. id, role_id, menu_id, tenant_no, order_num, remark,
  44. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  45. )
  46. SELECT
  47. MD5(CONCAT(r.id, '|50000000000000000000000000000021')),
  48. r.id,
  49. '50000000000000000000000000000021',
  50. IFNULL(NULLIF(r.tenant_no, ''), 'zkxw'),
  51. 0,
  52. 'grant sample-freight to sample-info roles',
  53. NULL,
  54. '',
  55. NOW(),
  56. NULL,
  57. NOW(),
  58. 0
  59. FROM sys_role r
  60. INNER JOIN sys_role_menu rm
  61. ON rm.role_id = r.id
  62. AND rm.menu_id = '50000000000000000000000000000013'
  63. AND rm.del_flag = 0
  64. WHERE r.del_flag = 0
  65. AND NOT EXISTS (
  66. SELECT 1 FROM sys_role_menu x
  67. WHERE x.role_id = r.id
  68. AND x.menu_id = '50000000000000000000000000000021'
  69. AND x.del_flag = 0
  70. );