6.0 KiB
6.0 KiB
요구 340-1 조사 — B05 배수유역 업데이트 시점 · [>] 진행 표시 공용 (PLAN 520)
결론: ① 관 바꾸면 세부유역은 이미 자동 다시 셈 — 다만 [업데이트] 결과가 서버에 안 남아 노선 [저장] 뒤엔 관 하나 바꿀 때마다 다시 낡음 ② B06 [>] 때 배수유역 분석이 두 번 돎(첫 번째는 화면에 안 보임) ③ 진행 표시 부품은 ui_template 에 이미 있음 — 화면 잠금과 합치면 [>] 공용.
지금 상태
- [업데이트] —
refresh()→POST /drainage/live(B05_Profile_UI_Drainage_Live.ts:147-171,194) · 서버가 지금 노선으로 전체 유역 + 세부유역 · 작업본에 안 씀(B04_PreProcess_Router_Watershed_Live.py:3-5,77-153).- 낡음 켜짐 = 노선 초안 있을 때(logic/B05_Profile_Drainage_Live.ts:13 · design_pipeline.ts:58) · 서버 답 낡음(Drainage_Panel.ts:301) · 서버 판정 = 노선 지문 x · y 만(B04_PreProcess_Router_Basins.py:512-518 · common_util_drainage_pipes.py:190-199) → 종단 · 횡단 고침은 낡음 안 켬 · 노선 [저장]은 늘 낡음(B05_Profile_Route_Save.py:619).
- 관 추가 · 이동 · 삭제 = 이미 자동 세부유역(Drainage_Panel.ts:145-147,396,623,658).
- 시간 = 전체 분석 5.4
7.2 s · 초안 [업데이트] 813 s · 세부유역만 0.2 s · 노선 저장 체인 7~19 s.
- 노선 모양 바뀜 판정 있음 — 화면
pendingRouteSave(B05_Profile_UI_RouteEdit_Apply.ts:101-124) ·draftMakesStale· 서버route_signature·analysis_route_signature(common_util_drainage_pipes.py:214-231). - 세부유역만 다시 셈 있음 —
POST /drainage/detail-basins(Router_Basins.py:548-561 · 캐시 :201-216) · 막힘 = [업데이트] 결과 안 남음 → 노선 저장 뒤_build_stale(:125-137)로 빠져 다시 낡음(사용자가 「구조물마다 수동」으로 느끼는 원인) · 분석 결과 저장 코드는get_primary_region에만(B04_PreProcess_Router_Watershed.py:536-580). - 뒤로가기 느린 후보 — 되돌리면 저장분 다시 받음(Drainage_Live.ts:182-192 · Panel.ts:385-392) · 묶음이 초안 버림에 최대 2 s 기다림(design_pipeline_page.ts:368-415) · 화면이 요청 끊어도 서버는 계속 셈(Watershed_Live.py:85-89 · 5~13 s CPU).
- B06 [>] → B07 —
confirmAndGo→drainageFirst(확인 창 →side.update()· 잠금 없이) →saveSharedDesign(확정)→ 잠금 →POST /design/save→ 이동(design_shared.ts:412-430,460-541) · 안 보이는 까닭 = 배수유역 칸 기본 접힘(Panel.ts:566-567)이라 「계산 중」(Live.ts:121-124) 가려짐 · 두 번 돎 = [확정] 관 차례recompute=True(Router_Basins.py:608-615 · B06_Section_Router_DesignSave.py:148-151) · 노선 바뀐 채 [>] = 노선 저장 → 물음 → 다시 세움 → 둘째 확정(design_save.ts:284-293 · design_shared.ts:383-399). - 진행 표시 부품 —
showLoadingOverlay(ui_template_elements.ts:226-253 · 글 · 비율 없음) ·createProgressCircle(ui_template_progress.ts:34 · 비율 · 글 · 8 곳) · 칸 안 「불러오는 중」(ui_template_loading.ts:18-56) · 서버 진행 묻기 = 추천 노선(B05_Profile_Router_RouteInitial.py:356-366 · 2 s) · B04 진행 파일(B04_PreProcess_Router_Progress.py:25-47) · B11(3 s) · 저장 차례 이름표(design_save.ts:127-137) · 공용 후보 = 잠금 + 진행 원 + 저장 차례 진행 묻기. - [>] 단추 — 공용 단추(ui_template_help.ts:176-187) → 공용 틀이 이웃 단계 누름(ui_template_workflow_layout.ts:238-245) → 페이지마다 처리 · B05 · B06 design_page.ts:198-203 · B07 B07_DesignDetail_UI_Page.ts:487-523 · B08 B08_Quantity_UI_Page.ts:167-180 · B09 B09_Estimation_UI_Shell.ts:358-381 · 넷 다 「저장 → 단계 완료 → goToWorkflowStage」 → 공용 하나로 묶임.
고칠 길 (창 셋 · 창 1 따로 · 창 2 뒤 창 3)
- 창 1 · ③ 서버 · B04 — Router_Watershed.py:462-580 저장 부분을
_Router_Watershed_Output.py함수로 떼고post_drainage_live가 저장 노선 기준일 때(초안 없음 · 지문 같음) 분석을 남김 → [업데이트] 한 번 뒤 관 · 구조물 조작은 0.2 s 자동 · 화면이 끊을 때 서버 차례 번호 올리는 작은 요청(되돌리기 때 서버 셈 멈춤) · Router_Basins.py(695 줄) 손대지 않음. - 창 2 · 화면 공용 · ui_template + A00 —
setLoadingOverlayProgress(ratio, label)(createProgressCircle 재사용) · b_workflow_nav.tsmoveStage(projectId, route, steps[])(잠금 → 「n/N 이름」 → 실패면 머묾 → 이동) · B07 · B08 · B09 단계 이동을 이 함수로. - 창 3 · A00/design + B06 서버 —
confirmAndGo를moveStage로 ·drainageFirst화면 [업데이트] 걷음(서버 [확정] 관 차례가 한 번만 셈) ·_run_steps.step()진행을 메모리에 ·GET /design/save/progress· 화면 1 s 물음 · 노선 저장 물음 동안 잠금 잠시 멈춤(design_save.ts:285-287).
결정 거리 (추천 먼저)
- 「뒤로가기」 = 되돌리기(Ctrl+Z) / 브라우저 뒤로.
- 저장 노선 기준 [업데이트] 결과를 파생 저장본(노선 지문 열쇠)으로 남김 / 안 남김.
- 노선 초안 중 [업데이트] 뒤 관 조작 자동 셈 = 1차 안 함 / 함.
- B06 [>] 낡음 확인 창 → 잠금판 「배수유역 다시 셈」 단계로 바꿈 / 그대로.
- 진행 정도 = 서버 차례 이름 + n/N + 지난 초 / 화면 단계만.
- 진행 단계 판 누름 · [<] 도 같은 잠금 길 = 함께 / [>] 만.
위험
- 바깥 잠금 걸린 채면 노선 저장 물음 창이 가려짐(design_save.ts:285-287).
- 노선 바뀐 채 [>] = 다시 세움 + 저장 두 번 — 진행판이 다시 마운트를 넘어 이어져야 함.
- [업데이트]가 분석을 남길 때
design/save되돌림 스냅샷(B06_Section_Router_DesignSave.py:222-235)과 부딪힘 → 같은 잠금 또는 잠겨 있으면 안 남김. - 줄 수 — Drainage_Panel.ts 700 · Router_Basins.py 695 → 덧붙임 불가.
- 낡은 시험 고침 — test_512_2 · test_349 · test_347_2.