fix:当订单变更为已完结是只关闭运输时效预警相关产物

fix:回传预警和完整预警只忽略不存在的订单
This commit is contained in:
hardstylewyl 2025-03-21 16:17:28 +08:00
parent 7c1b4e67f8
commit a254d735bf
3 changed files with 13 additions and 16 deletions

View File

@ -32,12 +32,9 @@ public sealed class CompleteWarningHandler : ICompleteWarningHandler, ITransient
public async Task TrackDeletedHandleAsync(List<TrackDeletedSignal> deletedSignals)
{
// 1.验证订单可行性
// 1.只处理未删除的订单
var orderIdSet = deletedSignals.Select(x => x.OrderId).ToHashSet();
var orders = await _orderRepository.GetListAsync(x =>
orderIdSet.Contains(x.Id)
&& x.IsCompleted == false
);
var orders = await _orderRepository.GetListAsync(x => orderIdSet.Contains(x.Id));
if (orders.Count == 0) return; //不存在符合条件的订单,直接提交信号丢弃
// 2.查出订单指定状态的轨迹(tips:为了指定状态的轨迹是真的被清空了)
@ -105,11 +102,9 @@ public sealed class CompleteWarningHandler : ICompleteWarningHandler, ITransient
public async Task TrackAddedHandleAsync(List<TrackAddedSignal> addedSignals)
{
// 1.验证订单可行性
// 1.只处理未删除的订单
var orderIdSet = addedSignals.Select(x => x.OrderId).ToHashSet();
var orders = await _orderRepository.GetListAsync(x =>
orderIdSet.Contains(x.Id)
);
var orders = await _orderRepository.GetListAsync(x => orderIdSet.Contains(x.Id));
if (orders.Count == 0) return; //不存在符合条件的订单,直接提交信号丢弃
var orderIds = orders.Select(x => x.Id).ToHashSet();

View File

@ -25,6 +25,7 @@ public class OrderWarningHandler : IOrderWarningHandler, ITransientDependency
});
}
// tips:要区分完结还是删除
public async Task HandleOrderDeletedOrCompletedAsync(List<OrderEntity> orders)
{
// 选出符合条件的订单
@ -36,7 +37,7 @@ public class OrderWarningHandler : IOrderWarningHandler, ITransientDependency
await _warningTaskRepository.CloseWarningNotifyTaskAsync(x =>
!x.IsClosed
&& orderIds.Contains(x.OrderId)
&& x.WarningType != (int) WarningRuleType.完整预警 // tips:不要移除完整预警
&& x.WarningType == (int) WarningRuleType.运输时效预警 // tips:不要移除完整预警
);
// 2.移除关闭【回传重试推送任务】,【运输预警明细生成任务】tips:无法关闭回传重试任务
@ -54,10 +55,11 @@ public class OrderWarningHandler : IOrderWarningHandler, ITransientDependency
{
OrderIds = orderIds,
});
await _warningDetailsEsRepository.BulkCloseReturnWarningDetailsAsync(new BulkCloseReturnWarningDetailsVO
{
OrderIds = orderIds,
});
// tips:不要移除回传预警
// await _warningDetailsEsRepository.BulkCloseReturnWarningDetailsAsync(new BulkCloseReturnWarningDetailsVO
// {
// OrderIds = orderIds,
// });
// tips:不要移除完整预警
// await _warningDetailsEsRepository.BulkCloseCompleteWarningDetailsAsync(new BulkCloseCompleteWarningDetailsVO
// {

View File

@ -406,8 +406,8 @@ public sealed class ReturnWarningHandler : IReturnWarningHandler, ITransientDepe
{
// 1.查询订单
var orderIdSet = updateOrDeleteSignals.Select(x => x.OrderId).ToHashSet();
// 只处理未完结并且未删除的订单
var orders = await _orderRepository.GetListAsync(x => orderIdSet.Contains(x.Id) && x.IsCompleted == false);
// 只处理未删除的订单
var orders = await _orderRepository.GetListAsync(x => orderIdSet.Contains(x.Id));
if (orders.Count == 0) return; //无任何订单需要处理,直接提交信号丢弃
var orderIds = orders.Select(x => x.Id).ToHashSet();