Files
shanxia2.0/docs/sql/migrate_crm_menu_groups_20261004.sql
T
2026-10-05 12:57:51 +08:00

243 lines
7.4 KiB
SQL

-- CRM 管理下增加四级分组目录,叶子菜单改挂到对应分组
-- 产品管理 / 报价单管理 / 合同管理 / 客户管理
-- 2026-10-04
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`
)
SELECT * FROM (
SELECT
'CRM00000000000000000000000000010' AS `id`,
'产品管理' AS `menu_name`,
'CRM00000000000000000000000000001' AS `parent_id`,
'M' AS `menu_type`,
'product-group' AS `path`,
NULL AS `component`,
NULL AS `perms`,
1 AS `is_frame`,
'1' AS `visible`,
'1' AS `status`,
'shanxia2.0' AS `tenant_no`,
1 AS `order_num`,
'CRM 产品管理分组' AS `remark`,
'system' AS `create_by`,
'' AS `create_dept_id`,
NOW() AS `create_time`,
NULL AS `update_by`,
NOW() AS `update_time`,
0 AS `del_flag`
) AS tmp
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu` WHERE `id` = 'CRM00000000000000000000000000010'
);
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`
)
SELECT * FROM (
SELECT
'CRM00000000000000000000000000020' AS `id`,
'报价单管理' AS `menu_name`,
'CRM00000000000000000000000000001' AS `parent_id`,
'M' AS `menu_type`,
'quote-group' AS `path`,
NULL AS `component`,
NULL AS `perms`,
1 AS `is_frame`,
'1' AS `visible`,
'1' AS `status`,
'shanxia2.0' AS `tenant_no`,
2 AS `order_num`,
'CRM 报价单管理分组' AS `remark`,
'system' AS `create_by`,
'' AS `create_dept_id`,
NOW() AS `create_time`,
NULL AS `update_by`,
NOW() AS `update_time`,
0 AS `del_flag`
) AS tmp
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu` WHERE `id` = 'CRM00000000000000000000000000020'
);
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`
)
SELECT * FROM (
SELECT
'CRM00000000000000000000000000030' AS `id`,
'合同管理' AS `menu_name`,
'CRM00000000000000000000000000001' AS `parent_id`,
'M' AS `menu_type`,
'contract-group' AS `path`,
NULL AS `component`,
NULL AS `perms`,
1 AS `is_frame`,
'1' AS `visible`,
'1' AS `status`,
'shanxia2.0' AS `tenant_no`,
3 AS `order_num`,
'CRM 合同管理分组' AS `remark`,
'system' AS `create_by`,
'' AS `create_dept_id`,
NOW() AS `create_time`,
NULL AS `update_by`,
NOW() AS `update_time`,
0 AS `del_flag`
) AS tmp
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu` WHERE `id` = 'CRM00000000000000000000000000030'
);
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`
)
SELECT * FROM (
SELECT
'CRM00000000000000000000000000040' AS `id`,
'客户管理' AS `menu_name`,
'CRM00000000000000000000000000001' AS `parent_id`,
'M' AS `menu_type`,
'customer-group' AS `path`,
NULL AS `component`,
NULL AS `perms`,
1 AS `is_frame`,
'1' AS `visible`,
'1' AS `status`,
'shanxia2.0' AS `tenant_no`,
4 AS `order_num`,
'CRM 客户管理分组' AS `remark`,
'system' AS `create_by`,
'' AS `create_dept_id`,
NOW() AS `create_time`,
NULL AS `update_by`,
NOW() AS `update_time`,
0 AS `del_flag`
) AS tmp
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu` WHERE `id` = 'CRM00000000000000000000000000040'
);
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000010', `order_num` = 1, `update_time` = NOW()
WHERE `id` = 'CRM00000000000000000000000000003' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000010', `order_num` = 2, `update_time` = NOW()
WHERE `id` = 'CRM00000000000000000000000000002' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000020', `order_num` = 1, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000010' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000020', `order_num` = 2, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000016' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000020', `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000015' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000030', `order_num` = 1, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000020' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000030', `order_num` = 2, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000021' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000030', `order_num` = 3, `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000030' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000030', `update_time` = NOW()
WHERE `id` = 'CRM3000000000000000000000000026' AND `del_flag` = 0;
UPDATE `sys_menu`
SET `parent_id` = 'CRM00000000000000000000000000040', `order_num` = 1, `update_time` = NOW()
WHERE `id` = 'CRM1000000000000000000000000002' AND `del_flag` = 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
MD5(CONCAT(src.`role_id`, '-', src.`group_menu_id`)),
src.`role_id`,
src.`group_menu_id`,
src.`tenant_no`,
0,
NULL,
src.`create_by`,
'',
NOW(),
src.`create_by`,
NOW(),
0
FROM (
SELECT DISTINCT
rm.`role_id`,
rm.`tenant_no`,
rm.`create_by`,
'CRM00000000000000000000000000010' AS `group_menu_id`
FROM `sys_role_menu` rm
WHERE rm.`del_flag` = 0
AND rm.`menu_id` IN (
'CRM00000000000000000000000000002',
'CRM00000000000000000000000000003'
)
UNION
SELECT DISTINCT
rm.`role_id`,
rm.`tenant_no`,
rm.`create_by`,
'CRM00000000000000000000000000020'
FROM `sys_role_menu` rm
WHERE rm.`del_flag` = 0
AND rm.`menu_id` IN (
'CRM3000000000000000000000000010',
'CRM3000000000000000000000000015',
'CRM3000000000000000000000000016'
)
UNION
SELECT DISTINCT
rm.`role_id`,
rm.`tenant_no`,
rm.`create_by`,
'CRM00000000000000000000000000030'
FROM `sys_role_menu` rm
WHERE rm.`del_flag` = 0
AND rm.`menu_id` IN (
'CRM3000000000000000000000000020',
'CRM3000000000000000000000000021',
'CRM3000000000000000000000000026',
'CRM3000000000000000000000000030'
)
UNION
SELECT DISTINCT
rm.`role_id`,
rm.`tenant_no`,
rm.`create_by`,
'CRM00000000000000000000000000040'
FROM `sys_role_menu` rm
WHERE rm.`del_flag` = 0
AND rm.`menu_id` = 'CRM1000000000000000000000000002'
) src
WHERE NOT EXISTS (
SELECT 1
FROM `sys_role_menu` exist
WHERE exist.`role_id` = src.`role_id`
AND exist.`menu_id` = src.`group_menu_id`
AND exist.`del_flag` = 0
);