temp
This commit is contained in:
parent
f00805437d
commit
dd8a8065cc
@ -13,7 +13,7 @@ public interface IForewarningNotifyService
|
||||
/// </summary>
|
||||
/// <param name="order">预警订单模型。</param>
|
||||
/// <returns>创建操作的结果,以整数形式返回。</returns>
|
||||
Task<int> CreateForewarningNotify(ForewarningOrderModel order);
|
||||
Task WarningCalculateAsync(List<ForewarningOrderModel> order);
|
||||
|
||||
/// <summary>
|
||||
/// 删除预警通知。
|
||||
|
||||
@ -60,14 +60,20 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
||||
});
|
||||
|
||||
// 预警计算
|
||||
WarningCalculationAsync(orders);
|
||||
}
|
||||
|
||||
private Task WarningCalculationAsync(List<OrderEntity> 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)
|
||||
{
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -31,13 +31,9 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep
|
||||
/// </summary>
|
||||
/// <param name="order">创建预警通知需要的订单信息</param>
|
||||
/// <returns>创建的通知总量,0表示没有规则</returns>
|
||||
public async Task<int> CreateForewarningNotify(ForewarningOrderModel order)
|
||||
public async Task WarningCalculateAsync(List<ForewarningOrderModel> order)
|
||||
{
|
||||
var rules = GetRule(order);
|
||||
if (rules == null || rules.Count == 0)
|
||||
return 0;
|
||||
|
||||
return await ExecuteRule(rules, order.Id);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -107,7 +103,7 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep
|
||||
/// <returns></returns>
|
||||
private List<ForewarningRuleItem> 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);
|
||||
}
|
||||
|
||||
|
||||
@ -10,9 +10,9 @@ public class ForewarningOrderModel:IForewarningFactorValue
|
||||
/// <summary>
|
||||
/// 当前轨迹状态
|
||||
/// </summary>
|
||||
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; }
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user