fix:修复运输时效预警状态计算逻辑

This commit is contained in:
hardstylewyl 2025-04-01 10:26:52 +08:00
parent e5956abbf7
commit e004389413
2 changed files with 12 additions and 4 deletions

View File

@ -330,7 +330,6 @@ public class TransportWarningService : ApplicationService
});
}
/// <summary>
/// 删除运输时效规则场景
/// </summary>
@ -360,7 +359,6 @@ public class TransportWarningService : ApplicationService
return new UnifyResultDto(true);
}
/// <summary>
/// 编辑预警规则项目(全量)
/// </summary>

View File

@ -127,6 +127,7 @@ public sealed class TransportWarningDetailsIndex : IdBaseIndex
public int CalcStatus(TrackDetailsIndex? startStatusTrack, TrackDetailsIndex? endStatusTrack)
{
if (Status == (int) TransportWarningStatus.已关闭) return Status;
var isEnd = !string.IsNullOrWhiteSpace(EndTrackContent);
//时效
var transportTimeSpan = TimeSpan.FromHours(TransportTimeSpan); //小时
//预警时效(预警发出的时间对比于最早轨迹状态时间的跨度)
@ -137,11 +138,20 @@ public sealed class TransportWarningDetailsIndex : IdBaseIndex
//时效>累计运输时间>=预警时效 状态调整为【即将超时】
if (transportTimeSpan > cumulativeTimeSpan && cumulativeTimeSpan >= startTrackWarningTimeSpan)
return Status = (int) TransportWarningStatus.即将超时;
{
return Status = isEnd
? (int) TransportWarningStatus.已完成
: (int) TransportWarningStatus.即将超时;
}
//时效<累计运输时间 状态调整为【已超时】
if (transportTimeSpan < cumulativeTimeSpan)
return Status = (int) TransportWarningStatus.已超时;
{
return Status = isEnd
? (int) TransportWarningStatus.超时完成
: (int) TransportWarningStatus.已超时;
}
return Status;
}