feat: PullChangeBottomLineUpdateOrderEvent 事件迁移
This commit is contained in:
parent
f1d15c34df
commit
6b43722fa6
@ -73,7 +73,6 @@ public class TrackPushContentConfigDto
|
|||||||
/// 扩展字段参数值
|
/// 扩展字段参数值
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? ExpandFieldsValue { get; set; }
|
public string? ExpandFieldsValue { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 时间格式枚举
|
/// 时间格式枚举
|
||||||
|
|||||||
@ -36,5 +36,10 @@
|
|||||||
/// 轨迹内容英文
|
/// 轨迹内容英文
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string EntrackStatus { get; set; }
|
public string EntrackStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点名称
|
||||||
|
/// </summary>
|
||||||
|
public string? NodeName { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,11 +0,0 @@
|
|||||||
namespace SJZY.Track.Application.Contract.Events;
|
|
||||||
|
|
||||||
public class PullChangeBottomLineUpdateOrderEvent
|
|
||||||
{
|
|
||||||
public List<int> OrderIds { get; set; } = null!;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
|
||||||
/// </summary>
|
|
||||||
public int DeficiencyTagValue { get; set; }
|
|
||||||
}
|
|
||||||
@ -56,4 +56,9 @@ public class TrackChangeAfterUpdateOrderEvent
|
|||||||
/// 轨迹内容代码
|
/// 轨迹内容代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? TrackCode { get; set; }
|
public string? TrackCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
||||||
|
/// </summary>
|
||||||
|
public int DeficiencyTagValue { get; set; }
|
||||||
}
|
}
|
||||||
@ -53,4 +53,9 @@ public class TrackUpsertEvent
|
|||||||
public List<int> Visited { get; set; } = new();
|
public List<int> Visited { get; set; } = new();
|
||||||
|
|
||||||
public TrackRefreshStruct TrackRefreshData { get; set; }
|
public TrackRefreshStruct TrackRefreshData { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
||||||
|
/// </summary>
|
||||||
|
public int DeficiencyTagValue { get; set; }
|
||||||
}
|
}
|
||||||
@ -15,6 +15,7 @@ public class TrackPullAutoMapperProfile : Profile
|
|||||||
.ForMember(dest => dest.IsPush, opt => opt.MapFrom(source => false));
|
.ForMember(dest => dest.IsPush, opt => opt.MapFrom(source => false));
|
||||||
CreateMap<EditTrackPullContentInput, TrackPullContentConfigEntity>(MemberList.None)
|
CreateMap<EditTrackPullContentInput, TrackPullContentConfigEntity>(MemberList.None)
|
||||||
.ForMember(dest => dest.TrackKeyword, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywords)))
|
.ForMember(dest => dest.TrackKeyword, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywords)))
|
||||||
|
.ForMember(dest => dest.TrackZonePlaceValue, opt => opt.MapFrom(src => string.Join(',', src.TrackTimePlaceValue)))
|
||||||
.ForMember(dest => dest.TrackKeywordReverse, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywordReverses)));
|
.ForMember(dest => dest.TrackKeywordReverse, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywordReverses)));
|
||||||
CreateMap<GetTrackPullConfigDetailOutputVO, TrackPullParamConfigDto>(MemberList.None);
|
CreateMap<GetTrackPullConfigDetailOutputVO, TrackPullParamConfigDto>(MemberList.None);
|
||||||
CreateMap<GetTrackPullContentListCacheVO, TrackPullContentConfigDto>(MemberList.None);
|
CreateMap<GetTrackPullContentListCacheVO, TrackPullContentConfigDto>(MemberList.None);
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
using DotNetCore.CAP;
|
|
||||||
using SJZY.Track.Application.Contract.Events;
|
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
|
||||||
using SJZY.Track.Domain.Consts;
|
|
||||||
using Volo.Abp.DependencyInjection;
|
|
||||||
|
|
||||||
namespace SJZY.Track.Application.CAP.EventHandlers;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉去轨迹后,执行了兜底操作还是失败的标记操作
|
|
||||||
/// </summary>
|
|
||||||
public class PullChangeBottomLineUpdateOrderEventHandler :ITransientDependency, ICapSubscribe
|
|
||||||
{
|
|
||||||
private readonly IOrderRepository _orderRepository;
|
|
||||||
|
|
||||||
public PullChangeBottomLineUpdateOrderEventHandler(IOrderRepository orderRepository)
|
|
||||||
{
|
|
||||||
_orderRepository = orderRepository;
|
|
||||||
}
|
|
||||||
|
|
||||||
[CapSubscribe(GlobalConst.PullChangeBottomLineUpdateOrderSubscribe)]
|
|
||||||
public async Task ConsumerAsync(PullChangeBottomLineUpdateOrderEvent @event)
|
|
||||||
{
|
|
||||||
var rows =await _orderRepository.UpdateBatchIdsAsync(@event.OrderIds, @event.DeficiencyTagValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -48,6 +48,12 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 执行轨迹兜底时 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
||||||
|
if (@event.DeficiencyTagValue > 0 && @event.DeficiencyTagValue<=3)
|
||||||
|
{
|
||||||
|
order.DeficiencyTag = @event.DeficiencyTagValue;
|
||||||
|
}
|
||||||
|
|
||||||
if (!order.IsCompleted)
|
if (!order.IsCompleted)
|
||||||
{
|
{
|
||||||
order.IsCompleted = @event.IsCompleted;
|
order.IsCompleted = @event.IsCompleted;
|
||||||
@ -75,7 +81,7 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
await _orderRepository.UpdateRangeAsync(updateOrders, x => new
|
await _orderRepository.UpdateRangeAsync(updateOrders, x => new
|
||||||
{
|
{
|
||||||
x.IsCompleted, x.LatestTrackContent, x.LatestTrackEnContent, x.LatestTrackPlace, x.LatestTrackTime,
|
x.IsCompleted, x.LatestTrackContent, x.LatestTrackEnContent, x.LatestTrackPlace, x.LatestTrackTime,
|
||||||
x.LatestTrackTimeZone,x.IsTriggerPull
|
x.LatestTrackTimeZone,x.IsTriggerPull,x.DeficiencyTag
|
||||||
});
|
});
|
||||||
|
|
||||||
// 预警计算
|
// 预警计算
|
||||||
|
|||||||
@ -225,6 +225,16 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int deficiencyTagValue = 0;
|
||||||
|
// 触发了兜底,但是没有兜底住,对订单进行标记
|
||||||
|
if (hasPlaceBottomLine || hasTimezoneBottomLine)
|
||||||
|
{
|
||||||
|
//1表示时区,2表示发生地,3表示两种
|
||||||
|
var placeTagValue = hasPlaceBottomLine ? 2 : 0;
|
||||||
|
var timezoneTagValue = hasTimezoneBottomLine ? 1 : 0;
|
||||||
|
deficiencyTagValue = placeTagValue + timezoneTagValue;
|
||||||
|
}
|
||||||
|
|
||||||
// 新增/更新轨迹
|
// 新增/更新轨迹
|
||||||
var trackUpsertEvent = new TrackUpsertEvent
|
var trackUpsertEvent = new TrackUpsertEvent
|
||||||
{
|
{
|
||||||
@ -237,6 +247,7 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
OrderType = context.OrderType,
|
OrderType = context.OrderType,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
TrackRefreshData = new TrackRefreshStruct
|
TrackRefreshData = new TrackRefreshStruct
|
||||||
{
|
{
|
||||||
ServiceProviderName = context.ServiceProviderName,
|
ServiceProviderName = context.ServiceProviderName,
|
||||||
@ -250,26 +261,13 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
TrackCode = matchedContentConfig.TrackContentCode,
|
TrackCode = matchedContentConfig.TrackContentCode,
|
||||||
TrackPlace = trackPlace ?? GlobalConst.EmptyString,
|
TrackPlace = trackPlace ?? GlobalConst.EmptyString,
|
||||||
TrackTime = trackTime ?? DateTime.Now,
|
TrackTime = trackTime ?? DateTime.Now,
|
||||||
TrackTimeZone = trackTimeZone ?? 8
|
TrackTimeZone = trackTimeZone ?? 8,
|
||||||
|
DeficiencyTagValue = deficiencyTagValue
|
||||||
};
|
};
|
||||||
|
|
||||||
trackUpsertEvent.IsAdd =
|
trackUpsertEvent.IsAdd =
|
||||||
!await _trackDetailsRepository.AnyByCodeAsync(context.OrderId, matchedContentConfig.TrackContentCode);
|
!await _trackDetailsRepository.AnyByCodeAsync(context.OrderId, matchedContentConfig.TrackContentCode);
|
||||||
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertForRefreshSubscribe, trackUpsertEvent);
|
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertForRefreshSubscribe, trackUpsertEvent);
|
||||||
|
|
||||||
// 触发了兜底,但是没有兜底住,对订单进行标记
|
|
||||||
if (hasPlaceBottomLine || hasTimezoneBottomLine)
|
|
||||||
{
|
|
||||||
//1表示时区,2表示发生地,3表示两种
|
|
||||||
var placeTagValue = hasPlaceBottomLine ? 2 : 0;
|
|
||||||
var timezoneTagValue = hasTimezoneBottomLine ? 1 : 0;
|
|
||||||
PullChangeBottomLineUpdateOrderEvent deficiencyTagEvent = new PullChangeBottomLineUpdateOrderEvent
|
|
||||||
{
|
|
||||||
OrderIds = new List<int>(){context.OrderId},
|
|
||||||
DeficiencyTagValue = placeTagValue+timezoneTagValue
|
|
||||||
};
|
|
||||||
await _capPublisher.PublishAsync(GlobalConst.PullChangeBottomLineUpdateOrderSubscribe, deficiencyTagEvent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -194,7 +194,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
TrackPlace = @event.TrackPlace,
|
TrackPlace = @event.TrackPlace,
|
||||||
TrackTime = @event.TrackTime,
|
TrackTime = @event.TrackTime,
|
||||||
TrackTimeZone = @event.TrackTimeZone,
|
TrackTimeZone = @event.TrackTimeZone,
|
||||||
TrackCode = @event.TrackCode
|
TrackCode = @event.TrackCode,
|
||||||
|
DeficiencyTagValue = @event.DeficiencyTagValue
|
||||||
});
|
});
|
||||||
|
|
||||||
// 触发轨迹推送事件(异步)
|
// 触发轨迹推送事件(异步)
|
||||||
|
|||||||
@ -22,17 +22,17 @@ public class TrackPushService : ApplicationService
|
|||||||
private readonly ICapPublisher _capPublisher;
|
private readonly ICapPublisher _capPublisher;
|
||||||
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
|
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
|
||||||
private readonly IHttpClientProxy<IRequestCurrentUserService> _requestCurrentUserService;
|
private readonly IHttpClientProxy<IRequestCurrentUserService> _requestCurrentUserService;
|
||||||
TrackPushEventHandler _trackPushEventHandler;
|
|
||||||
public TrackPushService(IOrderRepository orderRepository
|
public TrackPushService(IOrderRepository orderRepository
|
||||||
, ICapPublisher capPublisher
|
, ICapPublisher capPublisher
|
||||||
, ITrackPushRecordsRepository trackPushRecordsRepository,
|
, ITrackPushRecordsRepository trackPushRecordsRepository,
|
||||||
IHttpClientProxy<IRequestCurrentUserService> requestCurrentUserService, TrackPushEventHandler trackPushEventHandler)
|
IHttpClientProxy<IRequestCurrentUserService> requestCurrentUserService)
|
||||||
{
|
{
|
||||||
_orderRepository = orderRepository;
|
_orderRepository = orderRepository;
|
||||||
_capPublisher = capPublisher;
|
_capPublisher = capPublisher;
|
||||||
_trackPushRecordsRepository = trackPushRecordsRepository;
|
_trackPushRecordsRepository = trackPushRecordsRepository;
|
||||||
_requestCurrentUserService = requestCurrentUserService;
|
_requestCurrentUserService = requestCurrentUserService;
|
||||||
_trackPushEventHandler = trackPushEventHandler;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -43,24 +43,6 @@ public class TrackPushService : ApplicationService
|
|||||||
[HttpPost("Track/Push")]
|
[HttpPost("Track/Push")]
|
||||||
public async Task<string> PushTrackAsync(PushTrackInput input)
|
public async Task<string> PushTrackAsync(PushTrackInput input)
|
||||||
{
|
{
|
||||||
var trackPushEvenst = new TrackPushEvent
|
|
||||||
{
|
|
||||||
OptionType = OptionType.新增, // Assuming OptionType.新增 corresponds to 1
|
|
||||||
SubSystemId = 9534,
|
|
||||||
CustomId = 228618,
|
|
||||||
OrderIds = new int[] { 1 },
|
|
||||||
TrackCode = "CP",
|
|
||||||
OperationMan = "郑志红",
|
|
||||||
SystemPushInfo = new SystemPushStruct
|
|
||||||
{
|
|
||||||
TrackStatus = null,
|
|
||||||
TrackContent = null,
|
|
||||||
TrackPlace = null,
|
|
||||||
TrackTime = DateTime.Parse("0001-01-01T00:00:00"),
|
|
||||||
TrackTimeZone = 0.0f
|
|
||||||
}
|
|
||||||
};
|
|
||||||
await _trackPushEventHandler.ConsumerAsync(trackPushEvenst);
|
|
||||||
input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空
|
input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空
|
||||||
|
|
||||||
var orders = await _orderRepository.GetArrayAsync(x =>
|
var orders = await _orderRepository.GetArrayAsync(x =>
|
||||||
|
|||||||
@ -25,7 +25,7 @@ public class TrackStatusEntity : IFullAuditedBasicEntitys, IAggregateRoot
|
|||||||
public string EnStatus { get; set; } = null!;
|
public string EnStatus { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 所属节点(主数据枚举ServiceNode)
|
/// 所属节点(来自表 t_track_node) 之前是枚举,后续调整为表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName = "Node")]
|
[SugarColumn(ColumnName = "Node")]
|
||||||
public int Node { get; set; }
|
public int Node { get; set; }
|
||||||
|
|||||||
@ -56,9 +56,4 @@ public partial class GlobalConst
|
|||||||
/// 关联订单后补轨迹
|
/// 关联订单后补轨迹
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string OrderLinkAfterFillTrack = "SJZY.Track.OrderLinkAfterFillTrack";
|
public const string OrderLinkAfterFillTrack = "SJZY.Track.OrderLinkAfterFillTrack";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹触发兜底后更新订单
|
|
||||||
/// </summary>
|
|
||||||
public const string PullChangeBottomLineUpdateOrderSubscribe = "SJZY.Track.PullChangeBottomLineUpdateOrder";
|
|
||||||
}
|
}
|
||||||
@ -36,4 +36,9 @@ public class GetTrackStatusDetailVO
|
|||||||
/// 轨迹内容英文
|
/// 轨迹内容英文
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string EntrackStatus { get; set; }
|
public string EntrackStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点名称
|
||||||
|
/// </summary>
|
||||||
|
public string? NodeName { get; set; }
|
||||||
}
|
}
|
||||||
@ -5,6 +5,11 @@ namespace SJZY.Track.Domain.Enums;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public enum DateTimeFormatEnum
|
public enum DateTimeFormatEnum
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 默认
|
||||||
|
/// </summary>
|
||||||
|
None = 0,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 时间戳
|
/// 时间戳
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
using SJZY.Track.Domain.Aggregates.TrackNodeAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
|
||||||
using SJZY.Track.Domain.Dtos.TrackStatus;
|
using SJZY.Track.Domain.Dtos.TrackStatus;
|
||||||
using SJZY.Track.Domain.VEntities;
|
using SJZY.Track.Domain.VEntities;
|
||||||
@ -14,9 +15,10 @@ public class TrackStatusRepository : BasicRepository<TrackStatusEntity>, ITrackS
|
|||||||
public async Task<GetTrackStatusDetailVO?> GetDetailAsync(int id)
|
public async Task<GetTrackStatusDetailVO?> GetDetailAsync(int id)
|
||||||
{
|
{
|
||||||
var detail = await Context.Queryable<TrackStatusEntity>()
|
var detail = await Context.Queryable<TrackStatusEntity>()
|
||||||
.LeftJoin<VSystemEntity>((a, b) => a.SubSystemId == b.Id&&b.IsDeleted==false)
|
.InnerJoin<TrackNodeEntity>((a,t)=>a.Node==t.Id)
|
||||||
.Where((a, b) => a.Id == id)
|
.LeftJoin<VSystemEntity>((a, t,b) => a.SubSystemId == b.Id&&b.IsDeleted==false)
|
||||||
.Select((a, b) => new GetTrackStatusDetailVO
|
.Where((a,t, b) => a.Id == id)
|
||||||
|
.Select((a, t,b) => new GetTrackStatusDetailVO
|
||||||
{
|
{
|
||||||
Id = a.Id,
|
Id = a.Id,
|
||||||
SubSystemId = a.SubSystemId,
|
SubSystemId = a.SubSystemId,
|
||||||
@ -24,7 +26,8 @@ public class TrackStatusRepository : BasicRepository<TrackStatusEntity>, ITrackS
|
|||||||
Code = a.Code,
|
Code = a.Code,
|
||||||
EntrackStatus = a.EnStatus,
|
EntrackStatus = a.EnStatus,
|
||||||
NodeId = a.Node,
|
NodeId = a.Node,
|
||||||
TrackStatus = a.Status
|
TrackStatus = a.Status,
|
||||||
|
NodeName = t.NodeName
|
||||||
})
|
})
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
return detail;
|
return detail;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user