From b62527f337ca28eebda7232d4e757db3a1cd1da1 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Thu, 3 Apr 2025 15:59:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?options:=E5=B0=86=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=8F=90=E5=8F=96=E5=88=B0=E5=A4=96=E9=83=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Hangfire/WarningNotifyAggregator.cs | 7 +++++-- .../Options/TrackWarningTaskOptions.cs | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application/Hangfire/WarningNotifyAggregator.cs b/src/SJZY.Track.Application/Hangfire/WarningNotifyAggregator.cs index 352430bf..4864c4ca 100644 --- a/src/SJZY.Track.Application/Hangfire/WarningNotifyAggregator.cs +++ b/src/SJZY.Track.Application/Hangfire/WarningNotifyAggregator.cs @@ -263,6 +263,7 @@ public sealed class WarningNotifyAggregator : ITransientDependency private List BuildNotifyConfigs(List needNotifyTasks) { + var systemId = _optionsMonitor.CurrentValue.MiddleSystemId; var result = new List(); if (needNotifyTasks.Count == 0) return result; @@ -302,11 +303,13 @@ public sealed class WarningNotifyAggregator : ITransientDependency //接收完整预警,命中规则1,通知方式(飞书) ,命中规则2,通知方式(飞书,站内信) //此时聚合后,消息为:总共6条预警消息,其中回传xx条,运输xx条,完整xx条 //同时使用飞书和站内信两种方式通知 - result.Add(NotifyConfig.CreateConfig(userId, notifyMessage, new List + var config = NotifyConfig.CreateConfig(userId, notifyMessage, new List { 1, 2 - })); + }); + config.SystemId = systemId; + result.Add(config); } return result; diff --git a/src/SJZY.Track.Application/Options/TrackWarningTaskOptions.cs b/src/SJZY.Track.Application/Options/TrackWarningTaskOptions.cs index c75f7c6a..61ccfc0d 100644 --- a/src/SJZY.Track.Application/Options/TrackWarningTaskOptions.cs +++ b/src/SJZY.Track.Application/Options/TrackWarningTaskOptions.cs @@ -2,6 +2,11 @@ namespace SJZY.Track.Application.Options; public sealed class TrackWarningTaskOptions { + /// + /// 所属子系统id(业务中台id) + /// + public int MiddleSystemId { get; set; } + /// 通知任务扫描优先级 public int ScanWarningNotifyTaskLevel { get; set; } From 9db4210add3fe319fa53f77c5e6e01e2e8e61944 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Wed, 9 Apr 2025 10:28:40 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E4=B8=BA=E8=BD=A8=E8=BF=B9=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=9C=80=E6=99=9A=E7=9A=84=E8=BD=A8=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/TrackDetailsEsRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs index 2acf972c..22998be5 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs @@ -240,7 +240,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract th .Size(1) .Sort(srt => srt - .Field(f => f.CreateTime, SortOrder.Descending) + .Field(f => f.ZeroTrackTime, SortOrder.Descending) ) .Source() ) From c219a8ee20efa88c26078ba59161a0be4cca446b Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Wed, 9 Apr 2025 15:12:32 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=8A=E7=9A=84=E6=9C=80=E6=96=B0=E8=BD=A8=E8=BF=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E7=BB=B4=E6=8A=A4=EF=BC=8C=E5=A7=8B=E7=BB=88?= =?UTF-8?q?=E4=B8=BA=E8=BD=A8=E8=BF=B9=E5=8F=91=E7=94=9F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=9C=80=E6=99=9A=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...TrackChangeAfterUpdateOrderEventHandler.cs | 27 ++++++++++++------- .../EventHandlers/TrackDeleteEventHandler.cs | 20 +++----------- .../EventHandlers/TrackUpsertEventHandler.cs | 1 - src/SJZY.Track.Domain/Extensions/Empty.cs | 6 +++++ 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs index 8f843860..ac87654b 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs @@ -58,17 +58,24 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa warningCalcOrders.Add(order); } - order.LatestTrackStatus = @event.TrackStatus; - order.LatestTrackContent = @event.TrackContent; - order.LatestTrackEnContent = @event.TrackEnContent; - order.LatestTrackPlace = @event.TrackPlace; - order.LatestTrackTime = @event.TrackTime; - order.LatestTrackTimeZone = @event.TrackTimeZone; - //当【预计签收时间】【签收地时区】同时存在时则更新主表 - if (@event.EstimatedDeliveryDate.HasValue && @event.DestinationTimeZone.HasValue) + // 当轨迹发生时间大于订单上的最新的轨迹发生时间时,才更新订单冗余的轨迹信息 + if (order.LatestTrackTime == null || + (@event.TrackTime.Subtract(TimeSpan.FromHours(@event.TrackTimeZone)) > + order.LatestTrackTime.Value.Subtract(TimeSpan.FromHours(order.LatestTrackTimeZone ?? 0))) + ) { - order.EstimatedDeliveryDate = @event.EstimatedDeliveryDate.Value; - order.DestinationTimeZone = @event.DestinationTimeZone.Value; + order.LatestTrackStatus = @event.TrackStatus; + order.LatestTrackContent = @event.TrackContent; + order.LatestTrackEnContent = @event.TrackEnContent; + order.LatestTrackPlace = @event.TrackPlace; + order.LatestTrackTime = @event.TrackTime; + order.LatestTrackTimeZone = @event.TrackTimeZone; + //当【预计签收时间】【签收地时区】同时存在时则更新主表 + if (@event.EstimatedDeliveryDate.HasValue && @event.DestinationTimeZone.HasValue) + { + order.EstimatedDeliveryDate = @event.EstimatedDeliveryDate.Value; + order.DestinationTimeZone = @event.DestinationTimeZone.Value; + } } updateOrders.Add(order); diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index d4cabf99..fec0c6f8 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -49,14 +49,13 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe var trackList = await DeleteTrackAsync(@event); //当轨迹删除,根据轨迹标记/状态上IsToMq选择进行广播 - if (trackList.Count != 0) + if (trackList.Count > 0) { _ = PublicTrackTopicAsync(@event, trackList); //引发预警计算 WarningCalc_DeletedTrack(trackList); } - // 根据订单关联关系异步向下刷(异步) await DownByOrderLink(@event); } @@ -233,7 +232,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe foreach (var order in orders) { //找到最新的轨迹数据 - var track = tracks?.OrderByDescending(x => x.TrackTime) + var track = tracks?.OrderByDescending(x => x.ZeroTrackTime) .FirstOrDefault(x => x.OrderId == order.Id); // 删除全部轨迹导致的重置行为 @@ -314,18 +313,6 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe var item = dataItem.First(); var content = contentList.First(m => m.TrackContentCode == item.TrackCode); - // _broadcastingService.TrackChangePublicTopic(track, - // dataItem.Select(m => new OrderIdentifier - // { - // OrderId = m.OrderId, - // OrderNo = m.OrderNo, - // OrderType = m.OrderType - // }).ToArray(), - // item.TrackCode, - // item.TrackStatusCode, - // content.SubSystemCode - // ); - //将每个订单的每个轨迹的删除变更发布 foreach (var track in dataItem) { @@ -374,11 +361,10 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe } - public void WarningCalc_DeletedTrack(List delTracks) + private void WarningCalc_DeletedTrack(List delTracks) { var signals = delTracks.Select(x => new TrackDeletedSignal { - //EsId = x.Id, OrderId = x.OrderId, DeletedTrack = x }).ToList(); diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index a59cc7b9..c5465d51 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -236,7 +236,6 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe SubSystemId = @event.SubSystemId, SubSystemCode = trackContent.SubSystemCode, CustomId = @event.CustomId, - //OrderIds = canNextOrderIds.ToArray(), OrderIdEsIdVersionDict = orderIdEsIdVersionDict, TrackCode = @event.TrackCode, SystemPushInfo = new SystemPushStruct diff --git a/src/SJZY.Track.Domain/Extensions/Empty.cs b/src/SJZY.Track.Domain/Extensions/Empty.cs index ed24ce1d..cddd8027 100644 --- a/src/SJZY.Track.Domain/Extensions/Empty.cs +++ b/src/SJZY.Track.Domain/Extensions/Empty.cs @@ -5,3 +5,9 @@ public static class Empty public static readonly List List = new(0); public static readonly HashSet Set = new(0); } + +public static class Empty + where TKey : notnull +{ + public static readonly Dictionary Dict = new(0); +}