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