feat(api, dal): в настройки в БД добавлено поле EsppRobotAccountTimeZoneHour со значением 3, обновлено ScheduleTimezone на MSK. В api в задании роботу по расписаниям, время выдается с учетом таймзоны робота.
This commit is contained in:
@@ -102,10 +102,11 @@ namespace PARR.DAL.Context
|
||||
new { Name = nameof(SettingsFromDb.TemplatePrefixName), Description = "Префикс имени шаблона в ЕСПП", Value = "%PREFIX%-ЭИТИ-ПТК-ПАРР" },
|
||||
new { Name = nameof(SettingsFromDb.RobotAttemptsNumber), Description = "Количество попыток выполнения задания роботом", Value = "3" },
|
||||
new { Name = nameof(SettingsFromDb.RobotWaitTime), Description = "Время ожидания выполнения роботом задания", Value = "00:15:00" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleTimezone), Description = "Расписание регламентной работы - В каком часовом поясе", Value = "Greenwich/Universal" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleTimezone), Description = "Расписание регламентной работы - В каком часовом поясе", Value = "MSK" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleExclude), Description = "Расписание регламентной работы - Тип исключения", Value = "Нет исключений" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleRepeatRange), Description = "Расписание регламентной работы - Диапазн повторов", Value = "Отсутствует дата завершения" },
|
||||
new { Name = nameof(SettingsFromDb.OrderSearchDeltaDate), Description = "Промежуток времени для поиска нарядов в ЕСПП", Value = new TimeSpan(1, 30, 0).ToString() }
|
||||
new { Name = nameof(SettingsFromDb.OrderSearchDeltaDate), Description = "Промежуток времени для поиска нарядов в ЕСПП", Value = new TimeSpan(1, 30, 0).ToString() },
|
||||
new { Name = nameof(SettingsFromDb.EsppRobotAccountTimeZoneHour), Description = "Таймзона УЗ роботов в ЕСПП, в часах (может быть положительная и отрицательная)", Value = "3" }
|
||||
);
|
||||
});
|
||||
#endregion
|
||||
|
||||
@@ -63,6 +63,11 @@
|
||||
/// </summary>
|
||||
public TimeSpan OrderSearchDeltaDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Таймзона УЗ роботов в ЕСПП, в часах (может быть положительным и отрицательным)
|
||||
/// </summary>
|
||||
public int EsppRobotAccountTimeZoneHour { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,42 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace PARR.DAL.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class tblSettingsAddEsppRobotAccountTimeZoneHourAndUpdScheduleTimezone : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "ScheduleTimezone",
|
||||
column: "Value",
|
||||
value: "MSK");
|
||||
|
||||
migrationBuilder.InsertData(
|
||||
table: "Settings",
|
||||
columns: new[] { "Name", "Description", "Value" },
|
||||
values: new object[] { "EsppRobotAccountTimeZoneHour", "Таймзона УЗ роботов в ЕСПП, в часах (может быть положительная и отрицательная)", "3" });
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DeleteData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "EsppRobotAccountTimeZoneHour");
|
||||
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "ScheduleTimezone",
|
||||
column: "Value",
|
||||
value: "Greenwich/Universal");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2100,7 +2100,7 @@ namespace PARR.DAL.Migrations
|
||||
{
|
||||
Name = "ScheduleTimezone",
|
||||
Description = "Расписание регламентной работы - В каком часовом поясе",
|
||||
Value = "Greenwich/Universal"
|
||||
Value = "MSK"
|
||||
},
|
||||
new
|
||||
{
|
||||
@@ -2119,6 +2119,12 @@ namespace PARR.DAL.Migrations
|
||||
Name = "OrderSearchDeltaDate",
|
||||
Description = "Промежуток времени для поиска нарядов в ЕСПП",
|
||||
Value = "01:30:00"
|
||||
},
|
||||
new
|
||||
{
|
||||
Name = "EsppRobotAccountTimeZoneHour",
|
||||
Description = "Таймзона УЗ роботов в ЕСПП, в часах (может быть положительная и отрицательная)",
|
||||
Value = "3"
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -84,8 +84,11 @@ namespace PARR.DAL
|
||||
services.AddTransient<IDistributionPeriodService, DistributionPeriodService>();
|
||||
services.AddTransient<IEsppSchTypeValueService, EsppSchTypeValueService>();
|
||||
|
||||
|
||||
|
||||
// TransformServices
|
||||
services.AddTransient<IEsppScheduleTransformService, EsppScheduleTransformService>();
|
||||
services.AddTransient<INextRunModifierService, NextRunModifierService>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
16
PARR.DAL/TransformServices/INextRunModifierService.cs
Normal file
16
PARR.DAL/TransformServices/INextRunModifierService.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
namespace PARR.DAL.TransformServices
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервис по изменению NextRun
|
||||
/// </summary>
|
||||
public interface INextRunModifierService
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить NextRun с учетом тайм зоны робота ЕСПП
|
||||
/// </summary>
|
||||
/// <param name="nextRun"></param>
|
||||
/// <returns></returns>
|
||||
DateTimeOffset GetNextRunByAccountRobotTimeZone(DateTimeOffset nextRun);
|
||||
}
|
||||
}
|
||||
20
PARR.DAL/TransformServices/NextRunModifierService.cs
Normal file
20
PARR.DAL/TransformServices/NextRunModifierService.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using PARR.DAL.Contracts;
|
||||
|
||||
namespace PARR.DAL.TransformServices
|
||||
{
|
||||
internal class NextRunModifierService : INextRunModifierService
|
||||
{
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
|
||||
public NextRunModifierService(SettingsFromDb settingsFromDb)
|
||||
{
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
}
|
||||
|
||||
|
||||
public DateTimeOffset GetNextRunByAccountRobotTimeZone(DateTimeOffset nextRun)
|
||||
{
|
||||
return nextRun.AddHours(settingsFromDb.EsppRobotAccountTimeZoneHour);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user