fix(dal): TransformService в методе получения расписания агенту добавляется lastRun если оно уже является будущим временем

This commit is contained in:
Mikhail Kuznetsov
2023-11-28 11:59:26 +10:00
parent 8f385ed2d2
commit 4ea2be0634

View File

@@ -82,8 +82,15 @@ namespace PARR.DAL.TransformServices
public List<DateTimeOffset> GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun) public List<DateTimeOffset> GetNextSchedule(EsppScheduleDto esppSchedule, DateTimeOffset lastRun)
{ {
// расписание на оставшееся на сегодня время. его так мало... // расписание на оставшееся на сегодня время. его так мало...
lastRun = lastRun.UtcDateTime;
var schedules = new List<DateTimeOffset>(); var schedules = new List<DateTimeOffset>();
var curTime = lastRun; var curTime = lastRun;
//Если ещё не произошло то добавляем расписание, возможно это новое AiW и он ещё ниразу не запускался.
//lastRun это будущее
if (lastRun >= DateTimeOffset.UtcNow && lastRun <= DateTimeOffset.UtcNow.EndOfDay())
schedules.Add(lastRun);
while (curTime < DateTimeOffset.UtcNow.EndOfDay()) while (curTime < DateTimeOffset.UtcNow.EndOfDay())
{ {
switch (esppSchedule.TypeSchedule.Id) switch (esppSchedule.TypeSchedule.Id)
@@ -118,20 +125,20 @@ namespace PARR.DAL.TransformServices
public async Task<DateTimeOffset> GetNextDateAsync(Guid applicationInWorkId, DateTimeOffset lastRun) public async Task<DateTimeOffset> GetNextDateAsync(Guid applicationInWorkId, DateTimeOffset lastRun)
{ {
return GetNextDate(await GetEsppSchedule(applicationInWorkId), lastRun); return GetNextDate(await GetEsppScheduleAsync(applicationInWorkId), lastRun);
} }
public async Task<List<DateTimeOffset>> GetNextScheduleAsync(Guid applicationInWorkId, DateTimeOffset lastRun) public async Task<List<DateTimeOffset>> GetNextScheduleAsync(Guid applicationInWorkId, DateTimeOffset lastRun)
{ {
var esppSchedule = await GetEsppSchedule(applicationInWorkId); var esppSchedule = await GetEsppScheduleAsync(applicationInWorkId);
var nextSchedule = GetNextSchedule(esppSchedule, lastRun); var nextSchedule = GetNextSchedule(esppSchedule, lastRun);
return nextSchedule; return nextSchedule;
} }
private async Task<EsppScheduleDto> GetEsppSchedule(Guid applicationInWorkId) private async Task<EsppScheduleDto> GetEsppScheduleAsync(Guid applicationInWorkId)
{ {
var esppSchedule = await esppSchTypeConfigService.GetEsppScheduleDtoAsync(applicationInWorkId); var esppSchedule = await esppSchTypeConfigService.GetEsppScheduleDtoAsync(applicationInWorkId);
if (esppSchedule == null) if (esppSchedule == null)