fix 轨迹处理循环依赖问题、模板明细对外显示问题
This commit is contained in:
parent
2b299fb709
commit
0b224b8379
@ -28,4 +28,9 @@ public class TrackUpsertEvent : UpsertTrackInput
|
||||
/// 上游子系统id
|
||||
/// </summary>
|
||||
public int UpSubSystemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 已经处理过的订单
|
||||
/// </summary>
|
||||
public List<int> Visited { get; set; } = new();
|
||||
}
|
||||
@ -32,6 +32,9 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
||||
[CapSubscribe(GlobalConst.TrackUpsertSubscribe)]
|
||||
public async Task ConsumerAsync(TrackUpsertEvent @event)
|
||||
{
|
||||
if (@event.Visited.Contains(@event.OrderId)) return;
|
||||
@event.Visited.Add(@event.OrderId);
|
||||
|
||||
// 不同子系统需要做内容映射
|
||||
if (@event.UpSubSystemId != 0 && @event.UpSubSystemId != @event.SubSystemId)
|
||||
{
|
||||
|
||||
@ -43,8 +43,10 @@ public class OrderLinkService : ApplicationService
|
||||
|
||||
if (input.LinkOrderNos.Count < 1 || input.LinkOrderType == 0) return true;
|
||||
|
||||
// 单号去重,去空
|
||||
input.LinkOrderNos = input.LinkOrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList();
|
||||
// 单号去重,去空,去自己
|
||||
input.LinkOrderNos = input.LinkOrderNos
|
||||
.Where(x => !x.IsNullOrWhiteSpace() && x != input.OrderNo)
|
||||
.Distinct().ToList();
|
||||
|
||||
// 解绑
|
||||
if (!input.IsLink) return await UnLinkOrderAsync(input);
|
||||
@ -78,6 +80,8 @@ public class OrderLinkService : ApplicationService
|
||||
LinkOrderType = input.LinkOrderType
|
||||
}).ToList());
|
||||
|
||||
// todo:补轨迹
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
using SJZY.Track.Domain.Queries;
|
||||
|
||||
namespace SJZY.Track.Application.Services.ProvideServices;
|
||||
@ -91,7 +90,8 @@ public class TrackQueryService : ApplicationService
|
||||
foreach (var orderTemplate in orderTemplates.Where(x => x.OrderNo == item.OrderNo))
|
||||
{
|
||||
codes.AddRange(templateContent
|
||||
.Where(t => t.TemplateId == orderTemplate.TemplateId)
|
||||
.Where(t => t.TemplateId == orderTemplate.TemplateId) // 按模板
|
||||
.Where(t => t.IsExternal) // 过滤不对外的
|
||||
.Select(t => t.Code));
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
using FluentValidation;
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
namespace SJZY.Track.Application.Validations.ProviderService;
|
||||
|
||||
public class UpsertTrackInputValidation : AbstractValidator<UpsertTrackInput>, IValidationEnabled
|
||||
{
|
||||
public UpsertTrackInputValidation()
|
||||
{
|
||||
RuleFor(x => x.TrackTime).NotNull();
|
||||
RuleFor(x => x.TraceTimeZone).NotNull();
|
||||
}
|
||||
}
|
||||
@ -10,5 +10,10 @@ public class OrderedTrackCodeDto
|
||||
/// <summary>
|
||||
/// 轨迹内容代码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
public string Code { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 是否对外
|
||||
/// </summary>
|
||||
public bool IsExternal { get; set; }
|
||||
}
|
||||
@ -57,7 +57,8 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
|
||||
.Select((a, b) => new OrderedTrackCodeDto
|
||||
{
|
||||
TemplateId = a.TrackTemplateId,
|
||||
Code = b.Code
|
||||
Code = b.Code,
|
||||
IsExternal = a.IsExternal
|
||||
})
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user