Files
shanxia2.0/docs/sql/20260625_pl_plan_archive_menu.sql
T
2026-06-25 08:06:32 +08:00

115 lines
4.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================================================
-- 运输计划归档 · 菜单与按钮权限
-- 执行库: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`;