2026-08-08-quote-contract-approval-menus.sql 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. -- 报价单/合同:审批视图拆为独立菜单
  2. -- 1) 插入「报价单审批」「合同审批」
  3. -- 2) 调整 CRM 侧栏 order_num,使审批紧挨对应管理菜单
  4. -- 3) 曾拥有 list 菜单的角色,幂等挂上 approve(权限仍可在角色管理中单独收回)
  5. -- 注意:web-admin 开发环境默认 VITE_ACCESS_MODE=frontend,侧栏还依赖
  6. -- web-admin/src/router/modules/sqxp.ts 中的新路由。
  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. 'CRM3000000000000000000000000016',
  14. '报价单审批',
  15. 'CRM00000000000000000000000000001',
  16. 'C',
  17. 'quote-approval',
  18. '/crm/quote/approval/index',
  19. 'crm:quote:approve',
  20. 1, '1', '1', 'shanxia2.0', 6,
  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. -- 合同审批(紧挨合同管理;合同管理 order_num 同步调整为 7)
  37. INSERT INTO `sys_menu` (
  38. `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
  39. `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
  40. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  41. ) VALUES (
  42. 'CRM3000000000000000000000000021',
  43. '合同审批',
  44. 'CRM00000000000000000000000000001',
  45. 'C',
  46. 'contract-approval',
  47. '/crm/contract/approval/index',
  48. 'crm:contract:approve',
  49. 1, '1', '1', 'shanxia2.0', 8,
  50. '合同待审批/已审批独立入口',
  51. 'system', '', NOW(), NULL, NOW(), 0
  52. )
  53. ON DUPLICATE KEY UPDATE
  54. `menu_name` = VALUES(`menu_name`),
  55. `parent_id` = VALUES(`parent_id`),
  56. `path` = VALUES(`path`),
  57. `component` = VALUES(`component`),
  58. `perms` = VALUES(`perms`),
  59. `visible` = '1',
  60. `status` = '1',
  61. `order_num` = VALUES(`order_num`),
  62. `remark` = VALUES(`remark`),
  63. `del_flag` = 0,
  64. `update_time` = NOW();
  65. -- 侧栏顺序:报价管理 5、报价审批 6、合同管理 7、合同审批 8、调价函 9、客户 10、主体危化品 11
  66. UPDATE `sys_menu` SET `order_num` = 5, `update_time` = NOW()
  67. WHERE `id` = 'CRM3000000000000000000000000010' AND `del_flag` = 0;
  68. UPDATE `sys_menu` SET `order_num` = 7, `update_time` = NOW()
  69. WHERE `id` = 'CRM3000000000000000000000000020' AND `del_flag` = 0;
  70. UPDATE `sys_menu` SET `order_num` = 9, `update_time` = NOW()
  71. WHERE `id` = 'CRM3000000000000000000000000030' AND `del_flag` = 0;
  72. UPDATE `sys_menu` SET `order_num` = 10, `update_time` = NOW()
  73. WHERE `id` = 'CRM1000000000000000000000000002' AND `del_flag` = 0;
  74. UPDATE `sys_menu` SET `order_num` = 11, `update_time` = NOW()
  75. WHERE `id` = 'CRM3000000000000000000000000040' AND `del_flag` = 0;
  76. -- 角色:拥有报价单管理 → 挂上报价单审批
  77. INSERT INTO `sys_role_menu` (
  78. `id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
  79. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  80. )
  81. SELECT
  82. CONCAT('RMQ16_', UPPER(MD5(CONCAT(t.`role_id`, '|CRM3000000000000000000000000016')))),
  83. t.`role_id`,
  84. 'CRM3000000000000000000000000016',
  85. t.`tenant_no`,
  86. 0,
  87. 'migrated from crm:quote:list for quote approval menu',
  88. 'system',
  89. '',
  90. NOW(),
  91. NULL,
  92. NOW(),
  93. 0
  94. FROM (
  95. SELECT DISTINCT `role_id`, `tenant_no`
  96. FROM `sys_role_menu`
  97. WHERE `menu_id` = 'CRM3000000000000000000000000010'
  98. AND `del_flag` = 0
  99. ) t
  100. WHERE NOT EXISTS (
  101. SELECT 1
  102. FROM `sys_role_menu` x
  103. WHERE x.`role_id` = t.`role_id`
  104. AND x.`menu_id` = 'CRM3000000000000000000000000016'
  105. AND x.`del_flag` = 0
  106. );
  107. -- 角色:拥有合同管理 → 挂上合同审批
  108. INSERT INTO `sys_role_menu` (
  109. `id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
  110. `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
  111. )
  112. SELECT
  113. CONCAT('RMC21_', UPPER(MD5(CONCAT(t.`role_id`, '|CRM3000000000000000000000000021')))),
  114. t.`role_id`,
  115. 'CRM3000000000000000000000000021',
  116. t.`tenant_no`,
  117. 0,
  118. 'migrated from crm:contract:list for contract approval menu',
  119. 'system',
  120. '',
  121. NOW(),
  122. NULL,
  123. NOW(),
  124. 0
  125. FROM (
  126. SELECT DISTINCT `role_id`, `tenant_no`
  127. FROM `sys_role_menu`
  128. WHERE `menu_id` = 'CRM3000000000000000000000000020'
  129. AND `del_flag` = 0
  130. ) t
  131. WHERE NOT EXISTS (
  132. SELECT 1
  133. FROM `sys_role_menu` x
  134. WHERE x.`role_id` = t.`role_id`
  135. AND x.`menu_id` = 'CRM3000000000000000000000000021'
  136. AND x.`del_flag` = 0
  137. );