Приём данных из АИС ОИА ПЭО
Состав наборов данных, загружаемых из АИС ОИА ПЭО для модуля ЭНТС, ключ сопоставления записей и карты соответствия колонок выгрузки атрибутам сущностей.
1. Состав наборов
Реестр транспортных средств и его справочники используются только модулем ЭНТС. Организационная структура — общий источник для модулей ОПЭС, но каждый модуль ведёт собственную копию.
| Набор | Таблица АИС | Сущность модуля |
|---|---|---|
| Реестр транспортных средств | ref_cars |
Транспортное средство |
| Организационная структура | navs, nav_o_fsk, nav_o_mes, nav_o_pmes |
Организационный объект — локальная копия ЭНТС |
| Справочник «Виды ТС» | ref_d_automobile_kinds |
Вид ТС |
| Справочник «Виды автомобильного топлива» | ref_d_auto_fuel_kinds |
Вид автомобильного топлива |
| Справочник «Назначения ТС» | ref_car_functions |
Назначение ТС |
Организационные объекты — владельцы ТС — загружаются из navs в собственную копию
оргструктуры ЭНТС (Организационный объект и уровни компания → МЭС → ПМЭС).
Область и город приходят из типизированных записей АИС (nav_o_fsk, nav_o_mes,
nav_o_pmes, поля LArea и LCity). Субъект РФ у орг. объекта проставляется в модуле.
Единица приёма. Процедура принимает организационный объект и, необязательно, ТС —
Import(nav, car?). Если ТС не задано, принимаются все ТС объекта и его подчинённых объектов;
если задано — только это ТС. Массовый запуск со страницы импорта передаёт корневую компанию
(ПАО «Россети») и не передаёт ТС; обновление из карточки ТС передаёт владельца ТС и само ТС.
Справочники АИС загружаются целиком при любом запуске.
Отбор транспортных средств: ref_cars, соединённые с организационным объектом-владельцем
по navid; при пакетном запуске — по объекту и его подчинённым, при одиночном — по ais_id ТС.
Это один и тот же контракт сопоставления и статуса загрузки.
Ключ сопоставления при повторном приёме — идентификатор записи в АИС (ais_id).
Приём данных обновляет только атрибуты, для которых есть карта [MapsTo]. Поля,
которые ведутся или вычисляются в модуле (марка, модель, модификация, условия
эксплуатации, параметры методики, статус обработки), приём данных не изменяет.
Отсутствие в АИС. ТС, которого нет в очередной выгрузке, не удаляется: у него
выставляется Транспортное средство — IsAbsentInAis. При появлении ТС в выгрузке
флаг снимается. Данные модуля и результаты расчёта при этом не меняются.
История запусков. Каждый запуск — пакетный и по одному ТС — фиксируется в Запуск импорта из АИС со статусом Статус запуска импорта, счётчиками по наборам и ошибками.
2. Карта: реестр транспортных средств
Таблица ref_cars, отобранная по организационному объекту-владельцу.
| Наименование | Тип | Атрибут сущности | Описание |
|---|---|---|---|
| ais_id | Guid | Vehicle.AisId | Ключ сопоставления при повторном приёме; колонка id |
| ais_navid | Guid | Vehicle.OrgObject | ИД организационного объекта в АИС; колонка navid; при приёме резолвится в запись модуля |
| name | String | Vehicle.Name | |
| license_plate | String | Vehicle.LicensePlate | |
| manufacture_year | Int32 | Vehicle.ManufactureYear | Колонка manufacture_year (в АИС bigint, значение — год) |
| model_name | String | Vehicle.ModelName | |
| model_name_special | String | Vehicle.ModelNameSpecial | |
| norm_per_100_summer | Decimal | Vehicle.NormPerMileageSummer | |
| norm_per_100_winter | Decimal | Vehicle.NormPerMileageWinter | |
| norm_per_hour_summer | Decimal | Vehicle.ConsumptionRatePerHourSummer | |
| norm_per_hour_winter | Decimal | Vehicle.ConsumptionRatePerHourWinter | |
| ais_car_kind_id | Guid | Vehicle.VehicleKind | ИД записи справочника в АИС; колонка type_name_classification_kind_fk |
| passport_type_name | String | Vehicle.TypeNamePassport | Колонка type_name_passport |
| ais_fuel_kind_primary_id | Guid | Vehicle.FuelKindPrimary | ИД записи справочника в АИС; колонка auto_fuel_kind_primary_fk |
| ais_fuel_kind_secondary_id | Guid | Vehicle.FuelKindSecondary | ИД записи справочника в АИС; колонка auto_fuel_kind_secondary_fk |
| ais_car_function_id | Guid | Vehicle.VehicleFunction | ИД записи справочника в АИС; колонка car_function_fk |
| cargo_capacity | Decimal | Vehicle.CargoCapacity | |
| pasanger_capacity | Int32 | Vehicle.PassengerCapacity | |
| start_date | DateTime | Vehicle.StartDate | |
| finish_date | DateTime | Vehicle.FinishDate |
3. Карты справочников
3.1. Виды ТС — ref_d_automobile_kinds
| Наименование | Тип | Атрибут сущности |
|---|---|---|
| ais_id | Guid | VehicleKind.AisId |
| name | String | VehicleKind.Name |
| code | String | VehicleKind.Code |
3.2. Виды автомобильного топлива — ref_d_auto_fuel_kinds
| Наименование | Тип | Атрибут сущности |
|---|---|---|
| ais_id | Guid | FuelKind.AisId |
| name | String | FuelKind.Name |
| code | String | FuelKind.Code |
3.3. Назначения ТС — ref_car_functions
| Наименование | Тип | Атрибут сущности |
|---|---|---|
| ais_id | Guid | VehicleFunction.AisId |
| name | String | VehicleFunction.Name |
| code | String | VehicleFunction.Code |
4. Статус загрузки
Статус загрузки — не результат отдельной проверки, выполняемой после приёма данных, а часть
собственного результата самой процедуры приёма данных: она и заполняет поля
Транспортное средство из АИС, и в рамках того же вызова возвращает, какие из
обязательных для расчёта полей (RequiredForCalc = "Да", загружаемых из АИС — состав задан самими
атрибутами Vehicle, здесь не повторяется) остались не заполнены. Отдельной процедуры проверки
«после импорта» нет — проверять нечего отдельно от того, что процедура сама только что заполнила
или не заполнила.
Контракт. Вход — ТС (и выгрузка АИС); выход — обновлённое ТС плюс пара: статус загрузки (Статус загрузки, сохраняется в Расчёт ТС) и перечень обязательных полей, которые не заполнены (пусто при статусе «Загрузка выполнена» → «Данных мало» при хотя бы одном пустом; «Не выполнена» — до первого приёма). Перечень — не побочный продукт, а часть результата: карточка ТС использует именно его, чтобы показать пользователю, какие конкретно поля у этого ТС нужно довнести в АИС — не одну фразу на все случаи, а список, зависящий от ТС.
Статус загрузки — вход политики Политика статуса обработки ТС.
5. Открытые вопросы
Открытые вопросы по приёму данных из АИС собраны в эпике: OQ_AisImport.
Структурные связи
Использует
- Доменная сущность Запуск импорта из АИС
- Доменная сущность Организационный объект
- Доменная сущность Расчёт ТС
- Доменная сущность Статус загрузки
- Доменная сущность Транспортное средство
Используется
- Документ Политика обновления из АИС
- Доменная сущность Запуск импорта из АИС
- Запрос на изменение Учёт фактического потребления и затрат
- Экран Импорт данных из АИС ОИА ПЭО
- Экран Карточка транспортного средства
- Epic Расчёт нормативного расхода топлива
- Use Case Получение нормативного расхода топлива по ТС
- Vision Модуль «Эталоны и нормативы потребления автомобильного топлива транспортными средствами ПАО „Россети“»
Связанные артефакты
Документы
- Документ Политика статуса обработки ТС
- Доменная сущность Вид автомобильного топлива
- Доменная сущность Вид ТС
- Доменная сущность Запуск импорта из АИС
- Доменная сущность Назначение ТС
- Доменная сущность Организационный объект
- Доменная сущность Расчёт ТС
- Доменная сущность Статус загрузки
- Доменная сущность Статус запуска импорта
- Доменная сущность Транспортное средство