Модель результата расчёта

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

Результат расчёта нормативного расхода топлива — что возвращает калькулятор; сохраняется в доменной сущности «Расчёт ТС».

⟨/⟩ Исходник

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

OutputModel — результат расчёта: нормативные расходы и сопутствующие величины по ветке ТС. Калькулятор возвращает его, не обращаясь к хранилищу.

Результат сохраняется в доменной сущности Расчёт ТС: поля OutputModel переносятся в одноимённые атрибуты VehicleCalc. Так разделены «что вернул расчёт» (модель результата) и «как модуль хранит данные расчёта» (домен).

Связи

classDiagram
    direction LR
    class OutputModel {
        +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 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 special_vehicle_consumption_rate
        +Decimal special_work_consumption_rate
        +Decimal consumption_rate_for_special_equipment
        +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
    }

Структура

НаименованиеАтрибутТипОбязательно для созданияЕИДиапазон / формат
Базовая норма расхода топлива $H_s$, л/100 кмbase_consumption_rateDecimalНетл/100 кмвещественное, ≥ 0
Минимальная базовая норма отобранной группы $H_{min}$, л/100 кмmin_base_consumption_rateDecimalНетл/100 кмвещественное, ≥ 0
Максимальная базовая норма отобранной группы $H_{max}$, л/100 кмmax_base_consumption_rateDecimalНетл/100 кмвещественное, ≥ 0
Эталонный расход $Q_{эт}$, лreference_norm_consumptionDecimalНетлвещественное, ≥ 0
Эталонная норма расхода топлива $H_{эт}$, л/100 кмreference_consumption_rateDecimalНетл/100 кмвещественное, ≥ 0
Пробег $S$, кмmileageDecimalНеткмвещественное, ≥ 0
Поправочный коэффициент к норме в зимний период $D^{зима}$, %correction_factor_winterDecimalНет%вещественное
Поправочный коэффициент к норме в летний период $D^{лето}$, %correction_factor_summerDecimalНет%вещественное
Поправочный коэффициент к норме при работе за пригородной зоной $D^{загор}$, %suburb_coefficientDecimalНет%вещественное
Нормативный расход в зимний период $Q^{зима}$, лnorm_consumption_winterDecimalНетлвещественное, ≥ 0
Нормативный расход в летний период $Q^{лето}$, лnorm_consumption_summerDecimalНетлвещественное, ≥ 0
Нормативный расход в городском режиме $Q^{гор}$, лnorm_consumption_urbanDecimalНетлвещественное, ≥ 0
Нормативный расход за пригородной зоной $Q^{загор}$, лnorm_consumption_suburbanDecimalНетлвещественное, ≥ 0
Нормативный расход $Q_н$, лnorm_consumptionDecimalНетлвещественное, ≥ 0
Нормативный расход на работу отопителя (автобусы) $Q_{обор}$, лnorm_consumption_by_using_heaterDecimalНетлвещественное, ≥ 0
Масса груза (грузовые) $G_{гр}$, тcargo_massDecimalНеттвещественное, ≥ 0
Пробег с грузом (грузовые) $S_{гр}$, кмcargo_mileageDecimalНеткмвещественное, ≥ 0
Объём транспортной работы (грузовые) $W$, т·кмtransport_workDecimalНетт·кмвещественное, ≥ 0
Норма расхода на транспортную работу (грузовые) $H_w$, л/100 т·кмtransport_work_consumption_rateDecimalНетл/100 т·кмвещественное, ≥ 0
Норма расхода на дополнительную массу прицепа (грузовые) $H_g$, л/100 т·кмtrailer_mass_consumption_rateDecimalНетл/100 т·кмвещественное, ≥ 0
Нормативный расход на транспортную работу (грузовые) $Q_{трансп}$, лnorm_consumption_by_transport_workDecimalНетлвещественное, ≥ 0
Нормативный расход на массу прицепа (грузовые) $Q_{прицеп}$, лnorm_consumption_by_trailer_massDecimalНетлвещественное, ≥ 0
Норма расхода автомобиля-самосвала (автопоезда) $H_{sanc}$, л/100 кмdump_truck_consumption_rateDecimalНетл/100 кмвещественное, ≥ 0
Нормативный расход на ездки с грузом $Q_{ездки}$, лnorm_consumption_by_tripsDecimalНетлвещественное, ≥ 0
Норма специального автомобиля на пробег с учётом транспортной работы $H_{sc}$, л/100 кмspecial_vehicle_consumption_rateDecimalНетл/100 кмвещественное, ≥ 0
Норма расхода топлива на пробег при выполнении специальной работы во время передвижения $H_s''$, л/100 кмspecial_work_consumption_rateDecimalНетл/100 кмвещественное, ≥ 0
Норма расхода топлива на работу специального оборудования $H_т$, л/чconsumption_rate_for_special_equipmentDecimalНетл/чвещественное, ≥ 0
Пробег к месту работы и обратно $S'$, кмspecial_mileage_to_workDecimalНеткмвещественное, ≥ 0
Пробег при выполнении специальной работы при передвижении $S''$, кмspecial_mileage_on_workDecimalНеткмвещественное, ≥ 0
Время работы специального оборудования $T$, чspecial_equipment_timeDecimalНетчвещественное, ≥ 0
Нормативный расход за период передвижения в зимний период $Q_{движ}^{зима}$, лnorm_consumption_move_winterDecimalНетлвещественное, ≥ 0
Нормативный расход за период передвижения в летний период $Q_{движ}^{лето}$, лnorm_consumption_move_summerDecimalНетлвещественное, ≥ 0
Нормативный расход в городском режиме за период передвижения $Q_{движ}^{гор}$, лnorm_consumption_move_urbanDecimalНетлвещественное, ≥ 0
Нормативный расход за пригородной зоной за период передвижения $Q_{движ}^{загор}$, лnorm_consumption_move_suburbanDecimalНетлвещественное, ≥ 0
Нормативный расход за период передвижения $Q_{движ}$, лnorm_consumption_moveDecimalНетлвещественное, ≥ 0
Нормативный расход за период стоянки в зимний период $Q_{стоян}^{зима}$, лnorm_consumption_stop_winterDecimalНетлвещественное, ≥ 0
Нормативный расход за период стоянки в летний период $Q_{стоян}^{лето}$, лnorm_consumption_stop_summerDecimalНетлвещественное, ≥ 0
Нормативный расход в городском режиме за период стоянки $Q_{стоян}^{гор}$, лnorm_consumption_stop_urbanDecimalНетлвещественное, ≥ 0
Нормативный расход за пригородной зоной за период стоянки $Q_{стоян}^{загор}$, лnorm_consumption_stop_suburbanDecimalНетлвещественное, ≥ 0
Нормативный расход за период стоянки $Q_{стоян}$, лnorm_consumption_stopDecimalНетлвещественное, ≥ 0

Исходник

    public class OutputModel
    {
        /// <summary>Базовая норма расхода топлива $H_s$, л/100 км</summary>
        [DomainField(Alias = "base_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal BaseConsumptionRate { get; set; }

        /// <summary>Минимальная базовая норма отобранной группы $H_{min}$, л/100 км</summary>
        [DomainField(Alias = "min_base_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal MinBaseConsumptionRate { get; set; }

        /// <summary>Максимальная базовая норма отобранной группы $H_{max}$, л/100 км</summary>
        [DomainField(Alias = "max_base_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal MaxBaseConsumptionRate { get; set; }

        /// <summary>Эталонный расход $Q_{эт}$, л</summary>
        [DomainField(Alias = "reference_norm_consumption", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal ReferenceNormConsumption { get; set; }

        /// <summary>Эталонная норма расхода топлива $H_{эт}$, л/100 км</summary>
        [DomainField(Alias = "reference_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal ReferenceConsumptionRate { get; set; }

        /// <summary>Пробег $S$, км</summary>
        [DomainField(Alias = "mileage", Unit = "км", Range = "вещественное, ≥ 0")]
        public decimal Mileage { get; set; }

        /// <summary>Поправочный коэффициент к норме в зимний период $D^{зима}$, %</summary>
        [DomainField(Alias = "correction_factor_winter", Unit = "%", Range = "вещественное")]
        public decimal CorrectionFactorWinter { get; set; }

        /// <summary>Поправочный коэффициент к норме в летний период $D^{лето}$, %</summary>
        [DomainField(Alias = "correction_factor_summer", Unit = "%", Range = "вещественное")]
        public decimal CorrectionFactorSummer { get; set; }

        /// <summary>Поправочный коэффициент к норме при работе за пригородной зоной $D^{загор}$, %</summary>
        [DomainField(Alias = "suburb_coefficient", Unit = "%", Range = "вещественное")]
        public decimal SuburbCoefficient { get; set; }

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

        /// <summary>Нормативный расход в летний период $Q^{лето}$, л</summary>
        [DomainField(Alias = "norm_consumption_summer", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionSummer { get; set; }

        /// <summary>Нормативный расход в городском режиме $Q^{гор}$, л</summary>
        [DomainField(Alias = "norm_consumption_urban", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionUrban { get; set; }

        /// <summary>Нормативный расход за пригородной зоной $Q^{загор}$, л</summary>
        [DomainField(Alias = "norm_consumption_suburban", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionSuburban { get; set; }

        /// <summary>Нормативный расход $Q_н$, л</summary>
        [DomainField(Alias = "norm_consumption", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumption { get; set; }

        /// <summary>Нормативный расход на работу отопителя (автобусы) $Q_{обор}$, л</summary>
        [DomainField(Alias = "norm_consumption_by_using_heater", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionByUsingHeater { get; set; }

        /// <summary>Масса груза (грузовые) $G_{гр}$, т</summary>
        [DomainField(Alias = "cargo_mass", Unit = "т", Range = "вещественное, ≥ 0")]
        public decimal CargoMass { get; set; }

        /// <summary>Пробег с грузом (грузовые) $S_{гр}$, км</summary>
        [DomainField(Alias = "cargo_mileage", Unit = "км", Range = "вещественное, ≥ 0")]
        public decimal CargoMileage { get; set; }

        /// <summary>Объём транспортной работы (грузовые) $W$, т·км</summary>
        [DomainField(Alias = "transport_work", Unit = "т·км", Range = "вещественное, ≥ 0")]
        public decimal TransportWork { get; set; }

        /// <summary>Норма расхода на транспортную работу (грузовые) $H_w$, л/100 т·км</summary>
        [DomainField(Alias = "transport_work_consumption_rate", Unit = "л/100 т·км", Range = "вещественное, ≥ 0")]
        public decimal TransportWorkConsumptionRate { get; set; }

        /// <summary>Норма расхода на дополнительную массу прицепа (грузовые) $H_g$, л/100 т·км</summary>
        [DomainField(Alias = "trailer_mass_consumption_rate", Unit = "л/100 т·км", Range = "вещественное, ≥ 0")]
        public decimal TrailerMassConsumptionRate { get; set; }

        /// <summary>Нормативный расход на транспортную работу (грузовые) $Q_{трансп}$, л</summary>
        [DomainField(Alias = "norm_consumption_by_transport_work", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionByTransportWork { get; set; }

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

        /// <summary>Норма расхода автомобиля-самосвала (автопоезда) $H_{sanc}$, л/100 км</summary>
        [DomainField(Alias = "dump_truck_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal DumpTruckConsumptionRate { get; set; }

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

        // ── Специальные ────────────────────────────────────────────────────────

        /// <summary>Норма специального автомобиля на пробег с учётом транспортной работы $H_{sc}$, л/100 км</summary>
        [DomainField(Alias = "special_vehicle_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal SpecialVehicleConsumptionRate { get; set; }

        /// <summary>Норма расхода топлива на пробег при выполнении специальной работы во время передвижения $H_s''$, л/100 км</summary>
        [DomainField(Alias = "special_work_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0")]
        public decimal SpecialWorkConsumptionRate { get; set; }

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

        /// <summary>Пробег к месту работы и обратно $S'$, км</summary>
        [DomainField(Alias = "special_mileage_to_work", Unit = "км", Range = "вещественное, ≥ 0")]
        public decimal SpecialMileageToWork { get; set; }

        /// <summary>Пробег при выполнении специальной работы при передвижении $S''$, км</summary>
        [DomainField(Alias = "special_mileage_on_work", Unit = "км", Range = "вещественное, ≥ 0")]
        public decimal SpecialMileageOnWork { get; set; }

        /// <summary>Время работы специального оборудования $T$, ч</summary>
        [DomainField(Alias = "special_equipment_time", Unit = "ч", Range = "вещественное, ≥ 0")]
        public decimal SpecialEquipmentTime { get; set; }

        /// <summary>Нормативный расход за период передвижения в зимний период $Q_{движ}^{зима}$, л</summary>
        [DomainField(Alias = "norm_consumption_move_winter", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionMoveWinter { get; set; }

        /// <summary>Нормативный расход за период передвижения в летний период $Q_{движ}^{лето}$, л</summary>
        [DomainField(Alias = "norm_consumption_move_summer", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionMoveSummer { get; set; }

        /// <summary>Нормативный расход в городском режиме за период передвижения $Q_{движ}^{гор}$, л</summary>
        [DomainField(Alias = "norm_consumption_move_urban", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionMoveUrban { get; set; }

        /// <summary>Нормативный расход за пригородной зоной за период передвижения $Q_{движ}^{загор}$, л</summary>
        [DomainField(Alias = "norm_consumption_move_suburban", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionMoveSuburban { get; set; }

        /// <summary>Нормативный расход за период передвижения $Q_{движ}$, л</summary>
        [DomainField(Alias = "norm_consumption_move", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionMove { get; set; }

        /// <summary>Нормативный расход за период стоянки в зимний период $Q_{стоян}^{зима}$, л</summary>
        [DomainField(Alias = "norm_consumption_stop_winter", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionStopWinter { get; set; }

        /// <summary>Нормативный расход за период стоянки в летний период $Q_{стоян}^{лето}$, л</summary>
        [DomainField(Alias = "norm_consumption_stop_summer", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionStopSummer { get; set; }

        /// <summary>Нормативный расход в городском режиме за период стоянки $Q_{стоян}^{гор}$, л</summary>
        [DomainField(Alias = "norm_consumption_stop_urban", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionStopUrban { get; set; }

        /// <summary>Нормативный расход за пригородной зоной за период стоянки $Q_{стоян}^{загор}$, л</summary>
        [DomainField(Alias = "norm_consumption_stop_suburban", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionStopSuburban { get; set; }

        /// <summary>Нормативный расход за период стоянки $Q_{стоян}$, л</summary>
        [DomainField(Alias = "norm_consumption_stop", Unit = "л", Range = "вещественное, ≥ 0")]
        public decimal NormConsumptionStop { get; set; }
    }

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

Документы