160 lines
6.4 KiB
SQL
160 lines
6.4 KiB
SQL
-- 系统管理:新增二级目录「系统信息」「临时存放」,并迁移原子菜单 parent_id
|
||
-- 幂等可重复执行;与 web-admin/src/router/modules/sqxp.ts 对齐
|
||
-- 目录 id:SYSM...010 / SYSM...011
|
||
|
||
-- 1) 插入二级目录
|
||
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
|
||
'SYSM000000000000000000000000000010', '系统信息', 'SYSM000000000000000000000000000001',
|
||
'M', 'info', NULL, NULL, 1, '1', '1', 'shanxia2.0', 1, '系统管理-系统信息分组',
|
||
'system', '', NOW(), NULL, NOW(), 0
|
||
FROM DUAL
|
||
WHERE NOT EXISTS (
|
||
SELECT 1 FROM `sys_menu` WHERE `id` = 'SYSM000000000000000000000000000010' AND `del_flag` = 0
|
||
);
|
||
|
||
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
|
||
'SYSM000000000000000000000000000011', '临时存放', 'SYSM000000000000000000000000000001',
|
||
'M', 'temp', NULL, NULL, 1, '1', '1', 'shanxia2.0', 2, '系统管理-临时存放分组',
|
||
'system', '', NOW(), NULL, NOW(), 0
|
||
FROM DUAL
|
||
WHERE NOT EXISTS (
|
||
SELECT 1 FROM `sys_menu` WHERE `id` = 'SYSM000000000000000000000000000011' AND `del_flag` = 0
|
||
);
|
||
|
||
-- 2) 「系统信息」下菜单
|
||
UPDATE `sys_menu`
|
||
SET `parent_id` = 'SYSM000000000000000000000000000010',
|
||
`update_time` = NOW()
|
||
WHERE `del_flag` = 0
|
||
AND `id` IN (
|
||
'101', -- 租户管理
|
||
'102', -- 字典管理
|
||
'106', -- 菜单管理
|
||
'103', -- 组织管理
|
||
'105', -- 角色管理
|
||
'104', -- 用户管理
|
||
'108', -- 职位管理
|
||
'SYS_OPERLOG' -- 操作日志
|
||
);
|
||
|
||
-- 3) 「临时存放」下菜单(含隐藏附属页)
|
||
UPDATE `sys_menu`
|
||
SET `parent_id` = 'SYSM000000000000000000000000000011',
|
||
`update_time` = NOW()
|
||
WHERE `del_flag` = 0
|
||
AND `id` IN (
|
||
'SYS_APPROVER_SETTING', -- 报价、合同审批人设置
|
||
'CRM3000000000000000000000000040', -- 主体危化品能力
|
||
'CRM1000000000000000000000000010', -- 线索管理
|
||
'CRM1000000000000000000000000011', -- 线索详情
|
||
'CRM1000000000000000000000000012', -- 线索统计(若存在)
|
||
'CRM2000000000000000000000000010', -- 商机管理
|
||
'CRM2000000000000000000000000011', -- 商机详情
|
||
'CRM2000000000000000000000000012', -- 商机看板
|
||
'CRM2000000000000000000000000013', -- 销售漏斗
|
||
'CRM2000000000000000000000000014', -- 商机统计
|
||
'CRM1000000000000000000000000003', -- 公海池
|
||
'CRM1000000000000000000000000004' -- 公海池规则
|
||
);
|
||
|
||
-- 排序:系统信息内
|
||
UPDATE `sys_menu` SET `order_num` = 1, `update_time` = NOW() WHERE `id` = '101' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 2, `update_time` = NOW() WHERE `id` = '102' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 3, `update_time` = NOW() WHERE `id` = '106' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 4, `update_time` = NOW() WHERE `id` = '103' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 5, `update_time` = NOW() WHERE `id` = '105' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 6, `update_time` = NOW() WHERE `id` = '104' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 7, `update_time` = NOW() WHERE `id` = '108' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 8, `update_time` = NOW() WHERE `id` = 'SYS_OPERLOG' AND `del_flag` = 0;
|
||
|
||
-- 排序:临时存放内(可见菜单)
|
||
UPDATE `sys_menu` SET `order_num` = 1, `update_time` = NOW() WHERE `id` = 'SYS_APPROVER_SETTING' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 2, `update_time` = NOW() WHERE `id` = 'CRM3000000000000000000000000040' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 3, `update_time` = NOW() WHERE `id` = 'CRM1000000000000000000000000010' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 4, `update_time` = NOW() WHERE `id` = 'CRM2000000000000000000000000010' AND `del_flag` = 0;
|
||
UPDATE `sys_menu` SET `order_num` = 5, `update_time` = NOW() WHERE `id` = 'CRM1000000000000000000000000003' AND `del_flag` = 0;
|
||
|
||
-- 4) 角色菜单:曾拥有子菜单的角色,补挂二级目录(避免孤儿叶子)
|
||
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
|
||
CONCAT('RM_SYS_INFO_', UPPER(MD5(CONCAT(rm.role_id, ':SYSM000000000000000000000000000010')))),
|
||
rm.role_id,
|
||
'SYSM000000000000000000000000000010',
|
||
COALESCE(NULLIF(rm.tenant_no, ''), 'shanxia2.0'),
|
||
0,
|
||
'auto: system info group',
|
||
'system',
|
||
'',
|
||
NOW(),
|
||
NULL,
|
||
NOW(),
|
||
0
|
||
FROM `sys_role_menu` rm
|
||
WHERE rm.del_flag = 0
|
||
AND rm.menu_id IN (
|
||
'101', '102', '106', '103', '105', '104', '108', 'SYS_OPERLOG'
|
||
)
|
||
AND NOT EXISTS (
|
||
SELECT 1
|
||
FROM `sys_role_menu` x
|
||
WHERE x.role_id = rm.role_id
|
||
AND x.menu_id = 'SYSM000000000000000000000000000010'
|
||
AND x.del_flag = 0
|
||
)
|
||
GROUP BY rm.role_id, rm.tenant_no;
|
||
|
||
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
|
||
CONCAT('RM_SYS_TEMP_', UPPER(MD5(CONCAT(rm.role_id, ':SYSM000000000000000000000000000011')))),
|
||
rm.role_id,
|
||
'SYSM000000000000000000000000000011',
|
||
COALESCE(NULLIF(rm.tenant_no, ''), 'shanxia2.0'),
|
||
0,
|
||
'auto: system temp group',
|
||
'system',
|
||
'',
|
||
NOW(),
|
||
NULL,
|
||
NOW(),
|
||
0
|
||
FROM `sys_role_menu` rm
|
||
WHERE rm.del_flag = 0
|
||
AND rm.menu_id IN (
|
||
'SYS_APPROVER_SETTING',
|
||
'CRM3000000000000000000000000040',
|
||
'CRM1000000000000000000000000010',
|
||
'CRM1000000000000000000000000011',
|
||
'CRM1000000000000000000000000012',
|
||
'CRM2000000000000000000000000010',
|
||
'CRM2000000000000000000000000011',
|
||
'CRM2000000000000000000000000012',
|
||
'CRM2000000000000000000000000013',
|
||
'CRM2000000000000000000000000014',
|
||
'CRM1000000000000000000000000003',
|
||
'CRM1000000000000000000000000004'
|
||
)
|
||
AND NOT EXISTS (
|
||
SELECT 1
|
||
FROM `sys_role_menu` x
|
||
WHERE x.role_id = rm.role_id
|
||
AND x.menu_id = 'SYSM000000000000000000000000000011'
|
||
AND x.del_flag = 0
|
||
)
|
||
GROUP BY rm.role_id, rm.tenant_no;
|