115 lines
4.0 KiB
SQL
115 lines
4.0 KiB
SQL
-- =============================================================================
|
||
-- 运输计划归档 · 菜单与按钮权限
|
||
-- 执行库:shanxia2.0 门户库(与 web-admin 同库)
|
||
-- 说明:可重复执行(ON DUPLICATE KEY UPDATE / NOT EXISTS)
|
||
-- 执行后:重新登录或刷新菜单缓存,侧栏「运输管理」下出现「运输计划归档」
|
||
-- =============================================================================
|
||
|
||
SET NAMES utf8mb4;
|
||
|
||
-- -----------------------------------------------------------------------------
|
||
-- 1. 菜单(C)+ 按钮权限(F)
|
||
-- 路由:/#/pl/plan-archive
|
||
-- -----------------------------------------------------------------------------
|
||
|
||
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
|
||
(
|
||
'PL_PLAN_ARCHIVE', '运输计划归档', 'PL_MENU_ROOT', 'C',
|
||
'plan-archive', 'pl/plan-archive/index', 'pl:plan-archive:list',
|
||
1, '1', '1', 'shanxia2.0', 11, NULL,
|
||
'system', '', NOW(), NULL, NOW(), 0
|
||
),
|
||
(
|
||
'PL_PLAN_ARCHIVE_Q', '查询', 'PL_PLAN_ARCHIVE', 'F',
|
||
'', '', 'pl:plan-archive:query',
|
||
1, '1', '1', 'shanxia2.0', 1, NULL,
|
||
'system', '', NOW(), NULL, NOW(), 0
|
||
),
|
||
(
|
||
'PL_PLAN_ARCHIVE_E', '编辑', 'PL_PLAN_ARCHIVE', 'F',
|
||
'', '', 'pl:plan-archive:edit',
|
||
1, '1', '1', 'shanxia2.0', 2, NULL,
|
||
'system', '', NOW(), NULL, NOW(), 0
|
||
),
|
||
(
|
||
'PL_PLAN_ARCHIVE_A', '归档', 'PL_PLAN_ARCHIVE', 'F',
|
||
'', '', 'pl:plan-archive:archive',
|
||
1, '1', '1', 'shanxia2.0', 3, NULL,
|
||
'system', '', NOW(), NULL, NOW(), 0
|
||
)
|
||
ON DUPLICATE KEY UPDATE
|
||
`menu_name` = VALUES(`menu_name`),
|
||
`parent_id` = VALUES(`parent_id`),
|
||
`menu_type` = VALUES(`menu_type`),
|
||
`path` = VALUES(`path`),
|
||
`component` = VALUES(`component`),
|
||
`perms` = VALUES(`perms`),
|
||
`visible` = VALUES(`visible`),
|
||
`status` = VALUES(`status`),
|
||
`order_num` = VALUES(`order_num`),
|
||
`update_time` = NOW(),
|
||
`del_flag` = 0;
|
||
|
||
-- -----------------------------------------------------------------------------
|
||
-- 2. 调整「危化品证上传」排序,排在归档菜单之后
|
||
-- -----------------------------------------------------------------------------
|
||
|
||
UPDATE `sys_menu`
|
||
SET `order_num` = 12, `update_time` = NOW()
|
||
WHERE `id` = 'PL_PLAN_CERT'
|
||
AND `del_flag` = 0
|
||
AND (`order_num` IS NULL OR `order_num` <> 12);
|
||
|
||
-- -----------------------------------------------------------------------------
|
||
-- 3.(可选)角色授权:为已拥有「运输计划」菜单的角色,自动勾选归档菜单及按钮
|
||
-- 若需手工在「系统管理 → 角色管理」里分配,可注释掉本节
|
||
-- -----------------------------------------------------------------------------
|
||
|
||
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
|
||
REPLACE(UUID(), '-', ''),
|
||
rm.`role_id`,
|
||
m.`menu_id`,
|
||
rm.`tenant_no`,
|
||
m.`order_num`,
|
||
'pl plan archive auto grant',
|
||
'system',
|
||
'',
|
||
NOW(),
|
||
NULL,
|
||
NOW(),
|
||
0
|
||
FROM `sys_role_menu` rm
|
||
INNER JOIN (
|
||
SELECT 'PL_PLAN_ARCHIVE' AS menu_id, 11 AS order_num UNION ALL
|
||
SELECT 'PL_PLAN_ARCHIVE_Q', 1 UNION ALL
|
||
SELECT 'PL_PLAN_ARCHIVE_E', 2 UNION ALL
|
||
SELECT 'PL_PLAN_ARCHIVE_A', 3
|
||
) m ON 1 = 1
|
||
WHERE rm.`menu_id` = 'PL_PLAN'
|
||
AND rm.`del_flag` = 0
|
||
AND NOT EXISTS (
|
||
SELECT 1
|
||
FROM `sys_role_menu` x
|
||
WHERE x.`role_id` = rm.`role_id`
|
||
AND x.`menu_id` = m.`menu_id`
|
||
AND x.`del_flag` = 0
|
||
);
|
||
|
||
-- -----------------------------------------------------------------------------
|
||
-- 4. 校验(执行后可查看结果)
|
||
-- -----------------------------------------------------------------------------
|
||
|
||
SELECT `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `order_num`
|
||
FROM `sys_menu`
|
||
WHERE `id` IN ('PL_PLAN_ARCHIVE', 'PL_PLAN_ARCHIVE_Q', 'PL_PLAN_ARCHIVE_E', 'PL_PLAN_ARCHIVE_A')
|
||
AND `del_flag` = 0
|
||
ORDER BY `id`;
|