auto: 2026-09-20 22:34 (ESD_LAPTOP)
This commit is contained in:
@@ -53,6 +53,15 @@ OVERRIDE = {
|
||||
"MP000317": ("잡재료", "소모품"), # 톱날
|
||||
"MP000357": ("잡재료", "화약"), # 카트리지(화약)
|
||||
"MP000362": ("잡재료", "소모품"), # 폴리에틸렌필름
|
||||
# 이름이 같은 자재품목 줄이 하나뿐인 재료 — 그 줄을 대표로
|
||||
"MP000105": ("건축마감", "천장·바닥·마감재", "MT007262"), # ROOFSHEET
|
||||
"MP000168": ("건축마감", "천장·바닥·마감재", "MT008074"), # 초배지
|
||||
"MP000289": ("잡재료", "고철·기타금속", "MT003499"), # 함석
|
||||
"MP000292": ("잡재료", "고철·기타금속", "MT003499"),
|
||||
"MP000307": ("잡재료", "고철·기타금속", "MT003499"),
|
||||
"MP000312": ("잡재료", "고철·기타금속", "MT003499"),
|
||||
"MP000318": ("잡재료", "고철·기타금속", "MT003499"),
|
||||
"MP000339": ("잡재료", "고철·기타금속", "MT003499"),
|
||||
}
|
||||
NO_GROUP = "자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음"
|
||||
NO_ROW = "자재품목에 그 묶음 줄이 없음"
|
||||
@@ -70,18 +79,20 @@ def 고르기(row: dict, market: list[dict]) -> tuple[dict | None, str]:
|
||||
got = OVERRIDE[key]
|
||||
if got is None:
|
||||
return None, NO_GROUP
|
||||
sub, detail = got
|
||||
sub, detail, *rep = got
|
||||
else:
|
||||
sub, detail = 분류(row.get("이름"), "")
|
||||
rep = []
|
||||
if sub == "미분류":
|
||||
return None, NO_GROUP
|
||||
hits = [r for r in market if r.get("구분") == sub and r.get("상세구분") == detail]
|
||||
if not hits:
|
||||
return None, NO_ROW
|
||||
대표 = {"대표": rep[0]} if rep else {}
|
||||
want = [mm.plain_spec(w) for w in str(row.get("규격") or "").replace(",", " ").split()]
|
||||
if want and any(all(w in mm.plain_spec(r.get("규격")) for w in want) for r in hits):
|
||||
return {"구분": sub, "상세구분": detail, "규격": row["규격"]}, ""
|
||||
return {"구분": sub, "상세구분": detail}, ""
|
||||
return {"구분": sub, "상세구분": detail, "규격": row["규격"], **대표}, ""
|
||||
return {"구분": sub, "상세구분": detail, **대표}, ""
|
||||
|
||||
|
||||
def main(show: bool) -> int:
|
||||
|
||||
Reference in New Issue
Block a user