fix: 完善日计划作业视图与权限

This commit is contained in:
zhouz
2026-08-14 15:49:54 +08:00
parent db273e3e1d
commit 54d6faffbc
5 changed files with 141 additions and 41 deletions

View File

@@ -65,20 +65,49 @@ WHERE menu.id = COALESCE(
AND menu.deleted=b'0'
AND NOT EXISTS (SELECT 1 FROM system_menu existing WHERE existing.permission=permission.code AND existing.deleted=b'0');
-- 作业权限归属于日计划作业
-- 作业页面独立挂载自身实际使用的按钮权限,避免仅授权作业菜单时按钮全部不可见
INSERT INTO system_menu
(id, name, permission, type, sort, parent_id, path, icon, component, component_name,
status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
SELECT 2093000000000000120, '日计划作业操作', 'lms:daily-plan:operate', 3, 1, menu.id,
SELECT permission.id, permission.name, permission.code, 3, permission.sort, menu.id,
'', '', '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'
FROM system_menu menu
CROSS JOIN (
SELECT 2093000000000000120 id, 1 sort, '日计划作业操作' name, 'lms:daily-plan:operate' code
UNION ALL SELECT 2093000000000000121, 2, '日计划作业查询', 'lms:daily-plan:query'
UNION ALL SELECT 2093000000000000122, 3, '日计划作业启动', 'lms:daily-plan:start'
UNION ALL SELECT 2093000000000000123, 4, '日计划作业排程', 'lms:daily-plan:schedule'
UNION ALL SELECT 2093000000000000124, 5, '日计划作业策略', 'lms:daily-plan:strategy'
) permission
WHERE menu.id = COALESCE(
(SELECT fixed.id FROM system_menu fixed WHERE fixed.id=2093000000000000101 AND fixed.deleted=b'0'),
(SELECT MIN(fallback.id) FROM system_menu fallback
WHERE fallback.component='lms/daily-plan/work/index' AND fallback.deleted=b'0')
)
AND menu.deleted=b'0'
AND NOT EXISTS (SELECT 1 FROM system_menu WHERE permission='lms:daily-plan:operate' AND deleted=b'0');
AND NOT EXISTS (
SELECT 1 FROM system_menu existing
WHERE existing.parent_id=menu.id AND existing.permission=permission.code AND existing.deleted=b'0'
);
-- 已授权日计划作业菜单的角色同步获得该页面全部按钮权限。
INSERT INTO system_role_menu
(role_id, menu_id, creator, create_time, updater, update_time, deleted, tenant_id)
SELECT DISTINCT work_role.role_id, button.id, '1', NOW(), '1', NOW(), b'0', work_role.tenant_id
FROM system_role_menu work_role
JOIN system_menu work_menu ON work_menu.id=work_role.menu_id
AND work_menu.component='lms/daily-plan/work/index' AND work_menu.deleted=b'0'
JOIN system_menu button ON button.parent_id=work_menu.id AND button.type=3 AND button.deleted=b'0'
AND button.permission IN (
'lms:daily-plan:query', 'lms:daily-plan:start', 'lms:daily-plan:operate',
'lms:daily-plan:schedule', 'lms:daily-plan:strategy'
)
WHERE work_role.deleted=b'0'
AND NOT EXISTS (
SELECT 1 FROM system_role_menu existing
WHERE existing.role_id=work_role.role_id AND existing.menu_id=button.id
AND existing.tenant_id=work_role.tenant_id AND existing.deleted=b'0'
);
-- 已授权管芯库现有子菜单的角色同步获得管芯库父目录权限。
INSERT INTO system_role_menu