diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs index 7af8aabd..59a4065e 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs @@ -91,7 +91,6 @@ public class TrackDetail /// public string? TrackPlacePostcode { get; set; } - /// /// 预计到达时间 /// diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushInput.cs index 45047f0a..e650d04a 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushInput.cs @@ -4,7 +4,8 @@ public class TrackPushInput { public string OrderNo { get; set; } = null!; - public List Data { get; set; } = new(); + //原TrackItem,为了扩展字段入参变更为字典 + public List> Data { get; set; } = new(); public string Log { get; set; } } @@ -13,7 +14,8 @@ public class TrackUpdateInput { public string OrderNo { get; set; } = null!; - public List Data { get; set; } = new(); + //原TrackItem,为了扩展字段入参变更为字典 + public List> Data { get; set; } = new(); public string Log { get; set; } } diff --git a/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs b/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs index f2eb4fe9..5f49e9ff 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs @@ -128,4 +128,9 @@ public class TrackChangeEto /// 预计到达时间 /// public DateTime? EstimatedDeliveryDate { get; set; } + + /// + /// 扩展信息字段,用与轨迹推送的附加字段 + /// + public Dictionary? Extra { get; set; } } diff --git a/src/SJZY.Track.Application.Contract/Events/TrackPushEto.cs b/src/SJZY.Track.Application.Contract/Events/TrackPushEto.cs new file mode 100644 index 00000000..3c7bdffd --- /dev/null +++ b/src/SJZY.Track.Application.Contract/Events/TrackPushEto.cs @@ -0,0 +1,159 @@ +using SJZY.Track.Application.Contract.Dtos.ProvideServices; + +namespace SJZY.Track.Application.Contract.Events; + +/// +/// 轨迹推送广播模型 +/// +public class TrackPushEto +{ + /// + /// 是否新增 + /// + public OptionType Option { get; set; } + + /// + /// 是否为手动推送 + /// + public bool IsManualPush { get; set; } + + /// + /// 推送是否失败 + /// + public bool IsFailure { get; set; } + + /// + /// 失败原因 + /// + public string? FailureReason { get; set; } + + /// + /// 推送时间 + /// + public DateTime PushTime { get; set; } + + /// + /// 操作人 + /// + public string? OperationMan { get; set; } + + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 单号 + /// + public string OrderNo { get; set; } + + /// + /// 客户id + /// + public int CustomId { get; set; } + + /// + /// 订单id + /// + public OrderIdentifier[] OrderIdentifiers { get; set; } = null!; + + /// + /// 轨迹内容代码 + /// + public string TrackCode { get; set; } = null!; + + /// + /// 轨迹内容 + /// + public string? Content { get; set; } + + /// + /// 轨迹内容英文 + /// + public string? EnStatus { get; set; } + + /// + /// 轨迹状态代码 + /// + public string TrackStatusCode { get; set; } + + /// + /// 轨迹发生地 + /// + public string TrackPlace { get; set; } = null!; + + /// + /// 轨迹发生时间 + /// + public DateTime TrackTime { get; set; } + + /// + /// 轨迹发生地时区 + /// + public float TrackTimeZone { get; set; } + + /// + /// 客户是否可见 + /// + public bool IsVisibility { get; set; } + + /// + /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 + /// + public int Source { get; set; } + + /// + /// 轨迹备注 + /// + public string? Remarks { get; set; } + + /// + /// 附件集合 + /// + public List? Files { 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 Dictionary? Extra { get; set; } +} diff --git a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs index 2bc5760c..ea168d9d 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs @@ -69,4 +69,9 @@ public struct SystemPushStruct /// 轨迹发生时区 /// public float TrackTimeZone { get; set; } + + /// + /// 扩展信息字段,用与轨迹推送的附加字段 + /// + public Dictionary? Extra { get; set; } } diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index e9db1cfa..038f9499 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -225,7 +225,8 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe } //排除掉已经删除的轨迹 - tracks = tracks.Except(deleteTracks).ToList(); + var deleteTrackIds = deleteTracks.Select(m => m.Id).ToList(); + tracks = tracks.Where(x => !deleteTrackIds.Contains(x.Id)).ToList(); var orders = await _orderRepository.GetListAsync(x => orderIds.Contains(x.Id), x => new OrderEntity diff --git a/src/SJZY.Track.Application/Options/InterfaceRelayParamsConfigOptions.cs b/src/SJZY.Track.Application/Options/InterfaceRelayParamsConfigOptions.cs index 59a6ab9c..e2a3d78e 100644 --- a/src/SJZY.Track.Application/Options/InterfaceRelayParamsConfigOptions.cs +++ b/src/SJZY.Track.Application/Options/InterfaceRelayParamsConfigOptions.cs @@ -57,6 +57,16 @@ public class InterfaceRelayParamsConfigOptions /// public string PushTrackInterfaceCode { get; set; } + /// + /// 推送轨迹接口Id + /// + public int PushTrackInterfaceId { get; set; } + + /// + /// 推送轨迹接口 内容项 参数别名前缀 + /// + public string PushTrackItemParamAliasPrefix { get; set; } + /// /// 更新轨迹接口代码 /// diff --git a/src/SJZY.Track.Domain/Enums/TrackSourceEnum.cs b/src/SJZY.Track.Domain/Enums/TrackSourceEnum.cs index 021616af..a0107979 100644 --- a/src/SJZY.Track.Domain/Enums/TrackSourceEnum.cs +++ b/src/SJZY.Track.Domain/Enums/TrackSourceEnum.cs @@ -8,17 +8,17 @@ namespace SJZY.Track.Domain.Enums; public enum TrackSourceEnum { /// - /// 外部服务商创建 + /// 外部服务商 /// - [Description("外部服务商创建")] ExternalServiceProvide = 1, + [Description("外部服务商")] ExternalServiceProvide = 1, /// - /// 内部系统创建 + /// 内部系统 /// - [Description("内部系统创建")] InternalService = 2, + [Description("内部系统")] InternalService = 2, /// - /// 人工创建 + /// 人工 /// - [Description("人工创建")] Artificial = 3, + [Description("人工")] Artificial = 3, }