From d4c157c1a3a0d44ed77455a883c281be9fdc500a Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sat, 7 Dec 2024 10:41:08 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Device/Services/Implements/DevicePermissionService.cs | 4 +++- .../Services/Implements/GainfoPermissionService.cs | 7 +++---- .../Services/Implements/SapBusinessTripService.cs | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) 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)