Марка, модель и модификация ТС

Доменная сущность Версия: 0.1 draft

Марка, модель и модификация транспортного средства. Задаёт нормы расхода топлива: норму на пробег автомобиля и (для спец. автомобилей) нормы на работу оборудования.

⟨/⟩ Исходник

1. Соответствие видов с АИС

Эталон видов — справочник Вид ТС (заимствован из АИС). Названия видов модификаций приведены к его строкам.

Вид АИС В постановлении Действие
Медицинские автотранспортные средства отечественные и стран СНГ Медицинские автотранспортные средства отечественные переименование
Автомобили–эвакуаторы Автомобили эвакуаторы на базе автомобилей отечественных и стран СНГ; Автомобили эвакуаторы на базе автомобилей зарубежных объединение двух видов в один

Остальные виды совпадают (всего 33).

Только в АИС, норм в постановлении нет (8): трактор, снегоход, бульдозер, грузопассажирские автомобили, спец-рубительная машина, бригадный автомобиль, вездеход, гусеничный болотоход.

Только в постановлении, вида в АИС нет (2), игнорируются: Спец - Бронированные автомобили, Спец - Автомобили для перевозки подозреваемых, временно заключенных.

Связи

classDiagram
    direction LR
    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 VehicleModel
    class VehicleKind
    class FuelKind
    VehicleModification "1" --> "1" VehicleModel : vehicle_model_id
    VehicleModification "1" --> "1" VehicleKind : vehicle_kind_id
    VehicleModification "0..1" --> "1" FuelKind : fuel_kind_id

Структура

НаименованиеАтрибутТипОбязательно для созданияЕИДиапазон / форматНеизменяемостьОписание
Идентификатор записиidGuidДаUUIDДа
Полное наименование (строка колонки справочника)full_modificationStringДа«Модель, марка, модификация автомобиля» как в документе; для спец. автомобиля — «Модель специального или специализированного автомобиля»
Модельvehicle_model_idVehicleModelДаМодель без модификации; несколько моделей в строке раскрываются в отдельные записи
МодификацияmodificationsStringНетУточнение из скобок (двигатель/исполнение); для спец. «до 1997» — базовая модель (шасси)
Вид ТСvehicle_kind_idVehicleKindДа
Вид топливаfuel_kind_idFuelKindНет
Норма на пробег автомобиля, л/100 кмnorm_per_mileage_l_100kmDecimalНетл/100 кмвещественное, ≥ 0
Транспортная норма, л/100 кмtransport_norm_l_100kmDecimalНетл/100 кмвещественное, ≥ 0Для автобусов и самосвалов норма задаётся как транспортная
Норма на работу оборудования, л/чnorm_equipment_l_hDecimalНетл/чвещественное, ≥ 0
Норма расхода топлива при работе двигателя со спец. агрегатами, л/минnorm_special_units_l_minDecimalНетл/минвещественное, ≥ 0
Норма расхода топлива при работе двигателя в стационарном режиме без нагрузки, л/минnorm_stationary_no_load_l_minDecimalНетл/минвещественное, ≥ 0
Норма на 1 ч работы битумного насоса, л/чnorm_bitumen_pump_l_hDecimalНетл/чвещественное, ≥ 0
Норма на 1 ч работы подогревателя цистерны, л/чnorm_cistern_heater_l_hDecimalНетл/чвещественное, ≥ 0
Норма на 1 ч работы гудронатора, л/чnorm_tar_gun_l_hDecimalНетл/чвещественное, ≥ 0
Норма на погрузку и разгрузку комплекта контейнеров, лnorm_container_load_unload_lDecimalНетлвещественное, ≥ 0
Норма на заполнение и слив одной цистерны, лnorm_cistern_fill_drain_lDecimalНетлвещественное, ≥ 0
Норма на загрузку и обдув одной цистерны, лnorm_cistern_load_blow_lDecimalНетлвещественное, ≥ 0

Исходник

    public class VehicleModification
    {
        /// <summary>Идентификатор записи</summary>
        [DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
        public Guid Id { get; set; }

        /// <summary>Полное наименование (строка колонки справочника)</summary>
        [DomainField(Alias = "full_modification", RequiredOnCreate = true,
            Description = "«Модель, марка, модификация автомобиля» как в документе; для спец. автомобиля — «Модель специального или специализированного автомобиля»")]
        public string? FullModification { get; set; }

        /// <summary>Модель</summary>
        [Relation]
        [DomainField(Alias = "vehicle_model_id", RequiredOnCreate = true,
            Description = "Модель без модификации; несколько моделей в строке раскрываются в отдельные записи")]
        public VehicleModel? VehicleModel { get; set; }

        /// <summary>Модификация</summary>
        [DomainField(Alias = "modifications",
            Description = "Уточнение из скобок (двигатель/исполнение); для спец. «до 1997» — базовая модель (шасси)")]
        public string? Modifications { get; set; }

        /// <summary>Вид ТС</summary>
        [Relation]
        [DomainField(Alias = "vehicle_kind_id", RequiredOnCreate = true)]
        public VehicleKind? VehicleKind { get; set; }

        /// <summary>Вид топлива</summary>
        [Relation]
        [DomainField(Alias = "fuel_kind_id")]
        public FuelKind? FuelKind { get; set; }

        /// <summary>Норма на пробег автомобиля, л/100 км</summary>
        [DomainField(Alias = "norm_per_mileage_l_100km", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal? NormPerMileage { get; set; }

        /// <summary>Транспортная норма, л/100 км</summary>
        [DomainField(Alias = "transport_norm_l_100km", Unit = "л/100 км", Range = "вещественное, ≥ 0",
            Description = "Для автобусов и самосвалов норма задаётся как транспортная")]
        public decimal? TransportNorm { get; set; }

        /// <summary>Норма на работу оборудования, л/ч</summary>
        [DomainField(Alias = "norm_equipment_l_h", Unit = "л/ч", Range = "вещественное, ≥ 0")]
        public decimal? NormEquipment { get; set; }

        /// <summary>Норма расхода топлива при работе двигателя со спец. агрегатами, л/мин</summary>
        [DomainField(Alias = "norm_special_units_l_min", Unit = "л/мин", Range = "вещественное, ≥ 0")]
        public decimal? NormSpecialUnits { get; set; }

        /// <summary>Норма расхода топлива при работе двигателя в стационарном режиме без нагрузки, л/мин</summary>
        [DomainField(Alias = "norm_stationary_no_load_l_min", Unit = "л/мин", Range = "вещественное, ≥ 0")]
        public decimal? NormStationaryNoLoad { get; set; }

        /// <summary>Норма на 1 ч работы битумного насоса, л/ч</summary>
        [DomainField(Alias = "norm_bitumen_pump_l_h", Unit = "л/ч", Range = "вещественное, ≥ 0")]
        public decimal? NormBitumenPump { get; set; }

        /// <summary>Норма на 1 ч работы подогревателя цистерны, л/ч</summary>
        [DomainField(Alias = "norm_cistern_heater_l_h", Unit = "л/ч", Range = "вещественное, ≥ 0")]
        public decimal? NormCisternHeater { get; set; }

        /// <summary>Норма на 1 ч работы гудронатора, л/ч</summary>
        [DomainField(Alias = "norm_tar_gun_l_h", Unit = "л/ч", Range = "вещественное, ≥ 0")]
        public decimal? NormTarGun { get; set; }

        /// <summary>Норма на погрузку и разгрузку комплекта контейнеров, л</summary>
        [DomainField(Alias = "norm_container_load_unload_l", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal? NormContainerLoadUnload { get; set; }

        /// <summary>Норма на заполнение и слив одной цистерны, л</summary>
        [DomainField(Alias = "norm_cistern_fill_drain_l", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal? NormCisternFillDrain { get; set; }

        /// <summary>Норма на загрузку и обдув одной цистерны, л</summary>
        [DomainField(Alias = "norm_cistern_load_blow_l", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal? NormCisternLoadBlow { get; set; }
    }

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

Документы