using Microsoft.AspNetCore.Authorization; using TrackCenter.Application.Services.Warning.Handlers; using TrackCenter.Domain.Aggregates.WarningAggregate; namespace TrackCenter.Application.Services.DebugApis.TransportDetailsGenerate; /// /// 运输预警明细生成任务 /// [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; } /// /// 运输预警明细生成任务立即执行,不考虑计划执行时间,执行完成任务会关闭 /// /// [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); } }