fix 任务过滤
This commit is contained in:
@@ -15,6 +15,7 @@ using Newtonsoft.Json.Linq;
|
||||
using Kurisu.Core.CustomClass;
|
||||
using Kurisu.AspNetCore;
|
||||
using Kurisu.AspNetCore.Utils;
|
||||
using Org.BouncyCastle.Asn1.Ocsp;
|
||||
|
||||
namespace Dlhis.ScheduledTask.TaskAssignment.Services.Implements;
|
||||
|
||||
@@ -33,9 +34,9 @@ public class AssignmentService : IAssignmentService
|
||||
|
||||
public async Task<List<DeviceTaskToDeviceByDeviceResponse>> DeviceGetTasksAsync(DeviceTaskGetRequest request)
|
||||
{
|
||||
//获取心跳设备
|
||||
var key = "heardbeat-devices";
|
||||
var heartbeatDeviceNos = (await _redisCache.ListRangeAsync(key))?.Select(x => x.ToString()).ToList();
|
||||
////获取心跳设备 todo
|
||||
//var key = "heardbeat-devices";
|
||||
//var heartbeatDeviceNos = (await _redisCache.ListRangeAsync(key))?.Select(x => x.ToString()).ToList();
|
||||
|
||||
var data = await ContinueUpdateAsync(async () =>
|
||||
{
|
||||
@@ -49,7 +50,7 @@ public class AssignmentService : IAssignmentService
|
||||
.WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type))
|
||||
.WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait)
|
||||
.WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process)
|
||||
.Where(deviceTask => heartbeatDeviceNos.Contains(deviceTask.DeviceUniqueNo))
|
||||
//.Where(deviceTask => heartbeatDeviceNos.Contains(deviceTask.DeviceUniqueNo))
|
||||
.OrderBy(deviceTask => deviceTask.CreateTime)
|
||||
.Select((deviceTask, deivce, deivceTamplate, ga, department) => new
|
||||
{
|
||||
@@ -318,23 +319,18 @@ public class AssignmentService : IAssignmentService
|
||||
.Where(x => x.Status == DeviceTaskStatusEnumType.Process)
|
||||
.ToListAsync();
|
||||
|
||||
taskIds = deviceTasks.Select(x => x.Id).ToList();
|
||||
|
||||
requests = requests.Where(x => taskIds.Contains(x.TaskId)).ToList();
|
||||
|
||||
var now = DateTime.Now;
|
||||
var tasks = new List<DeviceTaskEntity>(requests.Count);
|
||||
foreach (var request in requests)
|
||||
|
||||
deviceTasks.ForEach(task =>
|
||||
{
|
||||
var deviceTask = deviceTasks.First(x => x.Id == request.TaskId);
|
||||
var callbackMessage = requests.First(x => x.TaskId == task.Id);
|
||||
|
||||
deviceTask.Status = request.IsSuccess ? DeviceTaskStatusEnumType.Success : DeviceTaskStatusEnumType.Error;
|
||||
deviceTask.ResultMessage = request.ResultMessage;
|
||||
deviceTask.ModifiedTime = now;
|
||||
tasks.Add(deviceTask);
|
||||
}
|
||||
task.Status = callbackMessage.IsSuccess ? DeviceTaskStatusEnumType.Success : DeviceTaskStatusEnumType.Error;
|
||||
task.ResultMessage = callbackMessage.ResultMessage;
|
||||
task.ModifiedTime = now;
|
||||
});
|
||||
|
||||
await _dbContext.UpdateAsync(tasks);
|
||||
await _dbContext.UpdateAsync(deviceTasks);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user