fix 轨迹处理循环依赖问题、模板明细对外显示问题
This commit is contained in:
parent
2b299fb709
commit
0b224b8379
@ -28,4 +28,9 @@ public class TrackUpsertEvent : UpsertTrackInput
|
|||||||
/// 上游子系统id
|
/// 上游子系统id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int UpSubSystemId { get; set; }
|
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)]
|
[CapSubscribe(GlobalConst.TrackUpsertSubscribe)]
|
||||||
public async Task ConsumerAsync(TrackUpsertEvent @event)
|
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)
|
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;
|
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);
|
if (!input.IsLink) return await UnLinkOrderAsync(input);
|
||||||
@ -78,6 +80,8 @@ public class OrderLinkService : ApplicationService
|
|||||||
LinkOrderType = input.LinkOrderType
|
LinkOrderType = input.LinkOrderType
|
||||||
}).ToList());
|
}).ToList());
|
||||||
|
|
||||||
|
// todo:补轨迹
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
|
||||||
using SJZY.Track.Domain.Queries;
|
using SJZY.Track.Domain.Queries;
|
||||||
|
|
||||||
namespace SJZY.Track.Application.Services.ProvideServices;
|
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))
|
foreach (var orderTemplate in orderTemplates.Where(x => x.OrderNo == item.OrderNo))
|
||||||
{
|
{
|
||||||
codes.AddRange(templateContent
|
codes.AddRange(templateContent
|
||||||
.Where(t => t.TemplateId == orderTemplate.TemplateId)
|
.Where(t => t.TemplateId == orderTemplate.TemplateId) // 按模板
|
||||||
|
.Where(t => t.IsExternal) // 过滤不对外的
|
||||||
.Select(t => t.Code));
|
.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>
|
||||||
/// 轨迹内容代码
|
/// 轨迹内容代码
|
||||||
/// </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
|
.Select((a, b) => new OrderedTrackCodeDto
|
||||||
{
|
{
|
||||||
TemplateId = a.TrackTemplateId,
|
TemplateId = a.TrackTemplateId,
|
||||||
Code = b.Code
|
Code = b.Code,
|
||||||
|
IsExternal = a.IsExternal
|
||||||
})
|
})
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user