feat(esppScheduleSync): nextRun пересчитывается с учетом таймзоны робота.
This commit is contained in:
@@ -5,10 +5,10 @@ using PARR.BLL.Services.Interfaces;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.TransformServices;
|
||||
using PARR.EsppScheduleSync.Domain;
|
||||
using PARR.EsppScheduleSync.Settings;
|
||||
using PARR.EsppSync;
|
||||
using System.Linq;
|
||||
|
||||
namespace PARR.EsppScheduleSync
|
||||
{
|
||||
@@ -20,6 +20,7 @@ namespace PARR.EsppScheduleSync
|
||||
private readonly ISyncService<EsppObjectSchedule> syncService;
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
private readonly IServiceProvider serviceProvider;
|
||||
private readonly INextRunModifierService nextRunModifierService;
|
||||
|
||||
public ScheduleSyncher(
|
||||
ILogger<ScheduleSyncher> logger,
|
||||
@@ -27,7 +28,8 @@ namespace PARR.EsppScheduleSync
|
||||
IMqService mqService,
|
||||
ISyncService<EsppObjectSchedule> syncService,
|
||||
SettingsFromDb settingsFromDb,
|
||||
IServiceProvider serviceProvider
|
||||
IServiceProvider serviceProvider,
|
||||
INextRunModifierService nextRunModifierService
|
||||
)
|
||||
{
|
||||
this.logger = logger;
|
||||
@@ -36,6 +38,7 @@ namespace PARR.EsppScheduleSync
|
||||
this.syncService = syncService;
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
this.serviceProvider = serviceProvider;
|
||||
this.nextRunModifierService = nextRunModifierService;
|
||||
if (globalSettings.MqSettings == null)
|
||||
{
|
||||
logger.LogError("Нет секции настроек хранилища. MqSettings, EsppTemplates");
|
||||
@@ -88,8 +91,8 @@ namespace PARR.EsppScheduleSync
|
||||
WorkGroup = template.Host!.WorkGroup!.Name,
|
||||
//Мы решили, что для всех расписаний "Нет исключений", если что-то поменяется, тут нужно переделать
|
||||
TypeV60calendar = settingsFromDb.ScheduleExclude == "Нет исключений" ? "NONE" : "",
|
||||
//Scheduled = EsppScheduleHelpers.GetNextRun(template.ApplicationsInWork!.NextRun),
|
||||
Scheduled = EsppScheduleHelpers.GetNextRun(template.NextRun),
|
||||
//Scheduled = EsppScheduleHelpers.GetNextRun(template.NextRun),
|
||||
Scheduled = EsppScheduleHelpers.GetNextRun(nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun)),
|
||||
Timezone = settingsFromDb.ScheduleTimezone,
|
||||
//Мы решили, что для всех расписаний "Отсутствует дата завершения", если что-то поменяется, тут нужно переделать
|
||||
TerminationType = settingsFromDb.ScheduleRepeatRange == "Отсутствует дата завершения" ? "forever" : "",
|
||||
@@ -142,7 +145,9 @@ namespace PARR.EsppScheduleSync
|
||||
//если включено автораспределение, подставляем дату месяца из NextRun
|
||||
if (template.ApplicationsInWork?.IsAutoDistributionEnabled == true)
|
||||
{
|
||||
esppObject.Dayofmonth = template.NextRun.Day.ToString();
|
||||
var nextRunByRobotTimeZone = nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun);
|
||||
esppObject.Dayofmonth = nextRunByRobotTimeZone.Day.ToString();
|
||||
// esppObject.Dayofmonth = template.NextRun.Day.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user