feat(814-1 5): 시간당 경비 계산식 기계 목록 — 원문에 있는데 빠진 기계 더함
- 기계표 630 대 가운데 어느 계산식(GC000267 ~ 276)에도 없던 384 대를 자료대로 배정(빌더 build_기계목록_빠진기계_814_1) · 연료 · 조종원 = GC000268 92 · 조종원 직종 없음 = GC000275 18 · 조종원 없음 = GC000272 43 · 연료 없음 = GC000276 7 · 손료만 = GC000273 198 · 못 넣음 50 줄(33 대) = 기계표 값 빔 · 범위(「13∼18」) — 지어 넣는 값 없음 - 로직 · 수식 문서 「기계」 목록 끝에 덧붙임(기본값 그대로) — 1,513 문서 기본 · 옵션 표본 18,797 금액 전후 같음 · 시간당 경비 595 대 셈 됨 - 조합(굴착기 + 브레이커 · 집게) = 우리 조합 식 GC000270 · 271 부름 글(`M02_Machine_Hourly.combo`) - 802-2 대조 목록 다시 지음(옵션 표본 수만 늚) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -83,3 +83,24 @@ def hourly(key: str) -> dict[str, Any]:
|
||||
"원문번호": code,
|
||||
**sums,
|
||||
}
|
||||
|
||||
|
||||
def combo(main: str, part: str) -> tuple[str, str] | None:
|
||||
"""조합 기계(굴착기 + 대형 브레이커 · 부착용 집게 · 814-1) → 우리 조합 식 (키, 부름 글)
|
||||
`로직(GC000271, 기계='…', 브레이커='…', 지역='전국평균', …)` — 두 기계가 그 식 고르기에 있을 때만."""
|
||||
try:
|
||||
codes = [str(store.loaded()[1].get(k).get("원문번호") or "") for k in (main, part)]
|
||||
except cm.mf.FormulaError:
|
||||
return None
|
||||
for row in sorted(_family(), key=lambda r: str(r.get("키"))):
|
||||
ins = row.get("입력") or []
|
||||
attach = [i for i in ins if i.get("이름") not in _PLAIN and i.get("고르기")]
|
||||
if len(attach) != 1 or codes[0] not in [str(c) for c in _codes(row)]:
|
||||
continue
|
||||
if codes[1] not in [str(c) for c in attach[0]["고르기"]]:
|
||||
continue
|
||||
given = {"기계": codes[0], attach[0]["이름"]: codes[1]}
|
||||
given |= {i["이름"]: (i.get("고르기") or [""])[0] for i in ins if i["이름"] not in given}
|
||||
args = "".join(f", {k}='{v}'" for k, v in given.items())
|
||||
return str(row["키"]), f"로직({row['키']}{args})"
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user