diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index 620a56f2..beea0d92 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -215,22 +215,24 @@ public class AssignmentService : IAssignmentService var userInfo = await _dbContext.Queryable() .Where(x => x.Code == userCode) .Select(x => new { UserId = x.Id, UserNo = x.No, UserCode = x.Code, UserName = x.Name, x.CardNo }) - .FirstAsync() - ?? - await _dbContext.Queryable() + .FirstAsync(); + + var isCurrent = userInfo != null; + + userInfo ??= await _dbContext.Queryable() .Where(x => x.Code == userCode) .Select(x => new { UserId = x.Id, UserNo = x.No, UserCode = x.Code, UserName = x.Name, x.CardNo }) .FirstAsync(); - - var deviceCodes = await _gainfoPermissionApi.GetPermissionsDeviceCodesAsync(userCode); + var deviceCodes = isCurrent ? await _gainfoPermissionApi.GetPermissionsDeviceCodesAsync(userCode) : new List(); //通过真实设备号获取对应的虚拟设备号和权限值 var elevatorAcsFloors = await _dbContext.Queryable() .LeftJoin((x, d) => x.VirtualDeviceUniqueNo == d.UniqueNo) - .Where((x, d) => x.RealDeviceUniqueNo == deviceUniqueNo && deviceCodes.Contains(d.Code)) + .Where((x, d) => x.RealDeviceUniqueNo == deviceUniqueNo) + .WhereIF(isCurrent, (x, d) => deviceCodes.Contains(d.Code)) .Select(x => new { x.VirtualDeviceUniqueNo, x.AcsValue }) .ToListAsync(); //虚拟设备号列表