fix:修复因为精度导致的预警规则时效修改不成功
This commit is contained in:
parent
8a137f7c33
commit
fcf1d88ff0
@ -595,7 +595,7 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe
|
|||||||
private static bool CanNeedFollow(ReturnWarningRuleItemBO oldRule, ReturnWarningRuleItemBO postRule)
|
private static bool CanNeedFollow(ReturnWarningRuleItemBO oldRule, ReturnWarningRuleItemBO postRule)
|
||||||
{
|
{
|
||||||
// 时效发生更改
|
// 时效发生更改
|
||||||
if (Math.Abs(oldRule.ReturnTimeSpan - postRule.ReturnTimeSpan) > 0.1f)
|
if (Math.Abs(oldRule.ReturnTimeSpan - postRule.ReturnTimeSpan) > 0.01f)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// 关注的轨迹状态减少
|
// 关注的轨迹状态减少
|
||||||
|
|||||||
@ -883,14 +883,16 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
|||||||
.Where(x => x.Type == HandleType.Detail)
|
.Where(x => x.Type == HandleType.Detail)
|
||||||
.Select(x => x.Detail)
|
.Select(x => x.Detail)
|
||||||
.ToList();
|
.ToList();
|
||||||
await _warningDetailsEsRepository.BulkUpdateTransportWarningDetailsAsync(updateWarningDetails);
|
if (reHitRuleBlocks.Count > 0)
|
||||||
|
await _warningDetailsEsRepository.BulkUpdateTransportWarningDetailsAsync(updateWarningDetails);
|
||||||
|
|
||||||
// 3.2 更新预警生成任务(重新命中规则)
|
// 3.2 更新预警生成任务(重新命中规则)
|
||||||
var updateGenerateTasks = reHitRuleBlocks
|
var updateGenerateTasks = reHitRuleBlocks
|
||||||
.Where(x => x.Type == HandleType.GenerateTask)
|
.Where(x => x.Type == HandleType.GenerateTask)
|
||||||
.Select(x => x.GenerateTask)
|
.Select(x => x.GenerateTask)
|
||||||
.ToList();
|
.ToList();
|
||||||
await _warningTaskRepository.BulkUpdateTransportWarningDetailsGenerateTaskAsync(updateGenerateTasks);
|
if (updateGenerateTasks.Count > 0)
|
||||||
|
await _warningTaskRepository.BulkUpdateTransportWarningDetailsGenerateTaskAsync(updateGenerateTasks);
|
||||||
|
|
||||||
// 3.3 处理需要关闭的【预警明细】【预警生成任务】【预警通知任务】(未命中规则)
|
// 3.3 处理需要关闭的【预警明细】【预警生成任务】【预警通知任务】(未命中规则)
|
||||||
var typeIdsDict = handleBlocks
|
var typeIdsDict = handleBlocks
|
||||||
@ -910,10 +912,11 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
|||||||
// 4.处理删除规则的相关联的【预警明细】【预警生成任务】【预警通知任务】
|
// 4.处理删除规则的相关联的【预警明细】【预警生成任务】【预警通知任务】
|
||||||
// 预警信息状态修改为已关闭(即将超时/已超时)
|
// 预警信息状态修改为已关闭(即将超时/已超时)
|
||||||
var closeDetailIds = typeIdsDict.GetValueOrDefault(HandleType.Detail, new HashSet<string>());
|
var closeDetailIds = typeIdsDict.GetValueOrDefault(HandleType.Detail, new HashSet<string>());
|
||||||
await _warningDetailsEsRepository.BulkCloseTransportWarningDetailsAsync(new BulkCloseTransportWarningDetailsVO
|
if (closeDetailIds.Count > 0)
|
||||||
{
|
await _warningDetailsEsRepository.BulkCloseTransportWarningDetailsAsync(new BulkCloseTransportWarningDetailsVO
|
||||||
DetailsIds = closeDetailIds,
|
{
|
||||||
});
|
DetailsIds = closeDetailIds,
|
||||||
|
});
|
||||||
|
|
||||||
// 关闭相关的预警生成任务(未关闭的)
|
// 关闭相关的预警生成任务(未关闭的)
|
||||||
var closeGenerateTaskIds = typeIdsDict.GetValueOrDefault(HandleType.GenerateTask, new HashSet<string>());
|
var closeGenerateTaskIds = typeIdsDict.GetValueOrDefault(HandleType.GenerateTask, new HashSet<string>());
|
||||||
@ -968,10 +971,10 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
|||||||
if (oldRule.EndTrackStatusId != postRule.EndTrackStatusId)
|
if (oldRule.EndTrackStatusId != postRule.EndTrackStatusId)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (Math.Abs(oldRule.TransportTimeSpan - postRule.TransportTimeSpan) > 0.1f)
|
if (Math.Abs(oldRule.TransportTimeSpan - postRule.TransportTimeSpan) > 0.01f)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (Math.Abs(oldRule.StartTrackWarningTimeSpan - postRule.StartTrackWarningTimeSpan) > 0.1f)
|
if (Math.Abs(oldRule.StartTrackWarningTimeSpan - postRule.StartTrackWarningTimeSpan) > 0.01f)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -102,6 +102,6 @@ public class ReturnWarningDetailsIndex : IdBaseIndex
|
|||||||
|
|
||||||
public bool MatchTrackTime(DateTime trackTime, float trackTimeZone)
|
public bool MatchTrackTime(DateTime trackTime, float trackTimeZone)
|
||||||
{
|
{
|
||||||
return TrackTime == trackTime && Math.Abs(TrackTimeZone - trackTimeZone) < 0.1f;
|
return TrackTime == trackTime && Math.Abs(TrackTimeZone - trackTimeZone) < 0.01f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -140,7 +140,7 @@ public sealed class TransportWarningDetailsIndex : IdBaseIndex
|
|||||||
|
|
||||||
public DateTime GetUtc0StartTrackTime()
|
public DateTime GetUtc0StartTrackTime()
|
||||||
{
|
{
|
||||||
return Math.Abs(StartTrackTimeZone - GlobalConst.NoneTrackTimeZone) < 0.1f
|
return Math.Abs(StartTrackTimeZone - GlobalConst.NoneTrackTimeZone) < 0.01f
|
||||||
? StartTrackTime
|
? StartTrackTime
|
||||||
: StartTrackTime.Subtract(TimeSpan.FromHours(StartTrackTimeZone));
|
: StartTrackTime.Subtract(TimeSpan.FromHours(StartTrackTimeZone));
|
||||||
}
|
}
|
||||||
@ -148,7 +148,7 @@ public sealed class TransportWarningDetailsIndex : IdBaseIndex
|
|||||||
public DateTime? GetUtc0EndTrackTime()
|
public DateTime? GetUtc0EndTrackTime()
|
||||||
{
|
{
|
||||||
if (EndTrackTime == null || EndTrackTimeZone == null) return null;
|
if (EndTrackTime == null || EndTrackTimeZone == null) return null;
|
||||||
return Math.Abs(EndTrackTimeZone.Value - GlobalConst.NoneTrackTimeZone) < 0.1f
|
return Math.Abs(EndTrackTimeZone.Value - GlobalConst.NoneTrackTimeZone) < 0.01f
|
||||||
? EndTrackTime
|
? EndTrackTime
|
||||||
: EndTrackTime.Value.Subtract(TimeSpan.FromHours(EndTrackTimeZone.Value));
|
: EndTrackTime.Value.Subtract(TimeSpan.FromHours(EndTrackTimeZone.Value));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user