From 77b2fdc222a533b515b83ef08dfc230c9f7ab01c Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sat, 5 Jul 2025 11:43:03 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A2=9E=E5=8A=A0=E7=89=B9=E6=AE=8A?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/AssignmentService.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index beb7da5a..881fb7d3 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -242,7 +242,7 @@ public class AssignmentService : IAssignmentService private async Task> GetDataAsync(DeviceTaskGetRequest request) { var limitTime = DateTime.Now.AddDays(-3); - var limitData = await _dbContext.Queryable().Where(x => x.ModifiedTime >= limitTime).FirstAsync(); + var limitData = await _dbContext.Queryable().Where(x => x.ModifiedTime >= limitTime).OrderBy(x => x.ModifiedTime).FirstAsync(); if (limitData == null) { return new List(); @@ -250,6 +250,12 @@ public class AssignmentService : IAssignmentService var startId = limitData.Id; + var otherIds = await _dbContext.Queryable().Where(x => x.DeviceUniqueNo == request.DeviceUniqueNo) + .Where(x => x.Type == DeviceTaskEnumType.UploadRecord || x.Type == DeviceTaskEnumType.SyncDateTime) + .Where(x => x.Status == DeviceTaskStatusEnumType.Wait) + .Select(x => x.Id) + .ToListAsync(); + var data = await CommonHelper.RetryAsync(async () => { var rows = await _dbContext.Queryable() @@ -259,8 +265,8 @@ 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.Id >= startId && - deviceTask.DeviceUniqueNo == request.DeviceUniqueNo + (deviceTask.Id >= startId || otherIds.Contains(deviceTask.Id)) + && deviceTask.DeviceUniqueNo == request.DeviceUniqueNo ) .WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait) .WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process