Модель результата расчёта
Результат расчёта нормативного расхода топлива — что возвращает калькулятор; сохраняется в доменной сущности «Расчёт ТС».
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_rate | Decimal | Нет | л/100 км | вещественное, ≥ 0 |
| Минимальная базовая норма отобранной группы $H_{min}$, л/100 км | min_base_consumption_rate | Decimal | Нет | л/100 км | вещественное, ≥ 0 |
| Максимальная базовая норма отобранной группы $H_{max}$, л/100 км | max_base_consumption_rate | Decimal | Нет | л/100 км | вещественное, ≥ 0 |
| Эталонный расход $Q_{эт}$, л | reference_norm_consumption | Decimal | Нет | л | вещественное, ≥ 0 |
| Эталонная норма расхода топлива $H_{эт}$, л/100 км | reference_consumption_rate | Decimal | Нет | л/100 км | вещественное, ≥ 0 |
| Пробег $S$, км | mileage | Decimal | Нет | км | вещественное, ≥ 0 |
| Поправочный коэффициент к норме в зимний период $D^{зима}$, % | correction_factor_winter | Decimal | Нет | % | вещественное |
| Поправочный коэффициент к норме в летний период $D^{лето}$, % | correction_factor_summer | Decimal | Нет | % | вещественное |
| Поправочный коэффициент к норме при работе за пригородной зоной $D^{загор}$, % | suburb_coefficient | Decimal | Нет | % | вещественное |
| Нормативный расход в зимний период $Q^{зима}$, л | norm_consumption_winter | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход в летний период $Q^{лето}$, л | norm_consumption_summer | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход в городском режиме $Q^{гор}$, л | norm_consumption_urban | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за пригородной зоной $Q^{загор}$, л | norm_consumption_suburban | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход $Q_н$, л | norm_consumption | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход на работу отопителя (автобусы) $Q_{обор}$, л | norm_consumption_by_using_heater | Decimal | Нет | л | вещественное, ≥ 0 |
| Масса груза (грузовые) $G_{гр}$, т | cargo_mass | Decimal | Нет | т | вещественное, ≥ 0 |
| Пробег с грузом (грузовые) $S_{гр}$, км | cargo_mileage | Decimal | Нет | км | вещественное, ≥ 0 |
| Объём транспортной работы (грузовые) $W$, т·км | transport_work | Decimal | Нет | т·км | вещественное, ≥ 0 |
| Норма расхода на транспортную работу (грузовые) $H_w$, л/100 т·км | transport_work_consumption_rate | Decimal | Нет | л/100 т·км | вещественное, ≥ 0 |
| Норма расхода на дополнительную массу прицепа (грузовые) $H_g$, л/100 т·км | trailer_mass_consumption_rate | Decimal | Нет | л/100 т·км | вещественное, ≥ 0 |
| Нормативный расход на транспортную работу (грузовые) $Q_{трансп}$, л | norm_consumption_by_transport_work | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход на массу прицепа (грузовые) $Q_{прицеп}$, л | norm_consumption_by_trailer_mass | Decimal | Нет | л | вещественное, ≥ 0 |
| Норма расхода автомобиля-самосвала (автопоезда) $H_{sanc}$, л/100 км | dump_truck_consumption_rate | Decimal | Нет | л/100 км | вещественное, ≥ 0 |
| Нормативный расход на ездки с грузом $Q_{ездки}$, л | norm_consumption_by_trips | Decimal | Нет | л | вещественное, ≥ 0 |
| Норма специального автомобиля на пробег с учётом транспортной работы $H_{sc}$, л/100 км | special_vehicle_consumption_rate | Decimal | Нет | л/100 км | вещественное, ≥ 0 |
| Норма расхода топлива на пробег при выполнении специальной работы во время передвижения $H_s''$, л/100 км | special_work_consumption_rate | Decimal | Нет | л/100 км | вещественное, ≥ 0 |
| Норма расхода топлива на работу специального оборудования $H_т$, л/ч | consumption_rate_for_special_equipment | Decimal | Нет | л/ч | вещественное, ≥ 0 |
| Пробег к месту работы и обратно $S'$, км | special_mileage_to_work | Decimal | Нет | км | вещественное, ≥ 0 |
| Пробег при выполнении специальной работы при передвижении $S''$, км | special_mileage_on_work | Decimal | Нет | км | вещественное, ≥ 0 |
| Время работы специального оборудования $T$, ч | special_equipment_time | Decimal | Нет | ч | вещественное, ≥ 0 |
| Нормативный расход за период передвижения в зимний период $Q_{движ}^{зима}$, л | norm_consumption_move_winter | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за период передвижения в летний период $Q_{движ}^{лето}$, л | norm_consumption_move_summer | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход в городском режиме за период передвижения $Q_{движ}^{гор}$, л | norm_consumption_move_urban | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за пригородной зоной за период передвижения $Q_{движ}^{загор}$, л | norm_consumption_move_suburban | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за период передвижения $Q_{движ}$, л | norm_consumption_move | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за период стоянки в зимний период $Q_{стоян}^{зима}$, л | norm_consumption_stop_winter | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за период стоянки в летний период $Q_{стоян}^{лето}$, л | norm_consumption_stop_summer | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход в городском режиме за период стоянки $Q_{стоян}^{гор}$, л | norm_consumption_stop_urban | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за пригородной зоной за период стоянки $Q_{стоян}^{загор}$, л | norm_consumption_stop_suburban | Decimal | Нет | л | вещественное, ≥ 0 |
| Нормативный расход за период стоянки $Q_{стоян}$, л | norm_consumption_stop | Decimal | Нет | л | вещественное, ≥ 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; }
}Структурные связи
Использует
- Доменная сущность Расчёт ТС
Используется
- Документ Модель расчёта нормативного расхода
- Запрос на изменение Эталонная норма и эталонный расход топлива
- Epic Расчёт нормативного расхода топлива
- Use Case Получение нормативного расхода топлива по ТС
- Vision Модуль «Эталоны и нормативы потребления автомобильного топлива транспортными средствами ПАО „Россети“»
Связанные артефакты
Документы
- Доменная сущность Расчёт ТС