Расчёт нормативного расхода топлива

Epic Версия: 0.2 draft

Сквозной контекст модуля ЭНТС: навигация по организационной структуре, приём данных из АИС ОИА ПЭО, ведение справочников, расчёт нормативного расхода топлива ТС, отображение и анализ результатов.

⟨/⟩ Исходник

1. Цель

Реализовать модуль ЭНТС: от загрузки данных о ТС и справочников из АИС ОИА ПЭО и ведения данных, которых нет в АИС, до расчёта нормативного расхода автомобильного топлива, отображения и анализа результатов (см. ЭНТС — эталоны и нормативы потребления топлива).

2. Состав работ

Сквозной сценарий модуля — Получение нормативного расхода топлива по ТС.

2.1. Спецификация

Задача Предмет Зависит от
S-1 Домен ЭНТС — модель данных модуля: ТС, расчёт ТС, отобранные модификации и справочники. Выполнено —
S-2 Методика расчёта расхода топлива — методика расчёта, ветки категорий ТС. В работе S-1
S-3 Модель расчёта и модели расчёта: Модель входных данных расчёта ЭНТС, Модель результата расчёта. Выполнено S-2
S-4 Приём данных из АИС ОИА ПЭО — приём данных из АИС ОИА ПЭО. Выполнено S-1
S-5 Реестр транспортных средств, Карточка транспортного средства — экраны реестра и карточки ТС и макеты. Выполнено S-3
S-6 Главная страница ЭНТС — главная страница, общие сведения о модуле, навигация и вкладки организационного объекта. Выполнено S-5
S-7 Документация ЭНТС — документация по использованию модуля. Выполнено S-5, S-6
S-8 Справочники, Записи справочника, Реестр марок ТС, Реестр модификаций ТС — справочники и страницы записей. Выполнено S-1, S-4
S-9 Импорт данных из АИС ОИА ПЭО — страница запуска и контроля импорта. Выполнено S-4
S-10 Окно подбора модификаций — окно подбора модификаций и расчёта базовой нормы. Выполнено S-2, S-3, S-5
S-11 Карточка модификации ТС — карточка модификации справочника, точка входа из карточки ТС, Создание модификации ТС из карточки ТС S-5, S-8

2.2. Реализация backend

Задача Предмет Зависит от
B-1 Доменные сущности и справочники модуля: ТС, расчёт ТС, отобранные модификации, марки, алиасы марок, модели и модификации, субъекты РФ, зимние надбавки, статусы расчёта S-1
B-2 Реализация расчёта по методике: лёгковые, автобусы, грузовые, самосвалы и спецтехника. Выполнено S-2
B-3 Модели чтения и запросы: навигация, реестр и карточка ТС, справочники, история импорта, подбор модификаций; права доступа S-4, S-5, S-8, S-9, S-10
B-4 Команды: сохранение карточки и расчёт, обновление из АИС, импорт, ведение собственных справочников B-1, B-2, B-3

3. Вне состава

Организационная структура и характеристики ТС, загруженные из АИС, в модуле не изменяются; модуль читает их из АИС. Субъект РФ организационного объекта выбирается на вкладке «Сведения» и используется для зимней надбавки. Остальные характеристики, которых нет в АИС, ведутся в ЭНТС (см. ЭНТС — эталоны и нормативы потребления топлива, раздел «Границы»).

Создание и удаление ТС. Состав ТС ведётся в АИС ОИА ПЭО; в реестре и карточке ТС создание и удаление не выполняются.

Отчёты. Состав отчётов в ТЗ не задан — открытый вопрос OQ_Vision.

4. Акторы

Роли модуля и их действия — ЭНТС — эталоны и нормативы потребления топлива, раздел «Роли пользователей».

5. Acceptance criteria

AC Критерий
AC-G1 На главной странице в блоке «Общие сведения» показаны полное наименование модуля, условное обозначение «Модуль ЭНТС», назначение и цель создания; заголовок не дублирует верхнюю строку
AC-N1 Выбор организационного объекта в дереве навигации открывает вкладки «Сведения» и «Реестр ТС»; по умолчанию активна вкладка «Сведения»
AC-R1 Реестр ТС показывает ТС выбранного объекта, поддерживает переключатели «С потомками / Без потомков» и «Все / Действующие» (действующие — ТС без даты окончания эксплуатации), фильтры по колонкам и постраничный вывод; в строках видны нормативный расход и статус обработки
AC-C1 В карточке ТС доступны группы «Характеристики ТС», «Условия эксплуатации», «Параметры методики» и «Результаты расчёта»; «Сохранить и рассчитать» сохраняет данные и запускает расчёт
AC-C2 Окно подбора модификаций при каждом открытии строит базовую группу по виду ТС и топливу и маску автоуточнением из данных АИС (марка/модель/остаток наименования), независимо от способа подбора; «Отобранные» разово заполняются текущей группой ТС (сохранённой пользователем или полученной автоотбором) и дальше не зависят от изменений маски; ручные условия по марке, модели и модификации строгие; по «Отобранным» показываются \(H_{min}\), \(H_{max}\) и \(H_s\); по «Применить» группа сохраняется, способ подбора становится «эксперт», значение \(H_s\) переносится в карточку; если для вида ТС и топлива нет ни одной модификации с нормой — статус подбора «Не определена» (красный бейдж в карточке), «Сохранить и рассчитать» недоступна
AC-S1 Статус расчёта показан бейджем и принимает одно из значений: «Не выполнен», «Успешно выполнен», «Выполнен с ошибкой»
AC-S2 При статусе «Выполнен с ошибкой» показан текст ошибки из классификатора ошибок расчёта
AC-S3 Статус обработки ТС показан цветным бейджем в карточке (ниже статуса расчёта) и в реестре ТС; принимает значения: «Не выполнена», «Мало данных загружено», «Нет модификаций», «Отсутствуют данные для расчёта», «Автовыбор не подтверждён», «Модификация не определена», «Завершена»
AC-S4 Статус загрузки показан бейджем в группе «Сведения о ТС из АИС ОИА ПЭО» карточки ТС; принимает значения «Не выполнена», «Данных мало», «Загрузка выполнена»; при «Данных мало» карточка показывает пояснение с перечнем недостающих данных и блокирует «Сохранить и рассчитать» и «Подобрать модификацию»
AC-F1 Справочники сгруппированы по источнику ведения; справочники АИС и системные доступны только для просмотра, собственные справочники ЭНТС — для создания, изменения и удаления по правам пользователя
AC-I1 Страница импорта запускает пакетную загрузку от корневой компании (ПАО «Россети»), показывает статус, результат по наборам и ошибки; история запусков сохраняется и включает как пакетные запуски, так и одиночные обновления ТС из карточки (с указанием источника)
AC-I2 ТС, отсутствующее в очередной выгрузке АИС, не удаляется — у него выставляется признак IsAbsentInAis; при появлении ТС в выгрузке признак снимается, данные модуля и результаты расчёта не меняются
AC-D1 Документация содержит общие сведения, назначение и цель создания, порядок работы с модулем
AC-X1 Повторный импорт тех же данных из АИС не изменяет результаты расчёта, его статус и журнал
AC-F2 В подвале окна подбора модификаций всегда (не только при пустом отборе) доступна администратору модуля кнопка «Создать модификация», открывающая карточку модификации с предзаполненными видом ТС и видом топлива (точно) и предложенными маркой и моделью (редактируемыми); вид ТС и вид топлива с этой карточки не создаются — только выбор из значений АИС; марка и модель — выбор существующей записи или создание новой
AC-X2 «Обновить из АИС» в карточке ТС запрашивает подтверждение перед запуском; если вид ТС или вид топлива не изменились (по Id записи справочника) — подбор, сделанный способом «эксперт», не трогается, способом «авто» — повторяется по актуальному наименованию ТС; если изменились — прежняя группа подбора отбрасывается и выполняется новый автоподбор по новым виду/топливу, даже если данных всё равно недостаточно для расчёта; расчёт запускается безусловно и обновляет дату расчёта, при нехватке обязательных данных возвращает классифицированную ошибку, но видимый статус обработки всё равно показывает «Мало данных загружено»

OQ Открытые вопросы — видениеOQ_Vision⟨/⟩

  • OQ-1. Отчёты. Требования к модулю «Отчёты» в ТЗ не заданы — есть только заголовок раздела. Состав отчётов нужно получить от заказчика.
  • OQ-2. Состав собственных справочников. По ТЗ состав предоставляет заказчик. В модели зафиксированы марки, модели, модификации ТС, субъекты РФ и предельные значения зимних надбавок; коэффициенты за срок эксплуатации — параметр методики, отдельного справочника нет. Нужно подтвердить состав и источник первичного наполнения.
  • OQ-3. Средний нормативный расход. В методике итоговый расход определён как среднее городского и пригородного расхода, слагаемые расшифрованы. Открытым остаётся состав средних показателей для отчётов и их сопоставление с фактическим потреблением.

OQ Открытые вопросы — методикаOQ_Calc⟨/⟩

  • OQ-4. Ветки категорий. Ветки лёгковых автомобилей, автобусов, грузовых, самосвалов и спецтехники реализованы и проверены контрольными примерами. Открытым остаётся согласование состава слагаемых и порядка применения коэффициентов с заказчиком.
  • OQ-5. Ручные надбавки. D_{нас}, D_{ост}, D_{пон}, D_{спец}, D_{чс}, D_{прос} приходят из формы ввода и суммируются в обе сезонные суммы. На контрольном примере лёгкового они равны нулю.
  • OQ-6. Оборудование спецавтомобилей. Расход на работу отопителя (автобусы) добавляется вне поправочного коэффициента — решено. Для спецавтомобилей расход на оборудование учитывается в ветке fuel.special_vehicle и проверен контрольным примером. Открытым остаётся согласование состава оборудования с заказчиком.

OQ Открытые вопросы — транспортное средствоOQ_Vehicle⟨/⟩

  • OQ-7. Два вида топлива. У ТС основной и дополнительный вид топлива. Методика знает один: от вида топлива зависят нормы расхода на транспортную работу. Какой использовать в расчёте, если заполнены оба.
  • OQ-8. Летние и зимние нормы. Нормы расхода ведутся парами: летняя и зимняя, на пробег и на час работы. Методика задаёт базовую норму из справочника модификаций и применяет к ней сезонные поправочные коэффициенты. Соотношение этих величин нужно определить.

OQ Открытые вопросы — загрузка из АИСOQ_AisImport⟨/⟩

  • OQ-9. Где держать процедуры интеграции. Приём данных из АИС ОИА ПЭО — общий механизм для модулей ОПЭС; у ЭНЗС он описан в своей папке, здесь описан приём данных ЭНТС. Нужно решить, остаются ли описания по модулям или общая часть переезжает в платформу.
  • OQ-10. Отбор по типу организационного объекта. В запросе выгрузки отбор идёт по navs.navtypealias = 'o_fsk' — это компания. ТС числятся за ПМЭС и МЭС, поэтому отбор либо означает «все ТС компании», а привязка к ПМЭС и МЭС лежит в самой записи navs, либо требует уточнения.
  • OQ-11. Данные, которых нет в выгрузке. Методика использует величины, отсутствующие в составе наборов: пробег за период и с начала эксплуатации, собственная масса ТС, признаки надбавок (климат-контроль, кондиционер, прогрев, работа в загородной зоне). Нужно решить, добавляются ли они в выгрузку или вводятся в модуле.
  • OQ-12. Выбывшие записи. Поведение, когда запись исчезла из выгрузки АИС. Для справочников вопрос острее: в ЭНЗС неудаление записей, которых уже нет в АИС, привело к перекрытию диапазонов классов энергоэффективности (CR 2026-08-19, пункт 5).

OQ Открытые вопросы — справочникиOQ_References⟨/⟩

  • OQ-13. Ведение справочников. В справочниках ЭНТС зафиксированы марки, модели, модификации ТС, субъекты РФ и предельные значения зимних надбавок. Нужно согласовать права на создание, изменение и удаление записей, а также порядок разовой загрузки справочника «Марка, модель и модификация ТС» из нормативного документа.

OQ Открытые вопросы — базовая нормаOQ_BaseNorm⟨/⟩

  • OQ-18. Какая норма справочника считается базовой. Спека InputModel.BaseConsumptionRates и секция fuel.base_norm говорят только про VehicleModification.NormPerMileage; прототип и подготовленный справочник используют NormPerMileage, а при её отсутствии — TransportNorm. Это не придирка к формулировке: у автобусов и самосвалов норма на пробег часто пустая, а транспортная заполнена — только транспортной нормой заполнено около 416 строк справочника (автобусы и самосвалы), ещё 5 строк не имеют ни одной из двух. Если оставить спеку как есть, для этих видов ТС базовая группа окажется пустой, а \(H_s\) — неопределённой, хотя прототип для них считает. Нужно подтвердить, что для автобусов и самосвалов базовой является именно транспортная норма, и определить поле (или правило выбора поля), которое считается «установленной нормой» для базовой группы.

OQ Открытые вопросы — реестр ТСOQ_VehicleRegistry⟨/⟩

  • OQ-14. Данные, вносимые в модуле. По ТЗ модуль обеспечивает внесение данных, которых нет в АИС. Состав таких данных определится, когда закроются открытые вопросы методики (пробег, собственная масса, признаки надбавок — см. OQ-11).
  • OQ-15. Результаты расчёта в реестре. По ТЗ реестр отображает результаты расчёта нормативного потребления. Состав показателей определится вместе с выходной моделью расчёта.

OQ Открытые вопросы — карточка ТСOQ_VehicleCard⟨/⟩

  • OQ-16. Состав результатов расчёта. Состав промежуточных итогов расчёта определится вместе с выходной моделью расчёта.

OQ Открытые вопросы — окно подбора модификацийOQ_ModificationSelection⟨/⟩

  • OQ-17. Статусная модель — снят. Зафиксированы CalculationStatus (не выполнен / успешно выполнен / выполнен с ошибкой), AisLoadStatus (не выполнена / данных мало / загрузка выполнена) и ProcessingStatus (не выполнена / мало данных загружено / нет модификаций / отсутствуют данные для расчёта / автовыбор не подтверждён / модификация не определена / завершена). Способ подбора — «авто» / «эксперт»; статус подбора — «не выполнен» / «не определена» / «определена» / «определена группа» (бейдж «не определена» — красный: подбор проводился и дал пустой результат, в отличие от нейтрального «не выполнен»). Правило вычисления ProcessingStatus описано в политике статуса обработки.
  • OQ-19. Хранение маски — снят. Маска нигде не хранится: она формируется заново из данных АИС при каждом открытии окна подбора и не зависит ни от способа подбора, ни от сохранённых «Отобранных» (см. ModificationSelectionModal, правило 3). Хранилище в домене не требуется.
  • OQ-20. Мастер-список марок и алиасы — снят. Мастер-список марок — справочник Марка ТС; алиасы — отдельная дочерняя сущность Алиас марки ТС (один алиас — одна марка), заводится через типовой механизм ведения справочников ЭНТС (Справочники → Записи справочника), как и Модель ТС. Внешнего (вне-доменного) мастер-списка больше не требуется.
  • OQ-21. Источник для спецтехники. Прототип распознаёт марку и модель только по «Марка и модель базы ТС»; в диагностике подготовки справочников дополнительно использовалось «Модель спец. автомобиля». Нужно решить, какое поле (или оба) является источником для спецтехники.
  • OQ-22. Маска после автоподбора — снят. Маска больше не «остаётся прежней» ни в каком случае — она всегда формируется заново из текущих данных АИС при открытии (см. OQ-19), поэтому рассинхронизация с группой невозможна.
  • OQ-23. Два пустых состояния. Прототип показывает один текст «нет модификаций для Вид ТС «…» и Вид топлива «…»» и когда кандидатов нет вовсе, и когда их отсекли ручные условия. Нужно решить, различать ли эти состояния текстом.
  • OQ-24. Смена вида ТС/топлива и уже отобранные модификации — снят. Ответ уже есть в Политика обновления из АИС (раздел «Подбор модификации», строка «Изменились»): прежняя группа отбрасывается целиком, выполняется новый автоподбор по новым виду/топливу — поэтому «Отобранные», не соответствующие новому виду/топливу, не остаются.
  • OQ-25. Эталонная норма — хранить ли отдельно от расчёта ТС — снят. CR 2026-11-03: эталонная норма и эталонный расход решил, по аналогии с базовой нормой, не хранить эталонную норму вида ТС и топлива как отдельную НСИ-величину — она пересчитывается при каждом открытии окна подбора и при каждом расчёте, сохраняется только в разрезе конкретного ТС (VehicleCalc.ReferenceConsumptionRate). Это решение для текущего объёма, не требует отдельного подтверждения. Отдельно, не как часть этого вопроса: если позже понадобится агрегированная отчётность «эталон по виду ТС и топливу» (не по ТС) — кэш придётся выносить отдельно, это будущий самостоятельный CR, а не доработка текущего решения.
  • OQ-26. Детализация эталонного расхода по периодам. Тот же CR 2026-11-03: эталонная норма и эталонный расход ограничил состав эталонных величин одним итоговым \(Q_эт\) (аналог \(Q_н\)), не вводя эталонные аналоги промежуточных \(Q^зима_эт\), \(Q^гор_эт\) и т. п. Если заказчику нужна детализация — потребуется отдельный CR.

Связанные артефакты

Документы