Merge remote-tracking branch 'origin/sub_laptop_3' into sub_laptop_1

This commit is contained in:
2026-09-22 13:53:06 +09:00
5 changed files with 15 additions and 9 deletions
@@ -4296,7 +4296,7 @@
},
{
"종류": "재료",
"요소": "MP000082",
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "M-Poxy I(습식)", "대표": "MT007705"},
"이름": "에폭시",
"단위": "kg",
"수량": "만약(방지망 == '포켓식', 찾기(QC000569, 구분='에폭시').수량, 0)",
@@ -217,7 +217,7 @@
},
{
"종류": "재료",
"요소": "MP000078",
"요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "규격": "색소(M-Green)", "대표": "MT006740"},
"이름": "색소(착색제)",
"단위": "㎏",
"수량": "찾기(QC000274, 구분='색소').수량 / 100",
@@ -8423,7 +8423,7 @@
},
{
"종류": "재료",
"요소": "MP000285",
"요소": {"구분": "잡재료", "상세구분": "고철·기타금속", "규격": "Sn 30%", "대표": "MT001252"},
"이름": "땜납",
"단위": "㎏",
"수량": "0.055",
@@ -86,11 +86,11 @@
{ "키": "MP000075", "원문번호": "복합비료", "이름": "비료", "규격": "복합비료", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT006489", "고르기": null, "비고": "연결: 복합비료 규격 없는 kg 줄" },
{ "키": "MP000076", "원문번호": "피복제", "이름": "피복제", "규격": "화이버/펄프류", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT030610", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030610)로 이음 · 값 미확보" },
{ "키": "MP000077", "원문번호": "침식방지안정제", "이름": "침식방지안정제", "규격": "합성접착제", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT030611", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030611)로 이음 · 값 미확보" },
{ "키": "MP000078", "원문번호": "착색제", "이름": "색소", "규격": "착색제", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT006740) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
{ "키": "MP000078", "원문번호": "착색제", "이름": "색소", "규격": "착색제", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT006740", "고르기": null, "비고": "PLAN 7-4b: 후보 1줄(착색제, M-Green)뿐이라 그대로 이음" },
{ "키": "MP000079", "원문번호": "차선도색 프라이머", "이름": "프라이머", "규격": "융착식 도료 차선도색용", "단위": "kg", "요구절": ["건설품셈 토목 1-8-9 융착식 도료 수동식 재료", "건설품셈 유지관리 2-1-15 4 자재수량"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "도료"}, "비고": "자재품목 후보 19줄 — 지역·규격 선택 필요 (MT003562, MT003588, MT003600 외)" },
{ "키": "MP000080", "원문번호": "낙석방지망 철망", "이름": "철망", "규격": "낙석방지망용", "단위": "㎡", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": null, "고르기": null, "비고": "자재품목 후보 6줄 — 지역·규격 선택 필요 (MT006697, MT007164, MT007165 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
{ "키": "MP000081", "원문번호": "결속선", "이름": "결속선", "규격": "", "단위": "m", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": null, "고르기": {"구분": "철근·강재", "상세구분": "철선", "대표": "MT000194"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT007332)" },
{ "키": "MP000082", "원문번호": "에폭시", "이름": "에폭시", "규격": "", "단위": "kg", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": null, "고르기": null, "비고": "포켓식만 · 자재품목 후보 4줄 — 지역·규격 선택 필요 (MT007705, MT007706, MT007931 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
{ "키": "MP000082", "원문번호": "에폭시", "이름": "에폭시", "규격": "", "단위": "kg", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": "MT007705", "고르기": null, "비고": "PLAN 7-4b: 후보 4줄(주입용 습식·건식·씰링용) 가운데 낙석방지망 앵커 주입에 흔한 주입용 습식으로 이음(사용자 확정 — 값 없어도 넘어감)" },
{ "키": "MP000083", "원문번호": "에폭시 신구콘크리트 접착제", "이름": "Epoxy 신구-콘크리트 접착제", "규격": "", "단위": "kg", "요구절": ["건설품셈 공통 6-1-5"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "자재품목에 같은 품명 없음" },
{ "키": "MP000084", "원문번호": "에폭시 콘크리트고무 접착제", "이름": "Epoxy-콘크리트 고무 접착제", "규격": "", "단위": "kg", "요구절": ["건설품셈 공통 6-1-5"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "자재품목에 같은 품명 없음" },
{ "키": "MP000085", "원문번호": "폼타이 9.5㎜", "이름": "폼타이(Form Tie)", "규격": "9.5㎜", "단위": "본", "요구절": ["건설품셈 공통 6-3-1 주④"], "연결": null, "고르기": null, "비고": "폼타이 값은 「조」 — 본 환산 안 함 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
@@ -293,7 +293,7 @@
{ "키": "MP000282", "원문번호": "비닐시트 3m×3m", "이름": "비닐시트", "규격": "3m×3m", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
{ "키": "MP000283", "원문번호": "방청페인트 DR-80", "이름": "방청페인트", "규격": "DR-80", "단위": "", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "도료", "대표": "MT003378"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003378)" },
{ "키": "MP000284", "원문번호": "페인트 노루표", "이름": "페인트", "규격": "노루표", "단위": "", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "자재품목 후보 47줄 — 지역·규격 선택 필요 (MT003366, MT003367, MT003368 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
{ "키": "MP000285", "원문번호": "땜납 50 : 50", "이름": "땜납", "규격": "50 : 50", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT001251, MT001252) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
{ "키": "MP000285", "원문번호": "땜납 50 : 50", "이름": "땜납", "규격": "50 : 50", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT001252", "고르기": null, "비고": "PLAN 7-4b: 봉땜납 후보 둘(Sn10%·Sn30%) — 원문 50:50 과 정확히는 안 맞아 더 가까운 Sn30% 로 이음(사용자 확정 — 값 없어도 넘어감)" },
{ "키": "MP000286", "원문번호": "붕사", "이름": "붕사", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030661", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030661)로 이음 · 값 미확보" },
{ "키": "MP000287", "원문번호": "Compound 절연용", "이름": "Compound", "규격": "절연용", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030662", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030662)로 이음 · 값 미확보" },
{ "키": "MP000288", "원문번호": "3-Bond 밀착제 No.2", "이름": "3-Bond", "규격": "밀착제 No.2", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030663", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030663)로 이음 · 값 미확보" },
+9 -3
View File
@@ -66,7 +66,11 @@ PM = json.loads((MD / "재료_품셈재료.json").read_text(encoding="utf-8"))["
"용접봉": "잡재료",
"": "잡재료",
"고철": "잡재료",
# PLAN 7-4b 뒤 절반 — 자재품목에 짝 없던 재료 106종을 새 줄로 만들어 이음(값 미확보)
# PLAN 7-4b 뒤 절반 ② — 후보는 있으나 애매해 어제 뺀 것 가운데 셋(값 없어도 넘어감)
"색소": "도료·방수·접착",
"에폭시": "도료·방수·접착",
"땜납": "잡재료",
# PLAN 7-4b 뒤 절반 ① — 자재품목에 짝 없던 재료 106종을 새 줄로 만들어 이음(값 미확보)
"3-Bond": "잡재료",
"BASECHANNEL": "건축마감",
"Center Punch": "기계·설비",
@@ -202,8 +206,10 @@ def test_품셈재료_연결_줄이_제_묶음():
def test_품셈재료_이름과_같은_품명_줄이_한_묶음():
# 「스페이셔(몰탈 블록)」 은 뿌리(「스페이셔」)가 같은 다른 물건(철근 스페이셔, 교량·구조부속)과
# 이름만 겹침 — PLAN 7-4b 뒤 절반이 자재품목 새 줄(시멘트·골재)에 「대표」로 콕 집어 이어
# 실제로는 안 섞임(test_품셈재료_연결_줄이_제_묶음 이 그 연결을 확인) · 이 뿌리-우선 검사만 뺌
제외_뿌리충돌 = {"스페이셔(몰탈 블록)"}
# 실제로는 안 섞임(test_품셈재료_연결_줄이_제_묶음 이 그 연결을 확인) · 이 뿌리-우선 검사만 뺌.
# 색소·에폭시·땜납은 PLAN 7-4b ② — 품셈 이름과 자재품목 이름이 달라(착색제·주입용 에폭시·
# 봉땜납) 대표로 콕 집어 이음 · 뿌리 이름으로는 자재품목에 아예 없어 이 검사 대상 밖.
제외_뿌리충돌 = {"스페이셔(몰탈 블록)", "색소", "에폭시", "땜납"}
idx = collections.defaultdict(list)
for x in ROWS:
idx[_root(x["이름"])].append(x)