diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs
index d16e10fe..3920f5c1 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs
@@ -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
///
public int SubSystemId { get; set; }
+
+ ///
+ /// 轨迹模板Id
+ ///
+ public List? TrackTemplateIds { get; set; } = new List();
}
public class TrackOrderDetailDto
diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackOrderInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackOrderInput.cs
index 5b2220d2..81aa553e 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackOrderInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackOrderInput.cs
@@ -15,7 +15,7 @@ public class GetPageTrackOrderInput : PageInfoInput
///
/// 单号
///
- public string? OrderNos { get; set; }
+ public string? OrderNos { get; set; }
///
/// 创建时间开始
@@ -58,6 +58,11 @@ public class TrackOrderDto
///
public string? TrackTemplateNames { get; set; }
+ ///
+ /// 轨迹模板Id数组
+ ///
+ public List? TrackTemplateIds { get; set; }
+
///
/// 客户简称
///
@@ -108,5 +113,5 @@ public class TrackOrderDto
///
public string SubSystem { get; set; }
- public int SubSystemId { get;set; }
+ public int SubSystemId { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs
index 587ba728..1c37f744 100644
--- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs
+++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs
@@ -45,11 +45,12 @@ namespace SJZY.Track.Application.Services.TrackOrders
if (!trackDetails.IsNullOrEmpty())
{
var list = ObjectMapper.Map, List>(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";
}
diff --git a/src/SJZY.Track.Domain/Dtos/Order/GetPageTrackOrderInputVO.cs b/src/SJZY.Track.Domain/Dtos/Order/GetPageTrackOrderInputVO.cs
index b596a5e1..c1b97cc5 100644
--- a/src/SJZY.Track.Domain/Dtos/Order/GetPageTrackOrderInputVO.cs
+++ b/src/SJZY.Track.Domain/Dtos/Order/GetPageTrackOrderInputVO.cs
@@ -119,5 +119,10 @@ namespace SJZY.Track.Domain.Dtos.Order
/// 子系统id
///
public int SubSystemId { get; set; }
+
+ ///
+ /// 轨迹模板Id数组
+ ///
+ public List? TrackTemplateIds { get; set; }
}
}
diff --git a/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTemplateContentAttributeValueInputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTemplateContentAttributeValueInputVO.cs
index 1ba46bf4..d8b295a9 100644
--- a/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTemplateContentAttributeValueInputVO.cs
+++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTemplateContentAttributeValueInputVO.cs
@@ -16,7 +16,12 @@ namespace SJZY.Track.Domain.Dtos.TrackTemplate
///
/// 轨迹代码
///
- public List? TrackCodes { get; set; }
+ public List? TrackCodes { get; set; }
+
+ ///
+ /// 轨迹模板Id
+ ///
+ public List? TrackTemplateIds { get; set; }
/////
///// 订单id
@@ -34,7 +39,7 @@ namespace SJZY.Track.Domain.Dtos.TrackTemplate
///
/// 模版id
///
- public int TrackTemplateId { get; set; }
+ public int TrackTemplateId { get; set; }
///
/// 轨迹内容代码
diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs
index 21beff94..481a5c87 100644
--- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs
@@ -148,9 +148,13 @@ public class OrderRepository : BasicRepository, IOrderRepository, I
.Return("箱/袋单").ElseIF(a.OrderType == 4).Return("FBA订单").End(""),
CustomerShortName = b.Abbreviation,
CustomerCode = b.Code,
- TrackTemplateNames = SqlFunc.Subqueryable()
- .LeftJoin((aa, bb) => aa.TrackTemplateId == bb.Id)
- .Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","),
+ //TrackTemplateNames = SqlFunc.Subqueryable()
+ // .LeftJoin((aa, bb) => aa.TrackTemplateId == bb.Id)
+ // .Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","),
+
+ //TrackTemplateIds = SqlFunc.Subqueryable()
+ // .LeftJoin((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, IOrderRepository, I
{
//查询也需要最新的轨迹
var orderIds = pageList.List.Select(a => a.Id).ToList();
+ //查询轨迹模版
+ var trackTemplateList = await Context.Queryable()
+ .LeftJoin((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();
+ });
+
}
diff --git a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
index 5d4db71f..72cf57ba 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
@@ -101,6 +101,7 @@ public class TrackContentRepository : BasicRepository, ITrac
.LeftJoin((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
{