From dd8a8065ccaf3fc95f7e196c4dcf821204c95ee6 Mon Sep 17 00:00:00 2001 From: xiaolipro <2357729423@qq.com> Date: Fri, 26 Jul 2024 17:57:58 +0800 Subject: [PATCH] temp --- .../Services/IForewarningNotifyService.cs | 2 +- ...TrackChangeAfterUpdateOrderEventHandler.cs | 41 ++++++++----------- .../Helpers/ForewarningHelper.cs | 1 - .../ForewarningNotifyService.cs | 12 ++---- .../Dtos/Forewarning/ForewarningOrderModel.cs | 4 +- 5 files changed, 23 insertions(+), 37 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Services/IForewarningNotifyService.cs b/src/SJZY.Track.Application.Contract/Services/IForewarningNotifyService.cs index f76891a1..58dcd995 100644 --- a/src/SJZY.Track.Application.Contract/Services/IForewarningNotifyService.cs +++ b/src/SJZY.Track.Application.Contract/Services/IForewarningNotifyService.cs @@ -13,7 +13,7 @@ public interface IForewarningNotifyService /// /// 预警订单模型。 /// 创建操作的结果,以整数形式返回。 - Task CreateForewarningNotify(ForewarningOrderModel order); + Task WarningCalculateAsync(List order); /// /// 删除预警通知。 diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs index 8293c2fb..859fb666 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs @@ -60,14 +60,20 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa }); // 预警计算 - WarningCalculationAsync(orders); - } - - private Task WarningCalculationAsync(List orders) - { - var forewarningOrderModels = orders.Select(OrderToForewarningOrderModel).ToList(); - - return Task.CompletedTask; + var warningOrders = orders.Select(order => new ForewarningOrderModel + { + Id = order.Id, + TrackStatusId = @event.TrackStatusId, + SubSystemId = order.SubSystemId, + CustomerId = order.CustomId, + CargoType = order.CargoType, + Month = order.CreateTime.Month, + Area = DetermineAreaBasedOnOrderDetails(order), + IsTransit = order.IsTransit, + LeavePort = order.LeavePort, + ProductCode = order.ProductCode + }).ToList(); + _forewarningNotifyService.WarningCalculateAsync(warningOrders); } private OrderEntity MapOrderSummary(OrderEntity x) @@ -75,6 +81,8 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa return new OrderEntity { Id = x.Id, + SubSystemId = x.SubSystemId, + CustomId = x.CustomId, // 轨迹 IsCompleted = x.IsCompleted, @@ -97,23 +105,6 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa }; } - private ForewarningOrderModel OrderToForewarningOrderModel(OrderEntity order) - { - return new ForewarningOrderModel - { - Id = order.Id, - Track = DetermineTrackBasedOnOrderDetails(order), - SystemId = order.SubSystemId, - CustomerId = order.CustomId, - CargoType = order.CargoType, - Month = order.CreateTime.Month, - Area = DetermineAreaBasedOnOrderDetails(order), - IsTransit = order.IsTransit, - LeavePort = order.LeavePort, - ProductCode = order.ProductCode - }; - } - // Placeholder methods for deriving or converting values. You'll need to implement these based on your specific logic. private int DetermineTrackBasedOnOrderDetails(OrderEntity order) { diff --git a/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs b/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs index c85ef3db..6b572c44 100644 --- a/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs +++ b/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs @@ -6,7 +6,6 @@ using SJZY.Track.Application.Contract.Dtos.Forewarning; using SJZY.Track.Domain.Aggregates.ForewarningAggregate; using SJZY.Track.Domain.Dtos.Forewarning; using SJZY.Track.Domain.Enums; -using SqlSugar; namespace SJZY.Track.Application.Helpers; diff --git a/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs b/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs index 8aa91e75..c097ff7c 100644 --- a/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs +++ b/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs @@ -31,13 +31,9 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep /// /// 创建预警通知需要的订单信息 /// 创建的通知总量,0表示没有规则 - public async Task CreateForewarningNotify(ForewarningOrderModel order) + public async Task WarningCalculateAsync(List order) { - var rules = GetRule(order); - if (rules == null || rules.Count == 0) - return 0; - - return await ExecuteRule(rules, order.Id); + throw new NotImplementedException(); } /// @@ -107,7 +103,7 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep /// private List GetRule(ForewarningOrderModel order) { - if (!_factorDict.TryGetValue(GetFactorKey(order.CustomerId, order.SystemId), out var factors)) + if (!_factorDict.TryGetValue(GetFactorKey(order.CustomerId, order.SubSystemId), out var factors)) { return null; } @@ -120,7 +116,7 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep if (!_ruleGroupDict.TryGetValue(item, out var rules)) continue; - var allRules = rules.Where(val => val.TrackStart <= order.Track && val.TrackEnd >= order.Track); + var allRules = rules.Where(val => val.TrackStart <= order.TrackStatusId && val.TrackEnd >= order.TrackStatusId); result.AddRange(allRules); } diff --git a/src/SJZY.Track.Domain/Dtos/Forewarning/ForewarningOrderModel.cs b/src/SJZY.Track.Domain/Dtos/Forewarning/ForewarningOrderModel.cs index 8dbd7ae5..3767abcb 100644 --- a/src/SJZY.Track.Domain/Dtos/Forewarning/ForewarningOrderModel.cs +++ b/src/SJZY.Track.Domain/Dtos/Forewarning/ForewarningOrderModel.cs @@ -10,9 +10,9 @@ public class ForewarningOrderModel:IForewarningFactorValue /// /// 当前轨迹状态 /// - public int Track { get; set; } + public int TrackStatusId { get; set; } - public int SystemId { get; set; } + public int SubSystemId { get; set; } public int CustomerId { get; set; }