feat(508-3b · c B07 도면 지문 · 미리받기 · 평면도 저장본): 도면마다 입력 지문(목록 API fingerprint · 횡단 장 측점마다 stations) · 미리받기 = 페이지 밖 모듈(가벼운 것 먼저 · 평면도 끝 · 연 도면 맨 앞 · 페이지 옮겨도 이어 감 · 돌아오면 지문 바뀐 도면만 · 실패 한 번 다시 → 「다시 받기」 · 담는 장 40) · 고른 도면 받는 동안 다른 탭 · 페이지로 옮김(받는 중 CAD 시계 없음 · 고침 안 묻힘) · 평면도 응답 = _derived/b07_plan_<도면>/<지문>.json 그대로(최근 2벌 · 확정 저장본 · 지문 못 셈 = 안 씀) · 평면도 등고선 · 계류 0.1 mm 솎음 + 배경 좌표 1 µm · 값 꼴 · 종단 경고 글은 지문에서 뺌 — 요구 325

검증_sub2: B06 측점 하나 [저장] 뒤 다시 받음 = 바뀐 6 장(횡단 그 장 · 측점 하나) · 평면도 지형 첫 열기 1.3~4.4 s → 저장본 0.2~0.4 s · 안 받은 유역도 = 받는 중 → 4.4 s 뒤 보임

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-22 17:50:59 +09:00
co-authored by Claude Opus 5.5
parent 80020c26c5
commit 9027903b5a
14 changed files with 1370 additions and 107 deletions
@@ -52,12 +52,17 @@ def _extents_from(output: Any) -> dict[int | float, Extent]:
return extents
async def cross_overlay_extents(project_id: UUID | str, route_id: int) -> dict[int | float, Extent]:
"""{측점: (오프셋 최소, 최대, 표고 최소, 최대)} — 덧그림이 없는 측점은 빠진다."""
async def cross_overlay_extents(
project_id: UUID | str, route_id: int, response: Any = None
) -> dict[int | float, Extent]:
"""{측점: (오프셋 최소, 최대, 표고 최소, 최대)} — 덧그림이 없는 측점은 빠진다.
`response` = 이미 받은 종횡단 상세(지문 · 508-3b) — 없으면 여기서 받음."""
from B06_Section.B06_Section_Router import get_section_detail
try:
response = await get_section_detail(UUID(str(project_id)), route_id)
if response is None:
response = await get_section_detail(UUID(str(project_id)), route_id)
dump = getattr(response, "model_dump", None)
if dump is None: # JSONResponse = 실패
return {}