Files
shanxia2.0/docs/sql/migrations/2026-10-25-mini-dispatch-calendar-menu.sql
T

39 lines
2.3 KiB
SQL

-- 小程序运输管理 -> 派车日历。MySQL 5.7;仅新增查看入口和祖先授权。
-- 沿用运输计划/派车日历查看角色,不恢复管理员软删除的菜单或授权。
SET NAMES utf8mb4;
START TRANSACTION;
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_time,del_flag
)
SELECT '9c3e5ab2-3ef2-4c71-a385-7335d08df4ba','派车日历',p.id,'C','mp-webview',NULL,
'mini:pl:dispatch-calendar:list',1,'1','1',p.tenant_no,7,'小程序 H5 按日期纵向派车日历','system','',NOW(),NOW(),0
FROM sys_menu p
JOIN sys_menu root ON root.id=p.parent_id AND root.tenant_no=p.tenant_no
WHERE p.id='MINI_PL_ROOT' AND p.path='/mini/pl' AND p.del_flag=0 AND p.tenant_no='shanxia2.0'
AND root.parent_id='0' AND root.path='/mini' AND root.del_flag=0
AND NOT EXISTS (SELECT 1 FROM sys_menu existing WHERE existing.id='9c3e5ab2-3ef2-4c71-a385-7335d08df4ba'
OR (existing.tenant_no=p.tenant_no AND existing.perms='mini:pl:dispatch-calendar:list'));
INSERT INTO sys_role_menu (
id,role_id,menu_id,tenant_no,order_num,remark,create_by,create_dept_id,create_time,update_time,del_flag
)
SELECT UUID(),r.id,target.id,r.tenant_no,0,'派车日历:沿用运输查看权限','system','',NOW(),NOW(),0
FROM sys_role r
JOIN sys_menu leaf ON leaf.perms='mini:pl:dispatch-calendar:list' AND leaf.tenant_no=r.tenant_no AND leaf.del_flag=0
JOIN sys_menu p ON p.id=leaf.parent_id AND p.tenant_no=r.tenant_no AND p.del_flag=0
JOIN sys_menu root ON root.id=p.parent_id AND root.tenant_no=r.tenant_no AND root.del_flag=0
JOIN sys_menu target ON target.id IN (leaf.id,p.id,root.id) AND target.tenant_no=r.tenant_no
WHERE r.tenant_no='shanxia2.0' AND r.del_flag=0
AND p.id='MINI_PL_ROOT' AND p.path='/mini/pl' AND root.parent_id='0' AND root.path='/mini'
AND EXISTS (
SELECT 1 FROM sys_role_menu access_row JOIN sys_menu source ON source.id=access_row.menu_id
WHERE access_row.role_id=r.id AND access_row.tenant_no=r.tenant_no AND source.tenant_no=r.tenant_no
AND access_row.del_flag=0 AND source.del_flag=0
AND source.perms IN ('pl:plan:list','pl:dispatch-calendar:list','mini:pl:plan:manage')
)
AND NOT EXISTS (SELECT 1 FROM sys_role_menu existing
WHERE existing.role_id=r.id AND existing.menu_id=target.id AND existing.tenant_no=r.tenant_no);
COMMIT;