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; }