fix(778-1): 엑셀만 장비 — 괄호 낱말로 하나면 그 기계를 고르기에 둔 기계경비 기초 바로

- SkPatch._add_machine: 기계가 하나로 가려지면 옵션 거꾸로 찾기 없이 _mach_logics 첫 기초 + 기계 입력 · 까닭 = GC000268 옵션 거꾸로 찾기가 규격 수로 기계 고르기를 좁혀 굴착기를 놓치고 GC000267(굴착기(무한궤도) 기계경비)로 떨어짐(타이어 줄 17)
- 굴착기(타이어형) 줄 44 = 모두 GC000268 + 0211-0060 · 기계 못 찾음 4 줄 이음(트럭탑재형 크레인 5ton · 진동기 · 동력분무기 · 대형 브레이커 0.7) · 기계경비 잇기 176 → 180 / 183
- 여덟 파일 기초 80 · SK 37 · 고름 대기 89 그대로 · SK 셈 오류 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-04 12:03:03 +09:00
co-authored by Claude Opus 5.5
parent 026f6c667a
commit b665269093
2 changed files with 11 additions and 7 deletions
+10 -7
View File
@@ -324,19 +324,22 @@ class _Plan:
self.note("장비", "·".join(sorted(m["갈래"])), excel, mine, 규격=spec, 단위="시간")
def _add_machine(self, m: dict[str, Any], line: dict[str, Any]) -> None:
"""엑셀만 장비 → 기계경비 로직 줄(기계 = 그 갈래 · 규격 옵션 거꾸로 찾기 ·
괄호 낱말로 하나면 그 기계 · 로직 = 그 기계를 고르기에 둔 기초 먼저(778-1))."""
"""엑셀만 장비 → 기계경비 로직 줄 — 괄호 낱말로 하나면 그 기계 · 로직 = 그 기계를 고르기에
둔 기초 먼저(778-1) · 아니면 기계 = 그 갈래 · 규격 옵션 거꾸로 찾기."""
fp = finger.empty(line)
fp["장비"] = [{**m, "시간": 1.0, "밑시간": 1.0, "율": []}]
kinds = set(m["갈래"])
eq = elem.machine(str(m.get("글") or ""), kinds, set(m.get("규격") or []))
for code in _mach_logics(self.whole, kinds, eq):
name = " ".join([*m["갈래"], *(f"{x:g}" for x in m.get("규격") or [])])
one = {"이름": name, "단위": "시간", "수량": _num(m["시간"] * self.tb)}
if eq:
code = _mach_logics(self.whole, kinds, eq)[0]
self.add({"종류": "로직", "로직": code, "입력값": {MACH_IN: eq["원문번호"]}, **one})
return
for code in _mach_logics(self.whole, kinds):
got = option.find(code, fp, [])
if got["수준"] <= 1:
name = " ".join([*m["갈래"], *(f"{x:g}" for x in m.get("규격") or [])])
given = {**got["입력"], **({MACH_IN: eq["원문번호"]} if eq else {})}
self.add({"종류": "로직", "로직": code, "입력값": given, "이름": name,
"단위": "시간", "수량": _num(m["시간"] * self.tb)}) # fmt: skip
self.add({"종류": "로직", "로직": code, "입력값": got["입력"], **one})
return
spec = " ".join(f"{x:g}" for x in m.get("규격") or [])
name = "·".join(m["갈래"])
@@ -43,4 +43,5 @@ def test_굴착기_타이어형_EQ000026_세_길_같음():
fake = Fake()
skpatch._Plan._add_machine(fake, m, {"이름": "x", "단위": "㎥"})
assert fake.got["로직"] != combine.MACHINE["굴착기"] # 굴착기(무한궤도) 기계경비 아님
assert fake.got["입력값"] == {skpatch.MACH_IN: "0211-0060"}
assert _key(fake.got["입력값"]["기계"]) == "EQ000026" and fake.got["수량"] == 0.5