temp
This commit is contained in:
parent
f00805437d
commit
dd8a8065cc
@ -13,7 +13,7 @@ public interface IForewarningNotifyService
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="order">预警订单模型。</param>
|
/// <param name="order">预警订单模型。</param>
|
||||||
/// <returns>创建操作的结果,以整数形式返回。</returns>
|
/// <returns>创建操作的结果,以整数形式返回。</returns>
|
||||||
Task<int> CreateForewarningNotify(ForewarningOrderModel order);
|
Task WarningCalculateAsync(List<ForewarningOrderModel> order);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 删除预警通知。
|
/// 删除预警通知。
|
||||||
|
|||||||
@ -60,14 +60,20 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 预警计算
|
// 预警计算
|
||||||
WarningCalculationAsync(orders);
|
var warningOrders = orders.Select(order => new ForewarningOrderModel
|
||||||
}
|
|
||||||
|
|
||||||
private Task WarningCalculationAsync(List<OrderEntity> orders)
|
|
||||||
{
|
{
|
||||||
var forewarningOrderModels = orders.Select(OrderToForewarningOrderModel).ToList();
|
Id = order.Id,
|
||||||
|
TrackStatusId = @event.TrackStatusId,
|
||||||
return Task.CompletedTask;
|
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)
|
private OrderEntity MapOrderSummary(OrderEntity x)
|
||||||
@ -75,6 +81,8 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
return new OrderEntity
|
return new OrderEntity
|
||||||
{
|
{
|
||||||
Id = x.Id,
|
Id = x.Id,
|
||||||
|
SubSystemId = x.SubSystemId,
|
||||||
|
CustomId = x.CustomId,
|
||||||
|
|
||||||
// 轨迹
|
// 轨迹
|
||||||
IsCompleted = x.IsCompleted,
|
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.
|
// Placeholder methods for deriving or converting values. You'll need to implement these based on your specific logic.
|
||||||
private int DetermineTrackBasedOnOrderDetails(OrderEntity order)
|
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.Aggregates.ForewarningAggregate;
|
||||||
using SJZY.Track.Domain.Dtos.Forewarning;
|
using SJZY.Track.Domain.Dtos.Forewarning;
|
||||||
using SJZY.Track.Domain.Enums;
|
using SJZY.Track.Domain.Enums;
|
||||||
using SqlSugar;
|
|
||||||
|
|
||||||
namespace SJZY.Track.Application.Helpers;
|
namespace SJZY.Track.Application.Helpers;
|
||||||
|
|
||||||
|
|||||||
@ -31,13 +31,9 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="order">创建预警通知需要的订单信息</param>
|
/// <param name="order">创建预警通知需要的订单信息</param>
|
||||||
/// <returns>创建的通知总量,0表示没有规则</returns>
|
/// <returns>创建的通知总量,0表示没有规则</returns>
|
||||||
public async Task<int> CreateForewarningNotify(ForewarningOrderModel order)
|
public async Task WarningCalculateAsync(List<ForewarningOrderModel> order)
|
||||||
{
|
{
|
||||||
var rules = GetRule(order);
|
throw new NotImplementedException();
|
||||||
if (rules == null || rules.Count == 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return await ExecuteRule(rules, order.Id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -107,7 +103,7 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private List<ForewarningRuleItem> GetRule(ForewarningOrderModel order)
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
@ -120,7 +116,7 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep
|
|||||||
if (!_ruleGroupDict.TryGetValue(item, out var rules))
|
if (!_ruleGroupDict.TryGetValue(item, out var rules))
|
||||||
continue;
|
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);
|
result.AddRange(allRules);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,9 +10,9 @@ public class ForewarningOrderModel:IForewarningFactorValue
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 当前轨迹状态
|
/// 当前轨迹状态
|
||||||
/// </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; }
|
public int CustomerId { get; set; }
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user