feat(api, dal): в настройки в БД добавлено поле EsppRobotAccountTimeZoneHour со значением 3, обновлено ScheduleTimezone на MSK. В api в задании роботу по расписаниям, время выдается с учетом таймзоны робота.

This commit is contained in:
Mikhail Trubnikov
2024-08-06 10:52:27 +10:00
parent 0dcda12c01
commit c857accfb9
12 changed files with 3098 additions and 18 deletions

View File

@@ -3,7 +3,7 @@ using PARR.API.Contracts.V1.Responses;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
using System.Threading.Tasks;
using PARR.DAL.TransformServices;
namespace PARR.API.MappingProfiles.Resolvers
{
@@ -11,14 +11,17 @@ namespace PARR.API.MappingProfiles.Resolvers
{
private readonly IEsppSchTypeConfigService esppConfigService;
private readonly ILogger<RobotTaskScheduleSchResolver> logger;
private readonly INextRunModifierService nextRunModifierService;
public RobotTaskScheduleSchResolver(
IEsppSchTypeConfigService esppConfigService,
ILogger<RobotTaskScheduleSchResolver> logger
ILogger<RobotTaskScheduleSchResolver> logger,
INextRunModifierService nextRunModifierService
)
{
this.esppConfigService = esppConfigService;
this.logger = logger;
this.nextRunModifierService = nextRunModifierService;
}
public List<RobotTaskScheduleSchResponse>? Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, List<RobotTaskScheduleSchResponse>? destMember, ResolutionContext context)
@@ -42,10 +45,13 @@ namespace PARR.API.MappingProfiles.Resolvers
}).OrderBy(t => t.Order).ToList();
//Если задача относится к распределенной модели исполнения за период месяц устанавливаем день равный NextRun
if (source.Template!.ApplicationsInWork!.IsAutoDistributionEnabled &&
schedule.TypeSchedule.Id == (int)EsppSchTypeScheduleEnum.Monthly)
response.First().Value = source.Template.NextRun.Day.ToString();
if (source.Template!.ApplicationsInWork!.IsAutoDistributionEnabled && schedule.TypeSchedule.Id == (int)EsppSchTypeScheduleEnum.Monthly)
{
var nextRunForRobot = nextRunModifierService.GetNextRunByAccountRobotTimeZone(source.Template.NextRun);
//response.First().Value = source.Template.NextRun.Day.ToString();
response.First().Value = nextRunForRobot.Day.ToString();
}
return response;
}