fix 心跳间隔为0默认为活跃状态

This commit is contained in:
2024-06-11 17:56:41 +08:00
parent 62f1545796
commit 5d9dcc3752

View File

@@ -246,7 +246,7 @@ public class AssignmentService : IAssignmentService
.WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type))
.WhereIF(request.Brand.IsPresent(), (deviceTask, device, deviceTemplate) => deviceTemplate.Brand == request.Brand)
.Where((deviceTask, device, deviceTemplate, ga, gaLeave, department, gainfoEx, deviceRegistry) =>
SqlFunc.DateAdd(deviceRegistry.LastHeartbeatTime, SqlFunc.IIF(device.HeartbeatInterval == 0, 30, 30), DateType.Second) > DateTime.Now)
device.HeartbeatInterval == 0 || SqlFunc.DateAdd(deviceRegistry.LastHeartbeatTime, device.HeartbeatInterval, DateType.Second) > DateTime.Now)
.OrderBy(deviceTask => new { Priority = SqlFunc.Desc(deviceTask.Priority), deviceTask.CreateTime })
.Select((deviceTask, device, deviceTemplate, ga, gaLeave, department, gainfoEx) => new TaskDto
{
@@ -294,31 +294,31 @@ public class AssignmentService : IAssignmentService
private async Task<Dictionary<string, DateTime?>> GetDeviceUploadRecordInfosAsync(List<TaskDto> data)
{
if (data.Any(x => x.Type == DeviceTaskEnumType.UploadRecord))
if (data.All(x => x.Type != DeviceTaskEnumType.UploadRecord))
{
var deviceNos = data.Select(x => x.DeviceUniqueNo).Distinct().ToList();
var result = new Dictionary<string, DateTime?>(deviceNos.Count);
//日志数据最后一条
var logInfos = await _dbContext.Queryable<DeviceUploadLogEntity>().Select(it => new
{
RowNumber = SqlFunc.RowNumber(SqlFunc.Desc(it.Id), it.DeviceUniqueNo),
it.DeviceUniqueNo,
it.RaiseDateTime
})
.MergeTable()
.Where(it => it.RowNumber == 1)
.ToListAsync();
foreach (var item in deviceNos)
{
var logInfo = logInfos.FirstOrDefault(x => x.DeviceUniqueNo == item);
result.Add(item, logInfo?.RaiseDateTime);
}
return result;
return new Dictionary<string, DateTime?>();
}
return new Dictionary<string, DateTime?>();
var deviceNos = data.Select(x => x.DeviceUniqueNo).Distinct().ToList();
var result = new Dictionary<string, DateTime?>(deviceNos.Count);
//日志数据最后一条
var logInfos = await _dbContext.Queryable<DeviceUploadLogEntity>().Select(it => new
{
RowNumber = SqlFunc.RowNumber(SqlFunc.Desc(it.Id), it.DeviceUniqueNo),
it.DeviceUniqueNo,
it.RaiseDateTime
})
.MergeTable()
.Where(it => it.RowNumber == 1)
.ToListAsync();
foreach (var item in deviceNos)
{
var logInfo = logInfos.FirstOrDefault(x => x.DeviceUniqueNo == item);
result.Add(item, logInfo?.RaiseDateTime);
}
return result;
}
}