feat(all): преметры espp Api принимают дату utc. В подробном описании шаблона возвращается префикс.
This commit is contained in:
@@ -77,6 +77,7 @@ namespace PARR.API.MappingProfiles
|
||||
CreateMap<RobotConfiguration, RobotTaskTemplateResponse>()
|
||||
.ForMember(d => d.IsActive, o => o.MapFrom(s => s.Template!.IsActiveTemplate))
|
||||
.ForMember(d => d.ClosingCode, o => o.MapFrom<RobotTaskTemplateClosingCodeResolver>())
|
||||
//todo
|
||||
.ForMember(d => d.FullDescription, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.FullDescription))
|
||||
.ForMember(d => d.ShortDescription, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.ShortDescription))
|
||||
.ForMember(d => d.Solution, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Solution))
|
||||
|
||||
@@ -59,4 +59,5 @@
|
||||
public TimeSpan OrderSearchDeltaDate { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -398,7 +398,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TemplateId");
|
||||
|
||||
b.ToTable("AgentHistories");
|
||||
b.ToTable("AgentHistories", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.AgentHistoryLevel", b =>
|
||||
@@ -419,7 +419,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("AgentHistoryLevels");
|
||||
b.ToTable("AgentHistoryLevels", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -459,7 +459,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("ApplicationTypeId");
|
||||
|
||||
b.ToTable("Applications");
|
||||
b.ToTable("Applications", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.ApplicationInHost", b =>
|
||||
@@ -486,7 +486,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("HostId");
|
||||
|
||||
b.ToTable("ApplicationsInHost");
|
||||
b.ToTable("ApplicationsInHost", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.ApplicationType", b =>
|
||||
@@ -510,7 +510,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("ApplicationTypes");
|
||||
b.ToTable("ApplicationTypes", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -595,7 +595,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("WorkId", "ApplicationId")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("ApplicationsInWorks");
|
||||
b.ToTable("ApplicationsInWorks", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.EkStatus", b =>
|
||||
@@ -612,7 +612,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("EkStatuses");
|
||||
b.ToTable("EkStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -675,7 +675,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("EsppSchTypes");
|
||||
b.ToTable("EsppSchTypes", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -744,7 +744,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("TypeScheduleId", "TypeId")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("EsppSchTypeConfigs");
|
||||
b.ToTable("EsppSchTypeConfigs", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -847,7 +847,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("EsppSchTypeSchedules");
|
||||
b.ToTable("EsppSchTypeSchedules", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -908,7 +908,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TypeId");
|
||||
|
||||
b.ToTable("EsppSchTypeValues");
|
||||
b.ToTable("EsppSchTypeValues", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1511,7 +1511,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TypeValueId");
|
||||
|
||||
b.ToTable("EsppSchValues");
|
||||
b.ToTable("EsppSchValues", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Host", b =>
|
||||
@@ -1549,7 +1549,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("ResponseAreaCode");
|
||||
|
||||
b.ToTable("Hosts");
|
||||
b.ToTable("Hosts", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Order", b =>
|
||||
@@ -1587,7 +1587,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TemplateId");
|
||||
|
||||
b.ToTable("Orders");
|
||||
b.ToTable("Orders", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.OrderStatus", b =>
|
||||
@@ -1608,7 +1608,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("OrderStatuses");
|
||||
b.ToTable("OrderStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1664,7 +1664,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Processes");
|
||||
b.ToTable("Processes", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.ResponseArea", b =>
|
||||
@@ -1681,7 +1681,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("ResponseAreas");
|
||||
b.ToTable("ResponseAreas", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1792,7 +1792,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Robots");
|
||||
b.ToTable("Robots", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1847,7 +1847,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("TemplateId", "RobotCode")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("RobotConfigurations");
|
||||
b.ToTable("RobotConfigurations", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.RobotHistory", b =>
|
||||
@@ -1882,7 +1882,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TaskStatusCode");
|
||||
|
||||
b.ToTable("RobotHistories");
|
||||
b.ToTable("RobotHistories", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.RobotHistoryLevel", b =>
|
||||
@@ -1903,7 +1903,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Level");
|
||||
|
||||
b.ToTable("RobotHistoryLevels");
|
||||
b.ToTable("RobotHistoryLevels", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1950,7 +1950,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("RobotStatuses");
|
||||
b.ToTable("RobotStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -1994,7 +1994,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Name");
|
||||
|
||||
b.ToTable("Settings");
|
||||
b.ToTable("Settings", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -2085,7 +2085,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("ProcessId");
|
||||
|
||||
b.ToTable("Subprocesses");
|
||||
b.ToTable("Subprocesses", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.TaskStatus", b =>
|
||||
@@ -2106,7 +2106,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasKey("Code");
|
||||
|
||||
b.ToTable("TaskStatuses");
|
||||
b.ToTable("TaskStatuses", (string)null);
|
||||
|
||||
b.HasData(
|
||||
new
|
||||
@@ -2169,7 +2169,7 @@ namespace PARR.DAL.Migrations
|
||||
b.HasIndex("Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("Templates");
|
||||
b.ToTable("Templates", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Tnk", b =>
|
||||
@@ -2198,7 +2198,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("SubprocessId");
|
||||
|
||||
b.ToTable("Tnks");
|
||||
b.ToTable("Tnks", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.Work", b =>
|
||||
@@ -2227,7 +2227,7 @@ namespace PARR.DAL.Migrations
|
||||
|
||||
b.HasIndex("TnkId");
|
||||
|
||||
b.ToTable("Works");
|
||||
b.ToTable("Works", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("PARR.DAL.Models.AgentHistory", b =>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using PARR.DAL.Contracts;
|
||||
using PARR.DAL.Models.Base;
|
||||
using PARR.DAL.Settings;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
@@ -24,35 +26,25 @@ namespace PARR.DAL.Models
|
||||
|
||||
public required string ShortDescription { get; set; }
|
||||
|
||||
public required string FullDescription { get; set; }
|
||||
//public required string FullDescription { get; set; }
|
||||
|
||||
private string _fullDescription = string.Empty;
|
||||
public required string FullDescription
|
||||
{
|
||||
get
|
||||
{
|
||||
//В полное описание подставляем префикс, для дальнейшего поиска наряда
|
||||
return $"{_fullDescription} \r\n{PrefixSettings.Prefix}";
|
||||
}
|
||||
set
|
||||
{
|
||||
//удаляем префикс, если он есть
|
||||
_fullDescription = value.Replace($"\r\n{PrefixSettings.Prefix}", "");
|
||||
}
|
||||
}
|
||||
|
||||
public required string Solution { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// Выполняется автоматически агентом на сервере, скриптами
|
||||
///// </summary>
|
||||
//public bool? IsAutomatic { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// Скрипт для автоматического выполнения
|
||||
///// </summary>
|
||||
//public string AgentScript { get; set; } = string.Empty;
|
||||
|
||||
///// <summary>
|
||||
///// Какое-то имя которое мы передаем агенту, пока непонятно что это такое.
|
||||
///// </summary>
|
||||
//public string AgentName { get; set; } = string.Empty;
|
||||
|
||||
///// <summary>
|
||||
///// Расписание: Время создания наряда и выполнения скрипта (чч:мм:сс)
|
||||
///// </summary>
|
||||
//public TimeSpan ScheduleGenerationTime { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// Расписание: Первое срабатывание
|
||||
///// </summary>
|
||||
//public DateOnly ScheduleStartDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Время последнего запуска скрипта/генерации наряда
|
||||
/// </summary>
|
||||
|
||||
@@ -9,6 +9,7 @@ using PARR.DAL.Services.Implementations;
|
||||
using PARR.DAL.Services.Implementations.AIHIT;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.DAL.Services.Interfaces.AIHIT;
|
||||
using PARR.DAL.Settings;
|
||||
using PARR.DAL.TransformServices;
|
||||
|
||||
namespace PARR.DAL
|
||||
@@ -83,9 +84,9 @@ namespace PARR.DAL
|
||||
var settingsFromDb = new SettingsFromDb();
|
||||
configuration.GetSection(nameof(SettingsFromDb)).Bind(settingsFromDb);
|
||||
services.AddSingleton(settingsFromDb);
|
||||
|
||||
PrefixSettings.Prefix = settingsFromDb.TemplatePrefixName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
10
PARR.DAL/Settings/PrefixSettings.cs
Normal file
10
PARR.DAL/Settings/PrefixSettings.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace PARR.DAL.Settings
|
||||
{
|
||||
/// <summary>
|
||||
/// Для использования в моделе, в геттере, ApplicationInWork
|
||||
/// </summary>
|
||||
internal static class PrefixSettings
|
||||
{
|
||||
public static string Prefix = "default value";
|
||||
}
|
||||
}
|
||||
@@ -20,18 +20,23 @@ namespace PARR.EsppApi
|
||||
|
||||
public async Task<EsppResultBase<IEnumerable<EsppOrder>>> FindOrdersAsync(FindOrdersQuery query)
|
||||
{
|
||||
DateTime? generateDateStartWOTimeZone = query.GenerateDateStart.HasValue ? query.GenerateDateStart.Value.AddHours(esppOrderSettings.EsppUserTimeZone) : null;
|
||||
DateTime? generateDateEndWOTimeZone = query.GenerateDateEnd.HasValue ? query.GenerateDateEnd.Value.AddHours(esppOrderSettings.EsppUserTimeZone) : null;
|
||||
|
||||
var conditions = new List<string>();
|
||||
|
||||
if (!string.IsNullOrEmpty(query.DescriptionContains))
|
||||
conditions.Add($"description like \"*{query.DescriptionContains}*\"");
|
||||
//if (!string.IsNullOrEmpty(query.TemplateNameContains))
|
||||
// conditions.Add($"templateName like \"*{query.TemplateNameContains}*\"");
|
||||
if (query.GenerateDateStart.HasValue)
|
||||
conditions.Add($"open.time>='{query.GenerateDateStart.Value.Day}/{query.GenerateDateStart.Value.Month}/{query.GenerateDateStart.Value.Year}" +
|
||||
$" {query.GenerateDateStart.Value.Hour}:{query.GenerateDateStart.Value.Minute}:{query.GenerateDateStart.Value.Second}'");
|
||||
if (query.GenerateDateEnd.HasValue)
|
||||
conditions.Add($"open.time<='{query.GenerateDateEnd.Value.Day}/{query.GenerateDateEnd.Value.Month}/{query.GenerateDateEnd.Value.Year}" +
|
||||
$" {query.GenerateDateEnd.Value.Hour}:{query.GenerateDateEnd.Value.Minute}:{query.GenerateDateEnd.Value.Second}'");
|
||||
|
||||
if (generateDateStartWOTimeZone.HasValue)
|
||||
conditions.Add($"open.time>='{generateDateStartWOTimeZone.Value.Day}/{generateDateStartWOTimeZone.Value.Month}/{generateDateStartWOTimeZone.Value.Year}" +
|
||||
$" {generateDateStartWOTimeZone.Value.Hour}:{generateDateStartWOTimeZone.Value.Minute}:{generateDateStartWOTimeZone.Value.Second}'");
|
||||
|
||||
if (generateDateEndWOTimeZone.HasValue)
|
||||
conditions.Add($"open.time<='{generateDateEndWOTimeZone.Value.Day}/{generateDateEndWOTimeZone.Value.Month}/{generateDateEndWOTimeZone.Value.Year}" +
|
||||
$" {generateDateEndWOTimeZone.Value.Hour}:{generateDateEndWOTimeZone.Value.Minute}:{generateDateEndWOTimeZone.Value.Second}'");
|
||||
|
||||
if (conditions.Count < 1)
|
||||
{
|
||||
|
||||
@@ -5,20 +5,22 @@
|
||||
/// </summary>
|
||||
public class FindOrdersQuery
|
||||
{
|
||||
//todo: тут поля для запроса списка нарядов из еспп
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Подробное описание, содержит значение
|
||||
/// </summary>
|
||||
public string? DescriptionContains { get; set; }
|
||||
|
||||
private DateTime? _generateDateStart;
|
||||
|
||||
/// <summary>
|
||||
/// Дата сначала которой выбирать созданные наряды
|
||||
/// Дата сначала которой выбирать созданные наряды, UTC
|
||||
/// </summary>
|
||||
public DateTime? GenerateDateStart { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Дата конца периода до которого создавались наряды
|
||||
/// Дата конца периода до которого создавались наряды, UTC
|
||||
/// </summary>
|
||||
public DateTime? GenerateDateEnd { get; set; }
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
namespace PARR.EsppApi.Settings
|
||||
using System.Security;
|
||||
|
||||
namespace PARR.EsppApi.Settings
|
||||
{
|
||||
internal class EsppOrderSettings
|
||||
{
|
||||
@@ -6,5 +8,9 @@
|
||||
public string UserName { get; set; } = string.Empty;
|
||||
public string Password { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Часовая зона пользователя в ЕСПП относительно UTC
|
||||
/// </summary>
|
||||
public int EsppUserTimeZone { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,7 +84,12 @@ namespace PARR.EsppOrderLoader
|
||||
|
||||
private async Task<IEnumerable<EsppOrder>?> GetOrdersAsync()
|
||||
{
|
||||
var searchQuery = new FindOrdersQuery { ShortDescriptionContains = settingsFromDb.TemplatePrefixName, DateEnd = DateTime.Now.Add(settingsFromDb.OrderSearchDeltaDate) };
|
||||
var searchQuery = new FindOrdersQuery {
|
||||
DescriptionContains = settingsFromDb.TemplatePrefixName,
|
||||
GenerateDateStart = DateTimeOffset.UtcNow.DateTime.Add(-settingsFromDb.OrderSearchDeltaDate).AddDays(-30),
|
||||
GenerateDateEnd = DateTimeOffset.UtcNow.DateTime
|
||||
};
|
||||
|
||||
var downloadResult = await esppApiService.FindOrdersAsync(searchQuery);
|
||||
|
||||
if (!downloadResult.IsSuccess)
|
||||
|
||||
@@ -28,5 +28,11 @@
|
||||
},
|
||||
"WorkerSettings": {
|
||||
"RepeatEvery": "1:00:00"
|
||||
},
|
||||
"EsppOrderSettings": {
|
||||
"Url": "http://rzd-espp-t-rpa-app-1.gvc.oao.rzd:8080/espp_api/OperationExecutor/",
|
||||
"UserName": "Auto-PTK-DVS",
|
||||
"Password": "123456789",
|
||||
"EsppUserTimeZone": -10
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"EsppOrderSettings": {
|
||||
"Url": "http://rzd-espp-t-rpa-app-1.gvc.oao.rzd:8080/espp_api/OperationExecutor/",
|
||||
"UserName": "Auto-PTK-DVS",
|
||||
"Password": "123456789"
|
||||
"Password": "123456789",
|
||||
"EsppUserTimeZone": -10
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user