From 1354efcf13036c345fbf29420c842fb5dd86354c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Tue, 26 Nov 2024 09:29:09 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DSqlSugar=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81b.OrderNo.IsNullOrWhiteSpace=E8=A1=A8?= =?UTF-8?q?=E8=BE=BE=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Repository/Queries/ProvideQueries.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs index 8dd6fc96..b59a308d 100644 --- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs +++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs @@ -35,7 +35,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen public async Task> GetTrackCodeMapsAsync(int upSubSystemId, int subSystemId, params string[] trackCodes) { - // 根据上游code得到下游code + // 根据上游code得到下游code return await Context.Queryable() .Where(x => x.SubSystemId == subSystemId && x.MapSubSystemId == upSubSystemId && trackCodes.Contains(x.MapTrackContentCode)) @@ -62,7 +62,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen .Select((a, b, c) => new OrderWithServiceProviderVO { //优先使用第三方的订单号,为空时才使用主单号 - OrderNo = b.OrderNo.IsNullOrWhiteSpace() ? a.OrderNo : b.OrderNo!, + OrderNo = b.OrderNo ?? a.OrderNo, OrderType = a.OrderType, SubSystemId = a.SubSystemId, ServiceProviderCode = b.ServiceProviderCode, @@ -83,7 +83,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen .Select((a, b) => new OrderWithServiceProviderVO { //优先使用第三方的订单号,为空时才使用主单号 - OrderNo = b.OrderNo.IsNullOrWhiteSpace() ? a.OrderNo : b.OrderNo!, + OrderNo = b.OrderNo ?? a.OrderNo, OrderType = a.OrderType, SubSystemId = a.SubSystemId, ServiceProviderCode = b.ServiceProviderCode From 9c495a4db890707a4727d3fc3a3f1972fb7af7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Tue, 26 Nov 2024 10:10:16 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E3=80=90=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=9B=B4=E6=96=B0=E8=BD=A8=E8=BF=B9=E3=80=91=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=9B=B4=E6=96=B0=E8=BD=A8=E8=BF=B9=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ProvideServices/TrackService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs index 8023836a..59cee586 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs @@ -392,6 +392,7 @@ public partial class TrackService : ApplicationService, ITrackService TrackCode = input.TrackCode, TrackPlace = input.TrackPlace, TrackTime = input.TrackTime, + NewTrackTime = input.NewTrackTime, TrackTimeZone = input.TrackTimeZone, OperationMan = userInfo.Data.UserName, OperationManId = userInfo.Data.UserId, From e130e491f79211a2e56779d2f00b216afe6e6d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Tue, 26 Nov 2024 10:35:54 +0800 Subject: [PATCH 3/5] =?UTF-8?q?update:=20=E3=80=90=E6=96=B0=E5=A2=9E/?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=BD=A8=E8=BF=B9=E3=80=91=E8=A7=A3=E9=99=A4?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E5=8F=91=E7=94=9F=E6=97=B6=E9=97=B4=E7=9A=84?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E5=92=8C=E5=BF=85=E5=A1=AB=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/ProvideServices/BatchUpsertTrackInput.cs | 4 ++-- .../Dtos/ProvideServices/UpsertTrackInput.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs index d5767cd5..b5a73ed3 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs @@ -37,8 +37,8 @@ public class BatchUpsertTrackInput : OrderNosInfo /// /// 轨迹发生时区 /// - [Required] - [Range(-12, 12)] + // [Required] + // [Range(-12, 12)] public float TrackTimeZone { get; set; } /// diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs index 2ba86e87..2b34f832 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs @@ -37,8 +37,8 @@ public class UpsertTrackInput : OrderNoInfo /// /// 轨迹发生时区 /// - [Required] - [Range(-12, 12)] + // [Required] + // [Range(-12, 12)] public float? TrackTimeZone { get; set; } /// From 2eb7ae9047f3534d912b76a0f9bab52d790a28c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Tue, 26 Nov 2024 11:03:04 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E5=90=8E=E8=AE=A2=E5=8D=95=E4=B8=BB=E8=A1=A8?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=9B=9E=E9=80=80=E6=9B=B4=E6=96=B0=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=80=BC=E4=B8=BA=E8=A2=AB=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=9A=84=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9=EF=BC=8C=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=BD=93=E5=89=8D=E8=AE=A2=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventHandlers/TrackDeleteEventHandler.cs | 17 ++++++++++------- .../ITrackDetailsEsRepository.cs | 2 +- .../Repositories/TrackDetailsEsRepository.cs | 6 ++++-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index dd4704ca..08e079d6 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -201,9 +201,8 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe } else //原有逻辑,根据轨迹code和订单进行删除 { - var trackCodes = @event.TrackIdentifiers.Select(x => x.TrackCode).ToList(); - // 删除轨迹(删的是同子系统下的单,所以code是统一的) - tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds, trackCodes,null); + //根据订单查询出所有的轨迹,查所有是因为主单上需要进行回退更新 + tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds); //构建标识符集合 var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime}").ToList(); @@ -217,8 +216,10 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe await _trackDetailsEsRepository.DeleteTrackByIdAsync(track.Id, track.IndexName); } - orderIds = tracks.Select(m => m.OrderId).Distinct().ToList(); - tracks = deleteTracks; + //从被删除轨迹寻找订单id,稍后会更新订单主表 + orderIds = deleteTracks.Select(m => m.OrderId).Distinct().ToList(); + //排除掉已经删除的轨迹 + tracks = tracks.Except(deleteTracks).ToList(); } @@ -236,7 +237,9 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe foreach (var order in orders) { - var track = tracks.FirstOrDefault(x => x.OrderId == order.Id); + //找到最新的轨迹数据 + var track = tracks?.OrderByDescending(x=>x.TrackTime) + .FirstOrDefault(x => x.OrderId == order.Id); // 删除全部轨迹导致的重置行为 if (track == default) @@ -264,7 +267,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe OrderId = order.Id, OrderNo = order.OrderNo, OptionType = OrderOperationType.删除轨迹.ToString(), - Content = tracks?.Where(m => m.OrderId == order.Id)?.ToList().ToJson(), + Content = tracks?.Where(m => m.OrderId == order.Id).ToList().ToJson(), CreateUserId = @event.OperationManId, CreateUserName = @event.OperationMan ?? "", CreateTime = DateTime.Now diff --git a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs index c57b797b..bf5e3af3 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs @@ -24,7 +24,7 @@ public interface ITrackDetailsEsRepository : IElasticsearchClientService> GetListAsync(int orderId); - Task> GetListAsync(int[] orderIds, List trackCodes, TrackSourceEnum? source); + Task> GetListAsync(int[] orderIds, List? trackCodes = null, TrackSourceEnum? source = null); Task> DeleteTrackAsync(int[] orderIds, List trackCodes); diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs index 346d8c57..e4dbd518 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs @@ -357,7 +357,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract> GetListAsync(int[] orderIds, List trackCodes, TrackSourceEnum? source) + public async Task> GetListAsync(int[] orderIds, List? trackCodes = null, TrackSourceEnum? source = null) { var query = new QueryContainer(); @@ -365,10 +365,12 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract.Terms(t => t.Field(f => f.OrderId).Terms(orderIds)); } - if (trackCodes.Count > 0) + + if (trackCodes != null && trackCodes.Count > 0) { query &= Query.Terms(t => t.Field(f => f.TrackCode.Suffix("keyword")).Terms(trackCodes)); } + if (source.HasValue) { query &= Query.Term(t => t.Field(f => f.Source).Value(source.Value)); From e89eeb15034c3c34ba9833f3be130d944f10a355 Mon Sep 17 00:00:00 2001 From: eli Date: Tue, 26 Nov 2024 14:45:43 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=AE=A2=E6=88=B7id?= =?UTF-8?q?=E7=9A=84=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/ProvideServices/UpsertOrderInput.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertOrderInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertOrderInput.cs index cfdbe0ac..1214f51d 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertOrderInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertOrderInput.cs @@ -7,8 +7,6 @@ public class UpsertOrderInput : UpdateOrderInput /// /// 客户id /// - [Required] - [Range(1, int.MaxValue)] public int CustomId { get; set; } ///