Приём данных из АИС ОИА ПЭО

Инфраструктура Версия: 0.1 draft

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

⟨/⟩ Исходник

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_idGuidVehicle.AisIdКлюч сопоставления при повторном приёме; колонка id
ais_navidGuidVehicle.OrgObjectИД организационного объекта в АИС; колонка navid; при приёме резолвится в запись модуля
nameStringVehicle.Name
license_plateStringVehicle.LicensePlate
manufacture_yearInt32Vehicle.ManufactureYearКолонка manufacture_year (в АИС bigint, значение — год)
model_nameStringVehicle.ModelName
model_name_specialStringVehicle.ModelNameSpecial
norm_per_100_summerDecimalVehicle.NormPerMileageSummer
norm_per_100_winterDecimalVehicle.NormPerMileageWinter
norm_per_hour_summerDecimalVehicle.ConsumptionRatePerHourSummer
norm_per_hour_winterDecimalVehicle.ConsumptionRatePerHourWinter
ais_car_kind_idGuidVehicle.VehicleKindИД записи справочника в АИС; колонка type_name_classification_kind_fk
passport_type_nameStringVehicle.TypeNamePassportКолонка type_name_passport
ais_fuel_kind_primary_idGuidVehicle.FuelKindPrimaryИД записи справочника в АИС; колонка auto_fuel_kind_primary_fk
ais_fuel_kind_secondary_idGuidVehicle.FuelKindSecondaryИД записи справочника в АИС; колонка auto_fuel_kind_secondary_fk
ais_car_function_idGuidVehicle.VehicleFunctionИД записи справочника в АИС; колонка car_function_fk
cargo_capacityDecimalVehicle.CargoCapacity
pasanger_capacityInt32Vehicle.PassengerCapacity
start_dateDateTimeVehicle.StartDate
finish_dateDateTimeVehicle.FinishDate

3. Карты справочников

3.1. Виды ТС — ref_d_automobile_kinds

НаименованиеТипАтрибут сущности
ais_idGuidVehicleKind.AisId
nameStringVehicleKind.Name
codeStringVehicleKind.Code

3.2. Виды автомобильного топлива — ref_d_auto_fuel_kinds

НаименованиеТипАтрибут сущности
ais_idGuidFuelKind.AisId
nameStringFuelKind.Name
codeStringFuelKind.Code

3.3. Назначения ТС — ref_car_functions

НаименованиеТипАтрибут сущности
ais_idGuidVehicleFunction.AisId
nameStringVehicleFunction.Name
codeStringVehicleFunction.Code

4. Статус загрузки

Статус загрузки — не результат отдельной проверки, выполняемой после приёма данных, а часть собственного результата самой процедуры приёма данных: она и заполняет поля Транспортное средство из АИС, и в рамках того же вызова возвращает, какие из обязательных для расчёта полей (RequiredForCalc = "Да", загружаемых из АИС — состав задан самими атрибутами Vehicle, здесь не повторяется) остались не заполнены. Отдельной процедуры проверки «после импорта» нет — проверять нечего отдельно от того, что процедура сама только что заполнила или не заполнила.

Контракт. Вход — ТС (и выгрузка АИС); выход — обновлённое ТС плюс пара: статус загрузки (Статус загрузки, сохраняется в Расчёт ТС) и перечень обязательных полей, которые не заполнены (пусто при статусе «Загрузка выполнена» → «Данных мало» при хотя бы одном пустом; «Не выполнена» — до первого приёма). Перечень — не побочный продукт, а часть результата: карточка ТС использует именно его, чтобы показать пользователю, какие конкретно поля у этого ТС нужно довнести в АИС — не одну фразу на все случаи, а список, зависящий от ТС.

Статус загрузки — вход политики Политика статуса обработки ТС.

5. Открытые вопросы

Открытые вопросы по приёму данных из АИС собраны в эпике: OQ_AisImport.

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

Документы