using Rugrid.Sdaid.Notation.Documents;
namespace Rugrid.Sdaid.Epas.Nts.Vision
{
/// <summary>
/// Видение модуля ЭНТС — эталоны и нормативы потребления автомобильного топлива
/// транспортными средствами. Источник — проект ТЗ (ТЗ-ЭНТС.docx).
/// </summary>
public class DOC_NtsVision : IVisionDocument, IHasStructuralLinks, IFolder<NtsVisionFolder>
{
public SdaidLink[] Links => new[]
{
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.BC_Nts>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_Vehicle>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleCalc>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_SelectedModifications>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_NavEntity>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_NavType>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_NavCompany>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_NavMes>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_NavPmes>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_Subject>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_WinterAllowance>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleKind>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_FuelKind>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleFunction>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleMark>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleMarkAlias>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleModel>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleModification>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_CalculationStatus>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_ProcessingStatus>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_NtsModificationSelectionStatus>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Domain.DOC_NtsSelectionMethod>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_NtsCalc>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_InputModel>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_OutputModel>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_NtsCalcModel>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_CalcValidators>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_CalcLog>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_NtsCalcErrors>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_ProcessingStatusPolicy>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_AisRefreshPolicy>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Epics.NtsFuelCalc.EPIC_NtsFuelCalc>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Epics.NtsFuelCalc.UseCases.UC_NtsFuelCalc>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsMainPage>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRegistry>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRecords>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRecordCard>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsAisImportPage>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsDocumentation>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleRegistry>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleCard>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleMarkRegistry>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleModificationRegistry>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Ui.DOC_ModificationSelectionModal>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Infrastructure.AisOiaPeo.DOC_NtsAisImport>(),
};
public static string _refName = "ЭНТС — эталоны и нормативы потребления топлива";
public string Name => "Модуль «Эталоны и нормативы потребления автомобильного топлива транспортными средствами ПАО „Россети“»";
public string Description =>
@"Расчёт нормативного потребления автомобильного топлива транспортными средствами ПАО «Россети» при различных условиях эксплуатации и характеристиках ТС, ведение справочников, загрузка данных из АИС ОИА ПЭО и анализ результатов.";
public string Version => "0.1";
public string Status => "draft";
public string[] Comments => new string[0];
public static string General = """"
## Общие сведения
**Полное наименование:** Модуль «Эталоны и нормативы потребления автомобильного топлива
транспортными средствами ПАО „Россети“».
**Условное обозначение:** Модуль ЭНТС.
"""";
public static string Purpose = """"
## Назначение и цель создания
Модуль предназначен для выполнения расчётов нормативного потребления автомобильного топлива транспортными
средствами при различных условиях эксплуатации, сравнения нормативного и фактического потребления и анализа
эффективности потребления.
Модуль позволяет:
- загрузить актуальные данные о составе, характеристиках, организационной принадлежности и потреблении
топлива транспортных средств ПАО «Россети» из АИС ОИА ПЭО;
- обогатить информационную модель транспортного средства характеристиками, которые не ведутся
в АИС ОИА ПЭО, но необходимы для выполнения расчётов нормативного потребления;
- выполнить расчёт нормативного потребления;
- сформировать отчёт с показателями сравнения нормативного и фактического потребления.
"""";
public static string AutomationObject = $$""""
## Объект автоматизации
Объект автоматизации — процесс расчёта нормативного потребления автомобильного топлива
транспортными средствами при различных условиях эксплуатации и характеристиках ТС. Порядок
расчёта — единственный источник — {{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_NtsCalc>()}}.
Исходные данные расчёта собираются из двух источников:
- **АИС ОИА ПЭО.** Основная часть данных о характеристиках и эксплуатации транспортных средств
уже вносится специалистами в АИС в рамках других автоматизированных процессов. Состав
загружаемых наборов, ключ сопоставления и карты соответствия —
{{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Infrastructure.AisOiaPeo.DOC_NtsAisImport>()}}.
- **Формы ввода модуля.** Часть данных, необходимых для расчёта, в АИС отсутствует
и собирается специалистами в рамках процесса расчёта.
Итоговый статус обработки ТС по результатам расчёта и загрузки данных вычисляется политикой
{{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_ProcessingStatusPolicy>()}}. Как на
приём данных из АИС (первый или повторный) реагируют подбор модификации и расчёт — отдельная
политика {{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_AisRefreshPolicy>()}}.
"""";
public static string DataModel = $$""""
## Модель данных
Расчёт нормативного расхода топлива ведётся по транспортному средству: в его карточке
({{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Domain.DOC_Vehicle>()}}) хранятся данные АИС ОИА ПЭО и
данные модуля. Результаты, статус расчёта и журнал хранятся отдельно от карточки
({{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleCalc>()}}) — импорт обновляет только
данные АИС, данные модуля и результаты расчёта он не затрагивает. Базовая норма расхода берётся
из справочника «Марка, модель и модификация ТС»
({{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Domain.DOC_VehicleModification>()}}). Полный состав
сущностей и связей, включая организационную структуру и справочники субъектов РФ —
{{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Domain.BC_Nts>()}}.
"""";
public static string Reports = $""""
## Отчёты
Отчёты формируются для анализа результатов расчёта. Требования к составу отчётов в ТЗ не заданы —
открытый вопрос собран в {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Epics.NtsFuelCalc.OQ_Vision>()}.
"""";
public static string Ui = $""""
## Пользовательский интерфейс
Экранные формы ЭНТС:
| Экранная форма | Описание | Макет |
|---|---|---|
| Главная страница | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsMainPage>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsMainPage>("main-page.html", "макет")} |
| Справочники | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRegistry>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRegistry>("references.html", "макет")} |
| Записи справочника | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRecords>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRecords>("reference-records.html", "макет")} |
| Карточка записи справочника | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRecordCard>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsReferenceRecordCard>("reference-record-card.html", "макет")} |
| Импорт данных из АИС ОИА ПЭО | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsAisImportPage>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsAisImportPage>("ais-import.html", "макет")} |
| Документация | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsDocumentation>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_NtsDocumentation>("documentation.html", "макет")} |
| Реестр транспортных средств | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleRegistry>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleRegistry>("vehicle-registry.html", "макет")} |
| Карточка транспортного средства | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleCard>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleCard>("vehicle-card.html", "макет")} |
| Окно подбора модификаций | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_ModificationSelectionModal>()} | {SdaidHtml.LinkTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_ModificationSelectionModal>("vehicle-card.html", "макет")} |
| Реестр модификаций ТС | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleModificationRegistry>()} | — |
| Реестр марок ТС | {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Ui.DOC_VehicleMarkRegistry>()} | — |
Ведение НСИ: заимствованные из АИС справочники доступны для поиска и просмотра, собственные — для
создания, редактирования и удаления. Организационная структура и характеристики ТС, загруженные
из АИС, в модуле не изменяются; субъект РФ организационного объекта выбирается на вкладке
«Сведения»; остальные характеристики, которых в АИС нет, ведутся в ЭНТС.
"""";
public static string UseCases = $"""
## Сценарии использования
{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Epics.NtsFuelCalc.EPIC_NtsFuelCalc>()} —
{SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Epics.NtsFuelCalc.UseCases.UC_NtsFuelCalc>()}.
""";
public static string UserRoles = $"""
## Роли пользователей
| Роль | Что делает |
|---|---|
| Пользователь | Выбирает организационный объект, просматривает реестр и карточку ТС, вносит данные, которых нет в АИС, подбирает модификации, запускает расчёт и смотрит результаты |
| Администратор модуля | Запускает импорт данных из АИС ОИА ПЭО, ведёт собственные справочники: марки, модели, модификации, субъекты РФ и зимние надбавки |
""";
public static string Boundaries = $""""
## Границы
Модуль ЭНТС живёт в одном Сервисе ОПЭС с ЭНЗС и МВЭР и делит с ними платформу: хост API,
организационную структуру, механизм загрузки из АИС ОИА ПЭО, журнал расчёта и правила
валидации исходных данных.
Собственное у ЭНТС — предметная область: транспортные средства, их характеристики и условия
эксплуатации, методика расчёта расхода топлива и её справочники.
Организационная структура и характеристики ТС, загруженные из АИС, в модуле не изменяются;
субъект РФ организационного объекта выбирается на вкладке «Сведения»; остальные характеристики,
которых в АИС нет, ведутся в ЭНТС.
### Открытые вопросы
Открытые вопросы модуля собраны в эпике: {SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Epics.NtsFuelCalc.OQ_Vision>()}.
"""";
}
}