using Fake.Domain.Entities.Auditing; using TrackCenter.Domain.Consts; namespace TrackCenter.Domain.Aggregates.OrderAggregate; /// /// 轨迹订单主表 /// [SugarTable("t_order")] public class OrderEntity : FullAuditedAggregateRoot { /// /// 自增主键 /// [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// /// 订单号 /// [SugarColumn(ColumnName = "OrderNo")] public string OrderNo { get; set; } = null!; /// /// 订单类型(主数据枚举TrackOrderType) /// [SugarColumn(ColumnName = "OrderType")] public int OrderType { get; set; } /// /// 应用 /// [SugarColumn(ColumnName = "AppKey")] public string AppKey { get; set; } /// /// 客户id(外部主体id) /// [SugarColumn(ColumnName = "CustomId")] public int CustomId { get; set; } /// /// 订单是否完结(异步维护) /// [SugarColumn(ColumnName = "IsCompleted")] public bool IsCompleted { get; set; } /// /// 最新推送轨迹code(异步维护) /// [SugarColumn(ColumnName = "LatestPushTrackCode")] public string? LatestPushTrackCode { get; set; } /// /// 最新推送时间(异步维护) /// [SugarColumn(ColumnName = "LatestPushTime")] public DateTime? LatestPushTime { get; set; } /// /// 推送异常信息 /// [SugarColumn(ColumnName = "LatestPushError")] public string? LatestPushError { get; set; } /// /// 最新轨迹状态(异步维护) /// [SugarColumn(ColumnName = "LatestTrackStatus")] public string? LatestTrackStatus { get; set; } /// /// 最新轨迹内容(异步维护) /// [SugarColumn(ColumnName = "LatestTrackContent")] public string? LatestTrackContent { get; set; } /// /// 最新轨迹内容英文(异步维护) /// [SugarColumn(ColumnName = "LatestTrackEnContent")] public string? LatestTrackEnContent { get; set; } /// /// 最新轨迹时间(异步维护) /// [SugarColumn(ColumnName = "LatestTrackTime")] public DateTime? LatestTrackTime { get; set; } /// /// 最新轨迹时区(异步维护) /// [SugarColumn(ColumnName = "LatestTrackTimeZone")] public float? LatestTrackTimeZone { get; set; } /// /// 最新轨迹发生地(异步维护) /// [SugarColumn(ColumnName = "LatestTrackPlace")] public string? LatestTrackPlace { get; set; } /// /// 目的城市 /// [SugarColumn(ColumnName = "ArrivalCity")] public string ArrivalCity { get; set; } = null!; /// /// 目的国家 /// [SugarColumn(ColumnName = "ArrivalCountry")] public string ArrivalCountry { get; set; } = null!; /// /// 目的港口 /// [SugarColumn(ColumnName = "ArrivalPort")] public string? ArrivalPort { get; set; } /// /// 起运城市 /// [SugarColumn(ColumnName = "LeaveCity")] public string LeaveCity { get; set; } = null!; /// /// 起运国家 /// [SugarColumn(ColumnName = "LeaveCountry")] public string LeaveCountry { get; set; } = null!; /// /// 问题类型(主数据枚举TrackQuestionType) /// [SugarColumn(ColumnName = "QuestionType")] public int QuestionType { get; set; } /// /// 起运港口 /// [SugarColumn(ColumnName = "LeavePort")] public string? LeavePort { get; set; } /// /// 货物类型 /// [SugarColumn(ColumnName = "CargoType")] public string? CargoType { get; set; } /// /// 是否中转 /// [SugarColumn(ColumnName = "IsTransit")] public bool? IsTransit { get; set; } /// /// 产品编码 /// [SugarColumn(ColumnName = "ProductCode")] public string? ProductCode { get; set; } /// /// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种 /// [SugarColumn(ColumnName = "DeficiencyTag")] public int? DeficiencyTag { get; set; } /// /// 到达邮编 /// [SugarColumn(ColumnName = "ArrivalPostCode")] public string? ArrivalPostCode { get; set; } /// /// 到达州省 /// [SugarColumn(ColumnName = "ArrivalProvince")] public string? ArrivalProvince { get; set; } /// /// 预计到达时间 /// [SugarColumn(ColumnName = "EstimatedDeliveryDate")] public DateTime? EstimatedDeliveryDate { get; set; } /// /// 目的地时区 /// [SugarColumn(ColumnName = "DestinationTimeZone")] public float? DestinationTimeZone { get; set; } /// /// 模板code /// [SugarColumn(ColumnName = "TemplateCodes")] public string? TemplateCodes { get; set; } /// /// 冗余订单第三方订单号(创建订单,更新订单时维护) /// [SugarColumn(ColumnName = "ThirdPartyOrderNumber")] public string? ThirdPartyOrderNumber { get; set; } [SugarColumn(IsIgnore = true)] public List OrderFlights { get; set; } [SugarColumn(IsIgnore = true)] public List OrderPullStatus { get; set; } public void ResetTrackInfo() { IsCompleted = false; LatestTrackStatus = null; LatestTrackContent = null; LatestTrackEnContent = null; LatestTrackTime = null; LatestTrackPlace = null; LatestTrackTimeZone = null; EstimatedDeliveryDate = null; DestinationTimeZone = null; } // 设置三方单号字段 public void SetThirdPartyOrderNumber(List orderPullStatusEntities) { if (orderPullStatusEntities.Count == 0) { ThirdPartyOrderNumber = GlobalConst.EmptyString; return; } const string separator = "、"; var thirdPartyOrderNumbers = orderPullStatusEntities .Where(x => !string.IsNullOrWhiteSpace(x.OrderNo)) .Select(x => $"{x.OrderNo}({x.ServiceProviderCode})") .ToList(); if (thirdPartyOrderNumbers.Count == 0) { ThirdPartyOrderNumber = GlobalConst.EmptyString; return; } ThirdPartyOrderNumber = string.Join(separator, thirdPartyOrderNumbers); } }