From d2dd8e6eb1517901d41fed7b715e120f2c024032 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Mon, 24 Mar 2025 11:30:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=E9=87=8D=E6=9E=84=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=B6=88=E9=99=A4=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/TrackOrders/TrackOrderService.cs | 6 +++--- .../Handlers/CompleteWarningHandler.cs | 16 ++++++++-------- .../Warning/Handlers/ReturnWarningHandler.cs | 18 +++++++++--------- .../Handlers/TransportWarningHandler.cs | 19 ++++++++++--------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs index a8d97d5f..701d72cb 100644 --- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs +++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs @@ -84,7 +84,7 @@ public class TrackOrderService : ApplicationService { var order = await _orderRepository.GetFirstAsync(x => x.Id == input.OrderId); - if (order == default) throw new BusinessException(message: "订单不存在"); + if (order == null) throw new BusinessException(message: "订单不存在"); var oldIsCompleted = order.IsCompleted; if (oldIsCompleted == input.IsCompleted) @@ -334,7 +334,7 @@ public class TrackOrderService : ApplicationService { _ = Task.Run(async () => { - var scope = _serviceProvider.CreateScope(); + var scope = _serviceProvider.CreateAsyncScope(); try { var handler = scope.ServiceProvider.GetRequiredService(); @@ -342,7 +342,7 @@ public class TrackOrderService : ApplicationService } finally { - scope.Dispose(); + await scope.DisposeAsync(); } }); } diff --git a/src/SJZY.Track.Application/Services/Warning/Handlers/CompleteWarningHandler.cs b/src/SJZY.Track.Application/Services/Warning/Handlers/CompleteWarningHandler.cs index f78c7346..54709b52 100644 --- a/src/SJZY.Track.Application/Services/Warning/Handlers/CompleteWarningHandler.cs +++ b/src/SJZY.Track.Application/Services/Warning/Handlers/CompleteWarningHandler.cs @@ -57,7 +57,7 @@ public sealed class CompleteWarningHandler : ICompleteWarningHandler, ITransient .ToDictionary(x => x.Key, y => y.Value .GroupBy(x => x.TrackStatusId) - .ToDictionary(a => a.Key, b => true) + .ToDictionary(a => a.Key, _ => true) ); // 3.查出预警明细(待处理) @@ -80,7 +80,7 @@ public sealed class CompleteWarningHandler : ICompleteWarningHandler, ITransient // todo:需要处理要求轨迹完整的情况? } - if (closeDetailIds.Count == 0) ; + if (closeDetailIds.Count == 0) return; // 5.预警信息状态修改为【已关闭】 await _warningDetailsEsRepository.BulkCloseCompleteWarningDetailsAsync(new BulkCloseCompleteWarningDetailsVO @@ -256,14 +256,14 @@ public sealed class CompleteWarningHandler : ICompleteWarningHandler, ITransient // 1.1之前的配置数量为0,做只新增处理 if (oldRuleItems.Count == 0) { - if (addRuleItems.Count != 0) + if (addRuleItems.Count > 0) await OnlyAddHandleAsync(rule, addRuleItems); return; } // 1.2之前的配置数量不为0,提交的数量为0,做只删除处理 - if (oldRuleItems.Count != 0 && postRuleItems.Count == 0) + if (oldRuleItems.Count > 0 && postRuleItems.Count == 0) { await OnlyDeleteHandleAsync(rule, oldRuleItems); return; @@ -334,20 +334,20 @@ public sealed class CompleteWarningHandler : ICompleteWarningHandler, ITransient { var ruleItemIds = new HashSet(updateRuleItems.Count + deleteRuleItems.Count); // 新增/修改/删除 实体,稍后做处理 - if (addRuleItems.Count != 0) + if (addRuleItems.Count > 0) { var addEntities = CompleteWarningRuleItemBO.ToEntities(addRuleItems); await _warningRuleRepository.BulkInsertCompleteRuleItemsAsync(addEntities); } - if (updateRuleItems.Count != 0) + if (updateRuleItems.Count > 0) { var updateEntities = CompleteWarningRuleItemBO.ToEntities(updateRuleItems); await _warningRuleRepository.BulkUpdateCompleteRuleItemsAsync(updateEntities); ruleItemIds.UnionWith(updateEntities.Select(x => x.Id)); } - if (deleteRuleItems.Count != 0) + if (deleteRuleItems.Count > 0) { var deleteRuleItemIds = deleteRuleItems.Select(x => x.Id).ToHashSet(); await _warningRuleRepository.DeleteCompleteRuleItemsAsync(deleteRuleItemIds); @@ -363,7 +363,7 @@ public sealed class CompleteWarningHandler : ICompleteWarningHandler, ITransient await CloseWarningRuleLinkAsync(ruleItemIds); } - private bool CanNeedFollow(CompleteWarningRuleItemBO oldRule, CompleteWarningRuleItemBO postRule) + private static bool CanNeedFollow(CompleteWarningRuleItemBO oldRule, CompleteWarningRuleItemBO postRule) { // 关注的订单类型减少 var oldTypes = oldRule.OrderTypes; diff --git a/src/SJZY.Track.Application/Services/Warning/Handlers/ReturnWarningHandler.cs b/src/SJZY.Track.Application/Services/Warning/Handlers/ReturnWarningHandler.cs index f5f0bcdc..cd669efd 100644 --- a/src/SJZY.Track.Application/Services/Warning/Handlers/ReturnWarningHandler.cs +++ b/src/SJZY.Track.Application/Services/Warning/Handlers/ReturnWarningHandler.cs @@ -99,7 +99,7 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe if (rule != null) { var ruleItemEntities = await _warningRuleRepository.GetReturnRuleItemsAsync(rule.Id); - if (ruleItemEntities.Count != 0) + if (ruleItemEntities.Count > 0) ruleItem = ruleItemEntities.FirstOrDefault(x => x.CanHitRule(recordFirst.TrackStatusId)); } @@ -232,7 +232,7 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe await _warningDetailsEsRepository.BulkUpdateReturnWarningDetailsAsync(followDetails); await _warningDetailsEsRepository.InsertReturnMessageRecordAsync(BuildReturnMessageRecord(followDetails, recordFirst)); - if (addNotifyTasks.Count != 0) + if (addNotifyTasks.Count > 0) await _warningTaskRepository.BulkInsertWarningNotifyTaskAsync(addNotifyTasks); @@ -263,7 +263,7 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe private (Dictionary> OrderNoTrackIdVersionDict, Dictionary AllTrackIdVersionDict) ExtractOrderNoTrackIdVersionDict(List pushInputs, List updateInputs) { - var inputs = (pushInputs.Count != 0 + var inputs = (pushInputs.Count > 0 ? pushInputs.Select(x => new { x.OrderNo, @@ -490,14 +490,14 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe // 1.1之前的配置数量为0,做只新增处理 if (oldRuleItems.Count == 0) { - if (addRuleItems.Count != 0) + if (addRuleItems.Count > 0) await OnlyAddHandleAsync(rule, addRuleItems); return; } // 1.2之前的配置数量不为0,提交的数量为0,做只删除处理 - if (oldRuleItems.Count != 0 && postRuleItems.Count == 0) + if (oldRuleItems.Count > 0 && postRuleItems.Count == 0) { await OnlyDeleteHandleAsync(rule, oldRuleItems); return; @@ -511,7 +511,7 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe // 构建配置id字段 var oldDict = oldRuleItems.ToDictionary(x => x.Id); var postDict = postRuleItems - .Where(x => x.Id != 0) //tips:忽略新增的规则条目 + .Where(x => x.Id > 0) //tips:忽略新增的规则条目 .ToDictionary(x => x.Id); var ruleItemIds = oldDict.Keys.Concat(postDict.Keys).ToHashSet(); foreach (var ruleItemId in ruleItemIds) @@ -563,20 +563,20 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe { var ruleItemIds = new HashSet(updateRuleItems.Count + deleteRuleItems.Count); // 1.新增/修改/删除规则,稍后做处理 - if (addRuleItems.Count != 0) + if (addRuleItems.Count > 0) { var addEntities = ReturnWarningRuleItemBO.ToEntities(addRuleItems); await _warningRuleRepository.BulkInsertReturnRuleItemsAsync(addEntities); } - if (updateRuleItems.Count != 0) + if (updateRuleItems.Count > 0) { var updateEntities = ReturnWarningRuleItemBO.ToEntities(updateRuleItems); await _warningRuleRepository.BulkUpdateReturnRuleItemsAsync(updateEntities); ruleItemIds.UnionWith(updateEntities.Select(x => x.Id)); } - if (deleteRuleItems.Count != 0) + if (deleteRuleItems.Count > 0) { var deleteRuleItemIds = deleteRuleItems.Select(x => x.Id).ToHashSet(); await _warningRuleRepository.DeleteReturnRuleItemsAsync(deleteRuleItemIds); diff --git a/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs b/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs index 03f7dde2..e8e68021 100644 --- a/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs +++ b/src/SJZY.Track.Application/Services/Warning/Handlers/TransportWarningHandler.cs @@ -288,7 +288,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen }); // 处理【通知阶段】的预警明细 - if (warningDetails.Count != 0) + if (warningDetails.Count > 0) { var (needUpdateDetails, needCloseNotifyDetailsIds) = HandleExistsDetails(warningDetails, ruleItemBoDict, trackStatusTrackDict); updateDetails.AddRange(needUpdateDetails); @@ -309,7 +309,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen } // 4.批量操作 - if (closeNotifyDetailsIds.Count != 0) + if (closeNotifyDetailsIds.Count > 0) { await _warningTaskRepository.CloseWarningNotifyTaskAsync(x => !x.IsClosed @@ -318,11 +318,11 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen ); } - if (updateDetails.Count != 0) + if (updateDetails.Count > 0) await _warningDetailsEsRepository.BulkUpdateTransportWarningDetailsAsync(updateDetails); - if (addDetailGenerateTasks.Count != 0) + if (addDetailGenerateTasks.Count > 0) await _warningTaskRepository.BulkInsertTransportWarningDetailsGenerateTaskAsync(addDetailGenerateTasks); - if (updateDetailGenerateTasks.Count != 0) + if (updateDetailGenerateTasks.Count > 0) await _warningTaskRepository.BulkUpdateTransportWarningDetailsGenerateTaskAsync(updateDetailGenerateTasks); } @@ -580,7 +580,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen // 4.仍然命中场景的订单需要修改明细中的内容(预警名称,预警规则描述) var needUpdateDetails = new List(); - if (reHitSceneOrderIds.Count != 0) + if (reHitSceneOrderIds.Count > 0) { // 明细->规则 var updateDetails = warningDetails.Where(x => reHitSceneOrderIds.Contains(x.OrderId)).ToList(); @@ -689,13 +689,13 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen // 1.1之前的配置数量为0,做只新增处理 if (oldRuleItems.Count == 0) { - if (addRuleItems.Count != 0) + if (addRuleItems.Count > 0) await OnlyAddHandleAsync(rule, scene, addRuleItems); return; } // 1.2之前的配置数量不为0,提交的数量为0,做只删除处理 - if (oldRuleItems.Count != 0 && postRuleItems.Count == 0) + if (oldRuleItems.Count > 0 && postRuleItems.Count == 0) { await OnlyDeleteHandleAsync(rule, scene, oldRuleItems); return; @@ -737,6 +737,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen private async Task OnlyAddHandleAsync(WarningRuleEntity rule, TransportWarningSceneBO scene, List bos) { + if (bos.Count == 0) return; var entities = TransportWarningSceneRuleItemBO.ToEntities(bos); await _warningRuleRepository.BulkInsertTransportSceneRuleItemsAsync(entities); // 更新规则主体版本号 @@ -751,7 +752,7 @@ public class TransportWarningHandler : ITransportWarningHandler, ITransientDepen // 更新规则主体版本号 await _warningRuleRepository.UpdateVersionAsync(rule); - // 处理轨迹删除 + // 处理规则删除 await HandleDeleteAsync(ruleItemIds); } From 569aeece66bc120056c84b944f1e75817c0a1a5f Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Mon, 24 Mar 2025 11:46:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E6=97=B6=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=BB=98=E8=AE=A4=E7=9A=84=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?=E5=86=85=E5=AE=B9=20fix:=E4=BF=AE=E5=A4=8D=E8=BF=90=E8=BE=93?= =?UTF-8?q?=E6=97=B6=E6=95=88=E9=A2=84=E8=AD=A6=E6=98=8E=E7=BB=86=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E8=BD=A8=E8=BF=B9=E5=8F=91=E7=94=9F=E5=9C=B0=E5=8F=8D?= =?UTF-8?q?=E5=8F=82=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CAP/EventHandlers/TrackUpsertEventHandler.cs | 8 ++++---- .../Services/Warning/TransportWarningService.cs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index 827966a8..a4e93ec2 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -386,8 +386,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe //允许二次修改,在修改了轨迹内容后进行修改轨迹操作,如果输入的轨迹内容则以输入为准 //跨子系统? - track.TrackContent = @event.Content ?? trackContent.TrackContent; - track.TrackEnContent = @event.EnStatus ?? trackContent.TrackEnContent; + track.TrackContent = string.IsNullOrWhiteSpace(@event.Content) ? trackContent.TrackContent : @event.Content; + track.TrackEnContent = string.IsNullOrWhiteSpace(@event.EnStatus) ? trackContent.TrackEnContent : @event.EnStatus; //S06新增 track.IsVisibility = @event.IsVisibility; //当传入的IsExternal为空,则使用轨迹内容中的IsExternal @@ -435,8 +435,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe TrackStatusCode = trackContent.TrackStatusCode, //跨子系统? TrackContentId = trackContent.TrackContentId, - TrackContent = @event.Content ?? trackContent.TrackContent, - TrackEnContent = @event.EnStatus ?? trackContent.TrackEnContent, + TrackContent = string.IsNullOrWhiteSpace(@event.Content) ? trackContent.TrackContent : @event.Content, + TrackEnContent = string.IsNullOrWhiteSpace(@event.EnStatus) ? trackContent.TrackEnContent : @event.EnStatus, //S06新增轨迹明细字段 IsVisibility = @event.IsVisibility, //当传入的IsExternal为空,则使用轨迹内容中的IsExternal diff --git a/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs b/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs index fd54a481..f60471a1 100644 --- a/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs +++ b/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs @@ -224,7 +224,7 @@ public class TransportWarningService : ApplicationService LatestTrackContent = orderIdTrack?.TrackContent, LatestTrackTime = orderIdTrack?.TrackTime, LatestTrackTimeZone = FormatTimeZone(orderIdTrack?.TrackTimeZone), - LatestTrackPlace = orderIdTrack?.TrackContent, + LatestTrackPlace = orderIdTrack?.TrackPlace, // 起始轨迹 StartTrackStatus = x.StartTrackStatus,