临时提交
This commit is contained in:
parent
80e6cc0c53
commit
f189cb1a63
@ -0,0 +1,19 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
|
||||
public class GetTrackCounterOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 总条数
|
||||
/// </summary>
|
||||
public int TotalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 异常数
|
||||
/// </summary>
|
||||
public int ErrorCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预警数
|
||||
/// </summary>
|
||||
public int WarnCount { get; set; }
|
||||
}
|
||||
@ -27,12 +27,12 @@ public class TrackPushAfterUpdateOrderEventHandler : ITransientDependency, ICapS
|
||||
*/
|
||||
if (!@event.IsSuccess)
|
||||
{
|
||||
order.QuestionType = (int)TrackPushProblemType.Error;
|
||||
order.QuestionType = (int)TrackProblemType.Error;
|
||||
order.ProblemDescription = @event.Message;
|
||||
}
|
||||
else
|
||||
{
|
||||
order.QuestionType = (int)TrackPushProblemType.None;
|
||||
order.QuestionType = (int)TrackProblemType.None;
|
||||
if (@event.OptionType == OptionType.新增)
|
||||
{
|
||||
// tips:只有新增会影响推送进度?
|
||||
|
||||
@ -110,7 +110,7 @@ public class TrackPushService : ApplicationService
|
||||
var orders = await _orderRepository.GetListAsync(x =>
|
||||
!x.IsCompleted && x.QuestionType == 0 && x.LatestPushTime < time);
|
||||
|
||||
orders.ForEach(x => { x.QuestionType = (int)TrackPushProblemType.Warn; });
|
||||
orders.ForEach(x => { x.QuestionType = (int)TrackProblemType.Warn; });
|
||||
|
||||
await _orderRepository.UpdateRangeAsync(orders, x => new { x.QuestionType });
|
||||
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using System.Diagnostics;
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
using SJZY.Track.Domain.Dtos.TrackTemplate;
|
||||
using SJZY.Track.Domain.Enums;
|
||||
using SJZY.Track.Domain.Queries;
|
||||
|
||||
namespace SJZY.Track.Application.Services.TrackOrders;
|
||||
@ -42,25 +45,32 @@ public class TrackOrderService : ApplicationService
|
||||
var list = ObjectMapper.Map<List<TrackDetailsIndex>, List<TrackOrderDetailDto>>(trackDetails);
|
||||
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
|
||||
});
|
||||
var trackContents = await _trackContentRepository.GetTrackContentAttributeValue(
|
||||
new GetTemplateContentAttributeValueInputVO
|
||||
{
|
||||
SubSystemId = input.SubSystemId,
|
||||
TrackTemplateIds = input.TrackTemplateIds,
|
||||
TrackCodes = trackCodes
|
||||
});
|
||||
Debug.Assert(input.TrackTemplateIds != null, "input.TrackTemplateIds != null");
|
||||
input.TrackTemplateIds = input.TrackTemplateIds.Where(a => a > 0).ToList();
|
||||
int id = 1;
|
||||
list.ForEach(a =>
|
||||
{
|
||||
a.Id = id++;
|
||||
|
||||
var trackContentsOfTemplates = trackContents.Where(b => b.SubSystemId == input.SubSystemId && b.TrackCode == a.Code
|
||||
&& input.TrackTemplateIds.Contains(b.TrackTemplateId));
|
||||
GetTemplateContentAttributeValueVO trackContent = null;
|
||||
var insertData = input.TrackTemplateIds.Intersect(trackContentsOfTemplates.Select(aa => aa.TrackTemplateId)).ToList();
|
||||
var trackContentsOfTemplates = trackContents.Where(b => b.SubSystemId == input.SubSystemId &&
|
||||
b.TrackCode == a.Code
|
||||
&& input.TrackTemplateIds.Contains(
|
||||
b.TrackTemplateId)).ToList();
|
||||
GetTemplateContentAttributeValueVO? trackContent = null;
|
||||
var insertData = input.TrackTemplateIds
|
||||
.Intersect(trackContentsOfTemplates.Select(aa => aa.TrackTemplateId)).ToList();
|
||||
if (!insertData.IsNullOrEmpty())
|
||||
{
|
||||
trackContent = trackContentsOfTemplates.FirstOrDefault(a => a.TrackTemplateId == insertData.FirstOrDefault());
|
||||
trackContent =
|
||||
trackContentsOfTemplates.FirstOrDefault(it =>
|
||||
it.TrackTemplateId == insertData.FirstOrDefault());
|
||||
}
|
||||
|
||||
if (trackContent != null)
|
||||
@ -68,14 +78,10 @@ public class TrackOrderService : ApplicationService
|
||||
a.IsCanDelete = trackContent.IsCanDelete;
|
||||
a.IsExternal = trackContent.IsExternal;
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// a.IsCanDelete=false;
|
||||
// a.IsExternal=false;
|
||||
//}
|
||||
|
||||
if (a.TrackTimeZoneValue == 0f)
|
||||
{
|
||||
a.TrackTimeZone = $"GTM{" "}+00:00";
|
||||
a.TrackTimeZone = "GTM +00:00";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -85,11 +91,10 @@ public class TrackOrderService : ApplicationService
|
||||
TimeSpan offset = new TimeSpan(hours, minutes, 0);
|
||||
string timeZoneStr = offset.ToString();
|
||||
string flag = a.TrackTimeZoneValue > 0f ? "+" : "";
|
||||
a.TrackTimeZone = $"GTM{" "}{flag}{timeZoneStr.RemovePostFix(":00")}";
|
||||
a.TrackTimeZone = $"GTM {flag}{timeZoneStr.RemovePostFix(":00")}";
|
||||
}
|
||||
});
|
||||
return list;
|
||||
|
||||
}
|
||||
|
||||
return new List<TrackOrderDetailDto>();
|
||||
@ -115,4 +120,21 @@ public class TrackOrderService : ApplicationService
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 获取轨迹计数器
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<GetTrackCounterOutput> GetTrackCounterAsync()
|
||||
{
|
||||
var counts = await _trackOrderQueries.GetTrackProblemCountsAsync();
|
||||
|
||||
return new GetTrackCounterOutput
|
||||
{
|
||||
TotalCount = counts.Sum(x => x.Count),
|
||||
ErrorCount = counts.FirstOrDefault(x => x.ProblemType == (int)TrackProblemType.Error)?.Count ?? 0,
|
||||
WarnCount = counts.FirstOrDefault(x => x.ProblemType == (int)TrackProblemType.Warn)?.Count ?? 0,
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -7,21 +7,11 @@
|
||||
/// </summary>
|
||||
public int SubSystemId { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 单号
|
||||
///// </summary>
|
||||
//public List<string>? OrderNos { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当tab选中 0 默认不传 1 直接写死传值 [1,4] 2 传 [2,4]
|
||||
/// </summary>
|
||||
public int TabType { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 当tab选中 1 直接写死传值 [1,4] 2 传 [2,4]
|
||||
///// </summary>
|
||||
//public List<int>? QuestionTypeIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单类型
|
||||
/// </summary>
|
||||
@ -142,25 +132,5 @@
|
||||
/// 轨迹模板Id数组
|
||||
/// </summary>
|
||||
public List<int>? TrackTemplateIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题类型(主数据枚举TrackQuestionType)
|
||||
/// </summary>
|
||||
public int QuestionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题类型名称
|
||||
/// </summary>
|
||||
public string? QuestionTypeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题描述(主数据枚举TrackProblemDescription)
|
||||
/// </summary>
|
||||
public string? ProblemDescription { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题描述名称
|
||||
/// </summary>
|
||||
public string? ProblemDescriptionName { get; set; }
|
||||
}
|
||||
}
|
||||
14
src/SJZY.Track.Domain/Dtos/Order/GetTrackCounterVO.cs
Normal file
14
src/SJZY.Track.Domain/Dtos/Order/GetTrackCounterVO.cs
Normal file
@ -0,0 +1,14 @@
|
||||
namespace SJZY.Track.Domain.Dtos.Order;
|
||||
|
||||
public class GetTrackCounterVO
|
||||
{
|
||||
/// <summary>
|
||||
/// 问题类型
|
||||
/// </summary>
|
||||
public int ProblemType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总条数
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
}
|
||||
6
src/SJZY.Track.Domain/Enums/OrderType.cs
Normal file
6
src/SJZY.Track.Domain/Enums/OrderType.cs
Normal file
@ -0,0 +1,6 @@
|
||||
namespace SJZY.Track.Domain.Enums;
|
||||
|
||||
public enum OrderType
|
||||
{
|
||||
干线提单 = 1
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
namespace SJZY.Track.Domain.Enums;
|
||||
|
||||
[Flags]
|
||||
public enum TrackPushProblemType
|
||||
public enum TrackProblemType
|
||||
{
|
||||
/// <summary>
|
||||
/// 没问题
|
||||
@ -10,4 +10,10 @@ public interface ITrackOrderQueries
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input);
|
||||
|
||||
/// <summary>
|
||||
/// 获取轨迹各个问题数
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<List<GetTrackCounterVO>> GetTrackProblemCountsAsync();
|
||||
}
|
||||
@ -29,7 +29,7 @@ public class TrackOrderQueries : ISugarRepository, ITrackOrderQueries,
|
||||
int ques = 0;
|
||||
if (!input.OrderNos.IsNullOrWhiteSpace())
|
||||
{
|
||||
orderNoList = input.OrderNos!.Split(new[] { ',', ',', ':', ':' }).ToList();
|
||||
orderNoList = input.OrderNos!.Split(',', ',', ':', ':').ToList();
|
||||
}
|
||||
|
||||
if (input.TabType == 1)
|
||||
@ -63,16 +63,9 @@ public class TrackOrderQueries : ISugarRepository, ITrackOrderQueries,
|
||||
Id = a.Id,
|
||||
OrderNumber = a.OrderNo,
|
||||
OrderType = a.OrderType,
|
||||
OrderTypeName = SqlFunc.IF(a.OrderType == 1).Return("干线提单").ElseIF(a.OrderType == 2).Return("小包运单")
|
||||
.ElseIF(a.OrderType == 3)
|
||||
.Return("箱/袋单").ElseIF(a.OrderType == 4).Return("FBA订单").End(""),
|
||||
CustomerShortName = b.Abbreviation,
|
||||
CustomerCode = b.Code,
|
||||
CustomerId = a.CustomId,
|
||||
QuestionType = a.QuestionType,
|
||||
QuestionTypeName = SqlFunc.IF(a.QuestionType == 1).Return("异常").ElseIF(a.QuestionType == 2).Return("预警")
|
||||
.End(""),
|
||||
ProblemDescription = a.ProblemDescription,
|
||||
NewestTrackContent = a.LatestTrackContent,
|
||||
NewestTrackEnContent = a.LatestTrackEnContent,
|
||||
NewestTrackPlace = a.LatestTrackPlace,
|
||||
@ -105,4 +98,16 @@ public class TrackOrderQueries : ISugarRepository, ITrackOrderQueries,
|
||||
|
||||
return pageList;
|
||||
}
|
||||
|
||||
public async Task<List<GetTrackCounterVO>> GetTrackProblemCountsAsync()
|
||||
{
|
||||
return await Context.Queryable<OrderEntity>()
|
||||
.GroupBy(x => x.QuestionType)
|
||||
.Select(x => new GetTrackCounterVO
|
||||
{
|
||||
ProblemType = x.QuestionType,
|
||||
Count = SqlFunc.AggregateCount(1)
|
||||
})
|
||||
.ToListAsync();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user