Files
shanxia2.0/docs/sql/migrations/2026-11-03-transport-cert-menu-names.sql
T
wuzilongandCursor 8e9536332a feat: 保存运输证件、报销付款和开发流程的当前实现。
补齐证书齐备、证件折算、移动用证和合同绑定,并带上报销批量发放、付款备注以及个人开发流程升级,便于继续讨论已安排计划的调整规则。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-04 21:42:33 +08:00

88 lines
4.4 KiB
SQL

-- 菜单改名,并把 Web「合法使用证明」从运输证件管理的页签提升为同级目录。
-- MySQL 5.7。只调整 shanxia2.0 的菜单名称、父子关系和排序,不恢复已软删除菜单,不改业务数据。
-- 可重复执行。已有「合法使用证明」角色保留,并补齐新目录授权。
SET NAMES utf8mb4;
START TRANSACTION;
UPDATE sys_menu
SET menu_name='运输证件管理', update_time=NOW()
WHERE tenant_no='shanxia2.0' AND del_flag=0 AND perms='mini:pl:plan-cert:list';
UPDATE sys_menu
SET menu_name='运输证件管理', update_time=NOW()
WHERE tenant_no='shanxia2.0' AND del_flag=0 AND menu_type='M'
AND parent_id='PL_MENU_ROOT' AND path='cert-upload';
UPDATE sys_menu
SET menu_name='人车证件提醒', update_time=NOW()
WHERE tenant_no='shanxia2.0' AND del_flag=0
AND (
id IN ('PL_GROUP_DOC', 'PL_DOC_REMINDER')
OR (menu_type='M' AND parent_id='PL_MENU_ROOT' AND path='document-reminder-module')
OR (menu_type='C' AND perms='pl:document:list' AND path='document-reminder')
);
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 'PL_GROUP_LEGAL', '合法使用证明', parent.id, 'M', 'legal-use-module', NULL, NULL,
1, '1', '1', parent.tenant_no, COALESCE(cert.order_num, plan_leaf.order_num, 3) + 1,
'待调整排序', 'system', '', NOW(), NOW(), 0
FROM sys_menu parent
JOIN sys_menu root ON root.id=parent.parent_id AND root.tenant_no=parent.tenant_no AND root.del_flag=0
LEFT JOIN sys_menu cert ON cert.parent_id=parent.id AND cert.tenant_no=parent.tenant_no AND cert.del_flag=0
AND cert.menu_type='M' AND cert.path='cert-upload'
LEFT JOIN sys_menu plan_leaf ON plan_leaf.parent_id=parent.id AND plan_leaf.tenant_no=parent.tenant_no
AND plan_leaf.del_flag=0 AND plan_leaf.menu_type='C' AND plan_leaf.perms='pl:plan-cert:list'
AND plan_leaf.path='plan-cert'
WHERE parent.id='PL_MENU_ROOT' AND parent.path='/pl' AND parent.del_flag=0 AND parent.tenant_no='shanxia2.0'
AND root.parent_id='0' AND root.path='/web' AND root.del_flag=0
AND NOT EXISTS (
SELECT 1 FROM sys_menu existing
WHERE existing.id='PL_GROUP_LEGAL'
OR (existing.tenant_no=parent.tenant_no AND existing.parent_id=parent.id
AND existing.path='legal-use-module' AND existing.del_flag=0)
);
UPDATE sys_menu sibling
JOIN sys_menu legal ON legal.id='PL_GROUP_LEGAL' AND legal.del_flag=0
AND legal.parent_id=sibling.parent_id AND legal.tenant_no=sibling.tenant_no
AND legal.remark='待调整排序'
SET sibling.order_num=sibling.order_num + 1, sibling.update_time=NOW()
WHERE sibling.tenant_no='shanxia2.0' AND sibling.del_flag=0
AND sibling.id<>'PL_GROUP_LEGAL' AND sibling.order_num>=legal.order_num;
UPDATE sys_menu
SET remark='与运输证件管理平级的合法使用证明', update_time=NOW()
WHERE id='PL_GROUP_LEGAL' AND tenant_no='shanxia2.0' AND del_flag=0 AND remark='待调整排序';
UPDATE sys_menu leaf
JOIN sys_menu folder ON folder.id='PL_GROUP_LEGAL' AND folder.tenant_no=leaf.tenant_no AND folder.del_flag=0
AND folder.menu_type='M' AND folder.parent_id='PL_MENU_ROOT'
SET leaf.parent_id=folder.id, leaf.order_num=1, leaf.update_time=NOW()
WHERE leaf.tenant_no='shanxia2.0' AND leaf.del_flag=0 AND leaf.menu_type='C'
AND leaf.perms='pl:legal-use-document:list' AND leaf.path='legal-use-document';
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, '|', folder.id, '|legal-use-sibling|v1')),
access_row.role_id, folder.id, access_row.tenant_no, 0,
'合法使用证明提升为同级菜单:补齐目录授权',
'system', '', NOW(), NOW(), 0
FROM sys_role_menu access_row
JOIN sys_menu leaf ON leaf.id=access_row.menu_id AND leaf.tenant_no=access_row.tenant_no AND leaf.del_flag=0
JOIN sys_menu folder ON folder.id='PL_GROUP_LEGAL' AND folder.tenant_no=leaf.tenant_no AND folder.del_flag=0
WHERE access_row.del_flag=0 AND access_row.tenant_no='shanxia2.0'
AND leaf.menu_type='C' AND leaf.perms='pl:legal-use-document:list' AND leaf.path='legal-use-document'
AND NOT EXISTS (
SELECT 1 FROM sys_role_menu existing
WHERE existing.role_id=access_row.role_id AND existing.menu_id=folder.id
AND existing.tenant_no=access_row.tenant_no AND existing.del_flag=0
)
ON DUPLICATE KEY UPDATE del_flag=0, update_time=NOW();
COMMIT;