diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 91716574..a812b5a3 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -331,7 +331,14 @@ public class DevicePermissionService : IDevicePermissionService { var no = await _dbContext.Queryable().Where(x => x.No == userNo || x.Code == userNo).Select(x => x.No).SingleAsync(); var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { no }); - return result.First().Value.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList(); + var deviceCodes = result.First().Value.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList(); + + //例外处理: 特殊手动分配的设备权限 + var manuallyDeviceCodes = await _dbContext.Queryable().Where(x => x.UserNo == no) + .Select(x => x.DeviceCode) + .ToListAsync(); + + return deviceCodes.Concat(manuallyDeviceCodes).Distinct().ToList(); } @@ -547,7 +554,7 @@ public class DevicePermissionService : IDevicePermissionService .Where(x => userCodes.Contains(x.Code)) .Select(x => x.No) .ToListAsync(); - + var userNoLeaves = await _dbContext.Queryable() .Where(x => userCodes.Contains(x.Code)) .Select(x => x.No)