fix 通过id比较查询任务
This commit is contained in:
@@ -242,6 +242,13 @@ public class AssignmentService : IAssignmentService
|
|||||||
private async Task<List<TaskDto>> GetDataAsync(DeviceTaskGetRequest request)
|
private async Task<List<TaskDto>> GetDataAsync(DeviceTaskGetRequest request)
|
||||||
{
|
{
|
||||||
var limitTime = DateTime.Now.AddDays(-3);
|
var limitTime = DateTime.Now.AddDays(-3);
|
||||||
|
var limitData = _dbContext.Queryable<DeviceTaskEntity>().Where(x => x.CreateTime >= limitTime).FirstAsync();
|
||||||
|
if (limitData == null)
|
||||||
|
{
|
||||||
|
return new List<TaskDto>();
|
||||||
|
}
|
||||||
|
|
||||||
|
var startId = limitData.Id;
|
||||||
|
|
||||||
var data = await CommonHelper.RetryAsync(async () =>
|
var data = await CommonHelper.RetryAsync(async () =>
|
||||||
{
|
{
|
||||||
@@ -252,14 +259,14 @@ public class AssignmentService : IAssignmentService
|
|||||||
.LeftJoin<DepartmentEntity>((deviceTask, device, ga, gaLeave, department) => department.No == ga.DepartmentNo)
|
.LeftJoin<DepartmentEntity>((deviceTask, device, ga, gaLeave, department) => department.No == ga.DepartmentNo)
|
||||||
.LeftJoin<DeviceRegistryEntity>((deviceTask, device, ga, gaLeave, department, deviceRegistry) => deviceRegistry.DeviceUniqueNo == deviceTask.DeviceUniqueNo)
|
.LeftJoin<DeviceRegistryEntity>((deviceTask, device, ga, gaLeave, department, deviceRegistry) => deviceRegistry.DeviceUniqueNo == deviceTask.DeviceUniqueNo)
|
||||||
.Where((deviceTask, device) =>
|
.Where((deviceTask, device) =>
|
||||||
deviceTask.CreateTime >= limitTime &&
|
deviceTask.Id >= startId &&
|
||||||
deviceTask.DeviceUniqueNo == request.DeviceUniqueNo &&
|
deviceTask.DeviceUniqueNo == request.DeviceUniqueNo
|
||||||
deviceTask.Version < 10
|
|
||||||
)
|
)
|
||||||
.WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait)
|
.WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait)
|
||||||
.WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process
|
.WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process
|
||||||
&& SqlFunc.DateDiff(DateType.Minute, deviceTask.ModifiedTime, DateTime.Now) > 10)
|
&& SqlFunc.DateDiff(DateType.Minute, deviceTask.ModifiedTime, DateTime.Now) > 10)
|
||||||
.WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type))
|
.WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type))
|
||||||
|
.Where(deviceTask => deviceTask.Version < 10)
|
||||||
#if !DEBUG
|
#if !DEBUG
|
||||||
.Where((deviceTask, device, ga, gaLeave, department, deviceRegistry) =>
|
.Where((deviceTask, device, ga, gaLeave, department, deviceRegistry) =>
|
||||||
device.HeartbeatInterval == 0 || SqlFunc.DateAdd(deviceRegistry.LastHeartbeatTime, device.HeartbeatInterval, DateType.Second) > DateTime.Now)
|
device.HeartbeatInterval == 0 || SqlFunc.DateAdd(deviceRegistry.LastHeartbeatTime, device.HeartbeatInterval, DateType.Second) > DateTime.Now)
|
||||||
|
|||||||
Reference in New Issue
Block a user