diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs
index 8248c8e0..ce97f715 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs
@@ -4,6 +4,11 @@ namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class UpsertTrackInput : OrderNoInfo
{
+ ///
+ /// true新增,false更新
+ ///
+ public bool IsAdd { get; set; }
+
///
/// 轨迹内容代码
///
diff --git a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs
index 0e5da045..6c8fd767 100644
--- a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs
+++ b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs
@@ -105,7 +105,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
///
private async Task UpsertTrackAsync(TrackDetailsIndex? track, TrackUpsertEvent @event)
{
- if (track == default)
+ if (track == default && @event.IsAdd)
{
//todo:可以优化
// 根据轨迹code在订单模板内容中寻找匹配的
@@ -137,8 +137,11 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
CreateUser = CurrentUserRequest.CurrentUser.Name,
CreateTime = DateTime.Now
};
+
+ track.ZeroTrackTime = track.TrackTime.Subtract(TimeSpan.FromHours(track.TrackTimeZone));
}
- else
+
+ if (track != default && !@event.IsAdd)
{
track.TrackPlace = @event.TrackPlace;
track.TrackTime = @event.TrackTime!.Value;
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs
index b596c85a..b3319d35 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs
@@ -82,6 +82,11 @@ public class TrackDetailsIndex : IdBaseIndex
///
public float TrackTimeZone { get; set; }
+ ///
+ /// 转化后的轨迹发生时间
+ ///
+ public DateTime ZeroTrackTime { get; set; }
+
/// 是否可删
public bool IsCanDelete { get; set; }