fix:调整订单上的最新轨迹信息的维护,始终为轨迹发生时间最晚的
This commit is contained in:
parent
9db4210add
commit
c219a8ee20
@ -58,17 +58,24 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
warningCalcOrders.Add(order);
|
warningCalcOrders.Add(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
order.LatestTrackStatus = @event.TrackStatus;
|
// 当轨迹发生时间大于订单上的最新的轨迹发生时间时,才更新订单冗余的轨迹信息
|
||||||
order.LatestTrackContent = @event.TrackContent;
|
if (order.LatestTrackTime == null ||
|
||||||
order.LatestTrackEnContent = @event.TrackEnContent;
|
(@event.TrackTime.Subtract(TimeSpan.FromHours(@event.TrackTimeZone)) >
|
||||||
order.LatestTrackPlace = @event.TrackPlace;
|
order.LatestTrackTime.Value.Subtract(TimeSpan.FromHours(order.LatestTrackTimeZone ?? 0)))
|
||||||
order.LatestTrackTime = @event.TrackTime;
|
)
|
||||||
order.LatestTrackTimeZone = @event.TrackTimeZone;
|
|
||||||
//当【预计签收时间】【签收地时区】同时存在时则更新主表
|
|
||||||
if (@event.EstimatedDeliveryDate.HasValue && @event.DestinationTimeZone.HasValue)
|
|
||||||
{
|
{
|
||||||
order.EstimatedDeliveryDate = @event.EstimatedDeliveryDate.Value;
|
order.LatestTrackStatus = @event.TrackStatus;
|
||||||
order.DestinationTimeZone = @event.DestinationTimeZone.Value;
|
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);
|
updateOrders.Add(order);
|
||||||
|
|||||||
@ -49,14 +49,13 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
var trackList = await DeleteTrackAsync(@event);
|
var trackList = await DeleteTrackAsync(@event);
|
||||||
|
|
||||||
//当轨迹删除,根据轨迹标记/状态上IsToMq选择进行广播
|
//当轨迹删除,根据轨迹标记/状态上IsToMq选择进行广播
|
||||||
if (trackList.Count != 0)
|
if (trackList.Count > 0)
|
||||||
{
|
{
|
||||||
_ = PublicTrackTopicAsync(@event, trackList);
|
_ = PublicTrackTopicAsync(@event, trackList);
|
||||||
//引发预警计算
|
//引发预警计算
|
||||||
WarningCalc_DeletedTrack(trackList);
|
WarningCalc_DeletedTrack(trackList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 根据订单关联关系异步向下刷(异步)
|
// 根据订单关联关系异步向下刷(异步)
|
||||||
await DownByOrderLink(@event);
|
await DownByOrderLink(@event);
|
||||||
}
|
}
|
||||||
@ -233,7 +232,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
foreach (var order in orders)
|
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);
|
.FirstOrDefault(x => x.OrderId == order.Id);
|
||||||
|
|
||||||
// 删除全部轨迹导致的重置行为
|
// 删除全部轨迹导致的重置行为
|
||||||
@ -314,18 +313,6 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
var item = dataItem.First();
|
var item = dataItem.First();
|
||||||
var content = contentList.First(m => m.TrackContentCode == item.TrackCode);
|
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)
|
foreach (var track in dataItem)
|
||||||
{
|
{
|
||||||
@ -374,11 +361,10 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void WarningCalc_DeletedTrack(List<TrackDetailsIndex> delTracks)
|
private void WarningCalc_DeletedTrack(List<TrackDetailsIndex> delTracks)
|
||||||
{
|
{
|
||||||
var signals = delTracks.Select(x => new TrackDeletedSignal
|
var signals = delTracks.Select(x => new TrackDeletedSignal
|
||||||
{
|
{
|
||||||
//EsId = x.Id,
|
|
||||||
OrderId = x.OrderId,
|
OrderId = x.OrderId,
|
||||||
DeletedTrack = x
|
DeletedTrack = x
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|||||||
@ -236,7 +236,6 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
SubSystemId = @event.SubSystemId,
|
SubSystemId = @event.SubSystemId,
|
||||||
SubSystemCode = trackContent.SubSystemCode,
|
SubSystemCode = trackContent.SubSystemCode,
|
||||||
CustomId = @event.CustomId,
|
CustomId = @event.CustomId,
|
||||||
//OrderIds = canNextOrderIds.ToArray(),
|
|
||||||
OrderIdEsIdVersionDict = orderIdEsIdVersionDict,
|
OrderIdEsIdVersionDict = orderIdEsIdVersionDict,
|
||||||
TrackCode = @event.TrackCode,
|
TrackCode = @event.TrackCode,
|
||||||
SystemPushInfo = new SystemPushStruct
|
SystemPushInfo = new SystemPushStruct
|
||||||
|
|||||||
@ -5,3 +5,9 @@ public static class Empty<T>
|
|||||||
public static readonly List<T> List = new(0);
|
public static readonly List<T> List = new(0);
|
||||||
public static readonly HashSet<T> Set = new(0);
|
public static readonly HashSet<T> Set = new(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Empty<TKey, TValue>
|
||||||
|
where TKey : notnull
|
||||||
|
{
|
||||||
|
public static readonly Dictionary<TKey, TValue> Dict = new(0);
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user