Files
shanxia2.0/docs/sql/migrations/2026-08-08-merge-approver-setting-menu.sql
T
2026-08-08 20:43:48 +08:00

83 lines
2.4 KiB
SQL

-- 合并 CRM「报价单/合同审批人设置」为系统管理下「报价、合同审批人设置」
-- 1) 插入新菜单 SYS_APPROVER_SETTING
-- 2) 软隐藏旧 CRM 菜单 CRM…0015 / CRM…0026
-- 3) 曾拥有任一旧菜单的角色,自动挂上新菜单(幂等)
-- 注意:web-admin 开发环境默认 VITE_ACCESS_MODE=frontend,侧栏还依赖
-- web-admin/src/router/modules/sqxp.ts 中新路由与旧路由 isHide=true。
-- 新菜单:系统管理 → 报价、合同审批人设置
INSERT INTO `sys_menu` (
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
) VALUES (
'SYS_APPROVER_SETTING',
'报价、合同审批人设置',
'SYSM000000000000000000000000000001',
'C',
'approver-setting',
'/system/approver-setting/index',
'system:approverSetting',
1, '1', '1', 'shanxia2.0', 9,
'租户级默认报价/合同审批人(合并页)',
'system', '', NOW(), NULL, NOW(), 0
)
ON DUPLICATE KEY UPDATE
`menu_name` = VALUES(`menu_name`),
`parent_id` = VALUES(`parent_id`),
`path` = VALUES(`path`),
`component` = VALUES(`component`),
`perms` = VALUES(`perms`),
`visible` = '1',
`status` = '1',
`order_num` = VALUES(`order_num`),
`remark` = VALUES(`remark`),
`del_flag` = 0,
`update_time` = NOW();
-- 软隐藏旧 CRM 菜单
UPDATE `sys_menu`
SET `visible` = '0',
`update_time` = NOW()
WHERE `id` IN (
'CRM3000000000000000000000000015',
'CRM3000000000000000000000000026'
)
AND `del_flag` = 0
AND `visible` <> '0';
-- 角色菜单迁移:拥有任一旧菜单 → 挂上新菜单
INSERT INTO `sys_role_menu` (
`id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`,
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
)
SELECT
UPPER(REPLACE(UUID(), '-', '')),
t.`role_id`,
'SYS_APPROVER_SETTING',
t.`tenant_no`,
0,
'migrated from quote/contract approver setting menus',
'system',
'',
NOW(),
NULL,
NOW(),
0
FROM (
SELECT DISTINCT `role_id`, `tenant_no`
FROM `sys_role_menu`
WHERE `menu_id` IN (
'CRM3000000000000000000000000015',
'CRM3000000000000000000000000026'
)
AND `del_flag` = 0
) t
WHERE NOT EXISTS (
SELECT 1
FROM `sys_role_menu` x
WHERE x.`role_id` = t.`role_id`
AND x.`menu_id` = 'SYS_APPROVER_SETTING'
AND x.`del_flag` = 0
);