diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index 230a456c..3d9885fd 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -175,6 +175,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe { List orderIds; List tracks; + List deleteTracks; if (@event.EsIds != null && @event.EsIds.Any()) //根据明确的esid进行删除 { tracks = await _trackDetailsEsRepository.GetDataByIds(@event.EsIds); @@ -196,6 +197,8 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe await _trackDetailsEsRepository.DeleteTrackByIdAsync(item.Id, item.IndexName); } + //已经删除的轨迹 + deleteTracks = tracks; //清理已经删除过的esid @event.EsIds = Array.Empty(); } @@ -207,7 +210,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe //构建标识符集合 var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime}").ToList(); //根据标识符选出要删除的轨迹明细 - var deleteTracks = tracks.Where(x => ids.Contains($"{x.TrackCode}{x.TrackTime}")).ToList(); + deleteTracks = tracks.Where(x => ids.Contains($"{x.TrackCode}{x.TrackTime}")).ToList(); if (deleteTracks.Count == 0) return deleteTracks; @@ -218,10 +221,10 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe //从被删除轨迹寻找订单id,稍后会更新订单主表 orderIds = deleteTracks.Select(m => m.OrderId).Distinct().ToList(); - //排除掉已经删除的轨迹 - tracks = tracks.Except(deleteTracks).ToList(); } + //排除掉已经删除的轨迹 + tracks = tracks.Except(deleteTracks).ToList(); var orders = await _orderRepository.GetListAsync(x => orderIds.Contains(x.Id), x => new OrderEntity @@ -240,7 +243,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe foreach (var order in orders) { //找到最新的轨迹数据 - var track = tracks?.OrderByDescending(x=>x.TrackTime) + var track = tracks?.OrderByDescending(x => x.TrackTime) .FirstOrDefault(x => x.OrderId == order.Id); // 删除全部轨迹导致的重置行为 @@ -271,7 +274,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe OrderId = order.Id, OrderNo = order.OrderNo, OptionType = OrderOperationType.删除轨迹.ToString(), - Content = tracks?.Where(m => m.OrderId == order.Id).ToList().ToJson(), + Content = deleteTracks?.Where(m => m.OrderId == order.Id).ToList().ToJson(), CreateUserId = @event.OperationManId, CreateUserName = @event.OperationMan ?? "", CreateTime = DateTime.Now @@ -290,6 +293,6 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe x.DestinationTimeZone }); - return tracks; + return deleteTracks; } }