SET ANSI_NULLS ON; GO SET QUOTED_IDENTIFIER ON; GO -- ============================================= -- Author: 蔡峰 -- Create date: 2024-07-20 -- Description: 根据用户的权限获取OEM 或者 KH的设备操作权限 -- ============================================= CREATE FUNCTION func_GetDeviceInfoByUserAuth ( @LoginCode VARCHAR(50) ) RETURNS @DevRtnView TABLE ( AutoID INT NOT NULL, GUID UNIQUEIDENTIFIER NOT NULL, EquipmentID VARCHAR(50) NULL, EquipmentName NVARCHAR(200) NULL, Specification NVARCHAR(200) NULL, Manufacturer NVARCHAR(200) NULL, SerialNumber NVARCHAR(200) NULL, UsingDate VARCHAR(10) NULL, Totalcapacity FLOAT NULL, Weight FLOAT NULL, EquipmentCategory NVARCHAR(20) NULL, EquipmentOriginalvalue MONEY NULL, EquipmentStatus INT NULL, WarrantyPeriod NVARCHAR(50) NULL, InstallationLocation NVARCHAR(200) NULL, OwningUnit NVARCHAR(200) NULL, OperatingParameters NVARCHAR(200) NULL, MaintenanceFormVersion INT NULL, Route INT NULL, CreatDate DATETIME NULL, CreatUser INT NULL, ChangeDate DATETIME NULL, ChangeUser INT NULL, Remarks NVARCHAR(2000) NULL ) AS BEGIN /* 权限临时表 */ DECLARE @AuthView TABLE ( AuthCode VARCHAR(50) ); INSERT INTO @AuthView ( AuthCode ) SELECT au.AuthCode FROM dbo.UserInfo us INNER JOIN dbo.RoleAuths ra ON us.RoleGroup = ra.RoleID INNER JOIN dbo.Auths au ON ra.AutoID = au.AutoID AND au.AuthCode IN ( 'DEVICE_KH', 'DEVICEL_OEM' ) WHERE us.LoginCode = @LoginCode; /* 设备ID 表 */ DECLARE @DevView TABLE ( DevID INT ); IF EXISTS (SELECT 1 FROM @AuthView WHERE AuthCode = 'DEVICE_KH') BEGIN INSERT INTO @DevView ( DevID ) SELECT AutoID FROM dbo.View_DeviceRoot WHERE RootName = 'KH'; END; IF EXISTS (SELECT 1 FROM @AuthView WHERE AuthCode = 'DEVICEL_OEM') BEGIN INSERT INTO @DevView ( DevID ) SELECT AutoID FROM dbo.View_DeviceRoot WHERE RootName = 'OEM'; END; INSERT INTO @DevRtnView ( AutoID, GUID, EquipmentID, EquipmentName, Specification, Manufacturer, SerialNumber, UsingDate, Totalcapacity, Weight, EquipmentCategory, EquipmentOriginalvalue, EquipmentStatus, WarrantyPeriod, InstallationLocation, OwningUnit, OperatingParameters, MaintenanceFormVersion, Route, CreatDate, CreatUser, ChangeDate, ChangeUser, Remarks ) SELECT t1.AutoID, t1.GUID, t1.EquipmentID, t1.EquipmentName, t1.Specification, t1.Manufacturer, t1.SerialNumber, t1.UsingDate, t1.Totalcapacity, t1.Weight, t1.EquipmentCategory, t1.EquipmentOriginalvalue, t1.EquipmentStatus, t1.WarrantyPeriod, t1.InstallationLocation, t1.OwningUnit, t1.OperatingParameters, t1.MaintenanceFormVersion, t1.Route, t1.CreatDate, t1.CreatUser, t1.ChangeDate, t1.ChangeUser, t1.Remarks FROM dbo.DriveInformation t1 INNER JOIN @DevView t2 ON t1.AutoID = t2.DevID; RETURN; END;