feat(M02): 옛 일위대가 조합 → 열마다 일위대가 문서 옮기기 — 시스템 층 돌림 (39-1b B7)
- M02_Labor_Migrate: 층마다 열마다 labor 문서 · 여러 열이 쓰던 조합은 열마다 복사 · 키 없는 열 = 빈 일위대가 · 다시 돌려도 같음 · --storage(회사 · 개인 층) · --dry-run - M02_Labor_Doc.from_combo: 옛 조합(실무문서 UA · UC · UP) → 일위대가 문서 몸(본뜬 = 층 · 주인 · 키) - 시스템 층 결과: labor/item1(← UA000008) · item2(빈) · item3(← UA000001) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYJJRCfHfdCGNhmXTjQKV7
This commit is contained in:
@@ -125,6 +125,28 @@ def clean(doc: Any) -> dict[str, Any]:
|
||||
return out
|
||||
|
||||
|
||||
def from_combo(key: str) -> dict[str, Any]:
|
||||
"""옛 일위대가 조합(마스터 UA = 실무문서 · 회사 UC · 개인 UP) → 일위대가 문서 몸 —
|
||||
담은로직 · 단위 복사 · 입력값 {} · 수량 null · 자재 [] · `본뜬` = 그 조합(층 · 주인 · 키).
|
||||
없는 조합은 404."""
|
||||
from M02_MasterTemplete import M02_MasterTemplete_Combo_Store as combos
|
||||
|
||||
row = combos.find(key)
|
||||
if row is None:
|
||||
raise store.StoreError(404, f"없는 일위대가 조합 「{key}」")
|
||||
layer, owner = combos.where(key) or (None, None)
|
||||
return {
|
||||
"단위": row.get("단위"),
|
||||
"본뜬": {"층": layer, "주인": owner, "키": key},
|
||||
"담은로직": [
|
||||
{"로직": one.get("로직"), "메모": one.get("메모"), "입력값": {}, "수량": None}
|
||||
for one in row.get("담은로직") or []
|
||||
if isinstance(one, dict)
|
||||
],
|
||||
"자재": [],
|
||||
}
|
||||
|
||||
|
||||
# ── 알약 · 면적 값 ────────────────────────────────────────────────────
|
||||
def material_key(code: str) -> str:
|
||||
return f"{MATERIAL_HEAD}{code}"
|
||||
|
||||
Reference in New Issue
Block a user