Домен ЭНТС

BC-модуль Версия: 0.1 draft

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

⟨/⟩ Исходник

1. Назначение

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

Организационная структура — своя локальная копия ЭНТС (Организационный объект и уровни компания → МЭС → ПМЭС), а не общая общая структура ОПЭС. Общий ключ орг. объекта и зимней надбавки — справочник субъектов РФ Субъект РФ.

2. Границы

Транспортное средство — данные АИС и данные модуля. Импорт обновляет у Транспортное средство только атрибуты, для которых есть карта АИС; марка, модель, модификация, условия эксплуатации, параметры методики и статус обработки импортом не затрагиваются. ТС, которого нет в выгрузке, не удаляется — у него выставляется признак отсутствия в АИС. Результаты, статус расчёта и журнал — собственность модуля, поэтому вынесены в отдельную сущность Расчёт ТС.

Нормы и методика — в справочнике и бэкенде. Базовая норма берётся из справочника Марка, модель и модификация ТС; порядок расчёта описан в методике (разделы fuel.*) и в домене не дублируется.

3. Состав

3.1. Транспортное средство и расчёт

3.2. Организационная структура и субъекты

3.3. Импорт данных из АИС

3.4. Справочники

Диаграмма модели данных

classDiagram
    direction LR
    class NavCompany {
        +Guid id
        +Guid ais_id
        +String name
    }
    class NavEntity {
        +Guid id
        +Guid ais_id
        +String name
        +Guid parent_id
        +NavType nav_type_id
        +String nav_type_eid
        +NavCompany company_id
        +NavMes mes_id
        +NavPmes pmes_id
        +String region
        +String city
        +Subject subject_id
    }
    class NavMes {
        +Guid id
        +Guid ais_id
        +String name
        +NavCompany company_id
    }
    class NavPmes {
        +Guid id
        +Guid ais_id
        +String name
        +NavMes mes_id
    }
    class NavType {
        +Guid id
        +String code
        +String ais_alias
        +String name
    }
    class NtsImportRun {
        +Guid id
        +String source
        +NavEntity nav_id
        +Vehicle vehicle_id
        +NtsImportRunStatus status_id
        +String result_json
        +String errors_json
        +DateTime finished_date
    }
    class NtsAisLoadStatus {
        +Guid id
        +String name
        +String code
    }
    class CalculationStatus {
        +Guid id
        +String name
        +String code
    }
    class FuelKind {
        +Guid id
        +Guid ais_id
        +String name
        +String code
    }
    class NtsImportRunStatus {
        +Guid id
        +String name
        +String code
    }
    class NtsModificationSelectionStatus {
        +Guid id
        +String name
        +String code
    }
    class ProcessingStatus {
        +Guid id
        +String name
        +String code
    }
    class NtsSelectionMethod {
        +Guid id
        +String name
        +String code
    }
    class Subject {
        +Guid id
        +String code
        +String name
    }
    class VehicleFunction {
        +Guid id
        +Guid ais_id
        +String name
        +String code
    }
    class VehicleKind {
        +Guid id
        +Guid ais_id
        +String name
        +String code
    }
    class VehicleMark {
        +Guid id
        +String name
    }
    class VehicleMarkAlias {
        +Guid id
        +String alias
        +VehicleMark vehicle_mark_id
    }
    class VehicleModel {
        +Guid id
        +String code
        +String name
        +VehicleMark vehicle_mark_id
    }
    class VehicleModification {
        +Guid id
        +String full_modification
        +VehicleModel vehicle_model_id
        +String modifications
        +VehicleKind vehicle_kind_id
        +FuelKind fuel_kind_id
        +Decimal norm_per_mileage_l_100km
        +Decimal transport_norm_l_100km
        +Decimal norm_equipment_l_h
        +Decimal norm_special_units_l_min
        +Decimal norm_stationary_no_load_l_min
        +Decimal norm_bitumen_pump_l_h
        +Decimal norm_cistern_heater_l_h
        +Decimal norm_tar_gun_l_h
        +Decimal norm_container_load_unload_l
        +Decimal norm_cistern_fill_drain_l
        +Decimal norm_cistern_load_blow_l
    }
    class WinterAllowance {
        +Guid id
        +Subject subject_id
        +Decimal months
        +String period
        +Decimal limit_percent
    }
    class SelectedModifications {
        +Guid id
        +VehicleCalc vehicle_calc_id
        +VehicleModification vehicle_modification_id
    }
    class Vehicle {
        +Guid id
        +Guid ais_id
        +Boolean is_absent_in_ais
        +NavEntity org_object_id
        +String name
        +String license_plate
        +String model_name
        +String model_name_special
        +Int32 manufacture_year
        +VehicleKind vehicle_kind_id
        +VehicleMark vehicle_mark_id
        +VehicleModel vehicle_model_id
        +VehicleModification vehicle_modification_id
        +String passport_type_name
        +VehicleFunction vehicle_function_id
        +FuelKind fuel_kind_primary_id
        +FuelKind fuel_kind_secondary_id
        +Decimal norm_per_mileage_summer_l_per_100km
        +Decimal norm_per_mileage_winter_l_per_100km
        +Decimal norm_per_hour_summer_l_per_h
        +Decimal norm_per_hour_winter_l_per_h
        +Decimal cargo_capacity
        +Int32 passenger_capacity
        +Decimal trailer_mass
        +DateTime start_date
        +DateTime finish_date
        +Decimal consumption_rate_when_using_heater
        +Decimal time_when_using_heater
        +Decimal dump_truck_transport_work_consumption_rate
        +Int32 trips_with_cargo_per_shift
        +Decimal population_allowance
        +Decimal tech_stop_allowance
        +Decimal low_speed_allowance
        +Decimal special_vehicle_allowance
        +Decimal emergency_allowance
        +Decimal forced_idle_allowance
    }
    class VehicleCalc {
        +Guid id
        +Vehicle vehicle_id
        +Decimal base_consumption_rate
        +Decimal min_base_consumption_rate
        +Decimal max_base_consumption_rate
        +Decimal reference_norm_consumption
        +Decimal reference_consumption_rate
        +Decimal mileage
        +Decimal correction_factor_winter
        +Decimal correction_factor_summer
        +Decimal suburb_coefficient
        +Decimal norm_consumption_winter
        +Decimal norm_consumption_summer
        +Decimal norm_consumption_urban
        +Decimal norm_consumption_suburban
        +Decimal norm_consumption
        +Decimal norm_consumption_by_using_heater
        +Decimal norm_consumption_mileage
        +Decimal cargo_mass
        +Decimal cargo_mileage
        +Decimal transport_work
        +Decimal transport_work_consumption_rate
        +Decimal trailer_mass_consumption_rate
        +Decimal norm_consumption_by_transport_work
        +Decimal norm_consumption_by_trailer_mass
        +Decimal dump_truck_consumption_rate
        +Decimal norm_consumption_by_trips
        +Decimal consumption_rate_for_special_equipment
        +Decimal special_vehicle_consumption_rate
        +Decimal special_work_consumption_rate
        +Decimal special_mileage_to_work
        +Decimal special_mileage_on_work
        +Decimal special_equipment_time
        +Decimal norm_consumption_move_winter
        +Decimal norm_consumption_move_summer
        +Decimal norm_consumption_move_urban
        +Decimal norm_consumption_move_suburban
        +Decimal norm_consumption_move
        +Decimal norm_consumption_stop_winter
        +Decimal norm_consumption_stop_summer
        +Decimal norm_consumption_stop_urban
        +Decimal norm_consumption_stop_suburban
        +Decimal norm_consumption_stop
        +CalculationStatus calculation_status_id
        +NtsModificationSelectionStatus modification_selection_status_id
        +NtsSelectionMethod selection_method_id
        +String calc_log_json
        +String calc_errors_json
        +DateTime calc_date
        +NtsAisLoadStatus ais_load_status_id
        +ProcessingStatus processing_status_id
    }
    class VehicleSummaryStatistics {
        +NavEntity org_object_id
        +Int32 total_count
    }
    class VehicleProcessingStatusCount {
        +ProcessingStatus processing_status_id
        +Int32 count
    }
    class VehicleFuelConsumptionSummary {
        +FuelKind fuel_kind_id
        +Int32 vehicle_count
        +Decimal norm_consumption_sum
        +Decimal norm_consumption_max
        +Decimal norm_consumption_min
        +Decimal norm_consumption_avg
        +Decimal actual_consumption
    }
    NavEntity "1" --> "1" NavType : nav_type_id
    NavEntity "0..1" --> "1" NavCompany : company_id
    NavEntity "0..1" --> "1" NavMes : mes_id
    NavEntity "0..1" --> "1" NavPmes : pmes_id
    NavEntity "0..1" --> "1" Subject : subject_id
    NavMes "1" --> "1" NavCompany : company_id
    NavPmes "1" --> "1" NavMes : mes_id
    NtsImportRun "1" --> "1" NavEntity : nav_id
    NtsImportRun "0..1" --> "1" Vehicle : vehicle_id
    NtsImportRun "1" --> "1" NtsImportRunStatus : status_id
    VehicleMarkAlias "1" --> "1" VehicleMark : vehicle_mark_id
    VehicleModel "1" --> "1" VehicleMark : vehicle_mark_id
    VehicleModification "1" --> "1" VehicleModel : vehicle_model_id
    VehicleModification "1" --> "1" VehicleKind : vehicle_kind_id
    VehicleModification "0..1" --> "1" FuelKind : fuel_kind_id
    WinterAllowance "1" --> "1" Subject : subject_id
    SelectedModifications "1" --> "1" VehicleCalc : vehicle_calc_id
    SelectedModifications "1" --> "1" VehicleModification : vehicle_modification_id
    Vehicle "1" --> "1" NavEntity : org_object_id
    Vehicle "0..1" --> "1" VehicleKind : vehicle_kind_id
    Vehicle "0..1" --> "1" VehicleMark : vehicle_mark_id
    Vehicle "0..1" --> "1" VehicleModel : vehicle_model_id
    Vehicle "0..1" --> "1" VehicleModification : vehicle_modification_id
    Vehicle "0..1" --> "1" VehicleFunction : vehicle_function_id
    Vehicle "0..1" --> "1" FuelKind : fuel_kind_primary_id
    Vehicle "0..1" --> "1" FuelKind : fuel_kind_secondary_id
    VehicleCalc "1" --> "1" Vehicle : vehicle_id
    VehicleCalc "1" --> "1" CalculationStatus : calculation_status_id
    VehicleCalc "1" --> "1" NtsModificationSelectionStatus : modification_selection_status_id
    VehicleCalc "1" --> "1" NtsSelectionMethod : selection_method_id
    VehicleCalc "1" --> "1" NtsAisLoadStatus : ais_load_status_id
    VehicleCalc "1" --> "1" ProcessingStatus : processing_status_id
    VehicleSummaryStatistics "0..1" --> "1" NavEntity : org_object_id
    VehicleProcessingStatusCount "1" --> "1" ProcessingStatus : processing_status_id
    VehicleFuelConsumptionSummary "1" --> "1" FuelKind : fuel_kind_id

Документы контекста

Доменные артефакты

сущностьСтатусВерсия
Алиас марки ТСdraft0.1
Вид автомобильного топливаdraft0.1
Вид ТСdraft0.1
Запуск импорта из АИСdraft0.1
Количество ТС по статусу обработкиdraft0.1
Компанияdraft0.1
Марка ТСdraft0.1
Марка, модель и модификация ТСdraft0.1
Модель ТСdraft0.1
МЭСdraft0.1
Назначение ТСdraft0.1
Организационный объектdraft0.1
Отобранные модификации ТСdraft0.1
ПМЭСdraft0.1
Потребление топлива по виду топливаdraft0.1
Предельные значения зимних надбавокdraft0.2
Расчёт ТСdraft0.1
Сводная статистика ТСdraft0.1
Способ подбораdraft0.2
Статус загрузкиdraft0.1
Статус запуска импортаdraft0.1
Статус обработки ТСdraft0.1
Статус подбора модификацииdraft0.1
Статус расчётаdraft0.2
Субъект РФdraft0.1
Тип организационного объектаdraft0.1
Транспортное средствоdraft0.2

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

Документы