diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index 15eafa98..10e24460 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -242,6 +242,13 @@ public class AssignmentService : IAssignmentService private async Task> GetDataAsync(DeviceTaskGetRequest request) { var limitTime = DateTime.Now.AddDays(-3); + var limitData = _dbContext.Queryable().Where(x => x.CreateTime >= limitTime).FirstAsync(); + if (limitData == null) + { + return new List(); + } + + var startId = limitData.Id; var data = await CommonHelper.RetryAsync(async () => { @@ -252,14 +259,14 @@ public class AssignmentService : IAssignmentService .LeftJoin((deviceTask, device, ga, gaLeave, department) => department.No == ga.DepartmentNo) .LeftJoin((deviceTask, device, ga, gaLeave, department, deviceRegistry) => deviceRegistry.DeviceUniqueNo == deviceTask.DeviceUniqueNo) .Where((deviceTask, device) => - deviceTask.CreateTime >= limitTime && - deviceTask.DeviceUniqueNo == request.DeviceUniqueNo && - deviceTask.Version < 10 + deviceTask.Id >= startId && + deviceTask.DeviceUniqueNo == request.DeviceUniqueNo ) .WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait) .WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process && SqlFunc.DateDiff(DateType.Minute, deviceTask.ModifiedTime, DateTime.Now) > 10) .WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type)) + .Where(deviceTask => deviceTask.Version < 10) #if !DEBUG .Where((deviceTask, device, ga, gaLeave, department, deviceRegistry) => device.HeartbeatInterval == 0 || SqlFunc.DateAdd(deviceRegistry.LastHeartbeatTime, device.HeartbeatInterval, DateType.Second) > DateTime.Now)