diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs index baaeb7bb..d5767cd5 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs @@ -49,6 +49,7 @@ public class BatchUpsertTrackInput : OrderNosInfo /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 + /// 批量新增时使用指定轨迹来源,更新时无需指定 /// [Required] public int Source { get; set; } diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index 58b1cd4f..eba60623 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -298,8 +298,6 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe if (track == null) continue; // 不存在不让改 - //来源与外部服务商不允许修改 - if (track.Source == (int) TrackSourceEnum.ExternalServiceProvide) continue; } else { @@ -398,9 +396,14 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe } else { - track.TrackPlace = @event.TrackPlace; - track.TrackTime = @event.NewTrackTime ?? @event.TrackTime; - track.TrackTimeZone = @event.TrackTimeZone; + //外部轨迹,轨迹发生地,轨迹发生时间,轨迹发生时区,不允许更改 + if (track.Source != (int) TrackSourceEnum.ExternalServiceProvide) + { + track.TrackPlace = @event.TrackPlace; + track.TrackTime = @event.NewTrackTime ?? @event.TrackTime; + track.TrackTimeZone = @event.TrackTimeZone; + } + track.ZeroTrackTime = Math.Abs(track.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1 ? track.TrackTime : track.TrackTime.Subtract(TimeSpan.FromHours(track.TrackTimeZone));