fix:修复运输时效预警规则配置删除异常
This commit is contained in:
parent
ca35a86407
commit
8524fba5df
@ -788,6 +788,26 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
|||||||
// 不存在更新需要关注的,也不存在删除的
|
// 不存在更新需要关注的,也不存在删除的
|
||||||
if (updateFollowRuleItems.Count == 0 && deleteRuleItemIds.Count == 0) return;
|
if (updateFollowRuleItems.Count == 0 && deleteRuleItemIds.Count == 0) return;
|
||||||
|
|
||||||
|
// 只存在删除的规则项目,直接关闭处理返回即可
|
||||||
|
if (updateFollowRuleItems.Count == 0)
|
||||||
|
{
|
||||||
|
// 关闭相关的预警生成任务(未关闭的)
|
||||||
|
await _warningTaskRepository.CloseTransportWarningDetailsGenerateTaskAsync(x =>
|
||||||
|
!x.IsClosed
|
||||||
|
&& x.WarningId == rule.Id
|
||||||
|
&& deleteRuleItemIds.Contains(x.WarningSceneRuleItemId)
|
||||||
|
);
|
||||||
|
|
||||||
|
// 关闭关联的预警通知任务(未关闭的)
|
||||||
|
await _warningTaskRepository.CloseWarningNotifyTaskAsync(x =>
|
||||||
|
!x.IsClosed
|
||||||
|
&& x.WarningId == rule.Id
|
||||||
|
&& x.WarningType == WarningRuleType.运输时效预警.GetHashCode()
|
||||||
|
&& deleteRuleItemIds.Contains(x.WarningRuleItemId)
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 1.查询变更配置相关的预警生成任务(未关闭的)
|
// 1.查询变更配置相关的预警生成任务(未关闭的)
|
||||||
var updateFollowRuleItemIds = updateFollowRuleItems.Select(x => x.Id).ToHashSet();
|
var updateFollowRuleItemIds = updateFollowRuleItems.Select(x => x.Id).ToHashSet();
|
||||||
var generateTasks = await _warningTaskRepository.GetTransportWarningDetailsGenerateTaskAsync(x =>
|
var generateTasks = await _warningTaskRepository.GetTransportWarningDetailsGenerateTaskAsync(x =>
|
||||||
@ -925,10 +945,12 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen
|
|||||||
// 预警信息状态修改为已关闭(即将超时/已超时)
|
// 预警信息状态修改为已关闭(即将超时/已超时)
|
||||||
var closeDetailIds = typeIdsDict.GetValueOrDefault(HandleType.Detail, new HashSet<string>());
|
var closeDetailIds = typeIdsDict.GetValueOrDefault(HandleType.Detail, new HashSet<string>());
|
||||||
if (closeDetailIds.Count > 0)
|
if (closeDetailIds.Count > 0)
|
||||||
|
{
|
||||||
await _warningDetailsEsRepository.BulkCloseTransportWarningDetailsAsync(new BulkCloseTransportWarningDetailsVO
|
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>());
|
||||||
|
|||||||
@ -99,12 +99,10 @@ public class WarningDetailsEsRepository : IWarningDetailsEsRepository, ITransien
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
musts.Add(mu => mu.Terms(t => t.Field(f => f.Status).Terms(input.Status)));
|
||||||
r = await _client.SearchAsync<TransportWarningDetailsIndex>(x => x
|
r = await _client.SearchAsync<TransportWarningDetailsIndex>(x => x
|
||||||
.Index(GlobalConst.TransportWarningDetailsIndex)
|
.Index(GlobalConst.TransportWarningDetailsIndex)
|
||||||
.Query(q => q.Bool(b => b
|
.Query(q => q.Bool(b => b.Must(musts)))
|
||||||
.Must(mu => mu.Terms(t => t.Field(f => f.Status).Terms(input.Status)))
|
|
||||||
.Must(musts)
|
|
||||||
))
|
|
||||||
.Size(SafelyLimit)
|
.Size(SafelyLimit)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user