From 67056b14e72d957b9fa4c0bf7040df274222bf68 Mon Sep 17 00:00:00 2001
From: hardstylewyl <827778732@qq.com>
Date: Tue, 17 Dec 2024 16:43:53 +0800
Subject: [PATCH 01/80] =?UTF-8?q?add:=20=E5=A5=91=E7=BA=A6=E5=B1=82?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=B9=E9=87=8F=E6=9B=B4=E6=96=B0=E8=BD=A8?=
=?UTF-8?q?=E8=BF=B9=E6=8E=A5=E5=8F=A3=EF=BC=8C=E7=94=A8=E4=BA=8E=E5=A4=96?=
=?UTF-8?q?=E9=83=A8=E6=8E=A5=E5=85=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Services/ProvideServices/ITrackService.cs | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/SJZY.Track.Application.Contract/Services/ProvideServices/ITrackService.cs b/src/SJZY.Track.Application.Contract/Services/ProvideServices/ITrackService.cs
index 8cafa4b1..c5fd0430 100644
--- a/src/SJZY.Track.Application.Contract/Services/ProvideServices/ITrackService.cs
+++ b/src/SJZY.Track.Application.Contract/Services/ProvideServices/ITrackService.cs
@@ -12,6 +12,13 @@ public interface ITrackService : IRemoteService
///
Task UpsertTrackAsync(UpsertTrackInput input);
+ ///
+ /// 批量新增/更新订单轨迹接口
+ ///
+ ///
+ ///
+ Task BatchUpsertTrackAsync(BatchUpsertTrackInput input);
+
///
/// 删除轨迹
///
From eee75e526157d1cc7fafbf91492fdc69c73ed9ca Mon Sep 17 00:00:00 2001
From: hardstylewyl <827778732@qq.com>
Date: Tue, 17 Dec 2024 16:55:52 +0800
Subject: [PATCH 02/80] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A0=B9?=
=?UTF-8?q?=E6=8D=AEEsId=E5=88=A0=E9=99=A4=E8=BD=A8=E8=BF=B9=EF=BC=8C?=
=?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=B8=BB=E8=A1=A8=E5=9B=9E=E9=80=80=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0=E5=A4=B1=E8=B4=A5=20update:=20=E8=BD=A8=E8=BF=B9?=
=?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E5=A4=84=E7=90=86=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E6=89=A9=E5=B1=95=E5=AD=97=E6=AE=B5=E5=AD=98=E5=82=A8?=
=?UTF-8?q?=20update-models:=20=20-=20=E5=A2=9E=E5=8A=A0=E6=89=A9=E5=B1=95?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=B6=89=E5=8F=8A=E3=80=90=E8=BD=A8?=
=?UTF-8?q?=E8=BF=B9=E6=8E=A8=E9=80=81=E3=80=91=E3=80=90=E8=BD=A8=E8=BF=B9?=
=?UTF-8?q?=E5=8F=98=E6=9B=B4=E3=80=91=20=20-=20=E6=89=A9=E5=B1=95?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=80=9A=E9=85=8D=E7=BD=AE=E6=A8=A1=E5=9E=8B?=
=?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=E8=BD=A8=E8=BF=B9?=
=?UTF-8?q?=E6=8E=A8=E9=80=81=E6=8E=A5=E5=8F=A3Id=EF=BC=8C=E8=BD=A8?=
=?UTF-8?q?=E8=BF=B9=E6=8E=A8=E9=80=81=E5=86=85=E5=AE=B9=E9=A1=B9=E5=88=AB?=
=?UTF-8?q?=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Dtos/ProvideServices/GetTrackOutput.cs | 1 -
.../Dtos/TrackPush/TrackPushInput.cs | 6 +-
.../Events/TrackChangeEto.cs | 5 +
.../Events/TrackPushEto.cs | 159 ++++++++++++++++++
.../Events/TrackPushEvent.cs | 5 +
.../EventHandlers/TrackDeleteEventHandler.cs | 3 +-
.../InterfaceRelayParamsConfigOptions.cs | 10 ++
.../Enums/TrackSourceEnum.cs | 12 +-
8 files changed, 191 insertions(+), 10 deletions(-)
create mode 100644 src/SJZY.Track.Application.Contract/Events/TrackPushEto.cs
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,
}
From 67a7d64b6c06371351d57000f751bbb45ce34eac Mon Sep 17 00:00:00 2001
From: hardstylewyl <827778732@qq.com>
Date: Tue, 17 Dec 2024 16:58:01 +0800
Subject: [PATCH 03/80] =?UTF-8?q?update:=E8=A1=A5=E5=85=85=E6=8F=90?=
=?UTF-8?q?=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CAP/EventHandlers/TrackUpsertEventHandler.cs | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
index 1b6ee76f..1d57d01e 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
@@ -6,7 +6,6 @@ using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
-using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
using SJZY.Track.Domain.Dtos.TrackContents;
using SJZY.Track.Domain.Enums;
using SJZY.Track.Domain.Queries;
@@ -93,7 +92,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
OperationMan = eto.OperationMan,
OrderIdentifiers = eto.OrderIdentifiers,
CustomId = eto.CustomId,
- SubSystemId = eto.SubSystemId
+ SubSystemId = eto.SubSystemId,
+ Extra = eto.Extra
};
if (eto.IsAdd)
@@ -262,7 +262,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
TrackContent = trackContent.TrackContent,
TrackPlace = @event.TrackPlace,
TrackTime = @event.NewTrackTime ?? @event.TrackTime,
- TrackTimeZone = @event.TrackTimeZone
+ TrackTimeZone = @event.TrackTimeZone,
+ Extra = @event.Extra
}
};
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
From 178dca47d08d19b323571f1cfa4f788c8b994987 Mon Sep 17 00:00:00 2001
From: hardstylewyl <827778732@qq.com>
Date: Tue, 17 Dec 2024 17:26:11 +0800
Subject: [PATCH 04/80] =?UTF-8?q?update:=E6=9B=B4=E6=96=B0=E5=A5=91?=
=?UTF-8?q?=E7=BA=A6=E5=8C=85=E7=89=88=E6=9C=AC7.0.3=3D>7.0.5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SJZY.Track.Application.Contract.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/SJZY.Track.Application.Contract/SJZY.Track.Application.Contract.csproj b/src/SJZY.Track.Application.Contract/SJZY.Track.Application.Contract.csproj
index b70c8550..f8a1ce47 100644
--- a/src/SJZY.Track.Application.Contract/SJZY.Track.Application.Contract.csproj
+++ b/src/SJZY.Track.Application.Contract/SJZY.Track.Application.Contract.csproj
@@ -5,7 +5,7 @@
net7.0
True
- 7.0.3
+ 7.0.5
True
From 6ece015f0daae8f009b8548be858248861f3403d Mon Sep 17 00:00:00 2001
From: hardstylewyl <827778732@qq.com>
Date: Tue, 17 Dec 2024 17:50:53 +0800
Subject: [PATCH 05/80] =?UTF-8?q?update:=20=E8=BD=A8=E8=BF=B9=E6=8E=A8?=
=?UTF-8?q?=E9=80=81=E5=A2=9E=E5=8A=A0=E6=89=A9=E5=B1=95=E5=8F=82=E6=95=B0?=
=?UTF-8?q?=20update:=20=E8=BD=A8=E8=BF=B9=E6=8E=A8=E9=80=81=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=E9=80=9A=E5=9B=9E=E8=B0=83=EF=BC=8C=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E6=8E=A8=E9=80=81=E5=9B=9E=E4=BC=A0=E8=BD=A8=E8=BF=B9=E5=B9=BF?=
=?UTF-8?q?=E6=92=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../EventHandlers/TrackPushEventHandler.cs | 137 ++++++++++++++----
.../Rabbit/TrackPushCompletedEventHandler.cs | 96 +++++++++++-
.../Consts/GlobalConst.MQ.cs | 5 +-
3 files changed, 204 insertions(+), 34 deletions(-)
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
index 0ef48ef3..0bb18a1e 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
@@ -72,23 +72,26 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
case OptionType.无:
return;
case OptionType.新增:
- await DoPushAsync(@event);
+ //获取接口参数名称,稍后将用于轨迹扩展字段提取填充请求
+ var paramsNames1 = await GetExtraParamNamesAsync(@event.SubSystemCode);
+ await DoPushAsync(@event, paramsNames1);
break;
case OptionType.删除:
break;
case OptionType.修改:
- await DoUpdateAsync(@event);
+ //获取接口参数名称,稍后将用于轨迹扩展字段提取填充请求
+ var paramsNames2 = await GetExtraParamNamesAsync(@event.SubSystemCode);
+ await DoUpdateAsync(@event, paramsNames2);
break;
default:
throw new ArgumentOutOfRangeException();
}
}
- private async Task DoPushAsync(TrackPushEvent @event)
+ private async Task DoPushAsync(TrackPushEvent @event, List paramNames)
{
var items = new List