fix(B06): [저장]이 「행은 있는데 설계가 빈 측점」도 채우게 함
재생성이 `cross_sections` 행을 지우고 다시 쓰면 `data.design` 에 면적 4키만 남는다. `get_cross_section_designs` 는 `ground_type` 있는 줄만 담으므로 그 상태는 「설계 없음」이고, B08 토적표가 통째로 0 이 됐다(창 셋에서 같은 증상). 원인은 결함이 아니라 분담이었다 — 체인은 재생성 뒤 [확정]을 불러 그 자리를 채웠고, 재생성만 따로 도는 길에는 그 단계가 없었다. 그래서 [확정] 없이도 정본이 서게 한다. - [저장]이 확정과 **같은 조회**(`get_cross_sections_missing_design_chainages`)로 빈 측점을 골라 기본 설계로 채운다. - ⚠ **값이 있는 행은 안 건드린다** — 사용자 조작값·이월분이 거기 있다. 시험으로 잠금. - 실측(route 184): 저장 뒤 DB 설계 62행·38키 복구, 층따기 13,696.8 ㎡, 측구 토사 0.173 / 암 8.886 ㎡ — 파일 기반 값과 일치. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -189,9 +189,15 @@ async def save_sections(
|
||||
)
|
||||
stored_path = await get_project_storage_relative_path(connection, project_id)
|
||||
known = await get_cross_section_chainages(connection, route_id)
|
||||
# 행은 있는데 **설계가 빈** 측점도 채운다(2026-09-09). 「빈 설계」란 `design` 이
|
||||
# 없거나 **`ground_type` 이 없는 것**이다 — 재생성이 행을 다시 쓰면 면적 4키만
|
||||
# 남는데, 그 상태를 화면·B08 이 「설계 없음」으로 읽어 토적표가 통째로 0 이 됐다.
|
||||
# 예전에는 체인이 뒤이어 부르는 [확정]이 이 자리를 채워 가려져 있었다.
|
||||
# ⚠ **값이 있는 행은 건드리지 않는다** — 사용자 조작값·이월분이 거기 있다.
|
||||
missing = await get_cross_sections_missing_design_chainages(connection, route_id)
|
||||
|
||||
project_root = Path(resolve_stored_project_path(stored_path))
|
||||
rowless = await asyncio.to_thread(
|
||||
rowless = missing + await asyncio.to_thread(
|
||||
_rowless_station_chainages,
|
||||
project_root,
|
||||
str(existing["longitudinal_file_path"]),
|
||||
|
||||
Reference in New Issue
Block a user