Запуск импорта из АИС
Запись истории приёма данных из АИС ОИА ПЭО: источник запуска, организационный объект и ТС (для одиночного обновления), статус, счётчики принятых записей по наборам и ошибки.
1. Назначение
Одна запись — один запуск приёма данных: либо пакетный (со страницы импорта, Импорт данных из АИС ОИА ПЭО), либо по одному ТС (иконка «Обновить из АИС» в карточке, Карточка транспортного средства). Запуски обоих видов пишутся в одну историю и различаются полем «Источник».
Начало запуска — техническая дата создания записи, инициатор — автор создания; собственных полей для них у сущности нет. Запуск создаётся со статусом «Выполняется» и завершается статусом «Успешно» или «С ошибками» с датой завершения.
Связи
classDiagram
direction LR
class NtsImportRun {
+Guid id
+String source
+NavEntity nav_id
+Vehicle vehicle_id
+NtsImportRunStatus status_id
+String result_json
+String errors_json
+DateTime finished_date
}
class NavEntity
class Vehicle
class NtsImportRunStatus
NtsImportRun "1" --> "1" NavEntity : nav_id
NtsImportRun "0..1" --> "1" Vehicle : vehicle_id
NtsImportRun "1" --> "1" NtsImportRunStatus : status_id
Структура
| Наименование | Атрибут | Тип | Обязательно для создания | Диапазон / формат | Значение по умолчанию | Неизменяемость | Описание |
|---|---|---|---|---|---|---|---|
| Идентификатор записи | id | Guid | Да | UUID | Да | ||
| Источник запуска | source | String | Да | {batch; vehicle} | Пакетный запуск по организационному объекту или обновление одного ТС из карточки | ||
| Организационный объект, по которому выполняется приём | nav_id | NavEntity | Да | Да | Пакетный запуск — корневая компания; обновление ТС — его владелец | ||
| Транспортное средство | vehicle_id | Vehicle | Нет | Заполнено только для источника «vehicle» | |||
| Статус запуска | status_id | NtsImportRunStatus | Да | {Выполняется; Успешно; С ошибками} | Выполняется | ||
| Счётчики принятых записей по наборам | result_json | String | Да | Количество принятых записей по наборам, JSON | |||
| Ошибки запуска | errors_json | String | Да | Ошибки запуска, JSON | |||
| Дата и время завершения запуска | finished_date | DateTime | Нет | Пусто — запуск выполняется |
Исходник
public class NtsImportRun
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
public Guid Id { get; set; }
/// <summary>Источник запуска</summary>
[DomainField(Alias = "source", RequiredOnCreate = true, Range = "{batch; vehicle}",
Description = "Пакетный запуск по организационному объекту или обновление одного ТС из карточки")]
public string? SourceCode { get; set; }
/// <summary>Организационный объект, по которому выполняется приём</summary>
[Relation]
[DomainField(Alias = "nav_id", RequiredOnCreate = true, Immutable = true,
Description = "Пакетный запуск — корневая компания; обновление ТС — его владелец")]
public NavEntity? Nav { get; set; }
/// <summary>Транспортное средство</summary>
[Relation]
[DomainField(Alias = "vehicle_id",
Description = "Заполнено только для источника «vehicle»")]
public Vehicle? Vehicle { get; set; }
/// <summary>Статус запуска</summary>
[Relation]
[DomainField(Alias = "status_id", RequiredOnCreate = true, Default = "Выполняется",
Range = "{Выполняется; Успешно; С ошибками}")]
public NtsImportRunStatus? Status { get; set; }
/// <summary>Счётчики принятых записей по наборам</summary>
[DomainField(Alias = "result_json", RequiredOnCreate = true,
Description = "Количество принятых записей по наборам, JSON")]
public string? ResultJson { get; set; }
/// <summary>Ошибки запуска</summary>
[DomainField(Alias = "errors_json", RequiredOnCreate = true, Description = "Ошибки запуска, JSON")]
public string? ErrorsJson { get; set; }
/// <summary>Дата и время завершения запуска</summary>
[DomainField(Alias = "finished_date",
Description = "Пусто — запуск выполняется")]
public DateTime? FinishedDate { get; set; }
}Структурные связи
Использует
- Доменная сущность Организационный объект
- Доменная сущность Статус запуска импорта
- Доменная сущность Транспортное средство
- Инфраструктура Приём данных из АИС ОИА ПЭО
Используется
- Запрос на изменение Учёт фактического потребления и затрат
- Инфраструктура Приём данных из АИС ОИА ПЭО
- Экран Импорт данных из АИС ОИА ПЭО
- BC-модуль Домен ЭНТС
- Epic Расчёт нормативного расхода топлива