轨迹明细调整

This commit is contained in:
moyongzhen 2024-03-06 17:44:26 +08:00
parent 54a7f48ce4
commit cd60b420ac
7 changed files with 72 additions and 34 deletions

View File

@ -1,4 +1,6 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices
using System.Reflection.Metadata.Ecma335;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices
{
public class GetOrderDetailsInput
{
@ -11,6 +13,11 @@
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 轨迹模板Id
/// </summary>
public List<int>? TrackTemplateIds { get; set; } = new List<int>();
}
public class TrackOrderDetailDto

View File

@ -15,7 +15,7 @@ public class GetPageTrackOrderInput : PageInfoInput
/// <summary>
/// 单号
/// </summary>
public string? OrderNos { get; set; }
public string? OrderNos { get; set; }
/// <summary>
/// 创建时间开始
@ -58,6 +58,11 @@ public class TrackOrderDto
/// </summary>
public string? TrackTemplateNames { get; set; }
/// <summary>
/// 轨迹模板Id数组
/// </summary>
public List<int>? TrackTemplateIds { get; set; }
/// <summary>
/// 客户简称
/// </summary>
@ -108,5 +113,5 @@ public class TrackOrderDto
/// </summary>
public string SubSystem { get; set; }
public int SubSystemId { get;set; }
public int SubSystemId { get; set; }
}

View File

@ -45,11 +45,12 @@ namespace SJZY.Track.Application.Services.TrackOrders
if (!trackDetails.IsNullOrEmpty())
{
var list = ObjectMapper.Map<List<TrackDetailsIndex>, List<TrackOrderDetailDto>>(trackDetails);
var trackCodes = list.Where(a => !a.Code.IsNullOrWhiteSpace()).Select(a => a.Code).ToList();
var trackCodes = list.Where(a => !a.Code.IsNullOrWhiteSpace()).Select(a => a.Code).Distinct().ToList();
var trackContents = await _trackContentRepository.GetTrackContentAttributeValue(new GetTemplateContentAttributeValueInputVO
{
SubSystemId =input.SubSystemId,
TrackTemplateIds = input.TrackTemplateIds,
TrackCodes=trackCodes
});
@ -57,13 +58,16 @@ namespace SJZY.Track.Application.Services.TrackOrders
list.ForEach(a =>
{
a.Id = id++;
var trackContent = trackContents.FirstOrDefault(b => b.SubSystemId==input.SubSystemId&& b.TrackCode==a.Code);
var trackContentsOfTemplates = trackContents.Where(b => b.SubSystemId==input.SubSystemId && b.TrackCode==a.Code
&& input.TrackTemplateIds.Contains(b.TrackTemplateId));
var trackContent = trackContentsOfTemplates.FirstOrDefault();
if (trackContent!=null)
{
a.IsCanDelete=trackContent.IsCanDelete;
a.IsExternal = trackContent.IsExternal;
}
if (a.TrackTimeZoneValue==0)
if (a.TrackTimeZoneValue==0f)
{
a.TrackTimeZone=$"GTM{" "}+00:00";
}

View File

@ -119,5 +119,10 @@ namespace SJZY.Track.Domain.Dtos.Order
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 轨迹模板Id数组
/// </summary>
public List<int>? TrackTemplateIds { get; set; }
}
}

View File

@ -16,7 +16,12 @@ namespace SJZY.Track.Domain.Dtos.TrackTemplate
/// <summary>
/// 轨迹代码
/// </summary>
public List<string?>? TrackCodes { get; set; }
public List<string?>? TrackCodes { get; set; }
/// <summary>
/// 轨迹模板Id
/// </summary>
public List<int>? TrackTemplateIds { get; set; }
///// <summary>
///// 订单id
@ -34,7 +39,7 @@ namespace SJZY.Track.Domain.Dtos.TrackTemplate
/// <summary>
/// 模版id
/// </summary>
public int TrackTemplateId { get; set; }
public int TrackTemplateId { get; set; }
/// <summary>
/// 轨迹内容代码

View File

@ -148,9 +148,13 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
.Return("箱/袋单").ElseIF(a.OrderType == 4).Return("FBA订单").End(""),
CustomerShortName = b.Abbreviation,
CustomerCode = b.Code,
TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>()
.LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId == bb.Id)
.Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","),
//TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>()
// .LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId == bb.Id)
// .Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","),
//TrackTemplateIds = SqlFunc.Subqueryable<OrderTemplateEntity>()
// .LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId == bb.Id)
// .Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Id, ","),
NewestTrackContent = a.LatestTrackContent,
NewestTrackEnContent = a.LatestTrackEnContent,
NewestTrackPlace = a.LatestTrackPlace,
@ -166,34 +170,41 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
{
//查询也需要最新的轨迹
var orderIds = pageList.List.Select(a => a.Id).ToList();
//查询轨迹模版
var trackTemplateList = await Context.Queryable<OrderTemplateEntity>()
.LeftJoin<TrackTemplateEntity>((a, b) => a.TrackTemplateId==b.Id)
.Where((a, b) => orderIds.Contains(a.OrderId))
.Select((a, b) => new { OrderId = a.OrderId, Name = b.Name, TemplateId = b.Id })
.ToListAsync();
var esTrackDetails = await _trackDetailsRepository.GetListAsync(orderIds);
if (!esTrackDetails.IsNullOrEmpty())
pageList.List.ForEach(a =>
{
pageList.List.ForEach(a =>
var esDetails = esTrackDetails?.Where(b => b.OrderId== a.Id).OrderByDescending(b => b.TrackTime);
var trackDetail = esDetails?.FirstOrDefault();
if (trackDetail!=null)
{
var esDetails = esTrackDetails.Where(b => b.OrderId== a.Id).OrderByDescending(b => b.TrackTime);
var trackDetail = esDetails.FirstOrDefault();
if (trackDetail!=null)
if (trackDetail.TrackContent!=a.NewestTrackContent)
{
if (trackDetail.TrackContent!=a.NewestTrackContent)
{
a.NewestTrackContent=trackDetail.TrackContent;
}
if (trackDetail.TrackEnContent!=a.NewestTrackEnContent)
{
a.NewestTrackEnContent=trackDetail.TrackEnContent;
}
if (trackDetail.TrackPlace!=a.NewestTrackPlace)
{
a.NewestTrackPlace=trackDetail.TrackPlace;
}
if (trackDetail.TrackTime!= a.NewestTrackTime)
{
a.NewestTrackTime=trackDetail.TrackTime;
}
a.NewestTrackContent=trackDetail.TrackContent;
}
});
}
if (trackDetail.TrackEnContent!=a.NewestTrackEnContent)
{
a.NewestTrackEnContent=trackDetail.TrackEnContent;
}
if (trackDetail.TrackPlace!=a.NewestTrackPlace)
{
a.NewestTrackPlace=trackDetail.TrackPlace;
}
if (trackDetail.TrackTime!= a.NewestTrackTime)
{
a.NewestTrackTime=trackDetail.TrackTime;
}
}
a.TrackTemplateNames =trackTemplateList.Where(b => b.OrderId== a.Id).Select(a => a.Name).JoinAsString(",");
a.TrackTemplateIds = trackTemplateList.Where(b => b.OrderId== a.Id).Select(a => a.TemplateId).ToList();
});
}

View File

@ -101,6 +101,7 @@ public class TrackContentRepository : BasicRepository<TrackContentEntity>, ITrac
.LeftJoin<TrackTemplateEntity>((a, b, c) => b.TrackTemplateId==c.Id&& c.IsDeleted==false)
.WhereIF(!input.TrackCodes.IsNullOrEmpty(), (a, b, c) => input.TrackCodes.Contains(a.Code))
.WhereIF(input.SubSystemId>0, (a, b, c) => a.SubSystemId==input.SubSystemId)
.WhereIF(!input.TrackTemplateIds.IsNullOrEmpty(), (a, b, c) => input.TrackTemplateIds.Contains(c.Id))
.Where((a, b, c) => c.Id>0)
.Select((a, b, c) => new GetTemplateContentAttributeValueVO
{