Расчёт ТС
Расчёт нормативного расхода топлива транспортного средства: результаты расчёта, статус расчёта и журнал.
1. Назначение
Расчёт ведётся по методике Методика расчёта расхода топлива. Вход собирается из Транспортное средство — характеристик ТС из АИС и данных, введённых в модуле; собственных входных параметров расчёт не хранит. Здесь лежат результаты расчёта, статус расчёта, журнал, статус загрузки данных из АИС и итоговый статус обработки ТС — вся эта сущность описывает процесс обработки ТС, а не само ТС.
Отдельная сущность выбрана потому, что Транспортное средство содержит и данные АИС, и данные модуля; импорт обновляет только поля АИС. Результаты, статус расчёта и журнал — собственность модуля, импорт их не трогает.
Связи
classDiagram
direction LR
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 Vehicle
class CalculationStatus
class NtsModificationSelectionStatus
class NtsSelectionMethod
class NtsAisLoadStatus
class ProcessingStatus
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
Структура
| Наименование | Атрибут | Тип | Обязательно для создания | Вычисляемый, методика | ЕИ | Диапазон / формат | Значение по умолчанию | Неизменяемость | Описание |
|---|---|---|---|---|---|---|---|---|---|
| Идентификатор записи | id | Guid | Да | UUID | Да | ||||
| Транспортное средство | vehicle_id | Vehicle | Да | Да | |||||
| Базовая норма расхода топлива $H_s$, л/100 км | base_consumption_rate | Decimal | Нет | Да, `fuel.base_norm` — базовая норма H_s | л/100 км | вещественное, ≥ 0 | |||
| Минимальная базовая норма отобранной группы $H_{min}$, л/100 км | min_base_consumption_rate | Decimal | Нет | Да, `fuel.base_norm` — H_min | л/100 км | вещественное, ≥ 0 | |||
| Максимальная базовая норма отобранной группы $H_{max}$, л/100 км | max_base_consumption_rate | Decimal | Нет | Да, `fuel.base_norm` — H_max | л/100 км | вещественное, ≥ 0 | |||
| Эталонный расход $Q_{эт}$, л | reference_norm_consumption | Decimal | Нет | Да, `fuel.reference_consumption` — та же ветка категории ТС, что и Q_н, со входом H_эт вместо H_s | л | вещественное, ≥ 0 | |||
| Эталонная норма расхода топлива $H_{эт}$, л/100 км | reference_consumption_rate | Decimal | Нет | Да, `fuel.reference_norm` — минимум по всей базовой группе, не только отобранным | л/100 км | вещественное, ≥ 0 | |||
| Пробег $S$, км | mileage | Decimal | Нет | Да, `fuel.mileage` | км | вещественное, ≥ 0 | |||
| Поправочный коэффициент к норме в зимний период $D^{зима}$, % | correction_factor_winter | Decimal | Нет | Да, `fuel.correction_factor_winter` — D^{зима} | % | вещественное | |||
| Поправочный коэффициент к норме в летний период $D^{лето}$, % | correction_factor_summer | Decimal | Нет | Да, `fuel.correction_factor_summer` — D^{лето} | % | вещественное | |||
| Поправочный коэффициент при работе за пригородной зоной $D^{загор}$, % | suburb_coefficient | Decimal | Нет | Да, `fuel.cf_suburb` | % | вещественное | |||
| Нормативный расход в зимний период $Q^{зима}$, л | norm_consumption_winter | Decimal | Нет | Да, `fuel.q_winter`, `fuel.bus_q_winter`, … | л | вещественное, ≥ 0 | |||
| Нормативный расход в летний период $Q^{лето}$, л | norm_consumption_summer | Decimal | Нет | Да, `fuel.q_summer`, `fuel.bus_q_summer`, … | л | вещественное, ≥ 0 | |||
| Нормативный расход в городском режиме $Q^{гор}$, л | norm_consumption_urban | Decimal | Нет | Да, `fuel.q_urban` — Q^{гор} | л | вещественное, ≥ 0 | |||
| Нормативный расход за пригородной зоной $Q^{загор}$, л | norm_consumption_suburban | Decimal | Нет | Да, `fuel.q_suburban` — Q^{загор} | л | вещественное, ≥ 0 | |||
| Нормативный расход $Q_н$, л | norm_consumption | Decimal | Нет | Да, результат ветки категории ТС: `fuel.normative_consumption` — нормативный расход Q_н | л | вещественное, ≥ 0 | |||
| Нормативный расход на работу отопителя $Q_{обор}$, л | norm_consumption_by_using_heater | Decimal | Нет | Да, `fuel.q_equipment` — Q_{обор} | л | вещественное, ≥ 0 | |||
| Нормативный расход на пробег $Q_{пробег}$, л | norm_consumption_mileage | Decimal | Нет | Да, `fuel.q_mileage` — нормативный расход на пробег Q_{пробег}; не применяется в ветке самосвалов | л | вещественное, ≥ 0 | |||
| Масса груза $G_{гр}$, т | cargo_mass | Decimal | Нет | Да, `fuel.g_cargo` — масса груза G_{гр} | т | вещественное, ≥ 0 | |||
| Пробег с грузом $S_{гр}$, км | cargo_mileage | Decimal | Нет | Да, `fuel.s_cargo` — S_{гр} | км | вещественное, ≥ 0 | |||
| Объём транспортной работы $W$, т·км | transport_work | Decimal | Нет | Да, `fuel.w` — объём транспортной работы W | т·км | вещественное, ≥ 0 | |||
| Норма расхода топлива на транспортную работу $H_w$, л/100 т·км | transport_work_consumption_rate | Decimal | Нет | Да, `fuel.h_transport` — расчёт от вида топлива: H_w | л/100 т·км | вещественное, ≥ 0 | |||
| Норма расхода топлива на дополнительную массу прицепа $H_g$, л/100 т·км | trailer_mass_consumption_rate | Decimal | Нет | Да, `fuel.h_trailer` — расчёт от вида топлива: H_g | л/100 т·км | вещественное, ≥ 0 | |||
| Нормативный расход на транспортную работу $Q_{трансп}$, л | norm_consumption_by_transport_work | Decimal | Нет | Да, `fuel.q_transport` — Q_{трансп} | л | вещественное, ≥ 0 | |||
| Нормативный расход на массу прицепа $Q_{прицеп}$, л | norm_consumption_by_trailer_mass | Decimal | Нет | Да, `fuel.q_trailer` — Q_{прицеп} | л | вещественное, ≥ 0 | |||
| Норма расхода автомобиля-самосвала (автопоезда) $H_{sanc}$, л/100 км | dump_truck_consumption_rate | Decimal | Нет | Да, `fuel.h_sanc` — H_{sanc} | л/100 км | вещественное, ≥ 0 | |||
| Нормативный расход на ездки с грузом $Q_{ездки}$, л | norm_consumption_by_trips | Decimal | Нет | Да, `fuel.q_trips` — Q_{ездки} | л | вещественное, ≥ 0 | |||
| Норма расхода топлива на работу специального оборудования $H_т$, л/ч | consumption_rate_for_special_equipment | Decimal | Нет | Да, `fuel.h_special_equipment` — H_т | л/ч | вещественное, ≥ 0 | |||
| Норма специального автомобиля на пробег с учётом транспортной работы $H_{sc}$, л/100 км | special_vehicle_consumption_rate | Decimal | Нет | Да, `fuel.h_sc` — H_sc | л/100 км | вещественное, ≥ 0 | |||
| Норма расхода топлива на пробег при выполнении специальной работы во время передвижения $H_s''$, л/100 км | special_work_consumption_rate | Decimal | Нет | Да, `fuel.h_s_special_work` — H_s'' | л/100 км | вещественное, ≥ 0 | |||
| Пробег к месту работы и обратно $S'$, км | special_mileage_to_work | Decimal | Нет | Да, `fuel.s_special_to_work` — S' | км | вещественное, ≥ 0 | |||
| Пробег при выполнении специальной работы при передвижении $S''$, км | special_mileage_on_work | Decimal | Нет | Да, `fuel.s_special_on_work` — S'' | км | вещественное, ≥ 0 | |||
| Время работы специального оборудования $T$, ч | special_equipment_time | Decimal | Нет | Да, `fuel.special_equipment_time` — T | ч | вещественное, ≥ 0 | |||
| Нормативный расход за период передвижения в зимний период $Q_{движ}^{зима}$, л | norm_consumption_move_winter | Decimal | Нет | Да, `fuel.special_move_q_winter` | л | вещественное, ≥ 0 | |||
| Нормативный расход за период передвижения в летний период $Q_{движ}^{лето}$, л | norm_consumption_move_summer | Decimal | Нет | Да, `fuel.special_move_q_summer` | л | вещественное, ≥ 0 | |||
| Нормативный расход в городском режиме за период передвижения $Q_{движ}^{гор}$, л | norm_consumption_move_urban | Decimal | Нет | Да, `fuel.special_move_q_urban` | л | вещественное, ≥ 0 | |||
| Нормативный расход за пригородной зоной за период передвижения $Q_{движ}^{загор}$, л | norm_consumption_move_suburban | Decimal | Нет | Да, `fuel.special_move_q_suburban` | л | вещественное, ≥ 0 | |||
| Нормативный расход за период передвижения $Q_{движ}$, л | norm_consumption_move | Decimal | Нет | Да, `fuel.special_move` | л | вещественное, ≥ 0 | |||
| Нормативный расход за период стоянки в зимний период $Q_{стоян}^{зима}$, л | norm_consumption_stop_winter | Decimal | Нет | Да, `fuel.special_stop_q_winter` | л | вещественное, ≥ 0 | |||
| Нормативный расход за период стоянки в летний период $Q_{стоян}^{лето}$, л | norm_consumption_stop_summer | Decimal | Нет | Да, `fuel.special_stop_q_summer` | л | вещественное, ≥ 0 | |||
| Нормативный расход в городском режиме за период стоянки $Q_{стоян}^{гор}$, л | norm_consumption_stop_urban | Decimal | Нет | Да, `fuel.special_stop_q_urban` | л | вещественное, ≥ 0 | |||
| Нормативный расход за пригородной зоной за период стоянки $Q_{стоян}^{загор}$, л | norm_consumption_stop_suburban | Decimal | Нет | Да, `fuel.special_stop_q_suburban` | л | вещественное, ≥ 0 | |||
| Нормативный расход за период стоянки $Q_{стоян}$, л | norm_consumption_stop | Decimal | Нет | Да, `fuel.special_stop` | л | вещественное, ≥ 0 | |||
| Статус расчёта | calculation_status_id | CalculationStatus | Да | Не выполнен | Результат работы калькулятора: не выполнен, успешно выполнен или выполнен с ошибкой | ||||
| Статус подбора модификации | modification_selection_status_id | NtsModificationSelectionStatus | Да | Да | {Не выполнен; Не определена; Определена; Определена группа} | Не выполнен | Определяется состоянием подбора: не выполнялся / ни одной / одна / несколько модификаций | ||
| Способ подбора | selection_method_id | NtsSelectionMethod | Да | Да | {Не определён; авто; эксперт} | Не определён | Не определён — подбор не выполнялся; авто — подбор выполнен сервисом при загрузке ТС; эксперт — пользователь нажал «Применить» | ||
| Журнал расчёта | calc_log_json | String | Да | Да | Шаги расчёта с формулами и значениями, JSON | ||||
| Ошибки расчёта | calc_errors_json | String | Да | Да | Ошибки расчёта, JSON | ||||
| Дата расчёта | calc_date | DateTime | Нет | Да | Дата и время выполнения расчёта | ||||
| Статус загрузки | ais_load_status_id | NtsAisLoadStatus | Да | Да | Не выполнена | Достаточность данных из АИС ОИА ПЭО для расчёта: устанавливается процедурой приёма данных | |||
| Статус обработки ТС | processing_status_id | ProcessingStatus | Да | Да | Не выполнена | Итоговый статус обработки ТС: вычисляется по статусу загрузки, статусу расчёта, статусу подбора модификации и способу подбора |
Исходник
public class VehicleCalc
{
/// <summary>Идентификатор записи</summary>
[DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
public Guid Id { get; set; }
/// <summary>Транспортное средство</summary>
[Relation]
[DomainField(Alias = "vehicle_id", RequiredOnCreate = true, Immutable = true)]
public Vehicle? Vehicle { get; set; }
/// <summary>Базовая норма расхода топлива $H_s$, л/100 км</summary>
[DomainField(Alias = "base_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.base_norm` — базовая норма H_s")]
public decimal BaseConsumptionRate { get; set; }
/// <summary>Минимальная базовая норма отобранной группы $H_{min}$, л/100 км</summary>
[DomainField(Alias = "min_base_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.base_norm` — H_min")]
public decimal MinBaseConsumptionRate { get; set; }
/// <summary>Максимальная базовая норма отобранной группы $H_{max}$, л/100 км</summary>
[DomainField(Alias = "max_base_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.base_norm` — H_max")]
public decimal MaxBaseConsumptionRate { get; set; }
/// <summary>Эталонный расход $Q_{эт}$, л</summary>
[DomainField(Alias = "reference_norm_consumption", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.reference_consumption` — та же ветка категории ТС, что и Q_н, со входом H_эт вместо H_s")]
public decimal ReferenceNormConsumption { get; set; }
/// <summary>Эталонная норма расхода топлива $H_{эт}$, л/100 км</summary>
[DomainField(Alias = "reference_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.reference_norm` — минимум по всей базовой группе, не только отобранным")]
public decimal ReferenceConsumptionRate { get; set; }
/// <summary>Пробег $S$, км</summary>
[DomainField(Alias = "mileage", Unit = "км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.mileage`")]
public decimal Mileage { get; set; }
/// <summary>Поправочный коэффициент к норме в зимний период $D^{зима}$, %</summary>
[DomainField(Alias = "correction_factor_winter", Unit = "%", Range = "вещественное",
Calculated = "Да, `fuel.correction_factor_winter` — D^{зима}")]
public decimal CorrectionFactorWinter { get; set; }
/// <summary>Поправочный коэффициент к норме в летний период $D^{лето}$, %</summary>
[DomainField(Alias = "correction_factor_summer", Unit = "%", Range = "вещественное",
Calculated = "Да, `fuel.correction_factor_summer` — D^{лето}")]
public decimal CorrectionFactorSummer { get; set; }
/// <summary>Поправочный коэффициент при работе за пригородной зоной $D^{загор}$, %</summary>
[DomainField(Alias = "suburb_coefficient", Unit = "%", Range = "вещественное",
Calculated = "Да, `fuel.cf_suburb`")]
public decimal SuburbCoefficient { get; set; }
/// <summary>Нормативный расход в зимний период $Q^{зима}$, л</summary>
[DomainField(Alias = "norm_consumption_winter", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_winter`, `fuel.bus_q_winter`, …")]
public decimal NormConsumptionWinter { get; set; }
/// <summary>Нормативный расход в летний период $Q^{лето}$, л</summary>
[DomainField(Alias = "norm_consumption_summer", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_summer`, `fuel.bus_q_summer`, …")]
public decimal NormConsumptionSummer { get; set; }
/// <summary>Нормативный расход в городском режиме $Q^{гор}$, л</summary>
[DomainField(Alias = "norm_consumption_urban", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_urban` — Q^{гор}")]
public decimal NormConsumptionUrban { get; set; }
/// <summary>Нормативный расход за пригородной зоной $Q^{загор}$, л</summary>
[DomainField(Alias = "norm_consumption_suburban", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_suburban` — Q^{загор}")]
public decimal NormConsumptionSuburban { get; set; }
/// <summary>Нормативный расход $Q_н$, л</summary>
[DomainField(Alias = "norm_consumption", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, результат ветки категории ТС: `fuel.normative_consumption` — нормативный расход Q_н")]
public decimal NormConsumption { get; set; }
/// <summary>Нормативный расход на работу отопителя $Q_{обор}$, л</summary>
[DomainField(Alias = "norm_consumption_by_using_heater", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_equipment` — Q_{обор}")]
public decimal NormConsumptionByUsingHeater { get; set; }
/// <summary>Нормативный расход на пробег $Q_{пробег}$, л</summary>
[DomainField(Alias = "norm_consumption_mileage", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_mileage` — нормативный расход на пробег Q_{пробег}; не применяется в ветке самосвалов")]
public decimal NormConsumptionMileage { get; set; }
/// <summary>Масса груза $G_{гр}$, т</summary>
[DomainField(Alias = "cargo_mass", Unit = "т", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.g_cargo` — масса груза G_{гр}")]
public decimal CargoMass { get; set; }
/// <summary>Пробег с грузом $S_{гр}$, км</summary>
[DomainField(Alias = "cargo_mileage", Unit = "км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.s_cargo` — S_{гр}")]
public decimal CargoMileage { get; set; }
/// <summary>Объём транспортной работы $W$, т·км</summary>
[DomainField(Alias = "transport_work", Unit = "т·км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.w` — объём транспортной работы W")]
public decimal TransportWork { get; set; }
/// <summary>Норма расхода топлива на транспортную работу $H_w$, л/100 т·км</summary>
[DomainField(Alias = "transport_work_consumption_rate", Unit = "л/100 т·км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.h_transport` — расчёт от вида топлива: H_w")]
public decimal TransportWorkConsumptionRate { get; set; }
/// <summary>Норма расхода топлива на дополнительную массу прицепа $H_g$, л/100 т·км</summary>
[DomainField(Alias = "trailer_mass_consumption_rate", Unit = "л/100 т·км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.h_trailer` — расчёт от вида топлива: H_g")]
public decimal TrailerMassConsumptionRate { get; set; }
/// <summary>Нормативный расход на транспортную работу $Q_{трансп}$, л</summary>
[DomainField(Alias = "norm_consumption_by_transport_work", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_transport` — Q_{трансп}")]
public decimal NormConsumptionByTransportWork { get; set; }
/// <summary>Нормативный расход на массу прицепа $Q_{прицеп}$, л</summary>
[DomainField(Alias = "norm_consumption_by_trailer_mass", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_trailer` — Q_{прицеп}")]
public decimal NormConsumptionByTrailerMass { get; set; }
/// <summary>Норма расхода автомобиля-самосвала (автопоезда) $H_{sanc}$, л/100 км</summary>
[DomainField(Alias = "dump_truck_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.h_sanc` — H_{sanc}")]
public decimal DumpTruckConsumptionRate { get; set; }
/// <summary>Нормативный расход на ездки с грузом $Q_{ездки}$, л</summary>
[DomainField(Alias = "norm_consumption_by_trips", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.q_trips` — Q_{ездки}")]
public decimal NormConsumptionByTrips { get; set; }
/// <summary>Норма расхода топлива на работу специального оборудования $H_т$, л/ч</summary>
[DomainField(Alias = "consumption_rate_for_special_equipment", Unit = "л/ч", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.h_special_equipment` — H_т")]
public decimal ConsumptionRateForSpecialEquipment { get; set; }
/// <summary>Норма специального автомобиля на пробег с учётом транспортной работы $H_{sc}$, л/100 км</summary>
[DomainField(Alias = "special_vehicle_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.h_sc` — H_sc")]
public decimal SpecialVehicleConsumptionRate { get; set; }
/// <summary>Норма расхода топлива на пробег при выполнении специальной работы во время передвижения $H_s''$, л/100 км</summary>
[DomainField(Alias = "special_work_consumption_rate", Unit = "л/100 км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.h_s_special_work` — H_s''")]
public decimal SpecialWorkConsumptionRate { get; set; }
/// <summary>Пробег к месту работы и обратно $S'$, км</summary>
[DomainField(Alias = "special_mileage_to_work", Unit = "км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.s_special_to_work` — S'")]
public decimal SpecialMileageToWork { get; set; }
/// <summary>Пробег при выполнении специальной работы при передвижении $S''$, км</summary>
[DomainField(Alias = "special_mileage_on_work", Unit = "км", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.s_special_on_work` — S''")]
public decimal SpecialMileageOnWork { get; set; }
/// <summary>Время работы специального оборудования $T$, ч</summary>
[DomainField(Alias = "special_equipment_time", Unit = "ч", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_equipment_time` — T")]
public decimal SpecialEquipmentTime { get; set; }
/// <summary>Нормативный расход за период передвижения в зимний период $Q_{движ}^{зима}$, л</summary>
[DomainField(Alias = "norm_consumption_move_winter", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_move_q_winter`")]
public decimal NormConsumptionMoveWinter { get; set; }
/// <summary>Нормативный расход за период передвижения в летний период $Q_{движ}^{лето}$, л</summary>
[DomainField(Alias = "norm_consumption_move_summer", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_move_q_summer`")]
public decimal NormConsumptionMoveSummer { get; set; }
/// <summary>Нормативный расход в городском режиме за период передвижения $Q_{движ}^{гор}$, л</summary>
[DomainField(Alias = "norm_consumption_move_urban", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_move_q_urban`")]
public decimal NormConsumptionMoveUrban { get; set; }
/// <summary>Нормативный расход за пригородной зоной за период передвижения $Q_{движ}^{загор}$, л</summary>
[DomainField(Alias = "norm_consumption_move_suburban", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_move_q_suburban`")]
public decimal NormConsumptionMoveSuburban { get; set; }
/// <summary>Нормативный расход за период передвижения $Q_{движ}$, л</summary>
[DomainField(Alias = "norm_consumption_move", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_move`")]
public decimal NormConsumptionMove { get; set; }
/// <summary>Нормативный расход за период стоянки в зимний период $Q_{стоян}^{зима}$, л</summary>
[DomainField(Alias = "norm_consumption_stop_winter", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_stop_q_winter`")]
public decimal NormConsumptionStopWinter { get; set; }
/// <summary>Нормативный расход за период стоянки в летний период $Q_{стоян}^{лето}$, л</summary>
[DomainField(Alias = "norm_consumption_stop_summer", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_stop_q_summer`")]
public decimal NormConsumptionStopSummer { get; set; }
/// <summary>Нормативный расход в городском режиме за период стоянки $Q_{стоян}^{гор}$, л</summary>
[DomainField(Alias = "norm_consumption_stop_urban", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_stop_q_urban`")]
public decimal NormConsumptionStopUrban { get; set; }
/// <summary>Нормативный расход за пригородной зоной за период стоянки $Q_{стоян}^{загор}$, л</summary>
[DomainField(Alias = "norm_consumption_stop_suburban", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_stop_q_suburban`")]
public decimal NormConsumptionStopSuburban { get; set; }
/// <summary>Нормативный расход за период стоянки $Q_{стоян}$, л</summary>
[DomainField(Alias = "norm_consumption_stop", Unit = "л", Range = "вещественное, ≥ 0",
Calculated = "Да, `fuel.special_stop`")]
public decimal NormConsumptionStop { get; set; }
/// <summary>Статус расчёта</summary>
[Relation]
[DomainField(Alias = "calculation_status_id", RequiredOnCreate = true,
Default = "Не выполнен",
Description = "Результат работы калькулятора: не выполнен, успешно выполнен или выполнен с ошибкой")]
public CalculationStatus? CalculationStatus { get; set; }
/// <summary>Статус подбора модификации</summary>
[Relation]
[DomainField(Alias = "modification_selection_status_id", RequiredOnCreate = true,
Calculated = "Да",
Range = "{Не выполнен; Не определена; Определена; Определена группа}",
Default = "Не выполнен",
Description = "Определяется состоянием подбора: не выполнялся / ни одной / одна / несколько модификаций")]
public NtsModificationSelectionStatus? ModificationSelectionStatus { get; set; }
/// <summary>Способ подбора</summary>
[Relation]
[DomainField(Alias = "selection_method_id", RequiredOnCreate = true,
Calculated = "Да", Range = "{Не определён; авто; эксперт}", Default = "Не определён",
Description = "Не определён — подбор не выполнялся; авто — подбор выполнен сервисом при загрузке ТС; эксперт — пользователь нажал «Применить»")]
public NtsSelectionMethod? SelectionMethod { get; set; }
/// <summary>Журнал расчёта</summary>
[DomainField(Alias = "calc_log_json", RequiredOnCreate = true, Calculated = "Да",
Description = "Шаги расчёта с формулами и значениями, JSON")]
public string? CalcLogJson { get; set; }
/// <summary>Ошибки расчёта</summary>
[DomainField(Alias = "calc_errors_json", RequiredOnCreate = true, Calculated = "Да",
Description = "Ошибки расчёта, JSON")]
public string? CalcErrorsJson { get; set; }
/// <summary>Дата расчёта</summary>
[DomainField(Alias = "calc_date", Calculated = "Да", Description = "Дата и время выполнения расчёта")]
public DateTime? CalcDate { get; set; }
/// <summary>Статус загрузки</summary>
[Relation]
[DomainField(Alias = "ais_load_status_id", RequiredOnCreate = true,
Calculated = "Да", Default = "Не выполнена",
Description = "Достаточность данных из АИС ОИА ПЭО для расчёта: устанавливается процедурой приёма данных")]
public NtsAisLoadStatus? AisLoadStatus { get; set; }
/// <summary>Статус обработки ТС</summary>
[Relation]
[DomainField(Alias = "processing_status_id", RequiredOnCreate = true,
Calculated = "Да", Default = "Не выполнена",
Description = "Итоговый статус обработки ТС: вычисляется по статусу загрузки, статусу расчёта, статусу подбора модификации и способу подбора")]
public ProcessingStatus? ProcessingStatus { get; set; }
}Структурные связи
Использует
- Доменная сущность Отобранные модификации ТС
- Доменная сущность Способ подбора
- Доменная сущность Статус загрузки
- Доменная сущность Статус обработки ТС
- Доменная сущность Статус подбора модификации
- Доменная сущность Статус расчёта
- Доменная сущность Транспортное средство
Используется
- Документ Модель расчёта нормативного расхода
- Документ Политика обновления из АИС
- Документ Политика статуса обработки ТС
- Доменная сущность Валидаторы расчёта
- Доменная сущность Журнал расчёта
- Доменная сущность Модель результата расчёта
- Доменная сущность Отобранные модификации ТС
- Доменная сущность Сводная статистика ТС
- Запрос на изменение Учёт фактического потребления и затрат
- Запрос на изменение Эталонная норма и эталонный расход топлива
- Инфраструктура Приём данных из АИС ОИА ПЭО
- Экран Карточка транспортного средства
- Экран Окно подбора модификаций
- Экран Реестр транспортных средств
- BC-модуль Домен ЭНТС
- Epic Расчёт нормативного расхода топлива
- Use Case Получение нормативного расхода топлива по ТС
- Vision Модуль «Эталоны и нормативы потребления автомобильного топлива транспортными средствами ПАО „Россети“»
Связанные артефакты
Документы
- Документ Методика расчёта нормативного расхода топлива
- Доменная сущность Транспортное средство