SET NOCOUNT ON; SET XACT_ABORT ON; BEGIN TRANSACTION; DECLARE @menu_id bigint; DECLARE @retry_id bigint; DECLARE @source_menu_id bigint; DECLARE @lock_result int; DECLARE @lock_error nvarchar(2048) = CONVERT(nvarchar(2048), 0xE065D56CB783D65320004500520050002000A8630190025F385EDC8355534753A77E0195); DECLARE @menu_name nvarchar(255) = CONVERT(nvarchar(255), 0x450052005000A8630190025F385E); DECLARE @menu_remark nvarchar(500) = CONVERT(nvarchar(500), 0x450052005000DE56204F3159258D17526888); DECLARE @retry_name nvarchar(255) = CONVERT(nvarchar(255), 0x450052005000025F385ECD91A863); DECLARE @retry_remark nvarchar(500) = CONVERT(nvarchar(500), 0x3159258D55536E63CD91B065A0526551450052005000DE56204F1F961752); EXEC @lock_result = sys.sp_getapplock @Resource = N'FT546WMS:upgrade-erp-push-exception-menu', @LockMode = N'Exclusive', @LockOwner = N'Transaction', @LockTimeout = 10000; IF @lock_result < 0 BEGIN ROLLBACK TRANSACTION; THROW 51000, @lock_error, 1; END; SELECT TOP (1) @menu_id = menu_id FROM dbo.sys_menu WHERE parent_id = 2 AND path = N'pushException' ORDER BY menu_id; IF @menu_id IS NULL BEGIN INSERT INTO dbo.sys_menu (menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (@menu_name, 2, 2, N'pushException', N'erp/pushException/index', NULL, N'', N'1', N'0', N'C', N'0', N'0', N'erp:pushException:list', N'warning', N'admin', SYSDATETIME(), N'', NULL, @menu_remark); SET @menu_id = CONVERT(bigint, SCOPE_IDENTITY()); END; SELECT TOP (1) @retry_id = menu_id FROM dbo.sys_menu WHERE parent_id = @menu_id AND perms = N'erp:pushException:retry' ORDER BY menu_id; IF @retry_id IS NULL BEGIN INSERT INTO dbo.sys_menu (menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES (@retry_name, @menu_id, 1, N'#', N'', NULL, N'', N'1', N'0', N'F', N'0', N'0', N'erp:pushException:retry', N'#', N'admin', SYSDATETIME(), N'', NULL, @retry_remark); SET @retry_id = CONVERT(bigint, SCOPE_IDENTITY()); END; SELECT TOP (1) @source_menu_id = menu_id FROM dbo.sys_menu WHERE perms = N'requestInterface:log:list' ORDER BY menu_id; INSERT INTO dbo.sys_role_menu (role_id, menu_id) SELECT existing.role_id, @menu_id FROM dbo.sys_role_menu existing WHERE existing.menu_id = @source_menu_id AND NOT EXISTS ( SELECT 1 FROM dbo.sys_role_menu target WHERE target.role_id = existing.role_id AND target.menu_id = @menu_id ); INSERT INTO dbo.sys_role_menu (role_id, menu_id) SELECT existing.role_id, @retry_id FROM dbo.sys_role_menu existing WHERE existing.menu_id = @source_menu_id AND NOT EXISTS ( SELECT 1 FROM dbo.sys_role_menu target WHERE target.role_id = existing.role_id AND target.menu_id = @retry_id ); COMMIT TRANSACTION; SELECT N'ERP_PUSH_EXCEPTION_MENU_OK' AS result, @menu_id AS menu_id, @retry_id AS retry_menu_id;