fix(B05 배수유역): 369-2 되돌리기가 초안 없는 걸음(저장분)으로 갈 때 = 저장분 다시 받음

- [배관 배치 초기화] 뒤 첫 걸음으로 되돌리면 관 자리만 돌아오고 세월교가 배관으로 남던 흠
- 화면 검증(검증_sub5 · 5180) — 초기화 → 되돌리기 = 세월교 둘 · 관 11 그대로 · ① → 초기화 → 되돌리기 둘 · 다시하기 정상

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
This commit is contained in:
2026-10-17 12:47:00 +09:00
co-authored by Claude Opus 5.5
parent b95b17ca07
commit 8ea1b453ed
+7 -7
View File
@@ -34,6 +34,7 @@ import { snapStructureStation } from "../common_util/common_util_structure_stati
import { createFacilityStore } from "./B05_Profile_UI_Drainage_Facility";
import { mergeFacilityOptions } from "./logic/B05_Profile_UI_Drainage_Facility_Merge";
import { readPendingPipes, writePendingPipes } from "./B05_Profile_Api_Pipes_Draft";
import { pageReplaying } from "./B05_Profile_UI_Profile_History";
import { buildPipeReports } from "./B05_Profile_UI_Drainage_Report";
import { fillFordHeights, fordWaitsOf, waitsFordHeight } from "./B05_Profile_UI_Drainage_Ford_Fill";
import { createDrainageChrome } from "./B05_Profile_UI_Drainage_Chrome";
@@ -592,14 +593,13 @@ export function createDrainagePanel(callbacks: DrainagePanelCallbacks = {}): Dra
const before = pipeEditor.pipes().map((pipe) => pipe.chainage_m);
const next = reconcilePipes(pipeEditor.pipes(), chainages);
if (!next) return; // 같은 목록 — 되돌아온 것이므로 여기서 끊는다
// 되돌리기 = 그 걸음 초안의 속성 · id(369) · 구조물 폼으로 옮겨진 관은 속성을 데려감
const draft = adoptDraftPipes(readPendingPipes(projectId as string), next);
// 되돌리기 = 그 걸음 초안의 속성 · id · 초안 없는 걸음은 저장분(369) · 구조물 폼은 속성 데려감
const pending = pageReplaying() ? readPendingPipes(projectId as string) : null;
if (pageReplaying() && !pending) return void run(loadSaved, true);
const draft = adoptDraftPipes(pending, next);
const after = next.map((pipe) => pipe.chainage_m);
if (draft) facilityStore.replaceFromResponse(draft);
else
facilityStore.follow(
before,
next.map((pipe) => pipe.chainage_m),
);
else facilityStore.follow(before, after);
pipeEditor.setPipes(next);
void analyze();
},