轨迹明细调整

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 public class GetOrderDetailsInput
{ {
@ -11,6 +13,11 @@
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary>
/// 轨迹模板Id
/// </summary>
public List<int>? TrackTemplateIds { get; set; } = new List<int>();
} }
public class TrackOrderDetailDto public class TrackOrderDetailDto

View File

@ -58,6 +58,11 @@ public class TrackOrderDto
/// </summary> /// </summary>
public string? TrackTemplateNames { get; set; } public string? TrackTemplateNames { get; set; }
/// <summary>
/// 轨迹模板Id数组
/// </summary>
public List<int>? TrackTemplateIds { get; set; }
/// <summary> /// <summary>
/// 客户简称 /// 客户简称
/// </summary> /// </summary>
@ -108,5 +113,5 @@ public class TrackOrderDto
/// </summary> /// </summary>
public string SubSystem { get; set; } 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()) if (!trackDetails.IsNullOrEmpty())
{ {
var list = ObjectMapper.Map<List<TrackDetailsIndex>, List<TrackOrderDetailDto>>(trackDetails); 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 var trackContents = await _trackContentRepository.GetTrackContentAttributeValue(new GetTemplateContentAttributeValueInputVO
{ {
SubSystemId =input.SubSystemId, SubSystemId =input.SubSystemId,
TrackTemplateIds = input.TrackTemplateIds,
TrackCodes=trackCodes TrackCodes=trackCodes
}); });
@ -57,13 +58,16 @@ namespace SJZY.Track.Application.Services.TrackOrders
list.ForEach(a => list.ForEach(a =>
{ {
a.Id = id++; 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) if (trackContent!=null)
{ {
a.IsCanDelete=trackContent.IsCanDelete; a.IsCanDelete=trackContent.IsCanDelete;
a.IsExternal = trackContent.IsExternal; a.IsExternal = trackContent.IsExternal;
} }
if (a.TrackTimeZoneValue==0) if (a.TrackTimeZoneValue==0f)
{ {
a.TrackTimeZone=$"GTM{" "}+00:00"; a.TrackTimeZone=$"GTM{" "}+00:00";
} }

View File

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

View File

@ -18,6 +18,11 @@ 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> ///// <summary>
///// 订单id ///// 订单id
///// </summary> ///// </summary>

View File

@ -148,9 +148,13 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
.Return("箱/袋单").ElseIF(a.OrderType == 4).Return("FBA订单").End(""), .Return("箱/袋单").ElseIF(a.OrderType == 4).Return("FBA订单").End(""),
CustomerShortName = b.Abbreviation, CustomerShortName = b.Abbreviation,
CustomerCode = b.Code, CustomerCode = b.Code,
TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>() //TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>()
.LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId == bb.Id) // .LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId == bb.Id)
.Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","), // .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, NewestTrackContent = a.LatestTrackContent,
NewestTrackEnContent = a.LatestTrackEnContent, NewestTrackEnContent = a.LatestTrackEnContent,
NewestTrackPlace = a.LatestTrackPlace, NewestTrackPlace = a.LatestTrackPlace,
@ -166,13 +170,17 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
{ {
//查询也需要最新的轨迹 //查询也需要最新的轨迹
var orderIds = pageList.List.Select(a => a.Id).ToList(); 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); 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 esDetails = esTrackDetails?.Where(b => b.OrderId== a.Id).OrderByDescending(b => b.TrackTime);
var trackDetail = esDetails.FirstOrDefault(); var trackDetail = esDetails?.FirstOrDefault();
if (trackDetail!=null) if (trackDetail!=null)
{ {
if (trackDetail.TrackContent!=a.NewestTrackContent) if (trackDetail.TrackContent!=a.NewestTrackContent)
@ -192,8 +200,11 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
a.NewestTrackTime=trackDetail.TrackTime; 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) .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.TrackCodes.IsNullOrEmpty(), (a, b, c) => input.TrackCodes.Contains(a.Code))
.WhereIF(input.SubSystemId>0, (a, b, c) => a.SubSystemId==input.SubSystemId) .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) .Where((a, b, c) => c.Id>0)
.Select((a, b, c) => new GetTemplateContentAttributeValueVO .Select((a, b, c) => new GetTemplateContentAttributeValueVO
{ {