From 1d1b1c8c0bd1e113e55d6de3bfff57ef538c5a92 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 30 Aug 2026 18:18:16 +0900 Subject: [PATCH] =?UTF-8?q?fix(B03):=20=EC=9E=90=EB=8F=99=20=EC=84=A4?= =?UTF-8?q?=EA=B3=84=20=EC=B2=B4=EC=9D=B8=EC=9D=B4=20=ED=99=95=EC=A0=95?= =?UTF-8?q?=EB=90=9C=20=EC=A7=80=ED=91=9C=EB=A9=B4=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=EA=B0=92=EC=9D=84=20=EC=93=B0=EA=B2=8C=20=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LAS 없이 설계한 프로젝트에서 WF1이 sheet_laplace로 자동 확정한 직후 체인이 config 기본값(csf/dtm)으로 B05 경로 계산을 걸어 404로 끊겼다. ERROR 자동 설계 체인 중단(B05 경로 계산 실패): status=404 stage 1 스냅샷(get_surface_confirmation_params)을 읽어 실제 확정값을 쓴다. B05 초기화가 부르는 경로도 같은 함수라 함께 고쳐진다. 검증: 프로젝트 5d18ebe3(LAS 없이 도엽등고선으로 생성)에서 체인 재실행 — B05 route_id=112 연장 354.84m, 횡단 19개, 배수유역 관 4개·세부유역 8개까지 완주. 확정 선택값 {"source_filter": "sheet_laplace", "method": "dtm", "smooth": true} 그대로 사용. --- B03_FileInput/B03_FileInput_Service_Chain.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/B03_FileInput/B03_FileInput_Service_Chain.py b/B03_FileInput/B03_FileInput_Service_Chain.py index a2c96f2b..b7b69883 100644 --- a/B03_FileInput/B03_FileInput_Service_Chain.py +++ b/B03_FileInput/B03_FileInput_Service_Chain.py @@ -149,7 +149,7 @@ async def run_auto_design_chain( save_initial_snapshot, ) from common_util.common_util_storage import resolve_stored_project_path - from common_util.common_util_surface_confirmation import surface_confirmation_defaults + from common_util.common_util_surface_confirmation import get_surface_confirmation_params from config.config_db import get_db_pool pool = get_db_pool() @@ -177,8 +177,11 @@ async def run_auto_design_chain( logger.warning("자동 설계 체인 중단(계획노선 CSV 없음): project_id=%s", project_id) return None - # 3) B05 경로 계산 — WF1 자동 확정과 같은 config 기본값을 쓴다. - defaults = surface_confirmation_defaults() + # 3) B05 경로 계산 — WF1이 **실제로 확정한** 선택값(stage 1 스냅샷)을 그대로 쓴다. + # config 기본값(csf/dtm)을 쓰면 LAS 없이 설계한 프로젝트에서 있지도 않은 모델을 + # 가리켜 404로 체인이 끊긴다(2026-08-30 실사고). + async with pool.acquire() as connection: + defaults = await get_surface_confirmation_params(connection, str(project_id)) request = RouteSolveRequest( filter_key=str(defaults["source_filter"]), method=str(defaults["method"]),