diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index fecba190..fc83bd04 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -793,10 +793,12 @@ public class DevicePermissionService : IDevicePermissionService //获取人员的设备权限 + var userNos = tripInfos.Select(x => x.UserNo).Distinct().ToList(); + var result = await GetAssignDeviceCodesInternalAsync(userNos); foreach (var tripInfo in tripInfos) { - var myDeviceCodes = await GetAssignDeviceCodesAsync(tripInfo.Code); + var myDeviceCodes = result[tripInfo.UserNo].SelectMany(x => x.Codes); var devices = await _dbContext.Queryable().Where(x => myDeviceCodes.Contains(x.Code)).ToListAsync(); diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index 72156e44..b5a809eb 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -170,13 +170,12 @@ public class GainfoPermissionService : IGainfoPermissionService gainfo.ThrowIfNull($"档案数据有误:{msg}"); //获取人员的设备权限 - var myDeviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(gainfo!.Code); - if (deviceCodes.IsPresent()) + if (deviceCodes.IsEmpty()) { - myDeviceCodes = deviceCodes; + deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(gainfo!.Code); } - var devices = await _dbContext.Queryable().Where(x => myDeviceCodes.Contains(x.Code)).ToListAsync(); + var devices = await _dbContext.Queryable().Where(x => deviceCodes.Contains(x.Code)).ToListAsync(); var tasks = devices.Select(x => new DeviceTaskEntity { diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs index f55262fc..4fbdcd90 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/SapBusinessTripService.cs @@ -101,7 +101,7 @@ public class SapBusinessTripService : ISapBusinessTripService await _dbContext.UpdateAsync(todayTripInfo); //下发 - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, null); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes); continue; } @@ -149,7 +149,7 @@ public class SapBusinessTripService : ISapBusinessTripService todayTripInfo.Status = BusinessTripStatusEnumType.Generated; await _dbContext.UpdateAsync(todayTripInfo); - await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, null); + await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes); } } catch (Exception e)