feat(api,dal): в настройки добавлено поле ScheduleExcludeCalendar. Обновлен response для robot task
This commit is contained in:
@@ -23,6 +23,9 @@
|
||||
|
||||
public required string Exclude { get; set; }
|
||||
|
||||
// сделал возможный null, так как может в будущем это поле может не заполняться
|
||||
public string? ExcludeCalendar { get; set; }
|
||||
|
||||
public required string Timezone { get; set; }
|
||||
|
||||
public required string RepeatRange { get; set; }
|
||||
|
||||
@@ -224,6 +224,7 @@ namespace PARR.API.MappingProfiles
|
||||
.ForMember(d => d.TemplateId, o => o.MapFrom(s => s.Template!.Id))
|
||||
.ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.Template!.Job!.WorkGroupMask))
|
||||
.ForMember(d => d.Exclude, o => o.MapFrom<RobotTaskScheduleExcludeResolver>())
|
||||
.ForMember(d => d.ExcludeCalendar, o => o.MapFrom<RobotTaskScheduleExcludeCalendarResolver>())
|
||||
.ForMember(d => d.Timezone, o => o.MapFrom<RobotTaskScheduleTimezoneResolver>())
|
||||
.ForMember(d => d.RepeatRange, o => o.MapFrom<RobotTaskScheduleRepeatRangeResolver>())
|
||||
//todo: GenerationTime
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using AutoMapper;
|
||||
using PARR.API.Contracts.V1.Responses;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Models;
|
||||
|
||||
namespace PARR.API.MappingProfiles.Resolvers
|
||||
{
|
||||
public class RobotTaskScheduleExcludeCalendarResolver : IValueResolver<RobotConfiguration, RobotTaskScheduleResponse, string?>
|
||||
{
|
||||
private readonly SettingsFromDb settingsFromDb;
|
||||
|
||||
public RobotTaskScheduleExcludeCalendarResolver(SettingsFromDb settingsFromDb)
|
||||
{
|
||||
this.settingsFromDb = settingsFromDb;
|
||||
}
|
||||
|
||||
public string? Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string? destMember, ResolutionContext context)
|
||||
{
|
||||
return settingsFromDb.ScheduleExcludeCalendar;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,7 @@ namespace PARR.API.MappingProfiles.Resolvers
|
||||
|
||||
public string Resolve(RobotConfiguration source, RobotTaskScheduleResponse destination, string destMember, ResolutionContext context)
|
||||
{
|
||||
return settingsFromDb.ScheduleExclude;
|
||||
return settingsFromDb.ScheduleExcludeType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,14 +172,15 @@ namespace PARR.DAL.Context
|
||||
{
|
||||
// При добавлении записей, добавлять тоже в PARR.DAL.Contracts.SettingsFromDb
|
||||
f.HasData(
|
||||
new { Name = nameof(SettingsFromDb.Initiator), Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.", Value = "СТАРОСТИНА СВЕТЛАНА БОРИСОВНА (STAROSTINASB@GVC.OAO.RZD)" },
|
||||
new { Name = nameof(SettingsFromDb.Initiator), Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.", Value = "АКСЕНОВ АЛЕКСАНДР ЕВГЕНЬЕВИЧ (AKSENOVAE@GVC.OAO.RZD)" },
|
||||
new { Name = nameof(SettingsFromDb.ClosingCode), Description = "Код закрытия регламентной работы, указывается при создании шаблона в ЕСПП.", Value = "выполнен" },
|
||||
new { Name = nameof(SettingsFromDb.Category), Description = "Категория создаваемого объекта в ЕСПП", Value = "регламентная работа" },
|
||||
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 = "MSK" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleExclude), Description = "Расписание регламентной работы - Тип исключения", Value = "Нет исключений" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleExcludeType), Description = "Расписание регламентной работы - Тип исключения", Value = "Выполнить ТОЛЬКО В указанном календаре" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleExcludeCalendar), Description = "Расписание регламентной работы - Календарь", Value = "8x5 (8.00-17.00)" },
|
||||
new { Name = nameof(SettingsFromDb.ScheduleRepeatRange), Description = "Расписание регламентной работы - Диапазн повторов", Value = "Отсутствует дата завершения" },
|
||||
new { Name = nameof(SettingsFromDb.OrderSearchDeltaDate), Description = "Промежуток времени для поиска нарядов в ЕСПП", Value = new TimeSpan(1, 30, 0).ToString() },
|
||||
new { Name = nameof(SettingsFromDb.EsppRobotAccountTimeZoneHour), Description = "Таймзона УЗ роботов в ЕСПП, в часах (может быть положительная и отрицательная)", Value = "3" },
|
||||
|
||||
@@ -85,7 +85,12 @@ namespace PARR.DAL.Contracts
|
||||
/// <summary>
|
||||
/// Расписание регламентной работы - Тип исключения
|
||||
/// </summary>
|
||||
public string ScheduleExclude { get; set; } = string.Empty;
|
||||
public string ScheduleExcludeType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Расписание регламентной работы - Календарь
|
||||
/// </summary>
|
||||
public string ScheduleExcludeCalendar { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Расписание регламентной работы - Диапазн повторов
|
||||
|
||||
4032
PARR.DAL/Migrations/20251204014500_updateSettings.Designer.cs
generated
Normal file
4032
PARR.DAL/Migrations/20251204014500_updateSettings.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
63
PARR.DAL/Migrations/20251204014500_updateSettings.cs
Normal file
63
PARR.DAL/Migrations/20251204014500_updateSettings.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
|
||||
|
||||
namespace PARR.DAL.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class updateSettings : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DeleteData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "ScheduleExclude");
|
||||
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "Initiator",
|
||||
column: "Value",
|
||||
value: "АКСЕНОВ АЛЕКСАНДР ЕВГЕНЬЕВИЧ (AKSENOVAE@GVC.OAO.RZD)");
|
||||
|
||||
migrationBuilder.InsertData(
|
||||
table: "Settings",
|
||||
columns: new[] { "Name", "Description", "Value" },
|
||||
values: new object[,]
|
||||
{
|
||||
{ "ScheduleExcludeCalendar", "Расписание регламентной работы - Календарь", "8x5 (8.00-17.00)" },
|
||||
{ "ScheduleExcludeType", "Расписание регламентной работы - Тип исключения", "Выполнить ТОЛЬКО В указанном календаре" }
|
||||
});
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DeleteData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "ScheduleExcludeCalendar");
|
||||
|
||||
migrationBuilder.DeleteData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "ScheduleExcludeType");
|
||||
|
||||
migrationBuilder.UpdateData(
|
||||
table: "Settings",
|
||||
keyColumn: "Name",
|
||||
keyValue: "Initiator",
|
||||
column: "Value",
|
||||
value: "СТАРОСТИНА СВЕТЛАНА БОРИСОВНА (STAROSTINASB@GVC.OAO.RZD)");
|
||||
|
||||
migrationBuilder.InsertData(
|
||||
table: "Settings",
|
||||
columns: new[] { "Name", "Description", "Value" },
|
||||
values: new object[] { "ScheduleExclude", "Расписание регламентной работы - Тип исключения", "Нет исключений" });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2514,7 +2514,7 @@ namespace PARR.DAL.Migrations
|
||||
{
|
||||
Name = "Initiator",
|
||||
Description = "Инициатор регламентной работы, указывается при создании шаблона в ЕСПП.",
|
||||
Value = "СТАРОСТИНА СВЕТЛАНА БОРИСОВНА (STAROSTINASB@GVC.OAO.RZD)"
|
||||
Value = "АКСЕНОВ АЛЕКСАНДР ЕВГЕНЬЕВИЧ (AKSENOVAE@GVC.OAO.RZD)"
|
||||
},
|
||||
new
|
||||
{
|
||||
@@ -2554,9 +2554,15 @@ namespace PARR.DAL.Migrations
|
||||
},
|
||||
new
|
||||
{
|
||||
Name = "ScheduleExclude",
|
||||
Name = "ScheduleExcludeType",
|
||||
Description = "Расписание регламентной работы - Тип исключения",
|
||||
Value = "Нет исключений"
|
||||
Value = "Выполнить ТОЛЬКО В указанном календаре"
|
||||
},
|
||||
new
|
||||
{
|
||||
Name = "ScheduleExcludeCalendar",
|
||||
Description = "Расписание регламентной работы - Календарь",
|
||||
Value = "8x5 (8.00-17.00)"
|
||||
},
|
||||
new
|
||||
{
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace PARR.EsppScheduleSync
|
||||
//WorkGroup = template.Host!.WorkGroup!,
|
||||
//WorkGroup = template.Host!.WorkGroup!.Name,//TODO Migration to job
|
||||
//Мы решили, что для всех расписаний "Нет исключений", если что-то поменяется, тут нужно переделать
|
||||
TypeV60calendar = settingsFromDb.ScheduleExclude == "Нет исключений" ? "NONE" : "",
|
||||
TypeV60calendar = settingsFromDb.ScheduleExcludeType == "Нет исключений" ? "NONE" : "",
|
||||
//Scheduled = EsppScheduleHelpers.GetNextRun(template.NextRun),
|
||||
//Scheduled = EsppScheduleHelpers.GetNextRun(nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun)),
|
||||
//BasisTime = EsppScheduleHelpers.GetGenerationTime(nextRunModifierService.GetNextRunByAccountRobotTimeZone(template.NextRun)),
|
||||
@@ -147,6 +147,8 @@ namespace PARR.EsppScheduleSync
|
||||
//тип повторения
|
||||
esppObject.TypeSchedule = typeSchedule.Value;
|
||||
|
||||
//TODO: !!!!!!! Добавить поле "Расписание регламентной работы - Календарь" ScheduleExcludeCalendar !!!!!!!
|
||||
|
||||
//в зависимости от типа, присваиваем значения
|
||||
switch (esppObject.TypeSchedule)
|
||||
{
|
||||
@@ -242,6 +244,8 @@ namespace PARR.EsppScheduleSync
|
||||
CompleteAfter = splittedContent[20],
|
||||
V60calendar = splittedContent[22],
|
||||
BasisTime = splittedContent[23]
|
||||
|
||||
//TODO: !!!!!!! Добавить поле "Расписание регламентной работы - Календарь" ScheduleExcludeCalendar !!!!!!!
|
||||
};
|
||||
|
||||
return ClearOptionalFields(esppObject);
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<None Include="docker-compose.next-run.yml" />
|
||||
<None Include="docker-compose.template-activator.yml" />
|
||||
<None Include="docker-compose.template-distributor.yml" />
|
||||
<None Include="docker-compose.template-updater.yml" />
|
||||
<None Include="docker-compose.yml" />
|
||||
<None Include=".dockerignore" />
|
||||
<None Include="stack.yml" />
|
||||
|
||||
Reference in New Issue
Block a user