feat(M01): PLAN 7-4b 앞 절반 — 품셈재료 값 없는 재료 자재품목 새 줄 106 · 모래·자갈 전국지역 분리 · VR관 1본=2.5m
품셈재료 가운데 자재품목에 짝 없어 로직이 부르는 재료 106종(원 분류의 139줄 대응)을 자재품목에 새 줄로 만듦 — 이름·규격·단위·구분·상세구분·출처(품셈재료 키·요구절)만 채우고 값 다섯 칸(물가자료·유통물가·물가정보·거래가격·관급)은 모두 빔 · 비고에 「품셈재료에서 옮김 · 값 미확보」 · 키는 MT030600부터(_키대장.json 갱신). 이름이 옛 분류 규칙에 안 걸리는 93종(건설품셈 13장 플랜트설비 소모품 위주)은 build_자재품목_분류.py 에 정확한-이름 대응표를 새로 두어 채움(정규식 우선순위는 안 건드림 · 기존 30592줄 분류 결과 그대로 · 미분류 25줄 불변). 모래·자갈(중량 kg, 자재품목엔 ㎥ 지역줄만 있음)은 한 줄로 안 굳히고 전국 대표 자리 · 지역별 자리 두 줄씩(4줄) 나눠 둠. 전력은 재료_유가전력.json 에 이미 있어 그대로 둠(안 옮김). VR관(GF000173 막힘 원인)은 고려콘크리트산업 규격표로 1본=2.5m(D300~D1200 공통) 확인 — 그 22줄 비고에 환산 계수·출처 적음(D1500 은 표에 없어 그대로 둠). 품셈재료 자체는 이번엔 안 옮김(다음 일감) · 로직·조합 파일은 안 건드림. typecheck 통과 · test_자재품목_분류.py·test_masterdata_check.py 80 통과(미분류 0 신규). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
This commit is contained in:
@@ -495,6 +495,93 @@ RX = [(a, b, re.compile(c, re.I)) for a, b, c in R]
|
||||
# 화초·수생식물 줄 — 규격이 분·포트·cm·분얼·개화구·엽·년생 꼴 (이름 글자로는 못 가림)
|
||||
식물규격 = re.compile(r"^\d+(\.\d+)?cm$|포트|분얼|개화구|\d엽$|년생|\d+cm분$")
|
||||
|
||||
# PLAN 7-4b — 품셈재료에서 자재품목으로 옮긴 새 줄(값 미확보) 이름 → (구분, 상세구분)
|
||||
# 위 정규식 규칙에 안 걸리는 건설품셈 13장 플랜트설비 소모품 위주 · 이름 그대로(공백만 뺌) 견줌 · 영문은 대소문자 안 가림
|
||||
품셈이관_분류 = {
|
||||
"지수활제": ("도료·방수·접착", "방수·실링"),
|
||||
"jointfiller": ("도료·방수·접착", "방수·실링"),
|
||||
"스티로폴": ("단열·보온", "단열재"),
|
||||
"tarpaper": ("도료·방수·접착", "방수·실링"),
|
||||
"채움재(아스팔트)": ("도료·방수·접착", "방수·실링"),
|
||||
"콘크리트표면강화재(하드너)": ("도료·방수·접착", "도료"),
|
||||
"틈메우기돌": ("석재", "조경석·자연석"),
|
||||
"깃발": ("안전시설", "표지판·지주"),
|
||||
"피복제": ("도료·방수·접착", "도료"),
|
||||
"침식방지안정제": ("식생·종자", "비료·토양개량"),
|
||||
"basechannel": ("건축마감", "천장·바닥·마감재"),
|
||||
"topchannel": ("건축마감", "천장·바닥·마감재"),
|
||||
"축중계(이동식)": ("기계·설비", "측정·시험기기"),
|
||||
"보호막": ("도료·방수·접착", "도료"),
|
||||
"보조강재": ("철근·강재", "형강"),
|
||||
"flux": ("잡재료", "용접·가스"),
|
||||
"질석": ("단열·보온", "단열재"),
|
||||
"정배지": ("건축마감", "천장·바닥·마감재"),
|
||||
"알루미늄핀": ("거푸집·가설재", "거푸집"),
|
||||
"표준보강메시": ("철근·강재", "철망·와이어메쉬"),
|
||||
"고강도메시": ("철근·강재", "철망·와이어메쉬"),
|
||||
"실리콘": ("도료·방수·접착", "방수·실링"),
|
||||
"아스팔트싱글": ("건축마감", "천장·바닥·마감재"),
|
||||
"노즐": ("기계·설비", "기계류"),
|
||||
"nozzle": ("기계·설비", "기계류"),
|
||||
"테르밋용재": ("잡재료", "용접·가스"),
|
||||
"몰드": ("잡재료", "용접·가스"),
|
||||
"골무": ("잡재료", "용접·가스"),
|
||||
"철구(shotball)": ("잡재료", "소모품"),
|
||||
"철편(grit)": ("잡재료", "소모품"),
|
||||
"동력brush": ("잡재료", "소모품"),
|
||||
"wirebrush": ("잡재료", "소모품"),
|
||||
"컴파운드": ("잡재료", "소모품"),
|
||||
"슈": ("기계·설비", "측정·시험기기"),
|
||||
"베인전용로드": ("기계·설비", "측정·시험기기"),
|
||||
"로드": ("기계·설비", "측정·시험기기"),
|
||||
"표준사": ("기계·설비", "측정·시험기기"),
|
||||
"단독콘": ("기계·설비", "측정·시험기기"),
|
||||
"코크스": ("잡재료", "소모품"),
|
||||
"sandpaper": ("잡재료", "소모품"),
|
||||
"여과기": ("잡재료", "소모품"),
|
||||
"세유": ("잡재료", "소모품"),
|
||||
"grease": ("잡재료", "소모품"),
|
||||
"machineoil": ("잡재료", "소모품"),
|
||||
"gasoline": ("잡재료", "소모품"),
|
||||
"galvanizedwire": ("철근·강재", "철선"),
|
||||
"grindingwheel": ("잡재료", "소모품"),
|
||||
"보일유": ("잡재료", "소모품"),
|
||||
"hacksawblade": ("잡재료", "소모품"),
|
||||
"drill": ("기계·설비", "기계류"),
|
||||
"grinderwheel": ("잡재료", "소모품"),
|
||||
"file": ("잡재료", "소모품"),
|
||||
"oilstone": ("잡재료", "소모품"),
|
||||
"광목": ("잡재료", "소모품"),
|
||||
"붕사": ("잡재료", "용접·가스"),
|
||||
"compound": ("잡재료", "소모품"),
|
||||
"3-bond": ("잡재료", "소모품"),
|
||||
"전기용접": ("잡재료", "용접·가스"),
|
||||
"탄소봉": ("잡재료", "용접·가스"),
|
||||
"grinder": ("기계·설비", "기계류"),
|
||||
"돌": ("잡재료", "소모품"),
|
||||
"film": ("기계·설비", "측정·시험기기"),
|
||||
"탈에폭시레신": ("도료·방수·접착", "접착·혼화"),
|
||||
"그라인더돌": ("잡재료", "소모품"),
|
||||
"tarepoxy": ("도료·방수·접착", "도료"),
|
||||
"마린b/t(선박도로용)": ("도료·방수·접착", "도료"),
|
||||
"zincprimer": ("도료·방수·접착", "도료"),
|
||||
"m/coil": ("잡재료", "소모품"),
|
||||
"washer": ("볼트·앵커·철물", "볼트·너트"),
|
||||
"sealtape": ("잡재료", "소모품"),
|
||||
"백묵": ("잡재료", "소모품"),
|
||||
"석필": ("잡재료", "소모품"),
|
||||
"흑welderglass": ("잡재료", "소모품"),
|
||||
"백welderglass": ("잡재료", "소모품"),
|
||||
"오스터날": ("기계·설비", "기계류"),
|
||||
"탭": ("기계·설비", "기계류"),
|
||||
"다이스": ("기계·설비", "기계류"),
|
||||
"정": ("잡재료", "소모품"),
|
||||
"centerpunch": ("기계·설비", "기계류"),
|
||||
"대강": ("잡재료", "소모품"),
|
||||
"유지": ("잡재료", "소모품"),
|
||||
"중유": ("잡재료", "소모품"),
|
||||
}
|
||||
|
||||
|
||||
def 분류(이름: str, 출처: str, 규격: str = ""):
|
||||
n = re.sub(r"\s+", "", 이름 or "")
|
||||
@@ -505,6 +592,8 @@ def 분류(이름: str, 출처: str, 규격: str = ""):
|
||||
for a, b, rx in RX:
|
||||
if rx.search(n):
|
||||
return (a, b)
|
||||
if n.casefold() in 품셈이관_분류:
|
||||
return 품셈이관_분류[n.casefold()]
|
||||
if 규격 and 식물규격.search(규격.replace(" ", "")):
|
||||
return ("식생·종자", "초본·야생화")
|
||||
return ("미분류", None)
|
||||
|
||||
Reference in New Issue
Block a user