diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index c0a2dd18..93ba6fbd 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -1,6 +1,7 @@ using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; +using Dlhis.Basic.Organization.Services; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Enums; using Dlhis.Entity.Device.Entities; @@ -24,18 +25,21 @@ public class DevicePermissionService : IDevicePermissionService private readonly IDbContext _dbContext; private readonly ITenantApi _tenantApi; private readonly INamedResolver _namedResolver; + private readonly IFactorySettingService _factorySettingService; private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService; private readonly ICurrentUser _currentUser; public DevicePermissionService(IDbContext dbContext, ITenantApi tenantApi, INamedResolver namedResolver, + IFactorySettingService factorySettingService, IDevicePermissionAnalyzeService devicePermissionAnalyzeService, ICurrentUser currentUser) { _dbContext = dbContext; _tenantApi = tenantApi; _namedResolver = namedResolver; + _factorySettingService = factorySettingService; _devicePermissionAnalyzeService = devicePermissionAnalyzeService; _currentUser = currentUser; } @@ -284,16 +288,13 @@ public class DevicePermissionService : IDevicePermissionService } ids = ids.Distinct().ToList(); - - var enableOutsourceDown = await _dbContext.Queryable() - .Where(x => x.TenantId == device.TenantId) - .Select(x => SqlFunc.IsNullOrEmpty(x.EnableOutsourceDown) ? true : x.EnableOutsourceDown) - .SingleAsync(); + + var factorySetting = await _factorySettingService.GetFactorySettingAsync(device.TenantId, false); var page = await _dbContext.Queryable() .Where(x => ids.Contains(x.Id)) .Where(x => x.Type != GainfoUserTypeEnumType.External) - .WhereIF(enableOutsourceDown == false, x => x.Type != GainfoUserTypeEnumType.Outsource) + .WhereIF(factorySetting.EnableOutsourceDown == false, x => x.Type != GainfoUserTypeEnumType.Outsource) .WhereIF(device.Type == DeviceTypeEnumType.Meal, x => x.Type != GainfoUserTypeEnumType.External && x.Type != GainfoUserTypeEnumType.Outsource) .WhereIF(request.Search.IsPresent(), x => x.Code == request.Search || x.Name.Contains(request.Search)) .Select()