diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index eba60623..8b067c6e 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -199,6 +199,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe return default; } + //#7001:未来潜在需求,当轨迹内容匹配预设,记录一个标记,保证下刷过程都是使用预设内衣 //虽然在引发事件之前做了判断,引发之后并不一定立即处理,在此过程中轨迹内容仍然可能被修改,所以要二次进行判断。 //通过来源指示是否为手动操作 var manualOperation = @event.Source == (int) TrackSourceEnum.Artificial; @@ -275,7 +276,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe var orderIds = @event.OrderIdentifiers.Select(x => x.OrderId).ToArray(); // important:轨迹code相同,时间、发生地不同的,可能存在多条!! - var tracks = await _trackDetailsEsRepository.GetListAsync(orderIds, @event.TrackCode, true); + var tracks = await _trackDetailsEsRepository.GetListAsync(orderIds, @event.TrackCode, false); var insertTracks = new List(); var updateTracks = new List(); @@ -355,6 +356,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe //来源轨迹内容,第一次新增的时候使用轨迹内容表提供的 TrackStatus = trackContent.TrackStatus, TrackStatusCode = trackContent.TrackStatusCode, + //跨子系统? TrackContent = @event.Content ?? trackContent.TrackContent, TrackEnContent = @event.EnStatus ?? trackContent.TrackEnContent, //S06新增轨迹明细字段 @@ -411,6 +413,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe track.UpdateTime = DateTime.Now; //允许二次修改,在修改了轨迹内容后进行修改轨迹操作,如果输入的轨迹内容则以输入为准 + //跨子系统? track.TrackContent = @event.Content ?? trackContent.TrackContent; track.TrackEnContent = @event.EnStatus ?? trackContent.TrackEnContent; //S06新增 @@ -451,6 +454,11 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe if (updateTracks.Any()) { + //逐条更新 + foreach (var track in updateTracks) + { + await _trackDetailsEsRepository.UpdateAsync(track); + } await _trackDetailsEsRepository.UpdateManyAsync(updateTracks); } diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs index e4dbd518..8cbd290f 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs @@ -183,6 +183,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract indexes, int maxRetries = 3) { var retryCount = 0;