From 2e07e37b1ea9f2ff322235e7d2f114cdc673564f Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Mon, 10 Aug 2026 19:45:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=AE=A1=E8=8A=AF?= =?UTF-8?q?=E5=BA=93=E7=AE=A1=E7=90=86=E7=88=B6=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/mysql/lms_stocking_ivt_menu.sql | 51 +++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/sql/mysql/lms_stocking_ivt_menu.sql b/sql/mysql/lms_stocking_ivt_menu.sql index 5b57e061..e3afdec7 100644 --- a/sql/mysql/lms_stocking_ivt_menu.sql +++ b/sql/mysql/lms_stocking_ivt_menu.sql @@ -1,4 +1,17 @@ --- LMS 备货区域菜单及按钮权限,按菜单路径和权限编码幂等插入。 +-- LMS 管芯库管理、备货区域菜单及按钮权限,按菜单路径和权限编码幂等插入。 +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 2092000000000000100, '管芯库管理', '', 1, 10, parent.id, 'tube-library', '', + '', '', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' +FROM system_menu parent +WHERE parent.path = '/lms' + AND parent.deleted = b'0' + AND NOT EXISTS ( + SELECT 1 FROM system_menu + WHERE parent_id = parent.id AND path = 'tube-library' AND 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) @@ -6,13 +19,25 @@ SELECT 2092000000000000101, '备货区域', '', 2, 10, parent.id, 'stocking-ivt' 'lms/stockingivt/index', 'LmsStockingIvt', 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0' FROM system_menu parent -WHERE parent.path = '/lms' +WHERE parent.path = 'tube-library' AND parent.deleted = b'0' AND NOT EXISTS ( SELECT 1 FROM system_menu WHERE component = 'lms/stockingivt/index' AND deleted = b'0' ); +-- 兼容已经初始化过备货区域菜单的环境,将其迁移到“管芯库管理”目录下。 +UPDATE system_menu menu +JOIN system_menu parent + ON parent.path = 'tube-library' + AND parent.deleted = b'0' +SET menu.parent_id = parent.id, + menu.sort = 1, + menu.updater = '1', + menu.update_time = NOW() +WHERE menu.component = 'lms/stockingivt/index' + AND menu.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) @@ -38,3 +63,25 @@ WHERE menu.component = 'lms/stockingivt/index' SELECT 1 FROM system_menu WHERE permission = 'lms:stocking-ivt:update' AND deleted = b'0' ); + +-- 已授权备货区域的角色同步获得父目录权限。 +INSERT INTO system_role_menu + (role_id, menu_id, creator, create_time, updater, update_time, deleted, tenant_id) +SELECT child_role.role_id, parent.id, '1', NOW(), '1', NOW(), b'0', child_role.tenant_id +FROM system_role_menu child_role +JOIN system_menu child + ON child.id = child_role.menu_id + AND child.component = 'lms/stockingivt/index' + AND child.deleted = b'0' +JOIN system_menu parent + ON parent.path = 'tube-library' + AND parent.deleted = b'0' +WHERE child_role.deleted = b'0' + AND NOT EXISTS ( + SELECT 1 + FROM system_role_menu parent_role + WHERE parent_role.role_id = child_role.role_id + AND parent_role.menu_id = parent.id + AND parent_role.tenant_id = child_role.tenant_id + AND parent_role.deleted = b'0' + );