diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index beea0d92..f2587dd7 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -224,7 +224,9 @@ public class AssignmentService : IAssignmentService .Select(x => new { UserId = x.Id, UserNo = x.No, UserCode = x.Code, UserName = x.Name, x.CardNo }) .FirstAsync(); + userInfo.ThrowIfNull("用户信息不存在"); + //获取用户的设备权限码列表,可以精确到楼层权限(虚拟电梯层级设备) var deviceCodes = isCurrent ? await _gainfoPermissionApi.GetPermissionsDeviceCodesAsync(userCode) : new List(); @@ -235,6 +237,7 @@ public class AssignmentService : IAssignmentService .WhereIF(isCurrent, (x, d) => deviceCodes.Contains(d.Code)) .Select(x => new { x.VirtualDeviceUniqueNo, x.AcsValue }) .ToListAsync(); + //虚拟设备号列表 var virtualDeviceUniqueNos = elevatorAcsFloors.Select(x => x.VirtualDeviceUniqueNo).ToList(); //权限值列表 @@ -247,7 +250,8 @@ public class AssignmentService : IAssignmentService .Where((deviceTask, device) => deviceTask.UserNo == userInfo.UserNo) .Where((deviceTask, device) => virtualDeviceUniqueNos.Contains(deviceTask.DeviceUniqueNo)) .Where((deviceTask, device) => device.Enable) - .Where(deviceTask => (deviceTask.Status == DeviceTaskStatusEnumType.Wait || deviceTask.Status == DeviceTaskStatusEnumType.Process) && !string.IsNullOrEmpty(deviceTask.UserNo)) + .Where(deviceTask => (deviceTask.Status == DeviceTaskStatusEnumType.Wait || deviceTask.Status == DeviceTaskStatusEnumType.Process || deviceTask.Type == DeviceTaskEnumType.Delete) + && !string.IsNullOrEmpty(deviceTask.UserNo)) .OrderBy(deviceTask => new { deviceTask.Id, Priority = SqlFunc.Desc(deviceTask.Priority) }) .Select((deviceTask, device) => deviceTask.Id) .ToListAsync();