update: 轨迹明细,新增/修改轨迹增加字段【Extra】用于存储需要推送的扩展信息

update:轨迹明细,冗余轨迹状态Id,轨迹内容Id,便于后续快速索引
This commit is contained in:
hardstylewyl 2024-12-16 14:46:19 +08:00
parent 337af63c6d
commit 8ac126917d
12 changed files with 63 additions and 9 deletions

View File

@ -119,4 +119,9 @@ public class BatchUpsertTrackInput : OrderNosInfo
/// </summary>
[Range(-12, 12)]
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string,object>? Extra { get; set; }
}

View File

@ -101,4 +101,9 @@ public class TrackDetail
/// 目的地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
}

View File

@ -123,4 +123,9 @@ public class UpsertTrackInput : OrderNoInfo
/// 当前操作人
/// </summary>
public int OptionUserId { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
}

View File

@ -141,6 +141,11 @@ public class TrackUpsertEvent
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
public override string ToString()
{
return

View File

@ -199,7 +199,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
return default;
}
//#7001:未来潜在需求,当轨迹内容匹配预设,记录一个标记,保证下刷过程都是使用预设内衣
//#7001:未来潜在需求,当轨迹内容匹配预设,记录一个标记,保证下刷过程都是使用预设内容
//虽然在引发事件之前做了判断,引发之后并不一定立即处理,在此过程中轨迹内容仍然可能被修改,所以要二次进行判断。
//通过来源指示是否为手动操作
var manualOperation = @event.Source == (int) TrackSourceEnum.Artificial;
@ -353,9 +353,11 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
CreateUser = @event.OperationMan ?? GlobalConst.SystemUser,
CreateTime = DateTime.Now,
//来源轨迹内容,第一次新增的时候使用轨迹内容表提供的
TrackStatusId = trackContent.TrackStatusId,
TrackStatus = trackContent.TrackStatus,
TrackStatusCode = trackContent.TrackStatusCode,
//跨子系统?
TrackContentId = trackContent.TrackContentId,
TrackContent = @event.Content ?? trackContent.TrackContent,
TrackEnContent = @event.EnStatus ?? trackContent.TrackEnContent,
//S06新增轨迹明细字段
@ -376,6 +378,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
TrackPlacePostcode = @event.TrackPlacePostcode ?? GlobalConst.EmptyString,
DestinationTimeZone = @event.DestinationTimeZone,
EstimatedDeliveryDate = @event.EstimatedDeliveryDate,
Extra = @event.Extra
};
track.ZeroTrackTime = Math.Abs(track.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1
@ -432,6 +435,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
track.TrackPlacePostcode = @event.TrackPlacePostcode ?? GlobalConst.EmptyString;
track.DestinationTimeZone = @event.DestinationTimeZone;
track.EstimatedDeliveryDate = @event.EstimatedDeliveryDate;
track.Extra = @event.Extra;
updateTracks.Add(track);

View File

@ -300,8 +300,10 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
CreateUser = GlobalConst.SystemUser,
CreateTime = DateTime.Now,
//来源轨迹内容,第一次新增的时候使用轨迹内容表提供的
TrackStatusId = GlobalConst.NotExistId,
TrackStatus = GlobalConst.EmptyString,
TrackStatusCode = GlobalConst.EmptyString,
TrackContentId = GlobalConst.NotExistId,
TrackContent = GlobalConst.EmptyString,
TrackEnContent = GlobalConst.EmptyString,
//S06新增轨迹明细字段
@ -318,6 +320,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
TrackPlacePostcode = null,
DestinationTimeZone = null,
EstimatedDeliveryDate = null,
Extra = null
};
track.ZeroTrackTime = Math.Abs(track.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1

View File

@ -79,7 +79,8 @@ public partial class TrackService
TrackPlaceNationId = x.TrackPlaceNationId,
TrackPlacePostcode = x.TrackPlacePostcode,
DestinationTimeZone = x.DestinationTimeZone,
EstimatedDeliveryDate = x.EstimatedDeliveryDate
EstimatedDeliveryDate = x.EstimatedDeliveryDate,
Extra = x.Extra
}).ToList();
res.Add(item);

View File

@ -443,10 +443,10 @@ public partial class TrackService : ApplicationService, ITrackService
{
SubSystemId = input.SubSystemId,
CustomId = group.Key,
OrderIdentifiers = group.Select(order => new OrderIdentifier
OrderIdentifiers = group.Select(o => new OrderIdentifier
{
OrderId = order.Id,
OrderNo = order.OrderNo,
OrderId = o.Id,
OrderNo = o.OrderNo,
OrderType = input.OrderType,
}).ToArray(),
IsAdd = input.IsAdd,
@ -472,6 +472,7 @@ public partial class TrackService : ApplicationService, ITrackService
TrackPlacePostcode = input.TrackPlacePostcode,
EstimatedDeliveryDate = input.EstimatedDeliveryDate,
DestinationTimeZone = input.DestinationTimeZone,
Extra = input.Extra
};
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, @event);
}

View File

@ -32,6 +32,11 @@ public class TrackDetailsIndex : IdBaseIndex
/// </summary>
public int OrderType { get; set; }
/// <summary>
/// 轨迹状态Id
/// </summary>
public int TrackStatusId { get; set; } = GlobalConst.NotExistId;
/// <summary>
/// 轨迹状态
/// </summary>
@ -42,6 +47,11 @@ public class TrackDetailsIndex : IdBaseIndex
/// </summary>
public string TrackStatusCode { get; set; } = GlobalConst.EmptyString;
/// <summary>
/// 轨迹内容Id
/// </summary>
public int TrackContentId { get; set; } = GlobalConst.NotExistId;
/// <summary>
/// 轨迹内容代码
/// </summary>
@ -176,4 +186,9 @@ public class TrackDetailsIndex : IdBaseIndex
/// 签收地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
}

View File

@ -17,6 +17,11 @@ public class TrackContentVO
/// </summary>
public string TrackStatus { get; set; } = null!;
/// <summary>
/// 轨迹内容Id
/// </summary>
public int TrackContentId { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>

View File

@ -261,6 +261,7 @@ public class TrackContentRepository : BasicRepository<TrackContentEntity>, ITrac
TrackStatusId = x.TrackStatusId,
TrackStatus = y.Status,
TrackStatusCode = y.Code,
TrackContentId = x.Id,
TrackContent = x.Content,
TrackContentCode = x.Code,
TrackEnContent = x.EnContent,

View File

@ -173,7 +173,8 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
track.TrackPlaceNationId,
track.TrackPlacePostcode,
track.DestinationTimeZone,
track.EstimatedDeliveryDate
track.EstimatedDeliveryDate,
track.Extra
})
);
@ -218,7 +219,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
ctx._source.trackPlacePostcode = params.trackPlacePostcode;
ctx._source.destinationTimeZone = params.destinationTimeZone;
ctx._source.estimatedDeliveryDate = params.estimatedDeliveryDate;
ctx._source.extra = params.extra;
")
.Params(p => p
.Add("trackPlace", track.TrackPlace)
@ -241,6 +242,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
.Add("trackPlacePostcode", track.TrackPlacePostcode)
.Add("destinationTimeZone", track.DestinationTimeZone)
.Add("estimatedDeliveryDate", track.EstimatedDeliveryDate)
.Add("extra", track.Extra)
)
)
);
@ -294,6 +296,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
ctx._source.trackPlacePostcode = params.trackPlacePostcode;
ctx._source.destinationTimeZone = params.destinationTimeZone;
ctx._source.estimatedDeliveryDate = params.estimatedDeliveryDate;
ctx._source.extra = params.extra;
").Params(p => p
.Add("trackPlace", track.TrackPlace)
.Add("trackTime", track.TrackTime)
@ -314,8 +317,9 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
.Add("trackPlaceNationId", track.TrackPlaceNationId)
.Add("trackPlacePostcode", track.TrackPlacePostcode)
.Add("destinationTimeZone", track.DestinationTimeZone)
.Add("estimatedDeliveryDate", track.EstimatedDeliveryDate))
));
.Add("estimatedDeliveryDate", track.EstimatedDeliveryDate)
.Add("extra", track.Extra)
)));
var retryCount = 0;
var updateSuccessful = false;