feat(api, core): Доделал атомарный захват задачи роботом.
This commit is contained in:
13
PARR.Domain/DTOs/RobotTask/RobotTaskBase.cs
Normal file
13
PARR.Domain/DTOs/RobotTask/RobotTaskBase.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace PARR.Domain.DTOs.RobotTask
|
||||
{
|
||||
/// <summary>
|
||||
/// Базовая модель для заданий роботам
|
||||
/// </summary>
|
||||
public record RobotTaskBase
|
||||
{
|
||||
/// <summary>
|
||||
/// RobotConfigurationId
|
||||
/// </summary>
|
||||
public Guid TaskId { get; init; }
|
||||
}
|
||||
}
|
||||
67
PARR.Domain/DTOs/RobotTask/RobotTaskSchedule.cs
Normal file
67
PARR.Domain/DTOs/RobotTask/RobotTaskSchedule.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
namespace PARR.Domain.DTOs.RobotTask
|
||||
{
|
||||
/// <summary>
|
||||
/// Модель для задания роботам - расписания
|
||||
/// </summary>
|
||||
public record RobotTaskSchedule : RobotTaskBase
|
||||
{
|
||||
/// <summary>
|
||||
/// ИД расписания из ЕСПП. При создании, его не будет
|
||||
/// </summary>
|
||||
public string? EsppId { get; init; }
|
||||
|
||||
public required string ScheduleName { get; init; }
|
||||
|
||||
public bool IsActive { get; init; }
|
||||
|
||||
public required string ResponseArea { get; init; }
|
||||
|
||||
public required string TemplateName { get; init; }
|
||||
|
||||
public Guid TemplateId { get; init; }
|
||||
|
||||
public required string WorkGroup { get; init; }
|
||||
|
||||
public string? Description { get; init; }
|
||||
|
||||
public required string Exclude { get; init; }
|
||||
|
||||
// сделал возможный null, так как может в будущем это поле может не заполняться
|
||||
public string? ExcludeCalendar { get; init; }
|
||||
|
||||
public required string Timezone { get; init; }
|
||||
|
||||
public required string RepeatRange { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Время создания наряда
|
||||
/// </summary>
|
||||
public required string GenerationTime { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Следующее срабатывание
|
||||
/// </summary>
|
||||
public required string NextStart { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Тип задания: Регулярно, еженедельно...
|
||||
/// </summary>
|
||||
public required string ScheduleType { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Код задания
|
||||
/// </summary>
|
||||
public int ScheduleTypeCode { get; init; }
|
||||
|
||||
public List<RobotTaskScheduleSch>? Schedule { get; init; }
|
||||
}
|
||||
|
||||
public record RobotTaskScheduleSch
|
||||
{
|
||||
public required string Type { get; init; }
|
||||
public int TypeCode { get; init; }
|
||||
public required string Value { get; init; }
|
||||
public int Order { get; init; }
|
||||
}
|
||||
|
||||
}
|
||||
53
PARR.Domain/DTOs/RobotTask/RobotTaskTemplate.cs
Normal file
53
PARR.Domain/DTOs/RobotTask/RobotTaskTemplate.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
namespace PARR.Domain.DTOs.RobotTask
|
||||
{
|
||||
/// <summary>
|
||||
/// Модель для задания роботам - шаблоны
|
||||
/// </summary>
|
||||
public record RobotTaskTemplate : RobotTaskBase
|
||||
{
|
||||
/// <summary>
|
||||
/// ИД расписания из ЕСПП. При создании, его не будет
|
||||
/// (при создании шаблона, это поле не смотрим, используем только при изменении)
|
||||
/// </summary>
|
||||
public string? ScheduleEsppId { get; init; }
|
||||
|
||||
public bool IsActive { get; init; }
|
||||
|
||||
public required string ClosingCode { get; init; }
|
||||
|
||||
public required string FullDescription { get; init; }
|
||||
|
||||
public required string ShortDescription { get; init; }
|
||||
|
||||
public required string Solution { get; init; }
|
||||
|
||||
public required string ResponseArea { get; init; }
|
||||
|
||||
public required string TemplateDuration { get; init; }
|
||||
|
||||
public required string Initiator { get; init; }
|
||||
|
||||
public required string WorkGroup { get; init; }
|
||||
|
||||
public required string Ek { get; init; }
|
||||
|
||||
public required string Name { get; init; }
|
||||
|
||||
public required string Category { get; init; }
|
||||
|
||||
|
||||
public required string ProcessName { get; init; }
|
||||
|
||||
public required string ProcessEsppId { get; init; }
|
||||
|
||||
public required string SubprocessName { get; init; }
|
||||
|
||||
public required string SubprocessEsppId { get; init; }
|
||||
|
||||
public required string TnkName { get; init; }
|
||||
|
||||
public required string TnkEsppId { get; init; }
|
||||
|
||||
public required string WorkName { get; init; }
|
||||
}
|
||||
}
|
||||
@@ -93,4 +93,17 @@
|
||||
/// <param name="message"></param>
|
||||
public ForbiddenException(string message) : base(message) { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ошибка при расчете NextRun. 422 (запрос валиден, но бизнес логика не смогла нормально его обработать)
|
||||
/// </summary>
|
||||
public class NextRunException : BaseException
|
||||
{
|
||||
/// <summary>
|
||||
/// Ошибка при расчете NextRun
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
public NextRunException(string message) : base(message){}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user