diff --git a/E05_StabReport/E05_StabReport_Build.py b/E05_StabReport/E05_StabReport_Build.py index cd9251d4b..0aea12383 100644 --- a/E05_StabReport/E05_StabReport_Build.py +++ b/E05_StabReport/E05_StabReport_Build.py @@ -27,9 +27,9 @@ from datetime import date from pathlib import Path from typing import Any +from common_util.common_util_derived_store import read_derived from E01_StabRegister import E01_StabRegister_Source as source from E02_StabGround import E02_StabGround_Model as ground_model -from common_util.common_util_derived_store import read_derived from E03_StabSection import E03_StabSection_View as view2d from E03_StabSection.E03_StabSection_Engine_Model import final_surface from E03_StabSection.E03_StabSection_Router import KIND_STATION, _latest_summary, _overrides @@ -342,14 +342,19 @@ def fill_conditions(sheet: dict[str, Any], inputs: dict[str, Any]) -> None: _set(sheet, "B22", float(ground.get("road_surcharge_kpa") or 0)) defaults = {m["id"]: m for m in ground_model.load_defaults()["materials"]} names = {m["id"]: m["name"] for m in ground.get("materials") or []} - rows: list[tuple[dict[str, Any], str]] = [(m, "전체") for m in ground.get("materials") or []] + mapped = set((ground.get("label_map") or {}).values()) # 지반 라벨에 이은 지층만 「전체」 + rows: list[tuple[dict[str, Any], str]] = [ + (m, "전체" if m["id"] in mapped else "-") for m in ground.get("materials") or [] + ] for zone in ground.get("zones") or []: span = f"{float(zone['from_m']):g} ~ {float(zone['to_m']):g} m" for layer, where in (("soil", "위"), ("rock", "아래")): mid = zone.get(layer) match = next((m for m in ground["materials"] if m["id"] == mid), None) if match: - rows.append((match, f"{span} {where} 지층")) + depth = zone.get("soil_thickness_m") if layer == "soil" else None + more = f" · 두께 {float(depth):g} m" if depth is not None else "" + rows.append((match, f"{span} {where} 지층{more}")) if zone.get("soil_thickness_m") is not None and not (zone.get("soil") or zone.get("rock")): rows.append(({"name": "토층 두께"}, f"{span} · {zone['soil_thickness_m']:g} m")) for i, (m, span) in enumerate(rows): diff --git a/resources/tester/test_534_3_e05_report.py b/resources/tester/test_534_3_e05_report.py index b0de02cb3..9c486114b 100644 --- a/resources/tester/test_534_3_e05_report.py +++ b/resources/tester/test_534_3_e05_report.py @@ -1,8 +1,8 @@ """534-3(빌더 · storage · 길) — E05 안정성평가 보고서 `E05_StabReport_Build` · `_Store` · `_Router`. -가짜 E 프로젝트(E03 파생 저장본 꼴 2D 요약 · 측점별 저장본 · 대표 단면 켬/끔 · 지반 조건 · 3D 저장본 하나 · -복사본 읽기는 바꿔 끼움)로 측점 수 = 줄 수 · N.G 수 · 그림 파일 수 · 갱신 뒤 사용자 몫 불변 · -덮임 목록 · 초기화 · 판 409 · xlsx 되읽기 · PDF 쪽 수. +가짜 E 프로젝트(E03 파생 저장본 꼴 2D 요약 · 측점별 저장본 · 대표 단면 켬/끔 · 지반 조건 · +3D 저장본 하나 · 복사본 읽기는 바꿔 끼움)로 측점 수 = 줄 수 · N.G 수 · 그림 파일 수 · +갱신 뒤 사용자 몫 불변 · 덮임 목록 · 초기화 · 판 409 · xlsx 되읽기 · PDF 쪽 수. """ import io