Merge branch 'S02-轨迹中台第二部分' into test

This commit is contained in:
dingenwen 2024-03-25 17:40:32 +08:00
commit f97e2cce69
4 changed files with 37 additions and 5 deletions

View File

@ -75,6 +75,8 @@ public class TrackPushService : ApplicationService
await _pushCacheService.GetPushContentConfigAsync(order.SubSystemId, order.CustomId, await _pushCacheService.GetPushContentConfigAsync(order.SubSystemId, order.CustomId,
track.TrackContentId); track.TrackContentId);
if (config == null) continue;
var trackPushEvent = new TrackPushEvent var trackPushEvent = new TrackPushEvent
{ {
ServiceProviderCode = config.ServiceProviderCode, ServiceProviderCode = config.ServiceProviderCode,
@ -113,14 +115,19 @@ public class TrackPushService : ApplicationService
[HttpPost("Track/PushWarnForTask")] [HttpPost("Track/PushWarnForTask")]
public async Task<string> PushWarnForTaskAsync() public async Task<string> PushWarnForTaskAsync()
{ {
var time = DateTime.Now.Subtract(TimeSpan.FromHours(12)); var orders = await _orderRepository.GetPushWarnOrdersAsync();
var orders = await _orderRepository.GetListAsync(x =>
!x.IsCompleted && x.QuestionType == 0 && x.LatestPushTime < time);
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 }); await _orderRepository.UpdateRangeAsync(orders, x => new { x.QuestionType });
return $"成功将{orders.Select(x => x.OrderNo).JoinAsString(",")}置为预警单"; return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警";
} }
} }

View File

@ -25,6 +25,11 @@ public interface IOrderRepository : IBasicRepository<OrderEntity>
/// <returns></returns> /// <returns></returns>
Task DeleteOrderAsync(int orderId); Task DeleteOrderAsync(int orderId);
/// <summary>
/// 获取推送预警单
/// </summary>
/// <returns></returns>
Task<List<OrderEntity>> GetPushWarnOrdersAsync();
#region 订单关联 #region 订单关联

View File

@ -1,6 +1,7 @@
using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
using SJZY.Track.Domain.Dtos.Order; using SJZY.Track.Domain.Dtos.Order;
using SJZY.Track.Domain.Enums;
using SJZY.Track.Domain.Queries; using SJZY.Track.Domain.Queries;
using SJZY.Track.Domain.VEntities; using SJZY.Track.Domain.VEntities;
using SJZY.Track.Repository.VData.Entitys; 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.CustomerId > 0, (a, b, c) => a.CustomId == input.CustomerId)
.WhereIF(input.TrackOrderType > 0, (a, b, c) => a.OrderType == input.TrackOrderType) .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 > 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) .OrderByDescending((a, b, c) => a.CreateTime)
.Select((a, b, c) => new TrackOrderVO .Select((a, b, c) => new TrackOrderVO
{ {

View File

@ -1,6 +1,8 @@
using SJZY.Track.Domain; using SJZY.Track.Domain;
using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
using SJZY.Track.Domain.Dtos.Order; using SJZY.Track.Domain.Dtos.Order;
using SJZY.Track.Domain.Enums;
namespace SJZY.Track.Repository.Repositories; namespace SJZY.Track.Repository.Repositories;
@ -53,6 +55,22 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
tran.Complete(); 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 订单关联 #region 订单关联
public async Task<List<LinkedOrderVO>> GetLinkedOrdersAsync(int orderId) public async Task<List<LinkedOrderVO>> GetLinkedOrdersAsync(int orderId)