预警只处理未完成的单
This commit is contained in:
parent
9ab866df9e
commit
c053a83a27
@ -75,6 +75,8 @@ public class TrackPushService : ApplicationService
|
||||
await _pushCacheService.GetPushContentConfigAsync(order.SubSystemId, order.CustomId,
|
||||
track.TrackContentId);
|
||||
|
||||
if (config == null) continue;
|
||||
|
||||
var trackPushEvent = new TrackPushEvent
|
||||
{
|
||||
ServiceProviderCode = config.ServiceProviderCode,
|
||||
@ -113,14 +115,19 @@ public class TrackPushService : ApplicationService
|
||||
[HttpPost("Track/PushWarnForTask")]
|
||||
public async Task<string> PushWarnForTaskAsync()
|
||||
{
|
||||
var time = DateTime.Now.Subtract(TimeSpan.FromHours(12));
|
||||
var orders = await _orderRepository.GetListAsync(x =>
|
||||
!x.IsCompleted && x.QuestionType == 0 && x.LatestPushTime < time);
|
||||
var orders = await _orderRepository.GetPushWarnOrdersAsync();
|
||||
|
||||
orders.ForEach(x => { x.QuestionType = (int)TrackProblemType.Warn; });
|
||||
var time = DateTime.Now.Subtract(TimeSpan.FromHours(12));
|
||||
|
||||
orders.ForEach(x =>
|
||||
{
|
||||
x.QuestionType = x.LatestPushTime == null || x.LatestPushTime < time
|
||||
? (int)TrackProblemType.Warn
|
||||
: (int)TrackProblemType.None;
|
||||
});
|
||||
|
||||
await _orderRepository.UpdateRangeAsync(orders, x => new { x.QuestionType });
|
||||
|
||||
return $"成功将{orders.Select(x => x.OrderNo).JoinAsString(",")}置为预警单";
|
||||
return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警";
|
||||
}
|
||||
}
|
||||
@ -25,6 +25,11 @@ public interface IOrderRepository : IBasicRepository<OrderEntity>
|
||||
/// <returns></returns>
|
||||
Task DeleteOrderAsync(int orderId);
|
||||
|
||||
/// <summary>
|
||||
/// 获取推送预警单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<List<OrderEntity>> GetPushWarnOrdersAsync();
|
||||
|
||||
#region 订单关联
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
using SJZY.Track.Domain.Enums;
|
||||
using SJZY.Track.Domain.Queries;
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
using SJZY.Track.Repository.VData.Entitys;
|
||||
@ -38,6 +39,7 @@ public class TrackOrderQueries : ISugarRepository, ITrackOrderQueries,
|
||||
.WhereIF(input.CustomerId > 0, (a, b, c) => a.CustomId == input.CustomerId)
|
||||
.WhereIF(input.TrackOrderType > 0, (a, b, c) => a.OrderType == input.TrackOrderType)
|
||||
.WhereIF(input.TabType > 0, (a, b, c) => a.QuestionType == input.TabType)
|
||||
.WhereIF(input.TabType == (int)TrackProblemType.Warn, (a, b, c) => !a.IsCompleted)
|
||||
.OrderByDescending((a, b, c) => a.CreateTime)
|
||||
.Select((a, b, c) => new TrackOrderVO
|
||||
{
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
using SJZY.Track.Domain;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
using SJZY.Track.Domain.Enums;
|
||||
|
||||
namespace SJZY.Track.Repository.Repositories;
|
||||
|
||||
@ -53,6 +55,22 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
||||
tran.Complete();
|
||||
}
|
||||
|
||||
public async Task<List<OrderEntity>> GetPushWarnOrdersAsync()
|
||||
{
|
||||
var errorType = (int)TrackProblemType.Error;
|
||||
|
||||
return await Context.Queryable<TrackPushConfigEntity>()
|
||||
.LeftJoin<OrderEntity>((a, b) => a.SubSystemId == b.SubSystemId && a.CustomId == b.CustomId)
|
||||
.Where((a, b) => !b.IsCompleted && b.QuestionType != errorType)
|
||||
.Select((a, b) => new OrderEntity
|
||||
{
|
||||
Id = b.Id,
|
||||
QuestionType = b.QuestionType,
|
||||
LatestPushTime = b.LatestPushTime
|
||||
})
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
#region 订单关联
|
||||
|
||||
public async Task<List<LinkedOrderVO>> GetLinkedOrdersAsync(int orderId)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user