fix 移除多余的处理
This commit is contained in:
@@ -30,6 +30,19 @@ public class CreateGetUploadRecordJob : BaseJob
|
|||||||
.OrderByDescending(x => x.Id)
|
.OrderByDescending(x => x.Id)
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
|
|
||||||
|
if (deviceTask != null)
|
||||||
|
{
|
||||||
|
if (deviceTask.Status == DeviceTaskStatusEnumType.Success
|
||||||
|
|| (deviceTask.Status == DeviceTaskStatusEnumType.Process && deviceTask.Version == 8)
|
||||||
|
|| deviceTask.Status == DeviceTaskStatusEnumType.Error
|
||||||
|
)
|
||||||
|
{
|
||||||
|
var id = deviceTask.Id;
|
||||||
|
await DbContext.Deleteable<DeviceEntity>().Where(x => x.Id == id).ExecuteCommandAsync();
|
||||||
|
deviceTask = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (deviceTask == null)
|
if (deviceTask == null)
|
||||||
{
|
{
|
||||||
await DbContext.InsertAsync(new DeviceTaskEntity
|
await DbContext.InsertAsync(new DeviceTaskEntity
|
||||||
@@ -44,21 +57,6 @@ public class CreateGetUploadRecordJob : BaseJob
|
|||||||
Source = "定时任务创建设备获取通行记录任务"
|
Source = "定时任务创建设备获取通行记录任务"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (deviceTask.Status == DeviceTaskStatusEnumType.Success
|
|
||||||
|| (deviceTask.Status == DeviceTaskStatusEnumType.Process
|
|
||||||
&& deviceTask.ModifiedTime.AddMinutes(10) > DateTime.Now)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
deviceTask.Status = DeviceTaskStatusEnumType.Wait;
|
|
||||||
deviceTask.Version = 0;
|
|
||||||
deviceTask.CreateTime = DateTime.Now;
|
|
||||||
deviceTask.ModifiedTime = DateTime.Now;
|
|
||||||
|
|
||||||
await DbContext.UpdateAsync(deviceTask);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,6 +29,16 @@ public class CreateSyncServerDateTimeJob : BaseJob
|
|||||||
.OrderByDescending(x => x.Id)
|
.OrderByDescending(x => x.Id)
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
|
|
||||||
|
if (deviceTask != null)
|
||||||
|
{
|
||||||
|
if (deviceTask.Status is DeviceTaskStatusEnumType.Success or DeviceTaskStatusEnumType.Process or DeviceTaskStatusEnumType.Error)
|
||||||
|
{
|
||||||
|
var id = deviceTask.Id;
|
||||||
|
await DbContext.Deleteable<DeviceEntity>().Where(x => x.Id == id).ExecuteCommandAsync();
|
||||||
|
deviceTask = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (deviceTask == null)
|
if (deviceTask == null)
|
||||||
{
|
{
|
||||||
await DbContext.InsertAsync(new DeviceTaskEntity
|
await DbContext.InsertAsync(new DeviceTaskEntity
|
||||||
@@ -44,21 +54,6 @@ public class CreateSyncServerDateTimeJob : BaseJob
|
|||||||
Source = "定时任务创建设备同步时间任务"
|
Source = "定时任务创建设备同步时间任务"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (deviceTask.Status == DeviceTaskStatusEnumType.Success
|
|
||||||
|| (deviceTask.Status == DeviceTaskStatusEnumType.Process
|
|
||||||
&& deviceTask.ModifiedTime.AddMinutes(10) > DateTime.Now)
|
|
||||||
)
|
|
||||||
{
|
|
||||||
deviceTask.Status = DeviceTaskStatusEnumType.Wait;
|
|
||||||
deviceTask.Version = 0;
|
|
||||||
deviceTask.CreateTime = DateTime.Now;
|
|
||||||
deviceTask.ModifiedTime = DateTime.Now;
|
|
||||||
|
|
||||||
await DbContext.UpdateAsync(deviceTask);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -241,8 +241,8 @@ public class AssignmentService : IAssignmentService
|
|||||||
|
|
||||||
private async Task<List<TaskDto>> GetDataAsync(DeviceTaskGetRequest request)
|
private async Task<List<TaskDto>> GetDataAsync(DeviceTaskGetRequest request)
|
||||||
{
|
{
|
||||||
(long? startId, List<long> otherIds) = await GetStartIdAndOtherIdsAsync(request.DeviceUniqueNo);
|
var startId = await GetStartIdAsync(request.DeviceUniqueNo);
|
||||||
if (!startId.HasValue && otherIds.IsEmpty())
|
if (!startId.HasValue)
|
||||||
{
|
{
|
||||||
return new List<TaskDto>();
|
return new List<TaskDto>();
|
||||||
}
|
}
|
||||||
@@ -255,12 +255,10 @@ public class AssignmentService : IAssignmentService
|
|||||||
.LeftJoin<GainfoLeaveEntity>((deviceTask, device, ga, gaLeave) => deviceTask.UserNo == gaLeave.No)
|
.LeftJoin<GainfoLeaveEntity>((deviceTask, device, ga, gaLeave) => deviceTask.UserNo == gaLeave.No)
|
||||||
.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)
|
||||||
.WhereIF(startId.HasValue, (deviceTask, device) =>
|
.Where( (deviceTask, device) =>
|
||||||
(deviceTask.Id >= startId || otherIds.Contains(deviceTask.Id))
|
deviceTask.Id >= startId
|
||||||
&& deviceTask.DeviceUniqueNo == request.DeviceUniqueNo
|
&& deviceTask.DeviceUniqueNo == request.DeviceUniqueNo
|
||||||
).WhereIF(!startId.HasValue, (deviceTask, device) =>
|
)
|
||||||
otherIds.Contains(deviceTask.Id)
|
|
||||||
&& deviceTask.DeviceUniqueNo == request.DeviceUniqueNo)
|
|
||||||
.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
|
||||||
@@ -331,35 +329,20 @@ public class AssignmentService : IAssignmentService
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task<(long? StartId, List<long> OtherIds)> GetStartIdAndOtherIdsAsync(string deviceUniqueNo)
|
private async Task<long?> GetStartIdAsync(string deviceUniqueNo)
|
||||||
{
|
{
|
||||||
var limitTime = DateTime.Now.AddDays(-3);
|
var limitTime = DateTime.Now.AddDays(-3);
|
||||||
var types = new List<DeviceTaskEnumType>
|
|
||||||
{
|
|
||||||
DeviceTaskEnumType.UploadRecord,
|
|
||||||
DeviceTaskEnumType.SyncDateTime
|
|
||||||
};
|
|
||||||
|
|
||||||
//获取其他任务ID
|
|
||||||
var otherIds = await _dbContext.Queryable<DeviceTaskEntity>()
|
|
||||||
.Where(x => x.DeviceUniqueNo == deviceUniqueNo)
|
|
||||||
.Where(x => types.Contains(x.Type))
|
|
||||||
.Where(x => x.Status == DeviceTaskStatusEnumType.Wait)
|
|
||||||
.Select(x => x.Id)
|
|
||||||
.ToListAsync();
|
|
||||||
|
|
||||||
//排除UploadRecord,SyncDateTime的任务,获取最近的任务ID
|
|
||||||
var limitData = await _dbContext.Queryable<DeviceTaskEntity>()
|
var limitData = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||||
.Where(x => x.ModifiedTime >= limitTime)
|
.Where(x => x.ModifiedTime >= limitTime)
|
||||||
.Where(x => x.DeviceUniqueNo == deviceUniqueNo)
|
.Where(x => x.DeviceUniqueNo == deviceUniqueNo)
|
||||||
.Where(x => !otherIds.Contains(x.Id))
|
|
||||||
.OrderBy(x => x.Id)
|
.OrderBy(x => x.Id)
|
||||||
.Select(x => new { x.Id })
|
.Select(x => new { x.Id })
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
|
|
||||||
var startId = limitData?.Id;
|
var startId = limitData?.Id;
|
||||||
|
|
||||||
return (startId, otherIds);
|
return startId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user