Merge remote-tracking branch 'origin/S04轨迹预警' into S04轨迹预警
This commit is contained in:
commit
1513bb4964
@ -15,15 +15,15 @@ public class EditTrackNodeInput
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 系统id
|
/// 系统id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int SystemId { get; set; }
|
public int? SubSystemId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 节点名称
|
/// 节点名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Name { get; set; }
|
public string? NodeName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 节点英文名称
|
/// 节点英文名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string EnName { get; set; }
|
public string? NodeEnName { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,4 +46,9 @@ public class TrackPullParamConfigDto
|
|||||||
/// 轨迹明细数组路径
|
/// 轨迹明细数组路径
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string TrackDetailsPath { get; set; } = null!;
|
public string TrackDetailsPath { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹内容代码
|
||||||
|
/// </summary>
|
||||||
|
public string? TrackContentCode { get; set; }
|
||||||
}
|
}
|
||||||
@ -7,4 +7,6 @@ public struct OrderIdentifier
|
|||||||
public int OrderType { get; set; }
|
public int OrderType { get; set; }
|
||||||
|
|
||||||
public int CustomId { get; set; }
|
public int CustomId { get; set; }
|
||||||
|
|
||||||
|
public bool IsTrigger { get; set; }
|
||||||
}
|
}
|
||||||
@ -41,4 +41,9 @@ public class TrackChangeAfterUpdateOrderEvent
|
|||||||
/// 轨迹时区
|
/// 轨迹时区
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float TrackTimeZone { get; set; }
|
public float TrackTimeZone { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据配置规则,标记拉取时需要的订单Id
|
||||||
|
/// </summary>
|
||||||
|
public int[] TriggerPullOrderIds { get; set; } = Array.Empty<int>();
|
||||||
}
|
}
|
||||||
@ -12,9 +12,9 @@ public class TrackNodeMapperProfile :Profile
|
|||||||
{
|
{
|
||||||
CreateMap<QueryTrackNodeRequest, TrackNodePageDto>();
|
CreateMap<QueryTrackNodeRequest, TrackNodePageDto>();
|
||||||
CreateMap<EditTrackNodeInput, TrackNodeEntity>(MemberList.None)
|
CreateMap<EditTrackNodeInput, TrackNodeEntity>(MemberList.None)
|
||||||
.ForMember(val => val.NodeName, opt => opt.MapFrom(src => src.Name))
|
.ForMember(val => val.NodeName, opt => opt.MapFrom(src => src.NodeName))
|
||||||
.ForMember(val => val.NodeEnName, opt => opt.MapFrom(src => src.EnName))
|
.ForMember(val => val.NodeEnName, opt => opt.MapFrom(src => src.NodeEnName))
|
||||||
.ForMember(val => val.SubSystemId, opt => opt.MapFrom(src => src.SystemId));
|
.ForMember(val => val.SubSystemId, opt => opt.MapFrom(src => src.SubSystemId));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -6,6 +6,9 @@ using Volo.Abp.DependencyInjection;
|
|||||||
|
|
||||||
namespace SJZY.Track.Application.CAP.EventHandlers;
|
namespace SJZY.Track.Application.CAP.EventHandlers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拉去轨迹后,执行了兜底操作还是失败的标记操作
|
||||||
|
/// </summary>
|
||||||
public class PullChangeBottomLineUpdateOrderEventHandler :ITransientDependency, ICapSubscribe
|
public class PullChangeBottomLineUpdateOrderEventHandler :ITransientDependency, ICapSubscribe
|
||||||
{
|
{
|
||||||
private readonly IOrderRepository _orderRepository;
|
private readonly IOrderRepository _orderRepository;
|
||||||
@ -18,6 +21,6 @@ public class PullChangeBottomLineUpdateOrderEventHandler :ITransientDependency,
|
|||||||
[CapSubscribe(GlobalConst.PullChangeBottomLineUpdateOrderSubscribe)]
|
[CapSubscribe(GlobalConst.PullChangeBottomLineUpdateOrderSubscribe)]
|
||||||
public async Task ConsumerAsync(PullChangeBottomLineUpdateOrderEvent @event)
|
public async Task ConsumerAsync(PullChangeBottomLineUpdateOrderEvent @event)
|
||||||
{
|
{
|
||||||
await _orderRepository.UpdateBatchIdsAsync(@event.OrderIds, @event.DeficiencyTagValue);
|
var rows =await _orderRepository.UpdateBatchIdsAsync(@event.OrderIds, @event.DeficiencyTagValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -28,6 +28,7 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
if (orders.Count == 0) return;
|
if (orders.Count == 0) return;
|
||||||
|
|
||||||
var updateOrders = new List<OrderEntity>();
|
var updateOrders = new List<OrderEntity>();
|
||||||
|
|
||||||
foreach (var order in orders)
|
foreach (var order in orders)
|
||||||
{
|
{
|
||||||
if (order.LatestTrackContent != @event.TrackContent)
|
if (order.LatestTrackContent != @event.TrackContent)
|
||||||
@ -45,6 +46,12 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
order.IsCompleted = @event.IsCompleted;
|
order.IsCompleted = @event.IsCompleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 触发拉取节点
|
||||||
|
if (@event.TriggerPullOrderIds.Contains(order.Id))
|
||||||
|
{
|
||||||
|
order.IsTriggerPull = 1;
|
||||||
|
}
|
||||||
|
|
||||||
order.LatestTrackContent = @event.TrackContent;
|
order.LatestTrackContent = @event.TrackContent;
|
||||||
order.LatestTrackEnContent = @event.TrackEnContent;
|
order.LatestTrackEnContent = @event.TrackEnContent;
|
||||||
order.LatestTrackPlace = @event.TrackPlace;
|
order.LatestTrackPlace = @event.TrackPlace;
|
||||||
|
|||||||
@ -2,11 +2,14 @@
|
|||||||
using SJZY.Expand.ABP.Core.Logger;
|
using SJZY.Expand.ABP.Core.Logger;
|
||||||
using SJZY.Expand.ABP.Core.PublicMethords;
|
using SJZY.Expand.ABP.Core.PublicMethords;
|
||||||
using SJZY.Track.Application.Contract.Events;
|
using SJZY.Track.Application.Contract.Events;
|
||||||
|
using SJZY.Track.Application.Contract.Services;
|
||||||
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.Consts;
|
using SJZY.Track.Domain.Consts;
|
||||||
|
using SJZY.Track.Domain.Dtos.Order;
|
||||||
using SJZY.Track.Domain.Queries;
|
using SJZY.Track.Domain.Queries;
|
||||||
using Volo.Abp.DependencyInjection;
|
using Volo.Abp.DependencyInjection;
|
||||||
|
using OrderIdentifier = SJZY.Track.Application.Contract.Events.OrderIdentifier;
|
||||||
|
|
||||||
namespace SJZY.Track.Application.CAP.EventHandlers;
|
namespace SJZY.Track.Application.CAP.EventHandlers;
|
||||||
|
|
||||||
@ -16,14 +19,16 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
private readonly IProvideQueries _provideQueries;
|
private readonly IProvideQueries _provideQueries;
|
||||||
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
||||||
private readonly ICapPublisher _capPublisher;
|
private readonly ICapPublisher _capPublisher;
|
||||||
|
private readonly ITrackPullCacheService _trackPullCacheService;
|
||||||
|
|
||||||
public TrackUpsertEventHandler(IOrderRepository orderRepository, ICapPublisher capPublisher,
|
public TrackUpsertEventHandler(IOrderRepository orderRepository, ICapPublisher capPublisher,
|
||||||
IProvideQueries provideQueries, ITrackDetailsRepository trackDetailsRepository)
|
IProvideQueries provideQueries, ITrackDetailsRepository trackDetailsRepository, ITrackPullCacheService trackPullCacheService)
|
||||||
{
|
{
|
||||||
_orderRepository = orderRepository;
|
_orderRepository = orderRepository;
|
||||||
_capPublisher = capPublisher;
|
_capPublisher = capPublisher;
|
||||||
_provideQueries = provideQueries;
|
_provideQueries = provideQueries;
|
||||||
_trackDetailsRepository = trackDetailsRepository;
|
_trackDetailsRepository = trackDetailsRepository;
|
||||||
|
_trackPullCacheService = trackPullCacheService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[CapSubscribe(GlobalConst.TrackUpsertSubscribe, Group = GlobalConst.TrackUpsertSubscribe)]
|
[CapSubscribe(GlobalConst.TrackUpsertSubscribe, Group = GlobalConst.TrackUpsertSubscribe)]
|
||||||
@ -114,7 +119,9 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
var trackContents = await _provideQueries.MatchTrackContentAsync(newOrderIds, @event.TrackCode);
|
var trackContents = await _provideQueries.MatchTrackContentAsync(newOrderIds, @event.TrackCode);
|
||||||
|
|
||||||
var insertTracks = new List<TrackDetailsIndex>();
|
var insertTracks = new List<TrackDetailsIndex>();
|
||||||
|
var triggerPullOrder = new List<int>();
|
||||||
|
|
||||||
|
var providerDic=await GetProviderDic(orderIds);
|
||||||
foreach (var order in @event.OrderIdentifiers)
|
foreach (var order in @event.OrderIdentifiers)
|
||||||
{
|
{
|
||||||
var track = tracks.FirstOrDefault(x => x.OrderId == order.OrderId);
|
var track = tracks.FirstOrDefault(x => x.OrderId == order.OrderId);
|
||||||
@ -170,6 +177,17 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
}
|
}
|
||||||
|
|
||||||
canNextOrderIds.Add(order.OrderId);
|
canNextOrderIds.Add(order.OrderId);
|
||||||
|
|
||||||
|
if(!providerDic.TryGetValue(order.OrderId,out var provider))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var config =
|
||||||
|
await _trackPullCacheService.GetPullParamWithContentConfigAsync(provider.SubSystemId,
|
||||||
|
provider.ServiceProviderId);
|
||||||
|
if (config!=null && config.ParamConfig!=null && config.ParamConfig.TrackContentCode == @event.TrackCode)
|
||||||
|
{
|
||||||
|
triggerPullOrder.Add(order.OrderId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canNextOrderIds.Count == 0) return;
|
if (canNextOrderIds.Count == 0) return;
|
||||||
@ -188,7 +206,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
TrackStatusId = content.TrackStatusId,
|
TrackStatusId = content.TrackStatusId,
|
||||||
TrackPlace = @event.TrackPlace,
|
TrackPlace = @event.TrackPlace,
|
||||||
TrackTime = @event.TrackTime,
|
TrackTime = @event.TrackTime,
|
||||||
TrackTimeZone = @event.TrackTimeZone
|
TrackTimeZone = @event.TrackTimeZone,
|
||||||
|
TriggerPullOrderIds = triggerPullOrder.ToArray()
|
||||||
});
|
});
|
||||||
|
|
||||||
// 触发轨迹推送事件(异步)
|
// 触发轨迹推送事件(异步)
|
||||||
@ -215,4 +234,17 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
|
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取服务商字典
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="orderIds"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<Dictionary<int, OrderTransportDto>> GetProviderDic(int[] orderIds)
|
||||||
|
{
|
||||||
|
var providerList = await _provideQueries.FindOrderWithServiceProviderAsync(orderIds);
|
||||||
|
return providerList.GroupBy(val => val.OrderId)
|
||||||
|
.ToDictionary(val => val.Key, val => val.First());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -55,6 +55,18 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
|
|||||||
return resultDto;
|
return resultDto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取详情
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="nodeid">节点id</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("GetDetail")]
|
||||||
|
public async Task<UnifyResultDto> GetDetail(int nodeid)
|
||||||
|
{
|
||||||
|
var resultDto = await _trackNodeRepository.GetDetail(nodeid);
|
||||||
|
return new UnifyResultDto(true,resultDto);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取分页轨迹字典,下拉框用的
|
/// 获取分页轨迹字典,下拉框用的
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -73,16 +85,21 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
|
|||||||
private async Task<UnifyResultDto> AddAsync(EditTrackNodeInput input)
|
private async Task<UnifyResultDto> AddAsync(EditTrackNodeInput input)
|
||||||
{
|
{
|
||||||
#region 业务校验
|
#region 业务校验
|
||||||
|
if(string.IsNullOrEmpty(input.NodeName)|| string.IsNullOrEmpty(input.NodeEnName) || !input.SubSystemId.HasValue)
|
||||||
|
{
|
||||||
|
return new UnifyResultDto("200", "NodeName,NodeEnName,SubSystemId 必填", false);
|
||||||
|
}
|
||||||
|
|
||||||
var trackNodesEntitys = await _trackNodeRepository.GetListAsync(a =>
|
var trackNodesEntitys = await _trackNodeRepository.GetListAsync(a =>
|
||||||
a.SubSystemId == input.SystemId && (a.NodeName == input.Name || a.NodeEnName == input.EnName));
|
a.SubSystemId == input.SubSystemId && (a.NodeName == input.NodeName || a.NodeEnName == input.NodeEnName));
|
||||||
if (trackNodesEntitys.Any())
|
if (trackNodesEntitys.Any())
|
||||||
{
|
{
|
||||||
var trackNodeName = trackNodesEntitys.FirstOrDefault(a => a.NodeName == input.Name);
|
var trackNodeName = trackNodesEntitys.FirstOrDefault(a => a.NodeName == input.NodeName);
|
||||||
if (trackNodeName != null)
|
if (trackNodeName != null)
|
||||||
{
|
{
|
||||||
throw new BusinessException(message: "该子系统下节点名称已存在");
|
throw new BusinessException(message: "该子系统下节点名称已存在");
|
||||||
}
|
}
|
||||||
var trackNodeEnName = trackNodesEntitys.FirstOrDefault(a => a.NodeEnName == input.EnName);
|
var trackNodeEnName = trackNodesEntitys.FirstOrDefault(a => a.NodeEnName == input.NodeEnName);
|
||||||
if (trackNodeEnName != null)
|
if (trackNodeEnName != null)
|
||||||
{
|
{
|
||||||
throw new BusinessException(message: "该子系统下节点英文名称已存在");
|
throw new BusinessException(message: "该子系统下节点英文名称已存在");
|
||||||
@ -99,6 +116,10 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
|
|||||||
private async Task<UnifyResultDto> UpdateAsync(EditTrackNodeInput input)
|
private async Task<UnifyResultDto> UpdateAsync(EditTrackNodeInput input)
|
||||||
{
|
{
|
||||||
#region 业务校验
|
#region 业务校验
|
||||||
|
if(string.IsNullOrEmpty(input.NodeName)|| string.IsNullOrEmpty(input.NodeEnName) )
|
||||||
|
{
|
||||||
|
return new UnifyResultDto("200", "NodeName,NodeEnName 必填", false);
|
||||||
|
}
|
||||||
|
|
||||||
var trackNodesEntitys = await _trackNodeRepository.GetFirstAsync(a => a.Id == input.Id);
|
var trackNodesEntitys = await _trackNodeRepository.GetFirstAsync(a => a.Id == input.Id);
|
||||||
if (trackNodesEntitys == null)
|
if (trackNodesEntitys == null)
|
||||||
@ -108,8 +129,8 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
trackNodesEntitys.NodeEnName = input.EnName;
|
trackNodesEntitys.NodeEnName = input.NodeEnName;
|
||||||
trackNodesEntitys.NodeName = input.Name;
|
trackNodesEntitys.NodeName = input.NodeName;
|
||||||
var isTrue = await _trackNodeRepository.UpdateAsync(trackNodesEntitys);
|
var isTrue = await _trackNodeRepository.UpdateAsync(trackNodesEntitys);
|
||||||
|
|
||||||
return new UnifyResultDto("200", "修改成功", isTrue);
|
return new UnifyResultDto("200", "修改成功", isTrue);
|
||||||
@ -117,7 +138,12 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
|
|||||||
|
|
||||||
private async Task<UnifyResultDto> DeleteAsync(EditTrackNodeInput input)
|
private async Task<UnifyResultDto> DeleteAsync(EditTrackNodeInput input)
|
||||||
{
|
{
|
||||||
var trackStatus = await _trackStatusRepository.GetFirstAsync(val => val.Node == input.Id && val.SubSystemId == input.SystemId);
|
if(input.Id <=0 || !input.SubSystemId.HasValue)
|
||||||
|
{
|
||||||
|
return new UnifyResultDto("200", "SubSystemId 必填", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
var trackStatus = await _trackStatusRepository.GetFirstAsync(val => val.Node == input.Id && val.SubSystemId == input.SubSystemId);
|
||||||
if(trackStatus!=null)
|
if(trackStatus!=null)
|
||||||
{
|
{
|
||||||
return new UnifyResultDto("200", "删除失败,该节点已被使用", false);
|
return new UnifyResultDto("200", "删除失败,该节点已被使用", false);
|
||||||
@ -168,6 +168,12 @@ public class OrderEntity : IFullAuditedBasicEntitys, IAggregateRoot
|
|||||||
[SugarColumn(ColumnName = "ArrivalProvince")]
|
[SugarColumn(ColumnName = "ArrivalProvince")]
|
||||||
public string? ArrivalProvince { get; set; }
|
public string? ArrivalProvince { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否触发拉取,1表示触发
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "IsTriggerPull")]
|
||||||
|
public short? IsTriggerPull { get; set; }
|
||||||
|
|
||||||
[SugarColumn(IsIgnore = true)] public List<OrderFlightEntity> OrderFlights { get; set; }
|
[SugarColumn(IsIgnore = true)] public List<OrderFlightEntity> OrderFlights { get; set; }
|
||||||
[SugarColumn(IsIgnore = true)] public List<OrderTemplateEntity> OrderTemplates { get; set; }
|
[SugarColumn(IsIgnore = true)] public List<OrderTemplateEntity> OrderTemplates { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -24,4 +24,11 @@ public interface ITrackNodeRepository:IBasicRepository<TrackNodeEntity>
|
|||||||
/// <param name="inputId"></param>
|
/// <param name="inputId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<int> DeleteById(long inputId);
|
Task<int> DeleteById(long inputId);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取详情
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<TrackNodeDto> GetDetail(long id);
|
||||||
}
|
}
|
||||||
@ -89,4 +89,10 @@ public class TrackPushPullParamsConfigEntity : IFullAuditedBasicEntitys, IEntity
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName = "ExpandFieldsName")]
|
[SugarColumn(ColumnName = "ExpandFieldsName")]
|
||||||
public string? ExpandFieldsName { get; set; }
|
public string? ExpandFieldsName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹内容代码
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "TrackContentCode")]
|
||||||
|
public string? TrackContentCode { get; set; }
|
||||||
}
|
}
|
||||||
10
src/SJZY.Track.Domain/Dtos/Order/OrderTransportDto.cs
Normal file
10
src/SJZY.Track.Domain/Dtos/Order/OrderTransportDto.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
namespace SJZY.Track.Domain.Dtos.Order;
|
||||||
|
|
||||||
|
public class OrderTransportDto
|
||||||
|
{
|
||||||
|
public int OrderId { get; set; }
|
||||||
|
|
||||||
|
public int ServiceProviderId { get; set; }
|
||||||
|
|
||||||
|
public int SubSystemId { get; set; }
|
||||||
|
}
|
||||||
@ -15,6 +15,11 @@ public class TrackNodeDto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int SubSystemId { get; set; }
|
public int SubSystemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 系统名称
|
||||||
|
/// </summary>
|
||||||
|
public string? SystemName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 节点名称
|
/// 节点名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -78,4 +78,9 @@ public class GetTrackPullConfigDetailOutputVO
|
|||||||
/// 轨迹明细路径
|
/// 轨迹明细路径
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string TrackDetailsPath { get; set; }
|
public string TrackDetailsPath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹内容代码
|
||||||
|
/// </summary>
|
||||||
|
public string? TrackContentCode { get; set; }
|
||||||
}
|
}
|
||||||
@ -68,4 +68,11 @@ public interface IProvideQueries
|
|||||||
int pageSize = 1000);
|
int pageSize = 1000);
|
||||||
|
|
||||||
Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode);
|
Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找订单和服务商信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="orderIds">订单id</param>
|
||||||
|
/// <returns>订单和服务商信息</returns>
|
||||||
|
Task<List<OrderTransportDto>> FindOrderWithServiceProviderAsync(int[] orderIds);
|
||||||
}
|
}
|
||||||
@ -122,7 +122,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
|
|||||||
return await Context.Queryable<OrderEntity>()
|
return await Context.Queryable<OrderEntity>()
|
||||||
.RightJoin<OrderTemplateEntity>((a, b) => a.Id == b.OrderId)
|
.RightJoin<OrderTemplateEntity>((a, b) => a.Id == b.OrderId)
|
||||||
.LeftJoin<VServiceProviderEntity>((a, b, c) => b.ServiceProviderId == c.Id)
|
.LeftJoin<VServiceProviderEntity>((a, b, c) => b.ServiceProviderId == c.Id)
|
||||||
.Where((a, b) => b.ServiceProviderId == serviceProvider && !a.IsCompleted)
|
.Where((a, b) => b.ServiceProviderId == serviceProvider && !a.IsCompleted && a.IsTriggerPull==1)
|
||||||
.Select((a, b, c) => new OrderWithServiceProviderVO
|
.Select((a, b, c) => new OrderWithServiceProviderVO
|
||||||
{
|
{
|
||||||
OrderNo = a.OrderNo,
|
OrderNo = a.OrderNo,
|
||||||
@ -137,6 +137,20 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
|
|||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<List<OrderTransportDto>> FindOrderWithServiceProviderAsync(int[] orderIds)
|
||||||
|
{
|
||||||
|
return await Context.Queryable<OrderEntity>()
|
||||||
|
.InnerJoin<OrderTemplateEntity>((a, b) => a.Id == b.OrderId)
|
||||||
|
.Where((a, b) => orderIds.Contains( a.Id) && !a.IsCompleted)
|
||||||
|
.Select((a, b) => new OrderTransportDto
|
||||||
|
{
|
||||||
|
OrderId = a.Id,
|
||||||
|
ServiceProviderId = b.ServiceProviderId,
|
||||||
|
SubSystemId = a.SubSystemId
|
||||||
|
})
|
||||||
|
.ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode)
|
public async Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode)
|
||||||
{
|
{
|
||||||
return await Context.Queryable<TrackContentEntity>()
|
return await Context.Queryable<TrackContentEntity>()
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using SJZY.Track.Domain;
|
using SJZY.Track.Domain;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
|
using SJZY.Track.Domain.Consts;
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
using SJZY.Track.Domain.Dtos.Order;
|
||||||
|
|
||||||
namespace SJZY.Track.Repository.Repositories;
|
namespace SJZY.Track.Repository.Repositories;
|
||||||
@ -21,7 +22,9 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
|||||||
|
|
||||||
public Task<int> UpdateBatchIdsAsync(List<int> ids, int newValue)
|
public Task<int> UpdateBatchIdsAsync(List<int> ids, int newValue)
|
||||||
{
|
{
|
||||||
return Context.Ado.ExecuteCommandAsync("UPDATE `t_order` SET `DeficiencyTag` = @newValue WHERE `Id` IN @ids", new { ids, newValue });
|
var idsString = string.Join(",", ids);
|
||||||
|
return Context.Ado.ExecuteCommandAsync(
|
||||||
|
$"UPDATE `t_order` SET `DeficiencyTag` = @newValue ,UpdateTime= current_timestamp WHERE `Id` IN ({idsString})", new { newValue });
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task UpdateOrderAsync(OrderEntity order)
|
public async Task UpdateOrderAsync(OrderEntity order)
|
||||||
|
|||||||
@ -11,10 +11,11 @@ public class TrackNodeRepository: BasicRepository<TrackNodeEntity>,ITrackNodeRep
|
|||||||
var result = await Context.Queryable<TrackNodeEntity>()
|
var result = await Context.Queryable<TrackNodeEntity>()
|
||||||
.LeftJoin<VUserEntity>((t,u1)=>t.CreateUserId==u1.Id)
|
.LeftJoin<VUserEntity>((t,u1)=>t.CreateUserId==u1.Id)
|
||||||
.LeftJoin<VUserEntity>((t,u1,u2)=>t.UpdateUserId==u2.Id)
|
.LeftJoin<VUserEntity>((t,u1,u2)=>t.UpdateUserId==u2.Id)
|
||||||
|
.LeftJoin<VSystemEntity>((t,u1,u2,u3)=>t.SubSystemId==u3.Id)
|
||||||
.Where((t,u1,u2)=>!t.IsDeleted&&!u1.IsDeleted&&!u2.IsDeleted)
|
.Where((t,u1,u2)=>!t.IsDeleted&&!u1.IsDeleted&&!u2.IsDeleted)
|
||||||
.WhereIF(!string.IsNullOrEmpty(queryParam.KeyWord), (t,u1,u2)=>t.NodeName!.Contains(queryParam.KeyWord)||t.NodeEnName!.Contains(queryParam.KeyWord))
|
.WhereIF(!string.IsNullOrEmpty(queryParam.KeyWord), (t,u1,u2)=>t.NodeName!.Contains(queryParam.KeyWord)||t.NodeEnName!.Contains(queryParam.KeyWord))
|
||||||
.WhereIF(queryParam.SystemId.HasValue,(t,u1,u2)=>t.SubSystemId == queryParam.SystemId.Value)
|
.WhereIF(queryParam.SystemId.HasValue,(t,u1,u2)=>t.SubSystemId == queryParam.SystemId.Value)
|
||||||
.Select((t, u1, u2) =>new TrackNodeDto()
|
.Select((t, u1, u2,u3) =>new TrackNodeDto()
|
||||||
{
|
{
|
||||||
Id = t.Id,
|
Id = t.Id,
|
||||||
NodeName = t.NodeName,
|
NodeName = t.NodeName,
|
||||||
@ -24,7 +25,8 @@ public class TrackNodeRepository: BasicRepository<TrackNodeEntity>,ITrackNodeRep
|
|||||||
CreateTime = t.CreateTime,
|
CreateTime = t.CreateTime,
|
||||||
UpdateUserId = t.UpdateUserId,
|
UpdateUserId = t.UpdateUserId,
|
||||||
UpdateUserName = u2.Name,
|
UpdateUserName = u2.Name,
|
||||||
CreateUserName = u1.Name
|
CreateUserName = u1.Name,
|
||||||
|
SystemName = u3.CnName
|
||||||
}).ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize);
|
}).ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -50,4 +52,27 @@ public class TrackNodeRepository: BasicRepository<TrackNodeEntity>,ITrackNodeRep
|
|||||||
{
|
{
|
||||||
return Context.Deleteable<TrackNodeEntity>().Where(val=>val.Id==inputId).ExecuteCommandAsync();
|
return Context.Deleteable<TrackNodeEntity>().Where(val=>val.Id==inputId).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<TrackNodeDto> GetDetail(long id)
|
||||||
|
{
|
||||||
|
var result = await Context.Queryable<TrackNodeEntity>()
|
||||||
|
.LeftJoin<VUserEntity>((t, u1) => t.CreateUserId == u1.Id)
|
||||||
|
.LeftJoin<VUserEntity>((t, u1, u2) => t.UpdateUserId == u2.Id)
|
||||||
|
.LeftJoin<VSystemEntity>((t, u1, u2, u3) => t.SubSystemId == u3.Id)
|
||||||
|
.Where((t, u1, u2) => !t.IsDeleted && !u1.IsDeleted && !u2.IsDeleted)
|
||||||
|
.Select((t, u1, u2, u3) => new TrackNodeDto()
|
||||||
|
{
|
||||||
|
Id = t.Id,
|
||||||
|
NodeName = t.NodeName,
|
||||||
|
NodeEnName = t.NodeEnName,
|
||||||
|
SubSystemId = t.SubSystemId,
|
||||||
|
UpdateTime = t.UpdateTime,
|
||||||
|
CreateTime = t.CreateTime,
|
||||||
|
UpdateUserId = t.UpdateUserId,
|
||||||
|
UpdateUserName = u2.Name,
|
||||||
|
CreateUserName = u1.Name,
|
||||||
|
SystemName = u3.CnName
|
||||||
|
}).FirstAsync();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -72,7 +72,8 @@ public class TrackPullConfigRepository : BasicRepository<TrackPullConfigEntity>,
|
|||||||
{
|
{
|
||||||
Id = trackPull.Id,
|
Id = trackPull.Id,
|
||||||
SubSystem = system.CnName,
|
SubSystem = system.CnName,
|
||||||
ServiceProvider = service.Name
|
ServiceProvider = service.Name,
|
||||||
|
TrackContentCode = paramsConfig.TrackContentCode
|
||||||
}, true)
|
}, true)
|
||||||
.SingleAsync();
|
.SingleAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user