Merge branch 'refs/heads/S06' into test
This commit is contained in:
commit
1ee7bb2588
@ -37,8 +37,8 @@ public class BatchUpsertTrackInput : OrderNosInfo
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 轨迹发生时区
|
/// 轨迹发生时区
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
// [Required]
|
||||||
[Range(-12, 12)]
|
// [Range(-12, 12)]
|
||||||
public float TrackTimeZone { get; set; }
|
public float TrackTimeZone { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -7,8 +7,6 @@ public class UpsertOrderInput : UpdateOrderInput
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 客户id
|
/// 客户id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
|
||||||
[Range(1, int.MaxValue)]
|
|
||||||
public int CustomId { get; set; }
|
public int CustomId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -37,8 +37,8 @@ public class UpsertTrackInput : OrderNoInfo
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 轨迹发生时区
|
/// 轨迹发生时区
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
// [Required]
|
||||||
[Range(-12, 12)]
|
// [Range(-12, 12)]
|
||||||
public float? TrackTimeZone { get; set; }
|
public float? TrackTimeZone { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -201,9 +201,8 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
}
|
}
|
||||||
else //原有逻辑,根据轨迹code和订单进行删除
|
else //原有逻辑,根据轨迹code和订单进行删除
|
||||||
{
|
{
|
||||||
var trackCodes = @event.TrackIdentifiers.Select(x => x.TrackCode).ToList();
|
//根据订单查询出所有的轨迹,查所有是因为主单上需要进行回退更新
|
||||||
// 删除轨迹(删的是同子系统下的单,所以code是统一的)
|
tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds);
|
||||||
tracks = await _trackDetailsEsRepository.GetListAsync(@event.OrderIds, trackCodes,null);
|
|
||||||
|
|
||||||
//构建标识符集合
|
//构建标识符集合
|
||||||
var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime}").ToList();
|
var ids = @event.TrackIdentifiers.Select(x => $"{x.TrackCode}{x.TrackTime}").ToList();
|
||||||
@ -217,8 +216,10 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
await _trackDetailsEsRepository.DeleteTrackByIdAsync(track.Id, track.IndexName);
|
await _trackDetailsEsRepository.DeleteTrackByIdAsync(track.Id, track.IndexName);
|
||||||
}
|
}
|
||||||
|
|
||||||
orderIds = tracks.Select(m => m.OrderId).Distinct().ToList();
|
//从被删除轨迹寻找订单id,稍后会更新订单主表
|
||||||
tracks = deleteTracks;
|
orderIds = deleteTracks.Select(m => m.OrderId).Distinct().ToList();
|
||||||
|
//排除掉已经删除的轨迹
|
||||||
|
tracks = tracks.Except(deleteTracks).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -236,7 +237,9 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
|
|
||||||
foreach (var order in orders)
|
foreach (var order in orders)
|
||||||
{
|
{
|
||||||
var track = tracks.FirstOrDefault(x => x.OrderId == order.Id);
|
//找到最新的轨迹数据
|
||||||
|
var track = tracks?.OrderByDescending(x=>x.TrackTime)
|
||||||
|
.FirstOrDefault(x => x.OrderId == order.Id);
|
||||||
|
|
||||||
// 删除全部轨迹导致的重置行为
|
// 删除全部轨迹导致的重置行为
|
||||||
if (track == default)
|
if (track == default)
|
||||||
@ -264,7 +267,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
OrderId = order.Id,
|
OrderId = order.Id,
|
||||||
OrderNo = order.OrderNo,
|
OrderNo = order.OrderNo,
|
||||||
OptionType = OrderOperationType.删除轨迹.ToString(),
|
OptionType = OrderOperationType.删除轨迹.ToString(),
|
||||||
Content = tracks?.Where(m => m.OrderId == order.Id)?.ToList().ToJson(),
|
Content = tracks?.Where(m => m.OrderId == order.Id).ToList().ToJson(),
|
||||||
CreateUserId = @event.OperationManId,
|
CreateUserId = @event.OperationManId,
|
||||||
CreateUserName = @event.OperationMan ?? "",
|
CreateUserName = @event.OperationMan ?? "",
|
||||||
CreateTime = DateTime.Now
|
CreateTime = DateTime.Now
|
||||||
|
|||||||
@ -392,6 +392,7 @@ public partial class TrackService : ApplicationService, ITrackService
|
|||||||
TrackCode = input.TrackCode,
|
TrackCode = input.TrackCode,
|
||||||
TrackPlace = input.TrackPlace,
|
TrackPlace = input.TrackPlace,
|
||||||
TrackTime = input.TrackTime,
|
TrackTime = input.TrackTime,
|
||||||
|
NewTrackTime = input.NewTrackTime,
|
||||||
TrackTimeZone = input.TrackTimeZone,
|
TrackTimeZone = input.TrackTimeZone,
|
||||||
OperationMan = userInfo.Data.UserName,
|
OperationMan = userInfo.Data.UserName,
|
||||||
OperationManId = userInfo.Data.UserId,
|
OperationManId = userInfo.Data.UserId,
|
||||||
|
|||||||
@ -24,7 +24,7 @@ public interface ITrackDetailsEsRepository : IElasticsearchClientService<TrackDe
|
|||||||
|
|
||||||
Task<List<TrackDetailsIndex>> GetListAsync(int orderId);
|
Task<List<TrackDetailsIndex>> GetListAsync(int orderId);
|
||||||
|
|
||||||
Task<List<TrackDetailsIndex>> GetListAsync(int[] orderIds, List<string> trackCodes, TrackSourceEnum? source);
|
Task<List<TrackDetailsIndex>> GetListAsync(int[] orderIds, List<string>? trackCodes = null, TrackSourceEnum? source = null);
|
||||||
|
|
||||||
Task<List<int>> DeleteTrackAsync(int[] orderIds, List<string> trackCodes);
|
Task<List<int>> DeleteTrackAsync(int[] orderIds, List<string> trackCodes);
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen
|
|||||||
|
|
||||||
public async Task<List<TrackCodeMapVO>> GetTrackCodeMapsAsync(int upSubSystemId, int subSystemId, params string[] trackCodes)
|
public async Task<List<TrackCodeMapVO>> GetTrackCodeMapsAsync(int upSubSystemId, int subSystemId, params string[] trackCodes)
|
||||||
{
|
{
|
||||||
// 根据上游code得到下游code
|
// 根据上游code得到下游code
|
||||||
return await Context.Queryable<TrackContentMapEntity>()
|
return await Context.Queryable<TrackContentMapEntity>()
|
||||||
.Where(x => x.SubSystemId == subSystemId && x.MapSubSystemId == upSubSystemId &&
|
.Where(x => x.SubSystemId == subSystemId && x.MapSubSystemId == upSubSystemId &&
|
||||||
trackCodes.Contains(x.MapTrackContentCode))
|
trackCodes.Contains(x.MapTrackContentCode))
|
||||||
@ -62,7 +62,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen
|
|||||||
.Select((a, b, c) => new OrderWithServiceProviderVO
|
.Select((a, b, c) => new OrderWithServiceProviderVO
|
||||||
{
|
{
|
||||||
//优先使用第三方的订单号,为空时才使用主单号
|
//优先使用第三方的订单号,为空时才使用主单号
|
||||||
OrderNo = b.OrderNo.IsNullOrWhiteSpace() ? a.OrderNo : b.OrderNo!,
|
OrderNo = b.OrderNo ?? a.OrderNo,
|
||||||
OrderType = a.OrderType,
|
OrderType = a.OrderType,
|
||||||
SubSystemId = a.SubSystemId,
|
SubSystemId = a.SubSystemId,
|
||||||
ServiceProviderCode = b.ServiceProviderCode,
|
ServiceProviderCode = b.ServiceProviderCode,
|
||||||
@ -83,7 +83,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen
|
|||||||
.Select((a, b) => new OrderWithServiceProviderVO
|
.Select((a, b) => new OrderWithServiceProviderVO
|
||||||
{
|
{
|
||||||
//优先使用第三方的订单号,为空时才使用主单号
|
//优先使用第三方的订单号,为空时才使用主单号
|
||||||
OrderNo = b.OrderNo.IsNullOrWhiteSpace() ? a.OrderNo : b.OrderNo!,
|
OrderNo = b.OrderNo ?? a.OrderNo,
|
||||||
OrderType = a.OrderType,
|
OrderType = a.OrderType,
|
||||||
SubSystemId = a.SubSystemId,
|
SubSystemId = a.SubSystemId,
|
||||||
ServiceProviderCode = b.ServiceProviderCode
|
ServiceProviderCode = b.ServiceProviderCode
|
||||||
|
|||||||
@ -357,7 +357,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
|
|||||||
return r.ToIdList();
|
return r.ToIdList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<TrackDetailsIndex>> GetListAsync(int[] orderIds, List<string> trackCodes, TrackSourceEnum? source)
|
public async Task<List<TrackDetailsIndex>> GetListAsync(int[] orderIds, List<string>? trackCodes = null, TrackSourceEnum? source = null)
|
||||||
{
|
{
|
||||||
var query = new QueryContainer();
|
var query = new QueryContainer();
|
||||||
|
|
||||||
@ -365,10 +365,12 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract<TrackDetail
|
|||||||
{
|
{
|
||||||
query &= Query<TrackDetailsIndex>.Terms(t => t.Field(f => f.OrderId).Terms(orderIds));
|
query &= Query<TrackDetailsIndex>.Terms(t => t.Field(f => f.OrderId).Terms(orderIds));
|
||||||
}
|
}
|
||||||
if (trackCodes.Count > 0)
|
|
||||||
|
if (trackCodes != null && trackCodes.Count > 0)
|
||||||
{
|
{
|
||||||
query &= Query<TrackDetailsIndex>.Terms(t => t.Field(f => f.TrackCode.Suffix("keyword")).Terms(trackCodes));
|
query &= Query<TrackDetailsIndex>.Terms(t => t.Field(f => f.TrackCode.Suffix("keyword")).Terms(trackCodes));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source.HasValue)
|
if (source.HasValue)
|
||||||
{
|
{
|
||||||
query &= Query<TrackDetailsIndex>.Term(t => t.Field(f => f.Source).Value(source.Value));
|
query &= Query<TrackDetailsIndex>.Term(t => t.Field(f => f.Source).Value(source.Value));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user