From 8524fba5df10ee08a2b00b6b6a1ebaea7d6fca2f Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Thu, 27 Mar 2025 16:20:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E8=BF=90=E8=BE=93?= =?UTF-8?q?=E6=97=B6=E6=95=88=E9=A2=84=E8=AD=A6=E8=A7=84=E5=88=99=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=88=A0=E9=99=A4=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Handlers/TransportWarningHandler.cs | 22 +++++++++++++++++++ .../WarningDetailsEsRepository.cs | 6 ++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs b/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs index b5b9bfd2..5ceab7b1 100644 --- a/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs +++ b/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs @@ -788,6 +788,26 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen // 不存在更新需要关注的,也不存在删除的 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.查询变更配置相关的预警生成任务(未关闭的) var updateFollowRuleItemIds = updateFollowRuleItems.Select(x => x.Id).ToHashSet(); var generateTasks = await _warningTaskRepository.GetTransportWarningDetailsGenerateTaskAsync(x => @@ -925,10 +945,12 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen // 预警信息状态修改为已关闭(即将超时/已超时) var closeDetailIds = typeIdsDict.GetValueOrDefault(HandleType.Detail, new HashSet()); if (closeDetailIds.Count > 0) + { await _warningDetailsEsRepository.BulkCloseTransportWarningDetailsAsync(new BulkCloseTransportWarningDetailsVO { DetailsIds = closeDetailIds, }); + } // 关闭相关的预警生成任务(未关闭的) var closeGenerateTaskIds = typeIdsDict.GetValueOrDefault(HandleType.GenerateTask, new HashSet()); diff --git a/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs b/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs index c8ec1a82..39bcedfa 100644 --- a/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/WarningDetailsEsRepository.cs @@ -99,12 +99,10 @@ public class WarningDetailsEsRepository : IWarningDetailsEsRepository, ITransien } else { + musts.Add(mu => mu.Terms(t => t.Field(f => f.Status).Terms(input.Status))); r = await _client.SearchAsync(x => x .Index(GlobalConst.TransportWarningDetailsIndex) - .Query(q => q.Bool(b => b - .Must(mu => mu.Terms(t => t.Field(f => f.Status).Terms(input.Status))) - .Must(musts) - )) + .Query(q => q.Bool(b => b.Must(musts))) .Size(SafelyLimit) ); }