feat(b09): 공기 초안 — 메인 탭 공기 · 공기집계 · 공기산출 (draft 폴더 · 252)

설계내역서 항목 줄 역전개(단위당 장비 시간 · 인) → 작업일수 · 착공 연월부터 달마다 작업가능일 채움 · 공휴일 표 2024~2040 · 본 코드 훅은 draft 없으면 건너뜀

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LLCk2y5xE8YGVgjbTntWsY
This commit is contained in:
2026-10-11 01:51:32 +09:00
co-authored by Claude Opus 5.5
parent f598a9a530
commit f87831533c
10 changed files with 1193 additions and 3 deletions
+7
View File
@@ -50,6 +50,11 @@ from common_util.common_util_auth import verify_session
from M02_MasterTemplete import M02_Layer_Access as access
from M02_MasterTemplete.M02_Item_Snapshot import importer
try: # 252 공기 초안(draft 폴더 · 지우면 공기 탭 원천 없이)
from B09_Estimation.draft import B09_Draft_Schedule_Source as schedule_draft
except ImportError: # pragma: no cover
schedule_draft = None
router = APIRouter(prefix="/api/projects", tags=["B09 Estimation"])
@@ -144,6 +149,8 @@ async def payload(project_id: UUID, root: Path) -> dict[str, Any]:
user = await asyncio.to_thread(store.read_user, root)
calc = {**user, "haul_refs": await asyncio.to_thread(haul_refs, root)}
sheets, summary = await asyncio.to_thread(compute_twice, root, inputs, calc)
if schedule_draft:
schedule_draft.attach(inputs, sheets, user)
return {
"inputs": inputs,
"user": user,