2026-08-08-merge-approver-setting-menu.sql 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. -- 合并 CRM「报价单/合同审批人设置」为系统管理下「报价、合同审批人设置」
  2. -- 1) 插入新菜单 SYS_APPROVER_SETTING
  3. -- 2) 软隐藏旧 CRM 菜单 CRM…0015 / CRM…0026
  4. -- 3) 曾拥有任一旧菜单的角色,自动挂上新菜单(幂等)
  5. -- 注意:web-admin 开发环境默认 VITE_ACCESS_MODE=frontend,侧栏还依赖
  6. -- web-admin/src/router/modules/sqxp.ts 中新路由与旧路由 isHide=true。
  7. -- 新菜单:系统管理 → 报价、合同审批人设置
  8. INSERT INTO `sys_menu` (
  9. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  10. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  11. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  12. ) VALUES (
  13. 'SYS_APPROVER_SETTING',
  14. '报价、合同审批人设置',
  15. 'SYSM000000000000000000000000000001',
  16. 'C',
  17. 'approver-setting',
  18. '/system/approver-setting/index',
  19. 'system:approverSetting',
  20. 1, '1', '1', 'shanxia2.0', 9,
  21. '租户级默认报价/合同审批人(合并页)',
  22. 'system', '', NOW(), NULL, NOW(), 0
  23. )
  24. ON DUPLICATE KEY UPDATE
  25. `menu_name` = VALUES(`menu_name`),
  26. `parent_id` = VALUES(`parent_id`),
  27. `path` = VALUES(`path`),
  28. `component` = VALUES(`component`),
  29. `perms` = VALUES(`perms`),
  30. `visible` = '1',
  31. `status` = '1',
  32. `order_num` = VALUES(`order_num`),
  33. `remark` = VALUES(`remark`),
  34. `del_flag` = 0,
  35. `update_time` = NOW();
  36. -- 软隐藏旧 CRM 菜单
  37. UPDATE `sys_menu`
  38. SET `visible` = '0',
  39. `update_time` = NOW()
  40. WHERE `id` IN (
  41. 'CRM3000000000000000000000000015',
  42. 'CRM3000000000000000000000000026'
  43. )
  44. AND `del_flag` = 0
  45. AND `visible` <> '0';
  46. -- 角色菜单迁移:拥有任一旧菜单 → 挂上新菜单
  47. INSERT INTO `sys_role_menu` (
  48. `id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
  49. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  50. )
  51. SELECT
  52. UPPER(REPLACE(UUID(), '-', '')),
  53. t.`role_id`,
  54. 'SYS_APPROVER_SETTING',
  55. t.`tenant_no`,
  56. 0,
  57. 'migrated from quote/contract approver setting menus',
  58. 'system',
  59. '',
  60. NOW(),
  61. NULL,
  62. NOW(),
  63. 0
  64. FROM (
  65. SELECT DISTINCT `role_id`, `tenant_no`
  66. FROM `sys_role_menu`
  67. WHERE `menu_id` IN (
  68. 'CRM3000000000000000000000000015',
  69. 'CRM3000000000000000000000000026'
  70. )
  71. AND `del_flag` = 0
  72. ) t
  73. WHERE NOT EXISTS (
  74. SELECT 1
  75. FROM `sys_role_menu` x
  76. WHERE x.`role_id` = t.`role_id`
  77. AND x.`menu_id` = 'SYS_APPROVER_SETTING'
  78. AND x.`del_flag` = 0
  79. );