update: 调整轨迹更新为逐条更新
This commit is contained in:
parent
9b663fad04
commit
f333ef0ea2
@ -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<TrackDetailsIndex>();
|
||||
var updateTracks = new List<TrackDetailsIndex>();
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user