diff --git a/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py b/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py index cfa70987..5cd6e413 100644 --- a/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py +++ b/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py @@ -33,6 +33,8 @@ from datetime import datetime, timezone from pathlib import Path from typing import Any +from B08_Quantity.B08_Quantity_Build_WorkItemMaster_Forms import judged_form + ROOT = Path(__file__).resolve().parent.parent SOURCE = ROOT / "resources" / "data_cost_input_value" / "pum_forest_2026.json" OUT_DIR = ROOT / "resources" / "data_work_item_master" @@ -609,6 +611,8 @@ def build() -> dict[str, Any]: number = section_number(section) chapter = number.split("-")[0] if number else None form, why = detect_form(table, chapter) + # 사람이 가른 형태가 자동 판정을 이긴다 — 표마다 까닭 한 줄(미판정 표 판정, 2026-09-13). + form, why = judged_form(table["table_id"], number) or (form, why) # ⚠ **본문이 정본이다.** 표 안을 긁는 쪽은 보조 — 비고에 적힌 다른 기준 # (「10㎡당」 같은 참고 문구)을 그 표의 밑수로 잘못 물어 온다. # 실제로 13-3-1 이 본문 `(단위: ㎥당)` 인데 표 안 긁기가 `10㎡` 를 물어 왔다. diff --git a/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Forms.py b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Forms.py new file mode 100644 index 00000000..6e0f4f07 --- /dev/null +++ b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Forms.py @@ -0,0 +1,158 @@ +"""공종 마스터 — **사람이 가른 표 형태** (2026-09-13 축 C 1장 · 미판정 표 판정). + +자동 판정(`detect_form`)이 못 가르거나(undetermined 76표) 잘못 가른 표만 싣는다. +표마다 **왜 그렇게 갈랐는지 한 줄** — 원문 `(산림청고시 제2025-82호) 산림사업 표준품셈.md`. + +⚠⚠ 뒤집히면 20배 틀림 — `productivity`(1÷값) / `requirement`(값÷밑수)는 **표 머리와 표 바로 위 + 본문의 단위 표현**으로만 가른다. 행 이름·비고의 직종 이름에 끌려 읽지 않는다. +⚠ **못 가른 표는 싣지 않는다** — undetermined 로 남는다(막갈이 깊이표·드론운반 인원 등 밑수 불명). +⚠ `coefficient`·`reference` 로 가른 표는 일위대가 줄로 안 읽힌다(자원 축이 건너뜀) — 시공능력 + 공식 계수는 형태와 상관없이 공식 읽기가 표를 직접 본다. +⚠ 표 번호는 원천 차례로 매긴 것이라 **절 번호를 함께 대조**한다 — 어긋나면 빌드를 멈춘다. +""" + +from __future__ import annotations + +#: 표 번호 → (절 번호, 형태, 까닭). +FORM_JUDGMENTS: dict[str, tuple[str, str, str]] = { + # ── 제2장 재료 기준 ───────────────────────────────────────────── + "F0044": ( + "2-1-1", + "reference", + "기계별 주연료(ℓ/일·대)·잡품(%) — 행이 자원이 아니라 기계, 재료비 산출 기준", + ), + "F0045": ("2-1-1", "reference", "위와 같은 모양(2드럼 케이블윈치)"), + "F0047": ( + "2-1-2", + "reference", + "기계별 경유(ℓ/일·대)·잡품(%) — [주]③ 「1일당 소요량」, 행이 기계", + ), + "F0048": ("2-1-3", "reference", "머리 「소요비용(원)」 — 품이 아니라 교체 1회당 금액"), + "F0054": ("2-1-5", "requirement", "본문 「(본당)」 + 행 「소금처리량(g)」 — 본당 재료 소요량"), + "F0063": ( + "2-1-13", + "reference", + "「소모율 0.00125개/hr」 — 기계 시간당 소모품, 공종 밑수가 아님", + ), + # ── 제5장 조림·녹화 ───────────────────────────────────────────── + "F0100": ("5-3-1", "reference", "수종별 묘목 규격(소·중·대묘) 표"), + "F0101": ("5-3-1", "reference", "간장·근원경 규격 기준 표"), + "F0105": ("5-3-4", "coefficient", "지주목 미설치 감률 「인력품의 10%·20%」"), + "F0107": ("5-3-5", "coefficient", "위와 같은 감률(흉고직경 표)"), + "F0137": ("5-24-2", "reference", "머리 「종자배합비율(%)」 조견표"), + "F0138": ("5-24-2", "reference", "위와 같은 조견표(기타 적용지역)"), + "F0146": ("5-29", "coefficient", "행이 K(버킷계수)·f·E·Cm — 굴착기 작업량 공식 계수"), + # ── 제7장 수확·운재 ───────────────────────────────────────────── + "F0187": ("7-9-2", "coefficient", "본문 「(단위 : %)」 — 집재재적·거리별 수집량 증가율"), + "F0189": ("7-11", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 대당 일 작업량"), + "F0190": ("7-11", "productivity", "위와 같음(최대집재거리 80m 이하)"), + "F0194": ("7-13", "reference", "검척 산출 예시(말구직경×개수) 표"), + "F0196": ( + "7-15-1", + "productivity", + "표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량, 「회수」 줄은 참고", + ), + "F0197": ( + "7-15-2", + "productivity", + "표 바로 위 「(㎥/1대, 1일)」 — 「운재량」 줄이 작업량, [주]① 1대 1일", + ), + "F0198": ("7-16", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량"), + "F0199": ("7-17", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량"), + "F0200": ("7-18", "productivity", "표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량"), + # ── 제8장 방제 ────────────────────────────────────────────────── + "F0205": ("8-2-1", "reference", "약제 이름·제형 목록"), + "F0208": ("8-2-2", "reference", "선정약제 목록 + 원액 주입량(㎖/㎝) 기준 — 품 표는 따로 있음"), + "F0212": ("8-2-3", "reference", "위와 같은 선정약제 목록"), + "F0216": ("8-2-4", "reference", "위와 같은 선정약제 목록"), + "F0218": ("8-2-5", "reference", "위와 같은 선정약제 목록"), + "F0453": ( + "8-2-3", + "reference", + "〔부록 2〕 산림사업별 적용 가능 공종 목록 — 절 경계가 밀려 붙음", + ), + "F0220": ( + "8-3", + "productivity", + "머리 「벌목조재 (㎥/인)·무더기 훈증 (RM/인)·그루터기 박피 (본/인)」 — 인당 작업량", + ), + "F0221": ("8-3", "coefficient", "본문 「(단위: %)」 — 수종·직경별 지조율"), + "F0222": ("8-3", "coefficient", "머리 「비율(수간재적의 %)」 — 근주재적 산정율"), + "F0227": ("8-6-1", "reference", "기종별 희석배수별 약제량(L, 1회) — 살포 계산표"), + "F0231": ("8-6-3", "reference", "희석배수별 약제소요량(㎖) — 물의 양 대비 계산표"), + # ── 제9장 토공 — 시공능력 공식 계수 ──────────────────────────── + "F0281": ("9-15-1", "coefficient", "행이 K·f·E·Cm — [주]② Q1=3600×q×K×f×E/Cm"), + "F0282": ("9-15-2", "coefficient", "행이 T·L·E·q — 불도저 작업량 공식 계수"), + "F0284": ("9-16-2", "coefficient", "행이 V·W·E·D — [주]② Q=1000×V×W×E×D×f/N"), + "F0285": ("9-16-3", "coefficient", "흡입준비·운반·흡입·대기 시간 — 살수차 사이클 시간"), + "F0287": ("9-18", "coefficient", "행이 K·f·E·Cm — [주]① Q1=3600×q×K×f×E/Cm"), + "F0295": ("9-22", "coefficient", "행이 K·f·E·Cm — [주]③ Q1=3600×q×K×f×E/Cm"), + # ── 제10장 운반 ───────────────────────────────────────────────── + "F0300": ("10-3-3", "reference", "「운반비·하차비」 적용 항목 — 값이 없는 구성 안내"), + "F0301": ("10-4", "coefficient", "t1·t2·t3·t4 — 트레일러 운반 사이클 시간"), + "F0308": ("10-7-4", "coefficient", "1사이클당 운반량 q — 모노레일 공식 계수"), + "F0309": ("10-7-4", "coefficient", "본문 「(단위: 분/1회당)」 — 적재·짐부리기 시간"), + "F0316": ("10-9-1", "reference", "규격별 1회당 표준 운반량(kg·개·㎡) — 적재 기준"), + "F0319": ("10-11", "coefficient", "행이 L·E·q0 — [주]② q=3.2×e, Cm 공식 계수"), + "F0320": ("10-12-1", "coefficient", "행이 K·E0·Cm — 굴착기 적재 공식 계수"), + "F0321": ("10-12-1", "coefficient", "적재·t2·적하 시간 — 덤프트럭 사이클 공식 계수"), + "F0324": ( + "10-13-2", + "reference", + "드론운반 단가산출 항목(준비시간·왕복비행시간 식) — [주] 일본 산출 예", + ), + # ── 제11·12장 ─────────────────────────────────────────────────── + "F0328": ("11-4", "coefficient", "행이 q·k·f·E — [주]① Q=3600×q×k×f×E/Cm"), + "F0358": ("12-2", "reference", "시설유형 Type-Ⅰ~Ⅳ 적용 기준 설명"), + "F0360": ("12-2", "reference", "현장조건 Type-Ⅰ~Ⅲ 적용 기준 설명"), + "F0388": ("12-34-4", "reference", "「재료비 JOINT FILLER」 항목만 — 값이 없는 구성 안내"), + "F0390": ("12-36", "reference", "제작비·운송비·설치비 「견적처리」"), + "F0392": ("12-38-1", "coefficient", "사용횟수별 잔존율(12회 25%·25회 10%)"), + "F0394": ("12-38-2", "coefficient", "부자재 요율 「주자재비의 24%·52%·79%」"), + "F0396": ("12-38-3", "reference", "설치 유형(복잡·보통·간단) 적용 시설 설명"), + # ── 제13장 구조물 ─────────────────────────────────────────────── + "F0400": ("13-2-3", "reference", "큰돌 직경별 뒷길이 기준(㎝)"), + "F0406": ( + "13-3", + "reference", + "〈돌쌓기의 개수 및 중량의 표준〉 — [주] 인력 돌쌓기·돌붙임 기준", + ), + "F0408": ( + "13-4-3", + "reference", + "고임돌 소요량(㎥/㎡) — 자재 원단위표(B08 고임돌표가 씀). 품으로 세우면 자재를 두 번 셈", + ), + "F0410": ( + "13-4-4", + "reference", + "[주]① 채움 콘크리트 소요량(㎥/㎡) — 자재 원단위표(B08 채움표가 씀). 품이면 두 번 셈", + ), + "F0411": ("13-4-4", "reference", "[주]⑨ 성토 뒤채움 조약돌 두께(㎝) 기준"), + "F0412": ( + "13-4-4", + "reference", + "[주]⑩ 뒷길이 표준(㎝) — 자동 판정이 「(m)」에 걸려 소요량형으로 오판", + ), + "F0413": ( + "13-4-4", + "reference", + "[주]⑪ 표준경사(1:n) — 자동 판정이 소요량형으로 오판, 찰쌓기(인력)를 막음", + ), + "F0429": ("13-10-2", "coefficient", "[주]⑥ 관입률별 계수"), + "F0439": ("13-12-2", "coefficient", "[주]⑦ 높이·기울기 할증(%)"), + "F0446": ("13-15-2", "reference", "작업조건(어려운·쉬운) 구분 기준"), +} + + +def judged_form(table_id: str, number: str | None) -> tuple[str, str] | None: + """사람이 가른 `(형태, 까닭)`. 없으면 `None`. 절 번호가 어긋나면 멈춘다.""" + found = FORM_JUDGMENTS.get(table_id) + if found is None: + return None + section, form, why = found + if section != number: + raise ValueError( + f"표 형태 판정 {table_id} 의 절 {section} 이 원천의 {number} 와 다릅니다 — " + "원천 표 차례가 바뀌었으니 판정을 다시 대조할 것" + ) + return form, f"사람 판정 — {why}" diff --git a/resources/data_work_item_master/_manifest.json b/resources/data_work_item_master/_manifest.json index 4169de1c..f138b9f5 100644 --- a/resources/data_work_item_master/_manifest.json +++ b/resources/data_work_item_master/_manifest.json @@ -1,7 +1,7 @@ { "schema_version": "1.0", "dataset_id": "data_work_item_master_manifest", - "generated_at": "2026-09-13T19:52:49+09:00", + "generated_at": "2026-09-13T21:50:44+09:00", "built_by": "B08_Quantity/B08_Quantity_Build_WorkItemMaster.py", "source": { "dataset_id": "pum_forest", @@ -12,18 +12,18 @@ "files": [ { "file": "work_item_master_2026-01-01.json", - "sha256": "6d1b46ce4e619f0f828dbf111e05a50c0bc22cff969fca1e38d5736f6e7dd440", - "size_bytes": 861142 + "sha256": "9da259311e5b24c92c8423b423d2b0f4b0b2bb3e7fc2a4eb41aec9cae25b6dc0", + "size_bytes": 862856 }, { "file": "form_undetermined_2026-01-01.json", - "sha256": "7334dab9385bc1615a9cdb557ba814482e9a63d83b9e1232946918bfd8b5577f", - "size_bytes": 37139 + "sha256": "c835699596bf57ffbda9f72a773a72116ebe48c2a2f79ae232ba5784ec9842c7", + "size_bytes": 6447 }, { "file": "basis_missing_2026-01-01.json", - "sha256": "bc3b92c991e03ddd6a2ca837e4a03a0729e3022fb783f741e6c504f5cb3a2813", - "size_bytes": 15905 + "sha256": "f850742268dcfb1bcc878e8b062ef44bc6a11d773074163ebb8ba1dec21a6d0d", + "size_bytes": 16790 } ] } \ No newline at end of file diff --git a/resources/data_work_item_master/basis_missing_2026-01-01.json b/resources/data_work_item_master/basis_missing_2026-01-01.json index 97f9d2b6..1d66cb0e 100644 --- a/resources/data_work_item_master/basis_missing_2026-01-01.json +++ b/resources/data_work_item_master/basis_missing_2026-01-01.json @@ -352,6 +352,18 @@ "pum_form": "requirement", "line": 3673 }, + { + "pum_table_id": "F0189", + "section": "7-11. 동력상하차기(우드그래플) 집재-수확", + "pum_form": "productivity", + "line": 3723 + }, + { + "pum_table_id": "F0190", + "section": "7-11. 동력상하차기(우드그래플) 집재-수확", + "pum_form": "productivity", + "line": 3731 + }, { "pum_table_id": "F0191", "section": "7-11. 동력상하차기(우드그래플) 집재-수확", @@ -364,6 +376,36 @@ "pum_form": "requirement", "line": 3763 }, + { + "pum_table_id": "F0196", + "section": "7-15-1. 수확", + "pum_form": "productivity", + "line": 3864 + }, + { + "pum_table_id": "F0197", + "section": "7-15-2 숲가꾸기, 병해충방제", + "pum_form": "productivity", + "line": 3878 + }, + { + "pum_table_id": "F0198", + "section": "7-16. 소형 포워더 운재", + "pum_form": "productivity", + "line": 3898 + }, + { + "pum_table_id": "F0199", + "section": "7-17. 소형트럭 운재", + "pum_form": "productivity", + "line": 3912 + }, + { + "pum_table_id": "F0200", + "section": "7-18. 지조운반(포워더 활용)", + "pum_form": "productivity", + "line": 3926 + }, { "pum_table_id": "F0202", "section": "8-1-2. 약제주입병", @@ -442,6 +484,12 @@ "pum_form": "requirement", "line": 4320 }, + { + "pum_table_id": "F0220", + "section": "8-3. 소각, 매몰, 훈증, 박피", + "pum_form": "productivity", + "line": 4348 + }, { "pum_table_id": "F0224", "section": "8-5. 페르몬 유인트랩", @@ -646,18 +694,6 @@ "pum_form": "requirement", "line": 7087 }, - { - "pum_table_id": "F0412", - "section": "13-4-4. 찰쌓기(인력)", - "pum_form": "requirement", - "line": 7174 - }, - { - "pum_table_id": "F0413", - "section": "13-4-4. 찰쌓기(인력)", - "pum_form": "requirement", - "line": 7185 - }, { "pum_table_id": "F0424", "section": "13-8. 막돌쌓기", diff --git a/resources/data_work_item_master/form_undetermined_2026-01-01.json b/resources/data_work_item_master/form_undetermined_2026-01-01.json index 9724f909..33c46bed 100644 --- a/resources/data_work_item_master/form_undetermined_2026-01-01.json +++ b/resources/data_work_item_master/form_undetermined_2026-01-01.json @@ -4,251 +4,6 @@ "effective_date": "2026-01-01", "note": "형태를 못 정한 표. 사람이 보고 productivity/requirement/coefficient 로 확정할 것.", "items": [ - { - "pum_table_id": "F0044", - "section": "2-1-1. 휘발유․오일", - "headers": [ - "기계명(주재료)", - "주연료 (ℓ/일,대)", - "잡품 (주연료비의 %)" - ], - "first_rows": [ - [ - "아키아윈치(휘발유)", - "6.5", - "30" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0045", - "section": "2-1-1. 휘발유․오일", - "headers": [ - "기계명(주재료)", - "주연료 (ℓ/일,대)", - "잡품 (주연료비의 %)" - ], - "first_rows": [ - [ - "2드럼 케이블윈치(휘발유)", - "9.8", - "30" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0047", - "section": "2-1-2. 경유", - "headers": [ - "기계명", - "주연료 (ℓ/일,대)", - "잡품 (주연료비의 %)", - "적용기준" - ], - "first_rows": [ - [ - "트랙터 부착 기계", - "26.0", - "40", - "" - ], - [ - "굴삭기 부착 기계", - "20.8", - "30", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0048", - "section": "2-1-3. 우드그래플 소모품", - "headers": [ - "품 명", - "소요비용(원)" - ], - "first_rows": [ - [ - "트랙 접지력 보강", - "800,000" - ], - [ - "블레이드 및 실린더 교체", - "3,000,000" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0054", - "section": "2-1-5. 약제(농약) 및 친환경비닐랩", - "headers": [ - "주두부직경(㎝)", - "2㎝미만", - "2~6㎝미만", - "6~8㎝미만", - "8㎝이상" - ], - "first_rows": [ - [ - "소금처리량(g)", - "20", - "40", - "60", - "80" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0063", - "section": "2-1-13. 파쇄", - "headers": [ - "소모품", - "소모율", - "가격(원)", - "기타" - ], - "first_rows": [ - [ - "메인파쇄기날", - "0.00125개/hr", - "-", - "" - ], - [ - "분쇄기날", - "0.005개/hr", - "-", - "42개 사용" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0100", - "section": "5-3-1. 나무식재", - "headers": [ - "수종별", - "소 묘", - "중 묘", - "대 묘" - ], - "first_rows": [ - [ - "소나무", - "1-1(노)", - "2-0(용)", - "1-1-2(노), 2-2(용)" - ], - [ - "낙엽송", - "", - "1-1, 2-0(용)", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0101", - "section": "5-3-1. 나무식재", - "headers": [ - "구분", - "침엽수", - "활엽수" - ], - "first_rows": [ - [ - "소묘", - "간장 20cm미만", - "간장 30cm미만" - ], - [ - "중묘", - "간장 20cm이상 40cm미만 또는 간장 40cm이상이고 근원경 8mm미만", - "간장 30cm이상 60cm미만 또는 간장 60cm이상이고 근원경 11mm미만" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0105", - "section": "5-3-4. 교목식재(나무높이)", - "headers": [ - "인력시공시", - "기계시공시" - ], - "first_rows": [ - [ - "인력품의 10%", - "인력품의 20%" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0107", - "section": "5-3-5. 교목식재(흉고직경)", - "headers": [ - "인력시공시", - "기계시공시" - ], - "first_rows": [ - [ - "인력품의 10%", - "인력품의 20%" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0137", - "section": "5-24-2. 뿜어붙이기-기계/마사토", - "headers": [ - "복원목표", - "식 생 구 분", - "종자배합비율(%)" - ], - "first_rows": [ - [ - "초본 위주형", - "관목류", - "20~40" - ], - [ - "초본, 야생화류", - "40~80", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0138", - "section": "5-24-2. 뿜어붙이기-기계/마사토", - "headers": [ - "복원목표", - "식 생 구 분", - "종자배합비율(%)" - ], - "first_rows": [ - [ - "초본 위주형", - "관목류", - "10∼40" - ], - [ - "초본, 야생화류", - "40∼80", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, { "pum_table_id": "F0140", "section": "5-26-1. 막갈이", @@ -326,28 +81,6 @@ ], "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" }, - { - "pum_table_id": "F0146", - "section": "5-29. 복사이식", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "K(버킷계수)", - "0.9", - "" - ], - [ - "f(체적환산계수)", - "1/1.3", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, { "pum_table_id": "F0169", "section": "7-1-1. 수확", @@ -373,116 +106,6 @@ ], "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" }, - { - "pum_table_id": "F0187", - "section": "7-9-2. 숲가꾸기, 소나무재선충병방제", - "headers": [ - "노선별 집재재적(㎥/ha)", - "집재거리" - ], - "first_rows": [ - [ - "100m 이하", - "150m 이하", - "200m 이하", - "250m 이하", - "" - ], - [ - "0~20㎥", - "17", - "19", - "23", - "27" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0189", - "section": "7-11. 동력상하차기(우드그래플) 집재-수확", - "headers": [ - "집 재 재 적 (㎥/ha)", - "최대집재거리 : 40m 이하", - "소요 인력" - ], - "first_rows": [ - [ - "원목의 길이", - "", - "", - "", - "", - "", - "" - ], - [ - "1.2m", - "1.8m", - "2.1m", - "2.7m", - "3.6m", - "", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0190", - "section": "7-11. 동력상하차기(우드그래플) 집재-수확", - "headers": [ - "집 재 재 적 (㎥/ha)", - "최대집재거리 : 80m 이하", - "소요 인력" - ], - "first_rows": [ - [ - "원목의 길이", - "", - "", - "", - "", - "", - "" - ], - [ - "1.2m", - "1.8m", - "2.1m", - "2.7m", - "3.6m", - "", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0194", - "section": "7-13. 검척", - "headers": [ - "재장", - "말구직경", - "낙엽송(개수)", - "경급×개수" - ], - "first_rows": [ - [ - "2.1m", - "6", - "2", - "12" - ], - [ - "8", - "11", - "88", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, { "pum_table_id": "F0195", "section": "7-14. 원목 운반-수확", @@ -514,471 +137,6 @@ ], "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" }, - { - "pum_table_id": "F0196", - "section": "7-15-1. 수확", - "headers": [ - "구분", - "주행거리(m이하)", - "인력구분" - ], - "first_rows": [ - [ - "100", - "200", - "300", - "400", - "500", - "600", - "700", - "800", - "900", - "1000", - "1200", - "", - "" - ], - [ - "회수", - "10.4", - "9.97", - "9.51", - "9.06", - "8.60", - "8.14", - "7.69", - "7.22", - "6.77", - "6.31", - "5.85", - "건설기계운전기사1명" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0197", - "section": "7-15-2 숲가꾸기, 병해충방제", - "headers": [ - "구 분", - "운반거리(㎞ 이하)", - "인력구분" - ], - "first_rows": [ - [ - "0.5", - "1.0", - "1.5", - "2.0", - "2.5", - "3.0", - "3.5", - "4.0", - "4.5", - "5.0", - "", - "" - ], - [ - "작업회수", - "8.6", - "6.3", - "5.0", - "4.1", - "3.5", - "3.1", - "2.7", - "2.4", - "2.2", - "2.0", - "건설기계운전기사 1인" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0198", - "section": "7-16. 소형 포워더 운재", - "headers": [ - "구분", - "주행거리(m이하)", - "인력구분" - ], - "first_rows": [ - [ - "100", - "200", - "300", - "400", - "500", - "600", - "700", - "800", - "900", - "1000", - "1200", - "", - "" - ], - [ - "회수", - "22.97", - "19.20", - "16.50", - "14.46", - "12.87", - "11.60", - "10.55", - "9.68", - "8.94", - "8.31", - "7.28", - "건설기계운전기사 1명" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0199", - "section": "7-17. 소형트럭 운재", - "headers": [ - "구분", - "운반거리(m이하)", - "인력구분" - ], - "first_rows": [ - [ - "100", - "200", - "300", - "400", - "500", - "600", - "700", - "800", - "900", - "1000", - "", - "" - ], - [ - "회수", - "23.8", - "20.5", - "18.0", - "16.1", - "14.5", - "13.3", - "12.2", - "11.3", - "10.5", - "9.8", - "건설기계 운전기사 1명" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0200", - "section": "7-18. 지조운반(포워더 활용)", - "headers": [ - "구 분", - "운반거리(m이하)", - "인력구분" - ], - "first_rows": [ - [ - "100", - "200", - "300", - "400", - "500", - "600", - "700", - "800", - "900", - "1000", - "", - "" - ], - [ - "회 수", - "22.9", - "17.1", - "13.7", - "11.4", - "9.8", - "8.6", - "7.6", - "6.9", - "6.2", - "5.7", - "건설기계 운전기사 1명" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0205", - "section": "8-2-1. 소나무재선충병", - "headers": [ - "구 분", - "제 형" - ], - "first_rows": [ - [ - "아바멕틴", - "유제 1.8%, 분산성액제 1.8%, 미탁제 1.8%" - ], - [ - "에마멕틴벤조에이트", - "유제 2.15%, 액제 2%, 미탁제 2.15%" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0208", - "section": "8-2-2. 솔잎혹파리", - "headers": [ - "선정약제", - "원액 주입량", - "비고" - ], - "first_rows": [ - [ - "티아메톡삼 분산성액제 15%", - "0.2㎖/㎝", - "" - ], - [ - "디노테퓨란(15)․에마멕틴벤조에이트(4.5) 분산성액제 19.5%", - "0.2㎖/㎝", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0212", - "section": "8-2-3. 솔껍질깍지벌레", - "headers": [ - "선정약제", - "원액 주입량", - "비고" - ], - "first_rows": [ - [ - "디노테퓨란(15)․에마멕틴벤조에이트(4.5) 분산성액제 19.5%", - "0.5㎖/㎝", - "" - ], - [ - "이미다클로프리드 분산성액제 20%", - "0.6㎖/㎝", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0216", - "section": "8-2-4. 솔나방", - "headers": [ - "선정약제", - "원액 주입량", - "비고" - ], - "first_rows": [ - [ - "아바멕틴(1.8)·설폭사플로르(4.2) 분산성액제 6%", - "0.4㎖/㎝", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0218", - "section": "8-2-5. 푸사리움가지마름병", - "headers": [ - "선정약제", - "원액 주입량", - "비고" - ], - "first_rows": [ - [ - "테부코나졸 유탁제 25%", - "0.5㎖/㎝", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0220", - "section": "8-3. 소각, 매몰, 훈증, 박피", - "headers": [ - "경급별 (㎝)", - "벌목조재 (㎥/인)", - "소운반 (㎥/인)", - "무더기 훈증 (RM/인)", - "그루터기 훈증 (본/인)", - "소각 (㎥/인)", - "매몰 (㎥/인)", - "그루터기 박피 (본/인)", - "원목 박피 (본/인)" - ], - "first_rows": [ - [ - "6", - "1.13", - "5.41", - "14.40", - "169.5", - "7.22", - "1.50", - "100.0", - "19.5" - ], - [ - "8", - "1.18", - "5.50", - "14.73", - "151.5", - "7.39", - "1.50", - "100.0", - "19.5" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0221", - "section": "8-3. 소각, 매몰, 훈증, 박피", - "headers": [ - "수종 가슴 높이 지름", - "소나무", - "낙엽송", - "참나무", - "산오리 나무", - "들오리 나무", - "이태리 포플러", - "아까시 나무" - ], - "first_rows": [ - [ - "4cm", - "", - "32", - "", - "27", - "37", - "35", - "24" - ], - [ - "6", - "", - "28", - "", - "24", - "42", - "29", - "23" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0222", - "section": "8-3. 소각, 매몰, 훈증, 박피", - "headers": [ - "기 준", - "적용대상 수종", - "비율(수간재적의 %)", - "비 고" - ], - "first_rows": [ - [ - "중부지방소나무", - "소나무, 곰솔, 잣나무", - "25", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0227", - "section": "8-6-1. 유인헬기방제", - "headers": [ - "구 분", - "물탱크 용량", - "희석배수", - "유효 살포량/1회", - "원액량" - ], - "first_rows": [ - [ - "소형헬기 (AS350)", - "800", - "8배", - "500", - "62.5" - ], - [ - "16배", - "31.3", - "", - "", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0231", - "section": "8-6-3. 지상방제", - "headers": [ - "물의양 희석 배수", - "10ℓ (0.5말)", - "20ℓ (1말)", - "50ℓ (2.5말)", - "100ℓ (5말)", - "200ℓ (10말)", - "400ℓ (20말)", - "500ℓ (25말)", - "600ℓ (30말)" - ], - "first_rows": [ - [ - "250배", - "40.0", - "80.0", - "200.0", - "400.0", - "800.0", - "1,600.0", - "2,000.0", - "2,400.0" - ], - [ - "500배", - "20.0", - "40.0", - "100.0", - "200.0", - "400.0", - "800.0", - "1,000.0", - "1,200.0" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, { "pum_table_id": "F0248", "section": "8-2-13 대형브레이커(2025)」, 「건설공사 표준품셈 공통부문, 1-2-3 토질. 3. 체적환산계수적용(2025)」 참조", @@ -998,186 +156,6 @@ ], "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" }, - { - "pum_table_id": "F0281", - "section": "9-15-1. 답(畓)구간", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "K(버킷계수)", - "0.9", - "" - ], - [ - "f(토량환산계수)", - "1/1.30", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0282", - "section": "9-15-2. 답(畓)외구간", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "T(표토두께)", - "0.2m", - "" - ], - [ - "L(운반거리)", - "20m", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0284", - "section": "9-16-2. 노체다짐", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "V(다짐속도,km/hr)", - "4", - "" - ], - [ - "W(롤러 유효폭,m)", - "1.9", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0285", - "section": "9-16-3. 살수", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "흡입준비(t1)", - "5분", - "" - ], - [ - "운반(t2)", - "15 km/hr", - "L/V×2×60" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0287", - "section": "9-18. 층따기", - "headers": [ - "적용장비", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "굴착기 (무한궤도, 0.7㎥)", - "K", - "0.9", - "" - ], - [ - "f", - "1/1.3", - "", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0295", - "section": "9-22. 섞기", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "K(버킷계수)", - "0.9", - "" - ], - [ - "f(토량환산계수)", - "1/1.25", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0300", - "section": "10-3-3. 혼합골재", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "운반비", - "골재원 → 현장(덤프 15ton)", - "" - ], - [ - "하차비", - "1회", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0301", - "section": "10-4. 중기운반", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "운반", - "트레일러운반 (20TON)", - "t1=20min", - "" - ], - [ - "t2=운반시간 참조", - "", - "", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, { "pum_table_id": "F0304", "section": "10-6-3. 기타 임업자재", @@ -1226,156 +204,6 @@ ], "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" }, - { - "pum_table_id": "F0308", - "section": "10-7-4. 모노레일 운반", - "headers": [ - "구 분", - "콘크리트", - "토사ㆍ석재", - "블록ㆍ제 자재 등" - ], - "first_rows": [ - [ - "차량구분", - "바스켓 차량", - "보통차량", - "" - ], - [ - "단궤도", - "0.3㎥", - "0.3㎥", - "600kg, 0.3㎥" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0309", - "section": "10-7-4. 모노레일 운반", - "headers": [ - "구 분", - "콘크리트", - "토사ㆍ석재 등", - "블록ㆍ제 자재 등" - ], - "first_rows": [ - [ - "시간(분)", - "4.0", - "4.0", - "6.0" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0316", - "section": "10-9-1. 자재의 1회당 표준 운반량", - "headers": [ - "규격 구분", - "1t미만", - "1t이상 2t미만", - "2t이상 3t미만", - "3t이상 4t미만", - "4t이상 5t미만", - "비고" - ], - "first_rows": [ - [ - "콘크리트 블 록", - "350kg(10.9개)", - "530kg(16.8개)", - "720kg(22.8개)", - "910kg(28.7개)", - "1100kg(34.7개)", - "" - ], - [ - "목제형틀", - "170kg(14㎡)", - "220kg(18㎡)", - "270kg(22㎡)", - "320kg(26㎡)", - "370kg(30㎡)", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0319", - "section": "10-11. 불도저 운반", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "L", - "20m", - "", - "" - ], - [ - "E", - "토사", - "0.55", - "자연상태,불량" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0320", - "section": "10-12-1. 토사", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "K", - "0.9(0.55)", - "동 일", - "" - ], - [ - "E0", - "토사", - "0.60(불량)", - "임 도" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0321", - "section": "10-12-1. 토사", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "적재(t1)", - "굴착기", - "적재방법에 따라 산출", - "" - ], - [ - "t2", - "V1(적재)", - "5 km/hr", - "왕복시간" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, { "pum_table_id": "F0322", "section": "10-13-1. 드론운반", @@ -1426,54 +254,6 @@ ], "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" }, - { - "pum_table_id": "F0324", - "section": "10-13-2. 인력운반", - "headers": [ - "항 목", - "내 용", - "적용치" - ], - "first_rows": [ - [ - "① 드론준비시간(분)", - "ㆍ이륙지점에 도착한 후 묘목운반 개시까지 준비시간 (점검, 보정, 테스트 비행을 포함)", - "60" - ], - [ - "② 왕복비행시간(분)", - "ㆍ운반거리에 대한 드론의 왕복 시간 (적재, 하적, 배터리 교환을 포함)", - "0.0098×수평거리+1.3264" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0328", - "section": "11-4. 쇄석·혼합석 부설", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "부설장비", - "유압식백호우 (무한궤도 0.7㎥)", - "q", - "0.7", - "" - ], - [ - "k", - "0.55", - "", - "", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, { "pum_table_id": "F0333", "section": "12-1-3. 인력비빔타설", @@ -1586,385 +366,6 @@ ] ], "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0358", - "section": "12-2 표면 마무리를 따른다.", - "headers": [ - "구 분", - "적용 기준" - ], - "first_rows": [ - [ - "Type-Ⅰ", - "매트기초 등 펌프차 작업에 제약이 없는 시설물" - ], - [ - "Type-Ⅱ", - "벽, 기둥, 보, 슬래브. 교대, 교각 등 펌프차 작업에 큰 지장이 없어 일반적인 시공이 가능한 시설물" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0360", - "section": "12-2 표면 마무리를 따른다.", - "headers": [ - "구 분", - "적용 기준" - ], - "first_rows": [ - [ - "Type-Ⅰ", - "대기 공간이 충분히 넓어 믹서트럭 2대가 병렬로 타설 준비가 가능하며 지속적인 타설을 수행하는 경우" - ], - [ - "Type-Ⅱ", - "믹서트럭이 1대씩 직렬로 대기하며 순차적으로 타설 준비하여 타설하는 일반적인 경우" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0388", - "section": "12-34-4. 채움재(T=20m/m)", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "재료비", - "JOINT FILLER", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0390", - "section": "12-36. P.C BOX 설치", - "headers": [ - "구 분", - "적 용", - "비 고" - ], - "first_rows": [ - [ - "제작비", - "견적처리", - "" - ], - [ - "운송비", - "견적처리", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0392", - "section": "12-38-1. 사용횟수", - "headers": [ - "구 분", - "사용 조작 회수" - ], - "first_rows": [ - [ - "패 널 류 보, 드롭헤드, 강관파이프, 훅  클래프, 웨지핀", - "12회 사용 잔존율 25% 25회 사용 잔존율 10%" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0394", - "section": "12-38-2. 사용수량", - "headers": [ - "구 분", - "간 단", - "보 통", - "복 잡" - ], - "first_rows": [ - [ - "요 율", - "24%", - "52%", - "79%" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0396", - "section": "12-38-3. 설치 및 해체", - "headers": [ - "구 분", - "유 형" - ], - "first_rows": [ - [ - "복 잡", - "토목 : 교대, 날개벽 등 복잡하고 보강이 많은 구조 건축 : 외부 벽체, 보/기둥" - ], - [ - "보 통", - "측구, 수로, 옹벽, 일반적인 벽체, 박스 등" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0400", - "section": "13-2-3. 큰돌 채집", - "headers": [ - "명칭", - "단위", - "규격(직경)" - ], - "first_rows": [ - [ - "40㎝이상∼60㎝미만", - "60㎝이상∼80㎝미만", - "80㎝이상∼100㎝이하", - "", - "" - ], - [ - "뒷길이", - "㎝", - "60 ~ 75", - "75 ~ 95", - "95 ~ 120" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0406", - "section": "13-3. 기초다짐 및 뒤채움’ 항을 적용한다.", - "headers": [ - "종별 뒷길이 단위", - "견치돌", - "깬돌 및 깬잡석", - "야면석" - ], - "first_rows": [ - [ - "25㎝(17×17)", - "개 ㎏", - "32 192", - "33 132", - "- -" - ], - [ - "30㎝(20×20)", - "개 ㎏", - "23 368", - "24 264", - "28 420" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0408", - "section": "13-4-3. 고임돌 소요량", - "headers": [ - "뒷길이 종별", - "25㎝", - "30㎝", - "35㎝", - "45㎝", - "55㎝", - "60㎝", - "75㎝" - ], - "first_rows": [ - [ - "야면석(㎥) 깬잡석(㎥) 깬 돌(㎥) 견치돌(㎥)", - "0.06 0.09 - -", - "0.07 0.11 0.10 -", - "0.09 0.13 0.12 0.12", - "0.11 0.16 0.15 0.15", - "0.14 0.19 0.18 0.18", - "0.15 0.21 0.20 0.20", - "- 0.26 0.25 0.25" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0410", - "section": "13-4-4. 찰쌓기(인력)", - "headers": [ - "뒷길이 종별", - "25㎝", - "30㎝", - "35㎝", - "45㎝", - "55㎝", - "60㎝", - "75㎝", - "비고" - ], - "first_rows": [ - [ - "야면석(㎥) 호박돌(㎥)", - "0.08 0.08", - "0.10 0.10", - "0.12 0.12", - "0.15 0.15", - "0.18 0.18", - "0.20 0.20", - "0.25 0.25", - "뒷길이 33.3% 〃" - ], - [ - "깬잡석(㎥) 깬 돌(㎥) 견치돌(㎥)", - "0.11 0.11 0.11", - "0.14 0.14 0.14", - "0.16 0.16 0.16", - "0.20 0.20 0.20", - "0.25 0.25 0.25", - "0.27 0.27 0.27", - "0.34 0.34 0.34", - "뒷길이 45% 〃 〃" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0411", - "section": "13-4-4. 찰쌓기(인력)", - "headers": [ - "직 고(直高)", - "∼1.5m", - "∼3.0m", - "∼5.0m", - "∼7.0m" - ], - "first_rows": [ - [ - "상부의 두께(㎝) 하부의 두께(㎝)", - "20~40 30~60", - "20~40 45~75", - "20~40 60~100", - "20~40 80~140" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0429", - "section": "13-10-2. 나무 말뚝박기", - "headers": [ - "관입률 =", - "0.3", - "0.4", - "0.5", - "0.6", - "0.7", - "0.8", - "비고" - ], - "first_rows": [ - [ - "계수", - "0.2", - "0.3", - "0.4", - "0.5", - "0.6", - "0.7", - "" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0439", - "section": "13-12-2. 지오셀(사면보강)", - "headers": [ - "구 분 공정별", - "1:2 표준", - "1:2 ~ 1:1.5", - "1:1.5 ~ 1:1", - "1:1 이상" - ], - "first_rows": [ - [ - "4m 표준", - "1", - "10", - "15", - "30" - ], - [ - "4 ~ 10m", - "10", - "20", - "25", - "40" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0446", - "section": "13-15-2. 목책 설치", - "headers": [ - "작업조건", - "벌도목 직경", - "가지량", - "경사도" - ], - "first_rows": [ - [ - "어려운 조건", - "26 ~ 30cm", - "많음", - "15°이상" - ], - [ - "쉬운 조건", - "20 ~ 24cm", - "중간 이하", - "15°미만" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" - }, - { - "pum_table_id": "F0453", - "section": "8-2-3 굴착기(2025)」를 참조하여 적용계수를 달리 적용하도록 한다.", - "headers": [ - "사업종", - "구분", - "적용 가능 공종" - ], - "first_rows": [ - [ - "공종", - "", - "", - "", - "", - "" - ], - [ - "조림", - "시행 지침", - "3-5 예정지 정리작업", - "5-3-1 나무식재", - "5-30 표시봉설치", - "5-31 지주목설치" - ] - ], - "reason": "헤더·첫 행에 단위·밑수·직종 표지 없음" } ] } \ No newline at end of file diff --git a/resources/data_work_item_master/work_item_master_2026-01-01.json b/resources/data_work_item_master/work_item_master_2026-01-01.json index 086aa87f..6550774e 100644 --- a/resources/data_work_item_master/work_item_master_2026-01-01.json +++ b/resources/data_work_item_master/work_item_master_2026-01-01.json @@ -2,7 +2,7 @@ "schema_version": "1.0", "dataset_id": "work_item_master_forest", "effective_date": "2026-01-01", - "generated_at": "2026-09-13T19:52:49+09:00", + "generated_at": "2026-09-13T21:50:44+09:00", "dataset_version": { "dataset_id": "pum_forest", "effective_date": "2026-01-01", @@ -20,9 +20,9 @@ "tables_total": 475, "tables_attached": 456, "tables_orphan": 19, - "form_undetermined": 77, + "form_undetermined": 13, "basis_found": 204, - "basis_missing": 116, + "basis_missing": 122, "basis_grouped": 48 }, "orphan_tables": [ @@ -4625,8 +4625,8 @@ "pum_table_id": "F0044", "section": "2-1-1. 휘발유․오일", "source_line": 1340, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 기계별 주연료(ℓ/일·대)·잡품(%) — 행이 자원이 아니라 기계, 재료비 산출 기준", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -4658,8 +4658,8 @@ "pum_table_id": "F0045", "section": "2-1-1. 휘발유․오일", "source_line": 1346, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 위와 같은 모양(2드럼 케이블윈치)", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -4736,8 +4736,8 @@ "pum_table_id": "F0047", "section": "2-1-2. 경유", "source_line": 1361, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 기계별 경유(ℓ/일·대)·잡품(%) — [주]③ 「1일당 소요량」, 행이 기계", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -4858,8 +4858,8 @@ "pum_table_id": "F0048", "section": "2-1-3. 우드그래플 소모품", "source_line": 1387, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 머리 「소요비용(원)」 — 품이 아니라 교체 1회당 금액", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -5129,8 +5129,8 @@ "pum_table_id": "F0054", "section": "2-1-5. 약제(농약) 및 친환경비닐랩", "source_line": 1477, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "requirement", + "form_basis": "사람 판정 — 본문 「(본당)」 + 행 「소금처리량(g)」 — 본당 재료 소요량", "basis_quantity": 1.0, "basis_unit": "본", "basis_source": "본문", @@ -5660,8 +5660,8 @@ "pum_table_id": "F0063", "section": "2-1-13. 파쇄", "source_line": 1586, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 「소모율 0.00125개/hr」 — 기계 시간당 소모품, 공종 밑수가 아님", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -13940,8 +13940,8 @@ "pum_table_id": "F0100", "section": "5-3-1. 나무식재", "source_line": 2230, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 수종별 묘목 규격(소·중·대묘) 표", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -14031,8 +14031,8 @@ "pum_table_id": "F0101", "section": "5-3-1. 나무식재", "source_line": 2242, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 간장·근원경 규격 기준 표", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -14346,8 +14346,8 @@ "pum_table_id": "F0105", "section": "5-3-4. 교목식재(나무높이)", "source_line": 2306, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 지주목 미설치 감률 「인력품의 10%·20%」", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -14551,8 +14551,8 @@ "pum_table_id": "F0107", "section": "5-3-5. 교목식재(흉고직경)", "source_line": 2342, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 위와 같은 감률(흉고직경 표)", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -16555,8 +16555,8 @@ "pum_table_id": "F0137", "section": "5-24-2. 뿜어붙이기-기계/마사토", "source_line": 2814, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 머리 「종자배합비율(%)」 조견표", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -16650,8 +16650,8 @@ "pum_table_id": "F0138", "section": "5-24-2. 뿜어붙이기-기계/마사토", "source_line": 2831, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 위와 같은 조견표(기타 적용지역)", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -17203,8 +17203,8 @@ "pum_table_id": "F0146", "section": "5-29. 복사이식", "source_line": 2941, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 K(버킷계수)·f·E·Cm — 굴착기 작업량 공식 계수", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -20328,8 +20328,8 @@ "pum_table_id": "F0187", "section": "7-9-2. 숲가꾸기, 소나무재선충병방제", "source_line": 3692, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 본문 「(단위 : %)」 — 집재재적·거리별 수집량 증가율", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -20469,8 +20469,8 @@ "pum_table_id": "F0189", "section": "7-11. 동력상하차기(우드그래플) 집재-수확", "source_line": 3723, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 표 바로 위 「(㎥/1대, 1일)」 — 대당 일 작업량", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -20548,8 +20548,8 @@ "pum_table_id": "F0190", "section": "7-11. 동력상하차기(우드그래플) 집재-수확", "source_line": 3731, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 위와 같음(최대집재거리 80m 이하)", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -20796,8 +20796,8 @@ "pum_table_id": "F0194", "section": "7-13. 검척", "source_line": 3834, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 검척 산출 예시(말구직경×개수) 표", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -20996,8 +20996,8 @@ "pum_table_id": "F0196", "section": "7-15-1. 수확", "source_line": 3864, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량, 「회수」 줄은 참고", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -21081,8 +21081,8 @@ "pum_table_id": "F0197", "section": "7-15-2 숲가꾸기, 병해충방제", "source_line": 3878, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 표 바로 위 「(㎥/1대, 1일)」 — 「운재량」 줄이 작업량, [주]① 1대 1일", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -21163,8 +21163,8 @@ "pum_table_id": "F0198", "section": "7-16. 소형 포워더 운재", "source_line": 3898, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -21248,8 +21248,8 @@ "pum_table_id": "F0199", "section": "7-17. 소형트럭 운재", "source_line": 3912, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -21330,8 +21330,8 @@ "pum_table_id": "F0200", "section": "7-18. 지조운반(포워더 활용)", "source_line": 3926, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 표 바로 위 「(㎥/1대, 1일)」 — 「운반량」 줄이 작업량", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -21927,8 +21927,8 @@ "pum_table_id": "F0205", "section": "8-2-1. 소나무재선충병", "source_line": 4014, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 약제 이름·제형 목록", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -22314,8 +22314,8 @@ "pum_table_id": "F0208", "section": "8-2-2. 솔잎혹파리", "source_line": 4063, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 선정약제 목록 + 원액 주입량(㎖/㎝) 기준 — 품 표는 따로 있음", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -22960,8 +22960,8 @@ "pum_table_id": "F0212", "section": "8-2-3. 솔껍질깍지벌레", "source_line": 4166, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 위와 같은 선정약제 목록", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -24273,8 +24273,8 @@ "pum_table_id": "F0453", "section": "8-2-3 굴착기(2025)」를 참조하여 적용계수를 달리 적용하도록 한다.", "source_line": 7907, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 〔부록 2〕 산림사업별 적용 가능 공종 목록 — 절 경계가 밀려 붙음", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -25491,8 +25491,8 @@ "pum_table_id": "F0216", "section": "8-2-4. 솔나방", "source_line": 4268, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 위와 같은 선정약제 목록", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -25725,8 +25725,8 @@ "pum_table_id": "F0218", "section": "8-2-5. 푸사리움가지마름병", "source_line": 4309, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 위와 같은 선정약제 목록", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -25959,8 +25959,8 @@ "pum_table_id": "F0220", "section": "8-3. 소각, 매몰, 훈증, 박피", "source_line": 4348, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "productivity", + "form_basis": "사람 판정 — 머리 「벌목조재 (㎥/인)·무더기 훈증 (RM/인)·그루터기 박피 (본/인)」 — 인당 작업량", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -26268,8 +26268,8 @@ "pum_table_id": "F0221", "section": "8-3. 소각, 매몰, 훈증, 박피", "source_line": 4386, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 본문 「(단위: %)」 — 수종·직경별 지조율", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -26464,8 +26464,8 @@ "pum_table_id": "F0222", "section": "8-3. 소각, 매몰, 훈증, 박피", "source_line": 4406, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 머리 「비율(수간재적의 %)」 — 근주재적 산정율", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -26841,8 +26841,8 @@ "pum_table_id": "F0227", "section": "8-6-1. 유인헬기방제", "source_line": 4485, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 기종별 희석배수별 약제량(L, 1회) — 살포 계산표", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -27288,8 +27288,8 @@ "pum_table_id": "F0231", "section": "8-6-3. 지상방제", "source_line": 4569, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 희석배수별 약제소요량(㎖) — 물의 양 대비 계산표", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -31008,8 +31008,8 @@ "pum_table_id": "F0281", "section": "9-15-1. 답(畓)구간", "source_line": 5273, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 K·f·E·Cm — [주]② Q1=3600×q×K×f×E/Cm", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -31071,8 +31071,8 @@ "pum_table_id": "F0282", "section": "9-15-2. 답(畓)외구간", "source_line": 5290, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 T·L·E·q — 불도저 작업량 공식 계수", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -31248,8 +31248,8 @@ "pum_table_id": "F0284", "section": "9-16-2. 노체다짐", "source_line": 5326, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 V·W·E·D — [주]② Q=1000×V×W×E×D×f/N", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -31321,8 +31321,8 @@ "pum_table_id": "F0285", "section": "9-16-3. 살수", "source_line": 5344, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 흡입준비·운반·흡입·대기 시간 — 살수차 사이클 시간", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -31499,8 +31499,8 @@ "pum_table_id": "F0287", "section": "9-18. 층따기", "source_line": 5395, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 K·f·E·Cm — [주]① Q1=3600×q×K×f×E/Cm", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -32059,8 +32059,8 @@ "pum_table_id": "F0295", "section": "9-22. 섞기", "source_line": 5531, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 K·f·E·Cm — [주]③ Q1=3600×q×K×f×E/Cm", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -32338,8 +32338,8 @@ "pum_table_id": "F0300", "section": "10-3-3. 혼합골재", "source_line": 5600, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 「운반비·하차비」 적용 항목 — 값이 없는 구성 안내", "basis_quantity": 1.0, "basis_unit": "㎥", "basis_source": "본문", @@ -32387,8 +32387,8 @@ "pum_table_id": "F0301", "section": "10-4. 중기운반", "source_line": 5611, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — t1·t2·t3·t4 — 트레일러 운반 사이클 시간", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -32976,8 +32976,8 @@ "pum_table_id": "F0308", "section": "10-7-4. 모노레일 운반", "source_line": 5741, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 1사이클당 운반량 q — 모노레일 공식 계수", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -33018,8 +33018,8 @@ "pum_table_id": "F0309", "section": "10-7-4. 모노레일 운반", "source_line": 5755, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 본문 「(단위: 분/1회당)」 — 적재·짐부리기 시간", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -33456,8 +33456,8 @@ "pum_table_id": "F0316", "section": "10-9-1. 자재의 1회당 표준 운반량", "source_line": 5861, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 규격별 1회당 표준 운반량(kg·개·㎡) — 적재 기준", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -33703,8 +33703,8 @@ "pum_table_id": "F0319", "section": "10-11. 불도저 운반", "source_line": 5902, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 L·E·q0 — [주]② q=3.2×e, Cm 공식 계수", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -33834,8 +33834,8 @@ "pum_table_id": "F0320", "section": "10-12-1. 토사", "source_line": 5935, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 K·E0·Cm — 굴착기 적재 공식 계수", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -33891,8 +33891,8 @@ "pum_table_id": "F0321", "section": "10-12-1. 토사", "source_line": 5958, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 적재·t2·적하 시간 — 덤프트럭 사이클 공식 계수", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -34090,8 +34090,8 @@ "pum_table_id": "F0324", "section": "10-13-2. 인력운반", "source_line": 6013, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 드론운반 단가산출 항목(준비시간·왕복비행시간 식) — [주] 일본 산출 예", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -34327,8 +34327,8 @@ "pum_table_id": "F0328", "section": "11-4. 쇄석·혼합석 부설", "source_line": 6071, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 행이 q·k·f·E — [주]① Q=3600×q×k×f×E/Cm", "basis_quantity": 1.0, "basis_unit": "㎥", "basis_source": "본문", @@ -34869,8 +34869,8 @@ "pum_table_id": "F0358", "section": "12-2 표면 마무리를 따른다.", "source_line": 6538, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 시설유형 Type-Ⅰ~Ⅳ 적용 기준 설명", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -34950,8 +34950,8 @@ "pum_table_id": "F0360", "section": "12-2 표면 마무리를 따른다.", "source_line": 6551, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 현장조건 Type-Ⅰ~Ⅲ 적용 기준 설명", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -38906,8 +38906,8 @@ "pum_table_id": "F0388", "section": "12-34-4. 채움재(T=20m/m)", "source_line": 6877, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 「재료비 JOINT FILLER」 항목만 — 값이 없는 구성 안내", "basis_quantity": 1.0, "basis_unit": "㎡", "basis_source": "본문", @@ -39011,8 +39011,8 @@ "pum_table_id": "F0390", "section": "12-36. P.C BOX 설치", "source_line": 6895, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 제작비·운송비·설치비 「견적처리」", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -39149,8 +39149,8 @@ "pum_table_id": "F0392", "section": "12-38-1. 사용횟수", "source_line": 6915, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 사용횟수별 잔존율(12회 25%·25회 10%)", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -39251,8 +39251,8 @@ "pum_table_id": "F0394", "section": "12-38-2. 사용수량", "source_line": 6932, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — 부자재 요율 「주자재비의 24%·52%·79%」", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -39351,8 +39351,8 @@ "pum_table_id": "F0396", "section": "12-38-3. 설치 및 해체", "source_line": 6954, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 설치 유형(복잡·보통·간단) 적용 시설 설명", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -39612,8 +39612,8 @@ "pum_table_id": "F0400", "section": "13-2-3. 큰돌 채집", "source_line": 7006, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 큰돌 직경별 뒷길이 기준(㎝)", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -39767,8 +39767,8 @@ "pum_table_id": "F0406", "section": "13-3. 기초다짐 및 뒤채움’ 항을 적용한다.", "source_line": 7094, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 〈돌쌓기의 개수 및 중량의 표준〉 — [주] 인력 돌쌓기·돌붙임 기준", "basis_quantity": 1.0, "basis_unit": "㎡", "basis_source": "본문", @@ -40337,8 +40337,8 @@ "pum_table_id": "F0408", "section": "13-4-3. 고임돌 소요량", "source_line": 7128, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 고임돌 소요량(㎥/㎡) — 자재 원단위표(B08 고임돌표가 씀). 품으로 세우면 자재를 두 번 셈", "basis_quantity": 1.0, "basis_unit": "㎡", "basis_source": "본문", @@ -40581,8 +40581,8 @@ "pum_table_id": "F0410", "section": "13-4-4. 찰쌓기(인력)", "source_line": 7152, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — [주]① 채움 콘크리트 소요량(㎥/㎡) — 자재 원단위표(B08 채움표가 씀). 품이면 두 번 셈", "basis_quantity": 1.0, "basis_unit": "㎡", "basis_source": "본문", @@ -40638,8 +40638,8 @@ "pum_table_id": "F0411", "section": "13-4-4. 찰쌓기(인력)", "source_line": 7166, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — [주]⑨ 성토 뒤채움 조약돌 두께(㎝) 기준", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -40677,8 +40677,8 @@ "pum_table_id": "F0412", "section": "13-4-4. 찰쌓기(인력)", "source_line": 7174, - "pum_form": "requirement", - "form_basis": "값 단위 '(m)'", + "pum_form": "reference", + "form_basis": "사람 판정 — [주]⑩ 뒷길이 표준(㎝) — 자동 판정이 「(m)」에 걸려 소요량형으로 오판", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -40727,8 +40727,8 @@ "pum_table_id": "F0413", "section": "13-4-4. 찰쌓기(인력)", "source_line": 7185, - "pum_form": "requirement", - "form_basis": "값 단위 '(m)'", + "pum_form": "reference", + "form_basis": "사람 판정 — [주]⑪ 표준경사(1:n) — 자동 판정이 소요량형으로 오판, 찰쌓기(인력)를 막음", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -41848,8 +41848,8 @@ "pum_table_id": "F0429", "section": "13-10-2. 나무 말뚝박기", "source_line": 7483, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — [주]⑥ 관입률별 계수", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -42654,8 +42654,8 @@ "pum_table_id": "F0439", "section": "13-12-2. 지오셀(사면보강)", "source_line": 7640, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "coefficient", + "form_basis": "사람 판정 — [주]⑦ 높이·기울기 할증(%)", "basis_quantity": null, "basis_unit": null, "basis_source": null, @@ -43124,8 +43124,8 @@ "pum_table_id": "F0446", "section": "13-15-2. 목책 설치", "source_line": 7738, - "pum_form": "undetermined", - "form_basis": "헤더·첫 행에 단위·밑수·직종 표지 없음", + "pum_form": "reference", + "form_basis": "사람 판정 — 작업조건(어려운·쉬운) 구분 기준", "basis_quantity": null, "basis_unit": null, "basis_source": null, diff --git a/resources/tester/test_b09_table_reading.py b/resources/tester/test_b09_table_reading.py index 6ef9bde1..05048bff 100644 --- a/resources/tester/test_b09_table_reading.py +++ b/resources/tester/test_b09_table_reading.py @@ -201,3 +201,37 @@ def test_콘크리트_포장_작업조는_두께마다_시공량으로_나눈다 assert _codes(result, "20㎝") == {"1019": Decimal("0.03"), "1002": Decimal("0.03")} assert _codes(result, "40㎝")["1019"] == Decimal("0.015") assert {r.amount_unit for r in result.rows} == {"㎥"} # 시공량 열 머리의 단위 + + +def test_사람이_가른_표_형태는_까닭을_달고_절_번호가_어긋나면_멈춘다(): + """미판정 표 판정(2026-09-13) — 못 가른 표는 싣지 않고, 표 차례가 밀리면 조용히 안 씀.""" + import json + from pathlib import Path + + import pytest + + from B08_Quantity.B08_Quantity_Build_WorkItemMaster_Forms import FORM_JUDGMENTS, judged_form + + assert judged_form("F0413", "13-4-4")[0] == "reference" + assert judged_form("F9999", "1-1") is None + with pytest.raises(ValueError): + judged_form("F0413", "13-4-5") + assert all(why for _, _, why in FORM_JUDGMENTS.values()) + # 마스터에 실렸고, 파형강관 12-11-3 처럼 못 가른 표는 미판정으로 남는다 + path = Path("resources/data_work_item_master/work_item_master_2026-01-01.json") + tables = { + t["pum_table_id"]: t + for n in json.loads(path.read_text(encoding="utf-8"))["work_items"] + for t in n["tables"] + } + assert tables["F0413"]["pum_form"] == "reference" + assert tables["F0189"]["pum_form"] == "productivity" + assert tables["F0349"]["pum_form"] == "undetermined" + + +def test_인력_찰쌓기는_표준경사_표에_막히지_않는다(): + from B09_Estimation.B09_Estimation_UnitPrice import cached_build + + build = cached_build() + assert "FP-13-04-04" not in build.partial_ratio + assert build.book.resolve("B-FP-13-04-04#깬돌·골쌓기·뒷길이45㎝").labor > 0