fix: 修复根据EsId删除轨迹,订单主表回退更新失败

update: 轨迹新增修改处理增加扩展字段存储
update-models:
 - 增加扩展字段,涉及【轨迹推送】【轨迹变更】
 - 扩展接口通配置模型,增加字段轨迹推送接口Id,轨迹推送内容项别名
This commit is contained in:
hardstylewyl 2024-12-17 16:55:52 +08:00
parent 67056b14e7
commit eee75e5261
8 changed files with 191 additions and 10 deletions

View File

@ -91,7 +91,6 @@ public class TrackDetail
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>

View File

@ -4,7 +4,8 @@ public class TrackPushInput
{
public string OrderNo { get; set; } = null!;
public List<TrackItem> Data { get; set; } = new();
//原TrackItem,为了扩展字段入参变更为字典
public List<Dictionary<string,object>> Data { get; set; } = new();
public string Log { get; set; }
}
@ -13,7 +14,8 @@ public class TrackUpdateInput
{
public string OrderNo { get; set; } = null!;
public List<TrackItem> Data { get; set; } = new();
//原TrackItem,为了扩展字段入参变更为字典
public List<Dictionary<string,object>> Data { get; set; } = new();
public string Log { get; set; }
}

View File

@ -128,4 +128,9 @@ public class TrackChangeEto
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
}

View File

@ -0,0 +1,159 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
namespace SJZY.Track.Application.Contract.Events;
/// <summary>
/// 轨迹推送广播模型
/// </summary>
public class TrackPushEto
{
/// <summary>
/// 是否新增
/// </summary>
public OptionType Option { get; set; }
/// <summary>
/// 是否为手动推送
/// </summary>
public bool IsManualPush { get; set; }
/// <summary>
/// 推送是否失败
/// </summary>
public bool IsFailure { get; set; }
/// <summary>
/// 失败原因
/// </summary>
public string? FailureReason { get; set; }
/// <summary>
/// 推送时间
/// </summary>
public DateTime PushTime { get; set; }
/// <summary>
/// 操作人
/// </summary>
public string? OperationMan { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 单号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomId { get; set; }
/// <summary>
/// 订单id
/// </summary>
public OrderIdentifier[] OrderIdentifiers { get; set; } = null!;
/// <summary>
/// 轨迹内容代码
/// </summary>
public string TrackCode { get; set; } = null!;
/// <summary>
/// 轨迹内容
/// </summary>
public string? Content { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string? EnStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string TrackStatusCode { get; set; }
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生地时区
/// </summary>
public float TrackTimeZone { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
public bool IsVisibility { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// </summary>
public int Source { get; set; }
/// <summary>
/// 轨迹备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItemDto>? Files { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(城市)Id
/// </summary>
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
///轨迹发生地(省/州)Id
/// </summary>
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)Id
/// </summary>
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
}

View File

@ -69,4 +69,9 @@ public struct SystemPushStruct
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public Dictionary<string, object>? Extra { get; set; }
}

View File

@ -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

View File

@ -57,6 +57,16 @@ public class InterfaceRelayParamsConfigOptions
/// </summary>
public string PushTrackInterfaceCode { get; set; }
/// <summary>
/// 推送轨迹接口Id
/// </summary>
public int PushTrackInterfaceId { get; set; }
/// <summary>
/// 推送轨迹接口 内容项 参数别名前缀
/// </summary>
public string PushTrackItemParamAliasPrefix { get; set; }
/// <summary>
/// 更新轨迹接口代码
/// </summary>

View File

@ -8,17 +8,17 @@ namespace SJZY.Track.Domain.Enums;
public enum TrackSourceEnum
{
/// <summary>
/// 外部服务商创建
/// 外部服务商
/// </summary>
[Description("外部服务商创建")] ExternalServiceProvide = 1,
[Description("外部服务商")] ExternalServiceProvide = 1,
/// <summary>
/// 内部系统创建
/// 内部系统
/// </summary>
[Description("内部系统创建")] InternalService = 2,
[Description("内部系统")] InternalService = 2,
/// <summary>
/// 人工创建
/// 人工
/// </summary>
[Description("人工创建")] Artificial = 3,
[Description("人工")] Artificial = 3,
}