fix(pl): 将证书齐备改为独立菜单权限,避免取消授权后仍随计划段次用证显示。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
wuzilongandCursor committed 2026-11-06 17:39:18 +08:00
1 parent 421332cad4
commit 13ed7f5be0
8 files changed
+129 -7

No files matched your search

@@ -0,0 +1,15 @@
-- 「证书齐备」与「计划段次用证」拆开权限码。
-- 仍勾选该菜单的角色自动获得 pl:cert-ready:list;已解除授权的角色不会恢复。
-- MySQL 5.7。可重复执行。仅 shanxia2.0。
SET NAMES utf8mb4;
UPDATE sys_menu
SET perms='pl:cert-ready:list',
update_by='system',
update_time=NOW()
WHERE id='PL_CERT_READY'
AND tenant_no='shanxia2.0'
AND del_flag=0
AND menu_type='C'
AND path='cert-ready'
AND perms='pl:plan-cert:list';
@@ -0,0 +1,79 @@
-- 恢复 Web「运输证件管理」目录,并把五个证件页面挂回其下。
-- 不改子页面、按钮的权限码,不删除已有角色授权;仅为目录补齐已拥有任一子页面的角色。
-- MySQL 5.7。可重复执行。仅 shanxia2.0。
SET NAMES utf8mb4;
START TRANSACTION;
UPDATE sys_menu
SET menu_name='运输证件管理',
parent_id='PL_MENU_ROOT',
menu_type='M',
path='cert-upload',
visible='1',
status='1',
order_num=3,
del_flag=0,
remark='运输证件管理目录',
update_by='system',
update_time=NOW()
WHERE id='PL_GROUP_CERT'
AND tenant_no='shanxia2.0'
AND parent_id='PL_MENU_ROOT';
UPDATE sys_menu
SET parent_id='PL_GROUP_CERT',
order_num=CASE id
WHEN 'PL_QUOTA_CERT' THEN 1
WHEN 'PL_CONTRACT_QUOTA' THEN 2
WHEN 'PL_CERTIFICATE_USAGE' THEN 3
WHEN 'PL_PLAN_CERT' THEN 4
WHEN 'PL_CERT_READY' THEN 5
END,
update_by='system',
update_time=NOW()
WHERE tenant_no='shanxia2.0'
AND del_flag=0
AND menu_type='C'
AND id IN (
'PL_QUOTA_CERT',
'PL_CONTRACT_QUOTA',
'PL_CERTIFICATE_USAGE',
'PL_PLAN_CERT',
'PL_CERT_READY'
)
AND parent_id IN ('PL_MENU_ROOT', 'PL_GROUP_CERT');
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 MD5(CONCAT(access_row.role_id, '|PL_GROUP_CERT|cert-folder|v1')),
access_row.role_id, 'PL_GROUP_CERT', access_row.tenant_no, 0,
'恢复运输证件管理目录:沿用已有子菜单角色',
'system', '', NOW(), NOW(), 0
FROM (
SELECT DISTINCT role_id, tenant_no
FROM sys_role_menu
WHERE del_flag=0
AND tenant_no='shanxia2.0'
AND menu_id IN (
'PL_QUOTA_CERT',
'PL_CONTRACT_QUOTA',
'PL_CERTIFICATE_USAGE',
'PL_PLAN_CERT',
'PL_CERT_READY'
)
) access_row
WHERE NOT EXISTS (
SELECT 1 FROM sys_role_menu existing
WHERE existing.role_id=access_row.role_id
AND existing.menu_id='PL_GROUP_CERT'
AND existing.tenant_no=access_row.tenant_no
AND existing.del_flag=0
)
ON DUPLICATE KEY UPDATE
del_flag=0,
update_time=NOW(),
remark='恢复运输证件管理目录:沿用已有子菜单角色';
COMMIT;