Расчёт площади ВОК для односкатной крыши

Запрос на изменение Версия: 1.0 done

Реализовать расчёт площади верхних ограждающих конструкций для типа крыши «Односкатная» при прямоугольной форме здания. Формулы уже зафиксированы в методике теплотехнического расчёта (вариант shed_rect); в реализации Ntr.Calc ветки не было, и модели с такой крышей расчёт не проходили.

⟨/⟩ Исходник

1. Источник (как есть)

Одна из задач второго этапа: доработка методики расчёта: реализация расчёта площади верхних ограждающих конструкций для типов крыши: Односкатная, Четырехскатная вальмовая, Четырехскатная шатровая для прямоугольной форрмы здания.

Задача разбита на две: A — односкатная (этот CR) и B — четырёхскатные (вальмовая и шатровая).

2. Разбор

Справочник типов крыши уже содержит запись для односкатной крыши, и в системе есть модели потребления с этим типом. Но расчёт по ним не выполнялся: сопоставление кода справочника с типом расчёта (MapRoofType в CalcInputModelFactory) знало только плоскую и двускатную крышу и на остальных кидало исключение, а секции методики te.attic_wall_area и te.roof_cover_area были реализованы только для этих двух типов. При этом сами формулы для односкатной крыши в методике есть — они были вписаны в неё заранее и перенесены в SDAID вместе с остальным текстом.

2.1. Что в объёме

2.2. Что вне объёма

2.3. Принятые решения

2.4. Смежные находки (вне объёма)

Состав справочника типов крыш расходится с методикой — обнаружено при уточнении кода односкатной крыши:

3. Blast radius

Спецификация:

Документ Правка
te.attic_wall_area правило валидации «Тип крыши: ∈[Плоская, Двускатная]» устарело: тот же раздел уже описывает односкатную, вальмовую и шатровую крышу. Перечень расширен до фактически описанных вариантов.

Правка отмечена в самой секции (Status, Comments) со ссылкой на этот CR — чтобы отличать её от дефекта переноса первого этапа.

Реализация: AtticWallAreaCalculator, RoofCoverAreaCalculator, валидаторы обеих секций, RoofType, CalcInputModelFactory.MapRoofType.

Чего доработка не касается: БД, read-модель, контракты API, swagger, UI.

4. План

  1. ✔ Ветки shed_rect в обоих калькуляторах.
  2. ✔ Снятие ограничения по типу крыши в валидаторах.
  3. ✔ Сопоставление кода tr500 с типом расчёта.
  4. Контрольный пример CalcControlExample4GarageShedRoofTests — ожидает контрольных значений: расчёт контрольных чисел тем же алгоритмом, который проверяется, ничего не доказывает.

5. Acceptance criteria

6. Итог

Пункт Статус
Расчёт площади стен чердака и покрытия крыши для односкатной крыши выполнено
Сопоставление кода справочника tr500 выполнено
Правка методики (перечень типов крыши в правилах валидации) выполнено
Контрольный пример ожидает контрольных значений