using SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Events; public class TrackUpsertEvent { /// /// 子系统id /// public int SubSystemId { get; set; } /// /// 客户id /// public int CustomId { get; set; } /// /// 订单id /// public OrderIdentifier[] OrderIdentifiers { get; set; } = null!; /// /// 轨迹唯一标识(用于单个订单更新单条轨迹,如果有的话优先级最高) /// public string? EsId { get; set; } /// /// 操作人(null则默认系统) /// public string? OperationMan { get; set; } /// /// 操作人id /// public int OperationManId { get; set; } /// /// true新增,false更新 /// public bool IsAdd { get; set; } /// /// 轨迹内容代码 /// public string TrackCode { get; set; } = null!; /// /// 轨迹发生地 /// public string TrackPlace { get; set; } = null!; /// /// 轨迹发生时间 /// public DateTime TrackTime { get; set; } /// /// 更改后的轨迹发生时间,无需更改保持为空 /// public DateTime? NewTrackTime { get; set; } /// /// 轨迹发生时区 /// public float TrackTimeZone { get; set; } /// /// 已经处理过的订单 /// public List Visited { get; set; } = new(); public TrackRefreshStruct TrackRefreshData { get; set; } /// /// 客户是否可见 /// [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } /// /// 是否对外 /// public bool? IsExternal { get; set; } /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// public int Source { get; set; } /// /// 轨迹备注 /// public string? Remarks { get; set; } /// /// 附件集合 /// public List? Files { get; set; } /// /// 轨迹内容,若为空则取轨迹内容表中该轨迹Code对应的轨迹内容 /// public string? Content { get; set; } /// /// 轨迹内容英文,若为空则取轨迹内容表中该轨迹Code对应的轨迹英文内容 /// public string? EnStatus { get; set; } /// /// 轨迹发生地(城市) /// public string? TrackPlaceCity { get; set; } /// /// 轨迹发生地(城市)Id /// public int? TrackPlaceCityId { get; set; } /// /// 轨迹发生地(省/州) /// public string? TrackPlaceProvince { get; set; } /// ///轨迹发生地(省/州)Id /// public int? TrackPlaceProvinceId { get; set; } /// /// 轨迹发生地(国家/地区) /// public string? TrackPlaceNation { get; set; } /// /// 轨迹发生地(国家/地区)Id /// public int? TrackPlaceNationId { get; set; } /// /// 轨迹发生地邮编 /// public string? TrackPlacePostcode { get; set; } /// /// 预计到达时间 /// public DateTime? EstimatedDeliveryDate { get; set; } /// /// 目的地时区 /// public float? DestinationTimeZone { get; set; } /// /// 重复的情况下,用什么比较 /// public string? CompareFields { get; set; } /// /// 扩展信息字段,用与轨迹推送的附加字段 /// public string? Extra { get; set; } /// /// 是否强制推送 /// public bool ForcedPush { get; set; } /// /// 指定是否推送 /// public bool IsToMq { get; set; } public override string ToString() { return $"[{(IsAdd ? "TrackInsert" : "TrackUpdate")} by {OperationMan}] SubSystemId: {SubSystemId}, OrderIds: {string.Join(",", OrderIdentifiers.Select(x => x.OrderId))}, TrackCode: {TrackCode}, TrackPlace: {TrackPlace}, TrackTime: {TrackTime}"; } }