Политика обновления из АИС
Как реагируют подбор модификации и расчёт на приём данных ТС из АИС — при первой загрузке ТС и при повторном обновлении (один и тот же факт): когда группа подбора пересчитывается, когда она отбрасывается, и когда запускается расчёт.
1. Назначение
Приём данных ТС из АИС — один факт с двумя точками запуска: первый приём (ТС только что появилось в модуле или открывается впервые после загрузки) и повторный приём (иконка «Обновить из АИС» в карточке). Обе — один и тот же контракт Приём данных из АИС ОИА ПЭО (раздел «Состав наборов»), просто с разной гранулярностью отбора и разной «предыдущей группой подбора» (при первом приёме её попросту нет). Статус загрузки возвращается этим же вызовом, не вычисляется отдельным шагом «после» (см. раздел «Статус загрузки» в Приём данных из АИС ОИА ПЭО).
Эта политика описывает, что происходит дальше в обеих точках запуска — с подбором модификации и расчётом. Это две независимые друг от друга реакции.
2. Подбор модификации
Независимо от статуса загрузки (в т. ч. когда он всё равно «Данных мало» из-за какого-то другого, не относящегося к подбору поля — например, не заполненной даты начала эксплуатации): подбору нужны только Вид ТС и Вид топлива, а не полный набор обязательных для расчёта полей. Вид ТС — техническое условие: без него у автоподбора нет базовой группы, по которой можно что-то искать (Подбор группы модификаций ТС, раздел «Базовая группа»; сама процедура сужает группу по топливу мягко, если оно известно). Вид топлива дополнительно требуется этой политикой как условие запуска — чтобы подбор не выполнялся по заведомо неполным данным, даже если алгоритм технически мог бы отработать и без него. Если Вид ТС или Вид топлива неизвестны — подбор не проводится, способ остаётся «не определён».
Когда Вид ТС и Вид топлива известны, действие зависит от того, изменились ли они
относительно того, что было до этого приёма данных (сравнение по Id записи справочника,
не по наименованию — наименование в АИС теоретически может быть переименовано без смены
идентичности записи), и, если нет — от способа подбора
(Окно подбора модификаций, правило 1
«Текущая группа»). При первом приёме данных «до этого» не было ничего — это частный случай
строки «Изменились» ниже (нет прежнего значения, значит оно равносильно любому новому) и
одновременно строки «подбор становится возможен впервые»:
| Вид ТС / Вид топлива | Способ подбора до приёма данных | Действие |
|---|---|---|
| Не изменились (включая случай отсутствия предыдущего приёма) | Эксперт (пользователь нажал «Применить») | Группа и базовая норма не трогаются — это явный выбор пользователя, не зависящий от текста наименования ТС |
| Не изменились | Авто, либо подбор становится возможен впервые (до этого Вид ТС был неизвестен, способ «не определён») | Автоподбор выполняется (повторно или впервые) по актуальному наименованию ТС; способ становится «авто» |
| Изменились | Любой | Прежняя группа (если была) отбрасывается целиком; выполняется новый автоподбор по новым виду/топливу и текущему наименованию ТС; способ становится «авто» |
3. Расчёт
Запускается безусловно, независимо от статуса загрузки — у методики уже есть валидаторы на
каждую секцию (Валидаторы расчёта), и при нехватке обязательных
данных калькулятор не падает, а штатно возвращает «Выполнен с ошибкой» с классифицированным
текстом (например, «Дата начала эксплуатации не задана» —
Классификатор ошибок расчёта). Видимый итоговый «Статус обработки» в этом
случае всё равно показывает «Мало данных загружено» — правило 1
Политика статуса обработки ТС перекрывает внутренний статус расчёта
независимо от него; то же относится и к случаю «Нет модификаций» (правило 2 той же
политики) — валидатор секции fuel.base_norm вернёт свою ошибку «Базовая норма не
определена» тем же путём, без отдельного исключения из безусловности.
Расчёт — чистая функция от Модель входных данных расчёта ЭНТС: если входные данные по сути не изменились, пересчёт даёт тот же результат, статус и журнал — сравнивать их заранее не нужно, отдельной проверки это не требует. Дата расчёта (Расчёт ТС) обновляется на текущую в любом случае — она показывает, когда расчёт выполнялся фактически, и не входит в «результаты расчёта, статус и журнал», которые не меняются при неизменных данных.
Структурные связи
Использует
- Документ Классификатор ошибок расчёта ЭНТС
- Документ Политика статуса обработки ТС
- Доменная сущность Валидаторы расчёта
- Доменная сущность Модель входных данных расчёта
- Доменная сущность Расчёт ТС
- Инфраструктура Приём данных из АИС ОИА ПЭО
- Прикладной сервис Подбор группы модификаций ТС
Используется
Связанные артефакты
Документы
- Документ Классификатор ошибок расчёта ЭНТС
- Документ Политика статуса обработки ТС
- Доменная сущность Валидаторы расчёта
- Доменная сущность Модель входных данных расчёта
- Доменная сущность Расчёт ТС
- Инфраструктура Приём данных из АИС ОИА ПЭО
- Прикладной сервис Подбор группы модификаций ТС
- Экран Окно подбора модификаций