From 4140e17825ca41785fa282c0950d2c337885372d Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Thu, 19 Sep 2024 15:38:14 +1000 Subject: [PATCH] =?UTF-8?q?fix(templateDistributor):=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BE=D0=BA=20=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D0=B8=D1=85?= =?UTF-8?q?=20=D0=B4=D0=BD=D0=B5=D0=B9=20=D1=80=D0=B0=D1=81=D1=81=D1=87?= =?UTF-8?q?=D0=B8=D1=82=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=B5=D1=80=D0=B8=D0=BE=D0=B4=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BA=D1=83=D1=89=D0=B5=D0=B9=20=D0=B4=D0=B0=D1=82?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appsettings.Development.json | 3 ++ PARR.JobAutoControlWorker/appsettings.json | 3 +- .../appsettings.Development.json | 3 ++ PARR.NextRunWorker/appsettings.json | 3 +- .../appsettings.Development.json | 3 ++ PARR.TemplateActivatorWorker/appsettings.json | 3 +- .../TemplateDistributor.cs | 53 ++++++++++++------- .../appsettings.Development.json | 3 ++ .../appsettings.json | 3 +- 9 files changed, 54 insertions(+), 23 deletions(-) diff --git a/PARR.JobAutoControlWorker/appsettings.Development.json b/PARR.JobAutoControlWorker/appsettings.Development.json index 0a4dcd73..c51102f2 100644 --- a/PARR.JobAutoControlWorker/appsettings.Development.json +++ b/PARR.JobAutoControlWorker/appsettings.Development.json @@ -1,4 +1,7 @@ { + "ConnectionStrings": { + "RedisConnection": "10.99.253.216:6379,password=ParrP@ssPtk202MMdevDvs" + }, "Logging": { "LogLevel": { "Default": "Information", diff --git a/PARR.JobAutoControlWorker/appsettings.json b/PARR.JobAutoControlWorker/appsettings.json index dfca8493..212d8b24 100644 --- a/PARR.JobAutoControlWorker/appsettings.json +++ b/PARR.JobAutoControlWorker/appsettings.json @@ -1,6 +1,7 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;" + "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;", + "RedisConnection": "parr-redis:6379,password=ParrP@ssPtk202MMdevDvs" }, "Logging": { "LogLevel": { diff --git a/PARR.NextRunWorker/appsettings.Development.json b/PARR.NextRunWorker/appsettings.Development.json index b2dcdb67..25ba5027 100644 --- a/PARR.NextRunWorker/appsettings.Development.json +++ b/PARR.NextRunWorker/appsettings.Development.json @@ -1,4 +1,7 @@ { + "ConnectionStrings": { + "RedisConnection": "10.99.253.216:6379,password=ParrP@ssPtk202MMdevDvs" + }, "Logging": { "LogLevel": { "Default": "Information", diff --git a/PARR.NextRunWorker/appsettings.json b/PARR.NextRunWorker/appsettings.json index 19f26b7a..3a134053 100644 --- a/PARR.NextRunWorker/appsettings.json +++ b/PARR.NextRunWorker/appsettings.json @@ -1,6 +1,7 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;" + "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;", + "RedisConnection": "parr-redis:6379,password=ParrP@ssPtk202MMdevDvs" }, "Logging": { "LogLevel": { diff --git a/PARR.TemplateActivatorWorker/appsettings.Development.json b/PARR.TemplateActivatorWorker/appsettings.Development.json index 992d2719..bec97d50 100644 --- a/PARR.TemplateActivatorWorker/appsettings.Development.json +++ b/PARR.TemplateActivatorWorker/appsettings.Development.json @@ -1,4 +1,7 @@ { + "ConnectionStrings": { + "RedisConnection": "10.99.253.216:6379,password=ParrP@ssPtk202MMdevDvs" + }, "Logging": { "LogLevel": { "Default": "Information", diff --git a/PARR.TemplateActivatorWorker/appsettings.json b/PARR.TemplateActivatorWorker/appsettings.json index 84d362de..f9b27786 100644 --- a/PARR.TemplateActivatorWorker/appsettings.json +++ b/PARR.TemplateActivatorWorker/appsettings.json @@ -1,6 +1,7 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;" + "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;", + "RedisConnection": "parr-redis:6379,password=ParrP@ssPtk202MMdevDvs" }, "Logging": { "LogLevel": { diff --git a/PARR.TemplateDistributor/TemplateDistributor.cs b/PARR.TemplateDistributor/TemplateDistributor.cs index 19b7ce48..d522f4c5 100644 --- a/PARR.TemplateDistributor/TemplateDistributor.cs +++ b/PARR.TemplateDistributor/TemplateDistributor.cs @@ -290,30 +290,45 @@ namespace PARR.TemplateDistributor { var period = appInWork.EsppSchValues.FirstOrDefault()?.EsppSchTypeValue?.DistributionPeriod; var periodType = ParseDistributionPeriodType(period!.Type); - var startPeriod = await esppScheduleTransformService.GetStartPeriodForDateAsync(appInWork.Id, appInWork.ReferenceDate, appInWork.ReferenceDate, periodType, period.Duration); - var result = calendarService.GetWorkDatesForPeriod(startPeriod, TimeOnly.FromDateTime(appInWork.ReferenceDate.DateTime), periodType, period.Duration, weekendDayService.GetWeekends); + //старт период, берем сейчас, будем получать рабочие дни с вычетом выходных на весь период сразу. + var startPeriod = DateOnly.FromDateTime(DateTimeOffset.UtcNow.Date); + // старт период считаем относительно refDate + //var startPeriod = await esppScheduleTransformService.GetStartPeriodForDateAsync(appInWork.Id, appInWork.ReferenceDate, appInWork.ReferenceDate, periodType, period.Duration); - result.ForEach(wd => - { - var wrokDateTimeOffset = new DateTimeOffset( - wd.Year, wd.Month, wd.Day, - appInWork.ReferenceDate.Hour, appInWork.ReferenceDate.Minute, appInWork.ReferenceDate.Second, - new TimeSpan(0, 0, 0)); + var workDays = calendarService.GetWorkDatesForPeriod(startPeriod, TimeOnly.FromDateTime(appInWork.ReferenceDate.DateTime), periodType, period.Duration, weekendDayService.GetWeekends); - if (wrokDateTimeOffset < DateTimeOffset.UtcNow) - { - wrokDateTimeOffset = esppScheduleTransformService.GetNextDateForDistributionRun(wrokDateTimeOffset, periodType, period.Duration); - wd = DateOnly.FromDateTime(wrokDateTimeOffset.DateTime); - } - }); + #region старая логика + //var resultWorkDays = new List(); - //----- убираем даты, которые могли выйти за конец периода (из-за сдвига NextRun по рабочим дням) - var endPeriod = calendarService.GetEndPeriodDate(startPeriod, periodType, period.Duration); - result = result.Where(t => t <= endPeriod).ToList(); - //----- + //workDays.ForEach(wd => + //{ + // var wrokDateTimeOffset = new DateTimeOffset( + // wd.Year, wd.Month, wd.Day, + // appInWork.ReferenceDate.Hour, appInWork.ReferenceDate.Minute, appInWork.ReferenceDate.Second, + // new TimeSpan(0, 0, 0)); - return result; + // if (wrokDateTimeOffset < DateTimeOffset.UtcNow) + // { + // wrokDateTimeOffset = esppScheduleTransformService.GetNextDateForDistributionRun(wrokDateTimeOffset, periodType, period.Duration); + // //wd = DateOnly.FromDateTime(wrokDateTimeOffset.DateTime); + // resultWorkDays.Add(DateOnly.FromDateTime(wrokDateTimeOffset.DateTime)); + // } + // else + // { + // resultWorkDays.Add(wd); + // } + //}); + + ////----- убираем даты, которые могли выйти за конец периода (из-за сдвига NextRun по рабочим дням) + //var endPeriod = calendarService.GetEndPeriodDate(DateOnly.FromDateTime(DateTimeOffset.UtcNow.Date), periodType, period.Duration); + //resultWorkDays = resultWorkDays.Where(t => t <= endPeriod).Distinct().OrderBy(t => t).ToList(); + ////----- + + //return resultWorkDays; + #endregion + + return workDays; } /// diff --git a/PARR.TemplateDistributorWorker/appsettings.Development.json b/PARR.TemplateDistributorWorker/appsettings.Development.json index 992d2719..bec97d50 100644 --- a/PARR.TemplateDistributorWorker/appsettings.Development.json +++ b/PARR.TemplateDistributorWorker/appsettings.Development.json @@ -1,4 +1,7 @@ { + "ConnectionStrings": { + "RedisConnection": "10.99.253.216:6379,password=ParrP@ssPtk202MMdevDvs" + }, "Logging": { "LogLevel": { "Default": "Information", diff --git a/PARR.TemplateDistributorWorker/appsettings.json b/PARR.TemplateDistributorWorker/appsettings.json index b1540783..8426e3c5 100644 --- a/PARR.TemplateDistributorWorker/appsettings.json +++ b/PARR.TemplateDistributorWorker/appsettings.json @@ -1,6 +1,7 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;" + "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;", + "RedisConnection": "parr-redis:6379,password=ParrP@ssPtk202MMdevDvs" }, "Logging": { "LogLevel": {