fix 任务过滤

This commit is contained in:
2024-04-06 20:57:31 +08:00
parent 9632e31772
commit 28e4cbf513

View File

@@ -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);
}