fix(dal): EsppScheduleTransformService - исправлен сервис рассчета nextRun
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using PARR.Common;
|
||||||
using PARR.Constants;
|
using PARR.Constants;
|
||||||
using PARR.DAL.Contracts;
|
using PARR.DAL.Contracts;
|
||||||
using PARR.DAL.DomainModels;
|
using PARR.DAL.DomainModels;
|
||||||
@@ -107,6 +108,10 @@ namespace PARR.DAL.TransformServices
|
|||||||
|
|
||||||
nextRun = nextRunModifierService.GetWorkDayAsync(nextRun).GetAwaiter().GetResult();
|
nextRun = nextRunModifierService.GetWorkDayAsync(nextRun).GetAwaiter().GetResult();
|
||||||
|
|
||||||
|
// тут может быть 21 час по МСК, то это предыдущие сутки, нужно отнять 1 день
|
||||||
|
if (!DateResolver.IsCurrentDayRelativeMskTime(nextRun.Hour))
|
||||||
|
nextRun = nextRun.AddDays(-1);
|
||||||
|
|
||||||
return nextRun;
|
return nextRun;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,13 +174,13 @@ namespace PARR.DAL.TransformServices
|
|||||||
|
|
||||||
var esppSchedule = await GetEsppScheduleAsync(jobGroupId);
|
var esppSchedule = await GetEsppScheduleAsync(jobGroupId);
|
||||||
|
|
||||||
if (jobGroup!.IsAutoDistributionEnabled)
|
//if (jobGroup!.IsAutoDistributionEnabled)
|
||||||
{
|
//{
|
||||||
var period = jobGroup.EsppSchValues.FirstOrDefault()?.EsppSchTypeValue?.DistributionPeriod;
|
// var period = jobGroup.EsppSchValues.FirstOrDefault()?.EsppSchTypeValue?.DistributionPeriod;
|
||||||
var periodType = ParseDistributionPeriodType(period!.Type);
|
// var periodType = ParseDistributionPeriodType(period!.Type);
|
||||||
|
|
||||||
return GetNextDateForDistributionRun(lastRun, periodType, period.Duration);
|
// return GetNextDateForDistributionRun(lastRun, periodType, period.Duration);
|
||||||
}
|
//}
|
||||||
|
|
||||||
return GetNextDate(esppSchedule, lastRun);
|
return GetNextDate(esppSchedule, lastRun);
|
||||||
}
|
}
|
||||||
@@ -247,7 +252,9 @@ namespace PARR.DAL.TransformServices
|
|||||||
{
|
{
|
||||||
var dwNum = dwDict[values[0].Value.Value];
|
var dwNum = dwDict[values[0].Value.Value];
|
||||||
|
|
||||||
var calcDay = new DateTimeOffset(DateTimeOffset.UtcNow.Year, DateTimeOffset.UtcNow.Month, DateTimeOffset.UtcNow.Day, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
var calcDay = new DateTimeOffset(lastRun.Year, lastRun.Month, lastRun.Day, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
||||||
|
if (lastRun < DateTimeOffset.UtcNow)
|
||||||
|
calcDay = new DateTimeOffset(DateTimeOffset.UtcNow.Year, DateTimeOffset.UtcNow.Month, DateTimeOffset.UtcNow.Day, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
||||||
|
|
||||||
if (((int)calcDay.DayOfWeek) != dwNum)
|
if (((int)calcDay.DayOfWeek) != dwNum)
|
||||||
OffsetToDayOfWeek(dwNum, ref calcDay);
|
OffsetToDayOfWeek(dwNum, ref calcDay);
|
||||||
@@ -255,7 +262,8 @@ namespace PARR.DAL.TransformServices
|
|||||||
//TODO: вот это повторяется от метода к методу
|
//TODO: вот это повторяется от метода к методу
|
||||||
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
||||||
if (calcDay < DateTimeOffset.UtcNow)
|
if (calcDay < DateTimeOffset.UtcNow)
|
||||||
calcDay = calcDay.AddDays(7);//а вот тут что-то новенькое
|
|
||||||
|
calcDay = GetNextDateWeekly(values, calcDay.AddDays(7));//а вот тут что-то новенькое
|
||||||
|
|
||||||
return calcDay;
|
return calcDay;
|
||||||
}
|
}
|
||||||
@@ -265,12 +273,16 @@ namespace PARR.DAL.TransformServices
|
|||||||
{
|
{
|
||||||
int.TryParse(values[0].Value.Value, out int dayNum);
|
int.TryParse(values[0].Value.Value, out int dayNum);
|
||||||
|
|
||||||
var calcDay = new DateTimeOffset(DateTimeOffset.UtcNow.Year, DateTimeOffset.UtcNow.Month, dayNum, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
|
||||||
|
var calcDay = new DateTimeOffset(lastRun.Year, lastRun.Month, dayNum, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
||||||
|
if (lastRun < DateTimeOffset.UtcNow)
|
||||||
|
calcDay = new DateTimeOffset(DateTimeOffset.UtcNow.Year, DateTimeOffset.UtcNow.Month, dayNum, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
||||||
|
|
||||||
//TODO: вот это повторяется от метода к методу
|
//TODO: вот это повторяется от метода к методу
|
||||||
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
||||||
if (calcDay < DateTimeOffset.UtcNow)
|
if (calcDay < DateTimeOffset.UtcNow)
|
||||||
calcDay = calcDay.AddMonths(1);//и вот тут что-то новенькое
|
//todo: fixme
|
||||||
|
calcDay = GetNextDateMonthly(values, calcDay.AddMonths(1));//и вот тут что-то новенькое
|
||||||
|
|
||||||
return calcDay;
|
return calcDay;
|
||||||
}
|
}
|
||||||
@@ -281,7 +293,10 @@ namespace PARR.DAL.TransformServices
|
|||||||
var orderNum = orderDict[values[0].Value.Value];
|
var orderNum = orderDict[values[0].Value.Value];
|
||||||
var dwNum = dwDict[values[1].Value.Value];
|
var dwNum = dwDict[values[1].Value.Value];
|
||||||
|
|
||||||
var calcDay = new DateTimeOffset(DateTimeOffset.UtcNow.Year, DateTimeOffset.UtcNow.Month, 1, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
var calcDay = new DateTimeOffset(lastRun.Year, lastRun.Month, 1, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
||||||
|
if (lastRun < DateTimeOffset.UtcNow)
|
||||||
|
calcDay = new DateTimeOffset(DateTimeOffset.UtcNow.Year, DateTimeOffset.UtcNow.Month, 1, lastRun.Hour, lastRun.Minute, lastRun.Second, lastRun.Offset);
|
||||||
|
|
||||||
|
|
||||||
List<DateTimeOffset> daysList = FindAllDaysInMonth(dwNum, ref calcDay);
|
List<DateTimeOffset> daysList = FindAllDaysInMonth(dwNum, ref calcDay);
|
||||||
|
|
||||||
@@ -293,7 +308,7 @@ namespace PARR.DAL.TransformServices
|
|||||||
//TODO: вот это повторяется от метода к методу
|
//TODO: вот это повторяется от метода к методу
|
||||||
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
||||||
if (calcDay < DateTimeOffset.UtcNow)
|
if (calcDay < DateTimeOffset.UtcNow)
|
||||||
calcDay = GetNextDateAnnually2(values, calcDay);
|
calcDay = GetNextDateMonthly2(values, calcDay.AddMonths(1));
|
||||||
|
|
||||||
return calcDay;
|
return calcDay;
|
||||||
}
|
}
|
||||||
@@ -309,7 +324,7 @@ namespace PARR.DAL.TransformServices
|
|||||||
//TODO: вот это повторяется от метода к методу
|
//TODO: вот это повторяется от метода к методу
|
||||||
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
||||||
if (calcDay < DateTimeOffset.UtcNow)
|
if (calcDay < DateTimeOffset.UtcNow)
|
||||||
calcDay = GetNextDateAnnually(values, calcDay);
|
calcDay = GetNextDateAnnually(values, calcDay.AddYears(1));
|
||||||
|
|
||||||
return calcDay;
|
return calcDay;
|
||||||
}
|
}
|
||||||
@@ -349,7 +364,8 @@ namespace PARR.DAL.TransformServices
|
|||||||
//TODO: вот это повторяется от метода к методу
|
//TODO: вот это повторяется от метода к методу
|
||||||
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
//Если итоговая дата указывает на прошлое, то повторяем расчёт и ухоим в рекурсию
|
||||||
if (calcDay < DateTimeOffset.UtcNow)
|
if (calcDay < DateTimeOffset.UtcNow)
|
||||||
calcDay = GetNextDateAnnually2(values, calcDay);
|
//calcDay = GetNextDateAnnually2(values, calcDay);
|
||||||
|
calcDay = GetNextDateAnnually2(values, calcDay.AddYears(1));
|
||||||
|
|
||||||
return calcDay;
|
return calcDay;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user