fix(재료): 단위 거름에서 규격 조건 풀어 재시도 · 환산 필요 재료 목록

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8
This commit is contained in:
2026-09-20 23:04:43 +09:00
co-authored by Claude Sonnet 5
parent ea3ba6ece8
commit 5c31234b36
3 changed files with 108 additions and 4 deletions
@@ -0,0 +1,100 @@
# 단위 환산 필요 · 자재품목에 없는 재료 (고르기 칸 비운 줄)
단위 거름 뒤 고르기 칸이 빈 품셈재료 — 환산 적용은 엔진 몫, 여기는 값 정리만. 표기만 다른 단위(m·M · kg·㎏ · EA·개 · ㎡·m²)는 빌더가 같게 봐 이미 되살림(파형강관 등 3줄).
## ㉮ 이름은 자재품목에 있으나 단위가 달라 환산 필요 — 18줄
| 키 | 재료 | 호표 단위 | 자재품목 단위(줄 수) | 필요한 환산 | 원문·계수 |
|---|---|---|---|---|---|
| MP000003 | 모래 | kg | ㎥(36), EA(1) | ㎥ ↔ kg | 산림품셈 10-12-1 주② 단위중량 QF000338 은 토사 1.9·발파암 2.4 ton/㎥ 뿐 — 모래 값 없음 |
| MP000011 | 강봉 | EA | M(3) | 개 ↔ m | 길이 원문 없음 |
| MP000014 | 폼타이(Form Tie) | 본 | 조(1) | 본 ↔ 조 | 1조=몇 본 원문 없음 |
| MP000022 | 잡석 | ㎥ | EA(3) | ㎥ ↔ EA | 원문 없음 |
| MP000069 | 우드칩(목재칩) | ㎥ | ㎡(1), 포(1) | ㎥ ↔ ㎡·포 | 원문 없음 |
| MP000085 | 폼타이(Form Tie) | 본 | 조(1) | 본 ↔ 조 | 1조=몇 본 원문 없음 |
| MP000086 | 폼타이(Form Tie) | 본 | 조(1) | 본 ↔ 조 | 1조=몇 본 원문 없음 |
| MP000103 | CANOPY(출입구채양) | 매 | 개(2) | 매 ↔ 개 | 원문 없음 |
| MP000107 | 중도리(PURIN) | 개 | M(1) | 개 ↔ m | 길이 원문 없음 |
| MP000109 | T-BAR | m | kg(12), 매(3), 개(2), EA(2) | m ↔ kg | m 당 무게 원문 없음 |
| MP000126 | 사다리(플라잉넷) | m | 개(2) | m ↔ 개 | 길이 원문 없음 |
| MP000135 | 철근 | m | Ton(496), kg(1) | m ↔ ton | 철근 ㎏/m 표 확인 필요(건설품셈 철근콘크리트) |
| MP000185 | 실링재 | m | kg(5) | m ↔ kg | 단면 원문 없음 |
| MP000193 | 혼화제 | g | kg(1) | g ↔ kg | ×1000 — 환산만 |
| MP000219 | 규사 | ㎥ | kg(6), 포(1), 마대(1) | ㎥ ↔ kg | 단위중량 원문 없음 |
| MP000252 | 기름 | | 본(1) | ℓ ↔ 본 | 병 용량 원문 없음 |
| MP000292 | 함석 | 대 | 매(1) | 대 ↔ 매 | 1대=몇 매 원문 없음 |
| MP000300 | 규사 | ㎥ | kg(6), 포(1), 마대(1) | ㎥ ↔ kg | 단위중량 원문 없음 |
## ㉰ 자재품목 그 묶음에 이름이 같은 줄이 없음 — 69줄
| 키 | 재료 | 호표 단위 | 묶음 |
|---|---|---|---|
| MP000005 | 자갈 또는 부순돌 | kg | 시멘트·골재/골재 |
| MP000018 | 철재 거푸집(콘크리트 포장) | 본 | 거푸집·가설재/거푸집 |
| MP000019 | 핀폴 | 개 | 거푸집·가설재/거푸집 |
| MP000040 | 집수정 뚜껑 | 개 | 맨홀·수로·그레이팅/맨홀 |
| MP000041 | 원형거푸집(PE 10회) | 조 | 거푸집·가설재/거푸집 |
| MP000042 | 원형거푸집(PE 10회) | 조 | 거푸집·가설재/거푸집 |
| MP000044 | 강관동바리 내관 | 본 | 거푸집·가설재/동바리·비계 |
| MP000045 | 강관동바리 외관 | 본 | 거푸집·가설재/동바리·비계 |
| MP000050 | 실런트 | kg | 도료·방수·접착/방수·실링 |
| MP000054 | 탄성고무받침 | ㎡ | 교량·구조부속/신축이음·받침 |
| MP000061 | 소재(원목) | ㎥ | 목재/각재·판재 |
| MP000062 | 각재·판재 | ㎥ | 목재/각재·판재 |
| MP000068 | 농약 | 병 | 식생·종자/농약·약제 |
| MP000089 | 합성수지(P.E) 원형 맨홀 거푸집 | 조 | 거푸집·가설재/거푸집 |
| MP000090 | 합성수지(P.E) 원형 맨홀 거푸집 | 조 | 거푸집·가설재/거푸집 |
| MP000091 | 합성수지(P.E) 원형 맨홀 거푸집 | 조 | 거푸집·가설재/거푸집 |
| MP000092 | 합성수지(P.E) 원형 맨홀 거푸집 | 조 | 거푸집·가설재/거푸집 |
| MP000093 | 합성수지(P.E) 원형 맨홀 거푸집 | 조 | 거푸집·가설재/거푸집 |
| MP000097 | 외부PANEL(벽) | 매 | 건축마감/천장·바닥·마감재 |
| MP000098 | 외부PANEL (창문) | 매 | 건축마감/천장·바닥·마감재 |
| MP000099 | 외부PANEL (철재문) | 매 | 건축마감/천장·바닥·마감재 |
| MP000100 | 내부PANEL(벽) | 매 | 건축마감/천장·바닥·마감재 |
| MP000102 | PANEL JOINT(AL-BAR) | 조 | 건축마감/천장·바닥·마감재 |
| MP000104 | 박공PANEL | 매 | 건축마감/천장·바닥·마감재 |
| MP000108 | 천장판 | 매 | 건축마감/천장·바닥·마감재 |
| MP000110 | 콘테이너형 가설건축물 | 개 | 거푸집·가설재/가설건축물 |
| MP000111 | 콘테이너형 가설건축물 | 개 | 거푸집·가설재/가설건축물 |
| MP000112 | 콘테이너형 가설건축물 | 개 | 거푸집·가설재/가설건축물 |
| MP000114 | 조립말비계 가새 | 조 | 거푸집·가설재/동바리·비계 |
| MP000130 | 방진망 | ㎡ | 잡재료/소모품 |
| MP000143 | 서비스볼트 | 본 | 볼트·앵커·철물/볼트·너트 |
| MP000149 | 보통볼트 | 본 | 볼트·앵커·철물/볼트·너트 |
| MP000153 | 치장벽돌 | 매 | 콘크리트제품/경계석·블록 |
| MP000162 | 조이너 | m | 건축마감/천장·바닥·마감재 |
| MP000164 | 테라조 | m | 건축마감/천장·바닥·마감재 |
| MP000165 | 합성수지 걸레받이 | m | 건축마감/천장·바닥·마감재 |
| MP000166 | 중밀도섬유판 걸레받이 | m | 목재/합판 |
| MP000173 | 방습필름 | ㎡ | 잡재료/소모품 |
| MP000181 | 벤토나이트씰재 | L | 도료·방수·접착/방수·실링 |
| MP000188 | 와이어메시 | 매 | 철근·강재/철망·와이어메쉬 |
| MP000190 | 조이너 및 몰딩 | m | 건축마감/천장·바닥·마감재 |
| MP000194 | 무수축모르타르 | ㎏ | 시멘트·골재/모르타르 |
| MP000197 | 아르곤가스 | ℓ | 잡재료/용접·가스 |
| MP000200 | 철물 | ㎏ | 철근·강재/철근 |
| MP000205 | 바퀴숫돌 | 개 | 잡재료/소모품 |
| MP000206 | 바퀴숫돌 | 개 | 잡재료/소모품 |
| MP000207 | 바퀴숫돌 | 개 | 잡재료/소모품 |
| MP000208 | 바퀴숫돌 | 개 | 잡재료/소모품 |
| MP000217 | 무기질아연말 샵프라이머 | ℓ | 도료·방수·접착/도료 |
| MP000222 | 스레트실테이프 | ㎝ | 잡재료/소모품 |
| MP000248 | 보온 성형물 | m | 단열·보온/단열재 |
| MP000251 | Sheet Metal Screw | 개 | 잡재료/소모품 |
| MP000256 | 걸레 | ㎏ | 잡재료/소모품 |
| MP000266 | 시너 | | 도료·방수·접착/도료 |
| MP000270 | 시너 | | 도료·방수·접착/도료 |
| MP000282 | 비닐시트 | Sh | 잡재료/소모품 |
| MP000311 | 전기용접봉 | ㎾h | 잡재료/용접·가스 |
| MP000313 | 연마석 | 개 | 잡재료/소모품 |
| MP000317 | 톱날 | 개 | 잡재료/소모품 |
| MP000320 | 가루비누 | ㎏ | 잡재료/소모품 |
| MP000321 | 걸레 | ㎏ | 잡재료/소모품 |
| MP000331 | 사포 | 매 | 잡재료/소모품 |
| MP000332 | 비닐시드 | ㎡ | 잡재료/소모품 |
| MP000333 | 용접장갑 | 족 | 잡재료/용접·가스 |
| MP000346 | 용접면 | 개 | 잡재료/용접·가스 |
| MP000347 | 용접홀다 | 개 | 잡재료/용접·가스 |
| MP000348 | 용접앞치마 | 개 | 잡재료/용접·가스 |
| MP000350 | 써비스볼트 | 본 | 볼트·앵커·철물/볼트·너트 |
| MP000362 | 폴리에틸렌필름 | ㎡ | 잡재료/소모품 |
@@ -96,7 +96,11 @@ def 고르기(row: dict, market: list[dict]) -> tuple[dict | None, str]:
cond = {"구분": sub, "상세구분": detail, **대표}
if want and any(all(w in mm.plain_spec(r.get("규격")) for w in want) for r in hits):
cond = {"구분": sub, "상세구분": detail, "규격": row["규격"], **대표}
hits = [r for r in hits if all(w in mm.plain_spec(r.get("규격")) for w in want)]
narrow = [r for r in hits if all(w in mm.plain_spec(r.get("규격")) for w in want)]
got = _단위(row, cond, narrow, market)
if got[0]:
return got
cond = {k: v for k, v in cond.items() if k != "규격"} # 규격까지 좁히면 단위 맞는 줄이 없음 — 규격 없이 다시
return _단위(row, cond, hits, market)
@@ -34,17 +34,17 @@
{ "키": "MP000023", "원문번호": "VR관 ∅800㎜", "이름": "VR관(소켓식)", "규격": "∅800㎜", "단위": "m", "요구절": ["산림품셈 12-11-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "PVC관"}, "비고": "VR관 값은 「본」 — m 환산 안 함" },
{ "키": "MP000024", "원문번호": "고무링 ∅800㎜", "이름": "고무링(VR관)", "규격": "∅800㎜", "단위": "개", "요구절": ["산림품셈 12-11-1"], "연결": "MT009721", "고르기": null, "비고": "연결: VR관고무링 D800 이름·규격 같음" },
{ "키": "MP000025", "원문번호": "흄관 ∅800㎜", "이름": "흄관", "규격": "∅800㎜", "단위": "m", "요구절": ["산림품셈 12-11-2-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "흄관", "규격": "∅800㎜", "대표": "MT014981"}, "비고": "A·B형 갈림 · 값은 「본」 — m 아님" },
{ "키": "MP000026", "원문번호": "파형강관 ∅800㎜", "이름": "파형강관", "규격": "∅800㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": null, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
{ "키": "MP000026", "원문번호": "파형강관 ∅800㎜", "이름": "파형강관", "규격": "∅800㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관"}, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음" },
{ "키": "MP000027", "원문번호": "커플링밴드 ∅800㎜", "이름": "커플링밴드(파형강관)", "규격": "∅800㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": "MT015309", "고르기": null, "비고": "연결: 파형강관 커플링밴드 Φ800 관급 줄" },
{ "키": "MP000028", "원문번호": "VR관 ∅1000㎜", "이름": "VR관(소켓식)", "규격": "∅1000㎜", "단위": "m", "요구절": ["산림품셈 12-11-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "PVC관"}, "비고": "VR관 값은 「본」 — m 환산 안 함" },
{ "키": "MP000029", "원문번호": "고무링 ∅1000㎜", "이름": "고무링(VR관)", "규격": "∅1000㎜", "단위": "개", "요구절": ["산림품셈 12-11-1"], "연결": "MT009723", "고르기": null, "비고": "연결: VR관고무링 D1000 이름·규격 같음" },
{ "키": "MP000030", "원문번호": "흄관 ∅1000㎜", "이름": "흄관", "규격": "∅1000㎜", "단위": "m", "요구절": ["산림품셈 12-11-2-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "흄관", "규격": "∅1000㎜", "대표": "MT014983"}, "비고": "A·B형 갈림 · 값은 「본」 — m 아님" },
{ "키": "MP000031", "원문번호": "파형강관 ∅1000㎜", "이름": "파형강관", "규격": "∅1000㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": null, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
{ "키": "MP000031", "원문번호": "파형강관 ∅1000㎜", "이름": "파형강관", "규격": "∅1000㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관"}, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음" },
{ "키": "MP000032", "원문번호": "커플링밴드 ∅1000㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1000㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": "MT015311", "고르기": null, "비고": "연결: 파형강관 커플링밴드 Φ1000 관급 줄" },
{ "키": "MP000033", "원문번호": "VR관 ∅1200㎜", "이름": "VR관(소켓식)", "규격": "∅1200㎜", "단위": "m", "요구절": ["산림품셈 12-11-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "PVC관"}, "비고": "VR관 값은 「본」 — m 환산 안 함" },
{ "키": "MP000034", "원문번호": "고무링 ∅1200㎜", "이름": "고무링(VR관)", "규격": "∅1200㎜", "단위": "개", "요구절": ["산림품셈 12-11-1"], "연결": "MT009725", "고르기": null, "비고": "연결: VR관고무링 D1200 이름·규격 같음" },
{ "키": "MP000035", "원문번호": "흄관 ∅1200㎜", "이름": "흄관", "규격": "∅1200㎜", "단위": "m", "요구절": ["산림품셈 12-11-2-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "흄관", "규격": "∅1200㎜", "대표": "MT014985"}, "비고": "A·B형 갈림 · 값은 「본」 — m 아님" },
{ "키": "MP000036", "원문번호": "파형강관 ∅1200㎜", "이름": "파형강관", "규격": "∅1200㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": null, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
{ "키": "MP000036", "원문번호": "파형강관 ∅1200㎜", "이름": "파형강관", "규격": "∅1200㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관"}, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음" },
{ "키": "MP000037", "원문번호": "커플링밴드 ∅1200㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1200㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": "MT015313", "고르기": null, "비고": "연결: 파형강관 커플링밴드 Φ1200 관급 줄" },
{ "키": "MP000038", "원문번호": "지수활제", "이름": "지수활제", "규격": "", "단위": "g", "요구절": ["산림품셈 12-11-1"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
{ "키": "MP000039", "원문번호": "모르타르 1:2", "이름": "접합몰탈", "규격": "1:2", "단위": "㎥", "요구절": ["산림품셈 12-11-2-1", "건설품셈 건축 2-1-4", "건설품셈 건축 3-2-2"], "연결": null, "고르기": {"구분": "시멘트·골재", "상세구분": "모르타르", "규격": "1:2"}, "비고": "자재품목에 같은 품명 없음" },