diff --git a/resources/master_data/scripts/build_재료_검색어.py b/resources/master_data/scripts/build_재료_검색어.py index 9ed8a227..134ddbcd 100644 --- a/resources/master_data/scripts/build_재료_검색어.py +++ b/resources/master_data/scripts/build_재료_검색어.py @@ -173,9 +173,14 @@ def convert(master: mf.Master, row: dict, item: dict) -> tuple[dict | None, list words = [w for k in ("이름", "규격") for w in str(elem.get(k) or "").split()] targets = {want for _, want in cases} if targets == {None}: - # 지금 같은 단위 후보 0 인 빈 줄 — 검색어는 다른 단위 품목을 잡아 값이 생기거나(금액 바뀜) - # 후보 0 검사에 걸림 · 조건 그대로 두고 목록으로 알림 - return None, cases + # 지금 같은 단위 후보 0 인 빈 줄 — 후보 단위가 줄 단위와 같은 성격(g ↔ kg 등)일 때만 + # 검색어로(값이 생김 · 금액 바뀜 · 줄마다 보고) · 성격이 다르면 빈칸 그대로 + probe = {**base, "검색어": _root(item.get("이름"))} + got = mp.search(master, probe, mau.values(master, row), unit) + if not got or not mp.same_kind(master.get(got[0])["단위"], unit): + return None, cases + name = _core(master.get(got[0]))[0] + return {**base, "검색어": name}, cases if len(targets) == 1: want = master.get(next(iter(targets))) name, *spec = _core(want) diff --git a/resources/master_data/로직_건설품셈_09장_미장공사.json b/resources/master_data/로직_건설품셈_09장_미장공사.json index 60280994..39b1558a 100644 --- a/resources/master_data/로직_건설품셈_09장_미장공사.json +++ b/resources/master_data/로직_건설품셈_09장_미장공사.json @@ -475,7 +475,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "무수축혼화제"}, "이름": "혼화제", "단위": "g", "수량": "만약(혼화제 == '씀', 찾기(QC001356, 구분='혼화제').수량, 0)",