fix 标识任务的设备状态
This commit is contained in:
@@ -82,4 +82,17 @@ public class DeviceTaskAssignmentResponse
|
||||
/// 部署点
|
||||
/// </summary>
|
||||
public string DeployPlace { get; set; }
|
||||
}
|
||||
|
||||
public int HeartbeatInterval { get; set; }
|
||||
|
||||
public DateTime LastHeartbeatTime { get; set; }
|
||||
|
||||
public bool IsOffline
|
||||
{
|
||||
get
|
||||
{
|
||||
if (HeartbeatInterval == 0) return false;
|
||||
return LastHeartbeatTime.AddSeconds(HeartbeatInterval) > DateTime.Now;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||
.LeftJoin<GainfoEntity>((deviceTask, device, ga) => deviceTask.UserNo == ga.No)
|
||||
.LeftJoin<GainfoLeaveEntity>((deviceTask, device, ga, gaLeave) => deviceTask.UserNo == gaLeave.No)
|
||||
.LeftJoin<GainfoLeaveEntity>((deviceTask, device, ga, gaLeave, gaEx) => deviceTask.UserNo == gaEx.No)
|
||||
.LeftJoin<DeviceRegistryEntity>((deviceTask, device, ga, gaLeave, gaEx, deviceRegistry) => deviceRegistry.DeviceUniqueNo == deviceTask.DeviceUniqueNo)
|
||||
.Where(deviceTask => deviceTask.TenantId == request.Factory)
|
||||
.WhereIF(request.Type.HasValue, deviceTask => deviceTask.DeviceType == request.Type)
|
||||
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true && request.SearchDateTimePeriod?.End.HasValue == true,
|
||||
@@ -44,7 +45,7 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||
|| deviceTask.DeviceUniqueNo == request.Search
|
||||
)
|
||||
.OrderBy(deviceTask => deviceTask.CreateTime, OrderByType.Desc)
|
||||
.Select((deviceTask, device, ga, gaLeave, gaEx) => new DeviceTaskAssignmentResponse
|
||||
.Select((deviceTask, device, ga, gaLeave, gaEx, deviceRegistry) => new DeviceTaskAssignmentResponse
|
||||
{
|
||||
Id = deviceTask.Id,
|
||||
DeviceUniqueNo = deviceTask.DeviceUniqueNo,
|
||||
@@ -52,12 +53,18 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||
RetryCount = deviceTask.Version,
|
||||
Status = deviceTask.Status,
|
||||
UserNo = deviceTask.UserNo,
|
||||
UserName = SqlFunc.IsNull(SqlFunc.IsNull(ga.Name, gaLeave.Name), gaEx.Name),
|
||||
UserCode = SqlFunc.IsNull(SqlFunc.IsNull(ga.Code, gaLeave.Code), gaEx.Code),
|
||||
UserName = SqlFunc.IsNull(SqlFunc.IsNull(ga.Name,
|
||||
gaLeave.Name),
|
||||
gaEx.Name),
|
||||
UserCode = SqlFunc.IsNull(SqlFunc.IsNull(ga.Code,
|
||||
gaLeave.Code),
|
||||
gaEx.Code),
|
||||
Type = deviceTask.Type,
|
||||
CreateTime = deviceTask.CreateTime,
|
||||
LastUpdateTime = deviceTask.ModifiedTime,
|
||||
TenantId = deviceTask.TenantId,
|
||||
LastHeartbeatTime = deviceRegistry.LastHeartbeatTime,
|
||||
HeartbeatInterval = device.HeartbeatInterval,
|
||||
DeployPlace = device.DeployPlace,
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
|
||||
Reference in New Issue
Block a user