Files
shanxia2.0/docs/sql/migrations/2026-09-14-mini-pl-plan-webview-menus.sql
T
2026-09-17 09:10:10 +08:00

58 lines
2.1 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.
-- 小程序:运输管理 → 运输计划(WebView 管理端全量,排在「运输计划单」之后)
-- 说明:移动端「运输管理」父菜单 MINI_PL_ROOT 在测试/生产均已存在,本脚本不再插入父级。
SET NAMES utf8mb4;
-- 叶子:运输计划(WebView)
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
'MINI_PL_PLAN_WEBVIEW', '运输计划', 'MINI_PL_ROOT', 'C', 'mp-webview', NULL,
'mini:pl:plan:manage',
1, '1', '1', 'shanxia2.0', 4, '小程序 WebView 运输计划(管理端全量)',
'system', '', NOW(), NULL, NOW(), 0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM `sys_menu` WHERE `id` = 'MINI_PL_PLAN_WEBVIEW' AND `del_flag` = 0
);
-- 角色绑定:已有 Web 运输计划能力的角色(PL_PLAN 或 pl:plan:* 按钮)
-- 排除现场人员 / 司机 / 押运员 / 值班人员;并补齐祖先 移动端根 + 运输管理
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(r.id, '|', m.menu_id, '|mini-pl-plan-webview|v1')),
r.id,
m.menu_id,
IFNULL(NULLIF(r.tenant_no, ''), 'shanxia2.0'),
0,
'小程序 WebView 运输计划',
'system', '', NOW(), NULL, NOW(), 0
FROM `sys_role` r
JOIN (
SELECT '1' AS menu_id UNION ALL
SELECT 'MINI_PL_ROOT' UNION ALL
SELECT 'MINI_PL_PLAN_WEBVIEW'
) m
WHERE r.del_flag = 0
AND r.role_name NOT IN ('现场人员', '司机', '押运员', '值班人员')
AND EXISTS (
SELECT 1
FROM `sys_role_menu` rm
JOIN `sys_menu` sm ON sm.id = rm.menu_id AND sm.del_flag = 0
WHERE rm.role_id = r.id
AND rm.del_flag = 0
AND (
rm.menu_id = 'PL_PLAN'
OR (sm.perms IS NOT NULL AND sm.perms LIKE 'pl:plan:%')
)
)
AND NOT EXISTS (
SELECT 1 FROM `sys_role_menu` x
WHERE x.role_id = r.id AND x.menu_id = m.menu_id AND x.del_flag = 0
);