From dfb7aaf840489e2ca4eeee1f99a8f09bd95ce0b7 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 3 Jul 2025 19:26:40 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E9=80=9A=E8=BF=87id=E6=AF=94=E8=BE=83?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/AssignmentService.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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)