38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using TrackCenter.Application.Services.Warning.Handlers;
|
|
using TrackCenter.Domain.Aggregates.WarningAggregate;
|
|
|
|
namespace TrackCenter.Application.Services.DebugApis.TransportDetailsGenerate;
|
|
|
|
/// <summary>
|
|
/// 运输预警明细生成任务
|
|
/// </summary>
|
|
[AllowAnonymous]
|
|
[ApiExplorerSettings(GroupName = "调试专用")]
|
|
[Route("/S07")]
|
|
public class _TransportDetailsGenerateService : ApplicationServiceBase
|
|
{
|
|
private readonly IWarningTaskRepository _warningTaskRepository;
|
|
private readonly ITransportWarningHandler _transportWarningHandler;
|
|
|
|
public _TransportDetailsGenerateService(IWarningTaskRepository warningTaskRepository, ITransportWarningHandler transportWarningHandler)
|
|
{
|
|
_warningTaskRepository = warningTaskRepository;
|
|
_transportWarningHandler = transportWarningHandler;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 运输预警明细生成任务立即执行,不考虑计划执行时间,执行完成任务会关闭
|
|
///
|
|
/// </summary>
|
|
[HttpGet("TransportWarningDetailsGenerate_ScanAndExec")]
|
|
public async Task TransportWarningDetailsGenerate_ScanAndExec()
|
|
{
|
|
var tasks = await _warningTaskRepository.GetTransportWarningDetailsGenerateTaskAsync(x => !x.IsClosed);
|
|
var taskIds = tasks.Select(x => x.Id).ToHashSet();
|
|
await _warningTaskRepository.CloseTransportWarningDetailsGenerateTaskAsync(x => !x.IsClosed && taskIds.Contains(x.Id));
|
|
await _transportWarningHandler.HandleWarningDetailsGenerateTask(tasks);
|
|
}
|
|
|
|
}
|