fix(data): 4바퀴 기초값 — 각재 비율 지어낸 것 뺌 · 손료 칸 밀림 · 전문공사 300억 이상 · 제조 노임 상위업종
브레인 4바퀴. 원문을 열어 하나씩 확인한 뒤 고침. **값(숫자)은 원문 그대로, 자리·이름만 맞춤.**
**① 거푸집 「각재」 비율 여섯 — 지어낸 것이라 뺌**
원문 12-4(F0336)는 **「합 판」 한 줄에 두 열**(재료별% · 노무비%)을 적고 「각 재」 줄엔 비율이 없음.
각재 자리에 있던 값이 **합판 줄의 노무비 열과 한 자도 안 다름** — 다른 열을 갖다 쓴 것이었음.
⇒ `plywood` → `plywood_material_pct` · 노무비 열은 `plywood_labor_pct` 로 제자리 ·
각재는 `timber_absent` 로 **비워 두고 사유**(옛 값도 함께 남김)
**② 기계 손료 5202·5203 칸 밀림** — 규격 열이 둘·셋인 표라 한 칸(5202)·두 칸(5203) 밀려
상각비율 자리에 내용시간(800·4,000)이 들어가 있었음. 원문 건설 8장 L2617~2633 대로 여덟 줄 맞춤
**③ 전문공사 일반관리비 300억 이상** — 마지막 구간이 「100억-300억 미만」으로 닫혀 **300억 넘는
전문공사가 어느 구간에도 안 걸렸음.** 원본 XLSX 대로 300~1000억 · 1000억 이상(둘 다 4.5%)을 더함.
⚠ 대조 시험의 구간 지도(`SPECIAL_PRICE`)에도 그 둘이 없어 원문 쪽에서도 안 잡히고 있었음 — 함께 채움
**④ 제조 노임 115~123 상위업종** — 「품질 관리 / 하위업종」인데 하위만 담아 반쪽이었음(아홉 줄).
원문(중소기업중앙회 조사표)대로 채움. 노임 값은 안 건드림
**⑤ 덤프 토사 E0 는 0.60 이 맞음** — 원문 10-12-1 은 식에 `E0=0.75` 를 적지만 바로 아래 [주]⑤
「굴착기의 작업능력 산정 비교」 표가 `E0 | 토사 | 0.60(불량)` 비고에 **「임 도」** 라고 못박음. 근거를 자료에 적음
**⑥ 이형철근** — 원문이 범위 「6~7」로 적은 것을 `alt_rate_range` 로 함께 실음(쓰는 값은 7 그대로)
⚠ 기계 이름 뭉개짐·손료표 md 변환 오류는 **코덱스가 md 를 고치는 중**이라 손대지 않음
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
This commit is contained in:
@@ -77,7 +77,8 @@ def _formwork_reuse(doc: dict[str, Any], name: str) -> list[_ROW]:
|
||||
)
|
||||
)
|
||||
ratios = doc["reuse_ratio_pct"]
|
||||
for material in ("plywood", "timber"):
|
||||
# ⚠ 원문은 **합판 한 줄에 두 열**(재료별% · 노무비%)이고 각재 줄엔 비율이 없다(2026-09-18).
|
||||
for material in ("plywood_material_pct", "plywood_labor_pct"):
|
||||
for count, percent in (ratios.get(material) or {}).items():
|
||||
rows.append(
|
||||
_row(
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+12532
-12517
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,172 +1,184 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"dataset_id": "formwork_reuse",
|
||||
"effective_date": "2026-01-01",
|
||||
"note": "거푸집 사용횟수 — **품셈 1-7-1 원문**이 구조물 종류별로 정해 둔 값이다. 관측값이 아니라 법이므로 실무값으로 갈음하지 않는다.",
|
||||
"schema_version": "1.0",
|
||||
"dataset_id": "formwork_reuse",
|
||||
"effective_date": "2026-01-01",
|
||||
"note": "거푸집 사용횟수 — **품셈 1-7-1 원문**이 구조물 종류별로 정해 둔 값이다. 관측값이 아니라 법이므로 실무값으로 갈음하지 않는다.",
|
||||
"source": {
|
||||
"doc": "산림사업 표준품셈 1-7-1 거푸집 사용",
|
||||
"table_id": "F0040",
|
||||
"quote": "2회 T형보, 난간, 특히 복잡한 구조의 교각, 교대, 수문관의 본체 등 복잡한 구조 / 3회 슬래브, 교대, 교각, 옹벽, 파라펫트, 날개벽 등 약간 복잡한 구조 / 4회 측구, 수로, 확대기초, 우물통 등 비교적 간단한 구조 / 6회 수문 또는 관의 기초, 호안 및 보호공의 기초 등 극히 간단한 구조"
|
||||
},
|
||||
"policy": {
|
||||
"b08_delivers": "접촉 면적(㎡) + 사용횟수. **횟수별 재료 환산은 하지 않는다**.",
|
||||
"b09_applies": "품셈 12-4 의 「사용횟수별 기준수량에 대한 비율(%)」은 일위대가 재료비에 걸린다. B08 이 여기서 곱하면 B09 와 겹쳐 두 번 준다.",
|
||||
"unlisted_is_flagged": true
|
||||
},
|
||||
"reuse_by_class": [
|
||||
{
|
||||
"reuse_count": 2,
|
||||
"class": "복잡한 구조",
|
||||
"examples": [
|
||||
"T형보",
|
||||
"난간",
|
||||
"복잡한 교각",
|
||||
"교대",
|
||||
"수문관 본체"
|
||||
]
|
||||
},
|
||||
{
|
||||
"reuse_count": 3,
|
||||
"class": "약간 복잡한 구조",
|
||||
"examples": [
|
||||
"슬래브",
|
||||
"교대",
|
||||
"교각",
|
||||
"옹벽",
|
||||
"파라펫트",
|
||||
"날개벽"
|
||||
]
|
||||
},
|
||||
{
|
||||
"reuse_count": 4,
|
||||
"class": "비교적 간단한 구조",
|
||||
"examples": [
|
||||
"측구",
|
||||
"수로",
|
||||
"확대기초",
|
||||
"우물통"
|
||||
]
|
||||
},
|
||||
{
|
||||
"reuse_count": 6,
|
||||
"class": "극히 간단한 구조",
|
||||
"examples": [
|
||||
"수문 기초",
|
||||
"관의 기초",
|
||||
"호안 기초",
|
||||
"보호공 기초"
|
||||
]
|
||||
}
|
||||
],
|
||||
"type_map": [
|
||||
{
|
||||
"type_id": "retaining_wall",
|
||||
"reuse_count": 3,
|
||||
"matched_example": "옹벽",
|
||||
"note": "원문 3회 줄에 「옹벽」이 그대로 있음"
|
||||
},
|
||||
{
|
||||
"type_id": "pipe_inlet_basin",
|
||||
"reuse_count": 4,
|
||||
"matched_example": "거푸집 합판4회",
|
||||
"note": "그 공종 표가 직접 적은 「거푸집 | 합판4회」 가 정본 — 1-7-1 분류(「호안 및 보호공의 기초」 6회)보다 위(2026-09-14 브레인 ㉯ ②). 앞서 6회로 봤음.",
|
||||
"basis": "품셈 12-15 집수정 표"
|
||||
},
|
||||
{
|
||||
"type_id": "ford_pavement",
|
||||
"reuse_count": null,
|
||||
"note": "물넘이포장은 거푸집이 서지 않는 구조(면 포장) — 대상 아님"
|
||||
},
|
||||
{
|
||||
"type_id": "box_culvert",
|
||||
"reuse_count": 6,
|
||||
"matched_example": "관의 기초",
|
||||
"note": "BOX암거 합판은 **버림 옆면뿐**(본체는 유로폼 — 12-38 유형 「박스」 보통) — 원문 6회 줄 「관의 기초 등 극히 간단한 구조」 · 실무 울진 2×2 「합판6회」 와 같음(2026-09-15)"
|
||||
}
|
||||
],
|
||||
"reuse_ratio_pct": {
|
||||
"note": "품셈 12-4(표 F0336) 「사용횟수별 기준수량에 대한 비율(%)」. **B09 일위대가가 쓰는 값**이며 B08 은 참고로만 싣는다 — 여기서 곱하면 이중계상. ⚠ 원문은 **「합 판」 한 줄에 두 열**(재료별% · 노무비%)을 적고, 「각 재」 줄에는 비율이 없다.",
|
||||
"table_id": "F0336",
|
||||
"plywood_material_pct": {
|
||||
"1": 100.0,
|
||||
"2": 57.0,
|
||||
"3": 46.1,
|
||||
"4": 40.1,
|
||||
"5": 37.1,
|
||||
"6": 34.7
|
||||
},
|
||||
"plywood_labor_pct": {
|
||||
"1": 100.0,
|
||||
"2": 60.0,
|
||||
"3": 47.1,
|
||||
"4": 40.0,
|
||||
"5": 34.2,
|
||||
"6": 32.0
|
||||
},
|
||||
"timber_absent": {
|
||||
"why": "⚠ **원문에 각재 비율이 없다.** 앞서 여기 있던 값은 실은 합판 줄의 **노무비(%)** 열을 각재 비율로 잘못 읽은 것이었다(2026-09-18 랩탑 메인 기초값 대조). 그 값은 `plywood_labor_pct` 로 제자리를 찾았고, 각재는 **비워 둔다** — 없는 것을 다른 열로 채우지 않는다.",
|
||||
"was": {
|
||||
"1": 100.0,
|
||||
"2": 60.0,
|
||||
"3": 47.1,
|
||||
"4": 40.0,
|
||||
"5": 34.2,
|
||||
"6": 32.0
|
||||
},
|
||||
"md_row": "「각 재 | ㎥ | 0.038」 — 기준수량만 있고 비율 칸이 비어 있다"
|
||||
}
|
||||
},
|
||||
"shoring": {
|
||||
"note": "강관동바리(품셈 12-20)는 **슬래브를 떠받칠 때** 필요하다. 옹벽·집수정은 벽체 거푸집만이라 대상이 아니고, BOX암거는 전개식이 동바리 줄을 낸다(2026-09-15).",
|
||||
"targets_pending": [
|
||||
"ford_bridge"
|
||||
],
|
||||
"why": "세월교는 수량 근거가 없어 슬래브 면적 자체가 안 나온다 — 동바리도 함께 미확보"
|
||||
},
|
||||
"euroform_type": {
|
||||
"note": "유로폼 설치·해체 유형(간단/보통/복잡) — **품셈 12-38-3 [주]④ 원문**이 시설 예시로 갈라 둔다. 거푸집 사용횟수(1-7-1)·철근 갈래(12-3 [주]①)와 같은 자리로, 사람이 고르는 값이 아니다.",
|
||||
"source": {
|
||||
"doc": "산림사업 표준품셈 1-7-1 거푸집 사용",
|
||||
"table_id": "F0040",
|
||||
"quote": "2회 T형보, 난간, 특히 복잡한 구조의 교각, 교대, 수문관의 본체 등 복잡한 구조 / 3회 슬래브, 교대, 교각, 옹벽, 파라펫트, 날개벽 등 약간 복잡한 구조 / 4회 측구, 수로, 확대기초, 우물통 등 비교적 간단한 구조 / 6회 수문 또는 관의 기초, 호안 및 보호공의 기초 등 극히 간단한 구조"
|
||||
"doc": "산림사업 표준품셈 12-38-3 설치 및 해체 [주]④",
|
||||
"table_id": "F0396",
|
||||
"quote": "복잡 — 토목: 교대, 날개벽 등 복잡하고 보강이 많은 구조 / 보통 — 측구, 수로, 옹벽, 일반적인 벽체, 박스 등 / 간단 — 수문 또는 관의 기초, 건축 매트기초 등 간단한 구조"
|
||||
},
|
||||
"policy": {
|
||||
"b08_delivers": "접촉 면적(㎡) + 사용횟수. **횟수별 재료 환산은 하지 않는다**.",
|
||||
"b09_applies": "품셈 12-4 의 「사용횟수별 기준수량에 대한 비율(%)」은 일위대가 재료비에 걸린다. B08 이 여기서 곱하면 B09 와 겹쳐 두 번 준다.",
|
||||
"unlisted_is_flagged": true
|
||||
},
|
||||
"reuse_by_class": [
|
||||
{
|
||||
"reuse_count": 2,
|
||||
"class": "복잡한 구조",
|
||||
"examples": [
|
||||
"T형보",
|
||||
"난간",
|
||||
"복잡한 교각",
|
||||
"교대",
|
||||
"수문관 본체"
|
||||
]
|
||||
},
|
||||
{
|
||||
"reuse_count": 3,
|
||||
"class": "약간 복잡한 구조",
|
||||
"examples": [
|
||||
"슬래브",
|
||||
"교대",
|
||||
"교각",
|
||||
"옹벽",
|
||||
"파라펫트",
|
||||
"날개벽"
|
||||
]
|
||||
},
|
||||
{
|
||||
"reuse_count": 4,
|
||||
"class": "비교적 간단한 구조",
|
||||
"examples": [
|
||||
"측구",
|
||||
"수로",
|
||||
"확대기초",
|
||||
"우물통"
|
||||
]
|
||||
},
|
||||
{
|
||||
"reuse_count": 6,
|
||||
"class": "극히 간단한 구조",
|
||||
"examples": [
|
||||
"수문 기초",
|
||||
"관의 기초",
|
||||
"호안 기초",
|
||||
"보호공 기초"
|
||||
]
|
||||
}
|
||||
"classes": [
|
||||
{
|
||||
"key": "복잡",
|
||||
"examples": [
|
||||
"교대",
|
||||
"날개벽"
|
||||
],
|
||||
"daily_area_m2": 25
|
||||
},
|
||||
{
|
||||
"key": "보통",
|
||||
"examples": [
|
||||
"측구",
|
||||
"수로",
|
||||
"옹벽",
|
||||
"일반적인 벽체",
|
||||
"박스"
|
||||
],
|
||||
"daily_area_m2": 35
|
||||
},
|
||||
{
|
||||
"key": "간단",
|
||||
"examples": [
|
||||
"수문 기초",
|
||||
"관의 기초",
|
||||
"매트기초"
|
||||
],
|
||||
"daily_area_m2": 40
|
||||
}
|
||||
],
|
||||
"type_map": [
|
||||
{
|
||||
"type_id": "retaining_wall",
|
||||
"reuse_count": 3,
|
||||
"matched_example": "옹벽",
|
||||
"note": "원문 3회 줄에 「옹벽」이 그대로 있음"
|
||||
},
|
||||
{
|
||||
"type_id": "pipe_inlet_basin",
|
||||
"reuse_count": 4,
|
||||
"matched_example": "거푸집 합판4회",
|
||||
"note": "그 공종 표가 직접 적은 「거푸집 | 합판4회」 가 정본 — 1-7-1 분류(「호안 및 보호공의 기초」 6회)보다 위(2026-09-14 브레인 ㉯ ②). 앞서 6회로 봤음.",
|
||||
"basis": "품셈 12-15 집수정 표"
|
||||
},
|
||||
{
|
||||
"type_id": "ford_pavement",
|
||||
"reuse_count": null,
|
||||
"note": "물넘이포장은 거푸집이 서지 않는 구조(면 포장) — 대상 아님"
|
||||
},
|
||||
{
|
||||
"type_id": "box_culvert",
|
||||
"reuse_count": 6,
|
||||
"matched_example": "관의 기초",
|
||||
"note": "BOX암거 합판은 **버림 옆면뿐**(본체는 유로폼 — 12-38 유형 「박스」 보통) — 원문 6회 줄 「관의 기초 등 극히 간단한 구조」 · 실무 울진 2×2 「합판6회」 와 같음(2026-09-15)"
|
||||
}
|
||||
{
|
||||
"type_id": "retaining_wall",
|
||||
"class": "보통",
|
||||
"matched": "옹벽"
|
||||
},
|
||||
{
|
||||
"type_id": "box_culvert",
|
||||
"class": "보통",
|
||||
"matched": "박스"
|
||||
},
|
||||
{
|
||||
"type_id": "pipe_inlet_basin",
|
||||
"class": "간단",
|
||||
"matched": "관의 기초",
|
||||
"note": "⚠ 집수정 벽체까지 간단으로 볼지는 확인 필요 — 거푸집 사용횟수와 같은 물음"
|
||||
}
|
||||
],
|
||||
"reuse_ratio_pct": {
|
||||
"note": "품셈 12-4 「사용횟수별 기준수량에 대한 비율(%)」. **B09 일위대가가 쓰는 값**이며 B08 은 참고로만 싣는다 — 여기서 곱하면 이중계상.",
|
||||
"table_id": "F0336",
|
||||
"plywood": {
|
||||
"1": 100.0,
|
||||
"2": 57.0,
|
||||
"3": 46.1,
|
||||
"4": 40.1,
|
||||
"5": 37.1,
|
||||
"6": 34.7
|
||||
},
|
||||
"timber": {
|
||||
"1": 100.0,
|
||||
"2": 60.0,
|
||||
"3": 47.1,
|
||||
"4": 40.0,
|
||||
"5": 34.2,
|
||||
"6": 32.0
|
||||
}
|
||||
},
|
||||
"shoring": {
|
||||
"note": "강관동바리(품셈 12-20)는 **슬래브를 떠받칠 때** 필요하다. 옹벽·집수정은 벽체 거푸집만이라 대상이 아니고, BOX암거는 전개식이 동바리 줄을 낸다(2026-09-15).",
|
||||
"targets_pending": [
|
||||
"ford_bridge"
|
||||
],
|
||||
"why": "세월교는 수량 근거가 없어 슬래브 면적 자체가 안 나온다 — 동바리도 함께 미확보"
|
||||
},
|
||||
"euroform_type": {
|
||||
"note": "유로폼 설치·해체 유형(간단/보통/복잡) — **품셈 12-38-3 [주]④ 원문**이 시설 예시로 갈라 둔다. 거푸집 사용횟수(1-7-1)·철근 갈래(12-3 [주]①)와 같은 자리로, 사람이 고르는 값이 아니다.",
|
||||
"source": {
|
||||
"doc": "산림사업 표준품셈 12-38-3 설치 및 해체 [주]④",
|
||||
"table_id": "F0396",
|
||||
"quote": "복잡 — 토목: 교대, 날개벽 등 복잡하고 보강이 많은 구조 / 보통 — 측구, 수로, 옹벽, 일반적인 벽체, 박스 등 / 간단 — 수문 또는 관의 기초, 건축 매트기초 등 간단한 구조"
|
||||
},
|
||||
"classes": [
|
||||
{
|
||||
"key": "복잡",
|
||||
"examples": [
|
||||
"교대",
|
||||
"날개벽"
|
||||
],
|
||||
"daily_area_m2": 25
|
||||
},
|
||||
{
|
||||
"key": "보통",
|
||||
"examples": [
|
||||
"측구",
|
||||
"수로",
|
||||
"옹벽",
|
||||
"일반적인 벽체",
|
||||
"박스"
|
||||
],
|
||||
"daily_area_m2": 35
|
||||
},
|
||||
{
|
||||
"key": "간단",
|
||||
"examples": [
|
||||
"수문 기초",
|
||||
"관의 기초",
|
||||
"매트기초"
|
||||
],
|
||||
"daily_area_m2": 40
|
||||
}
|
||||
],
|
||||
"type_map": [
|
||||
{
|
||||
"type_id": "retaining_wall",
|
||||
"class": "보통",
|
||||
"matched": "옹벽"
|
||||
},
|
||||
{
|
||||
"type_id": "box_culvert",
|
||||
"class": "보통",
|
||||
"matched": "박스"
|
||||
},
|
||||
{
|
||||
"type_id": "pipe_inlet_basin",
|
||||
"class": "간단",
|
||||
"matched": "관의 기초",
|
||||
"note": "⚠ 집수정 벽체까지 간단으로 볼지는 확인 필요 — 거푸집 사용횟수와 같은 물음"
|
||||
}
|
||||
],
|
||||
"reuse_note": "⚠ 12-38-1 「사용횟수」는 **1-7-1 과 다른 자리다.** 1-7-1 은 합판거푸집처럼 **소모성 거푸집을 몇 번 쓰나**(옹벽 3회)이고, 12-38-1 은 유로폼(강재)의 **잔존율 기준**(12회 사용 잔존율 25 % · 25회 사용 잔존율 10 %)으로 **임대료·손료 산정용**이다. 하나로 잇지 않는다.",
|
||||
"material_unit_note": "유로폼 자재는 12-38-2 가 **10㎡당 패널 0.89매**로 낸다. B08 은 **접촉 면적(㎡)** 으로 보내고 매수 환산은 그 표의 밑수(10㎡)를 아는 B09 가 한다 — B08 이 환산하면 밑수를 두 벌로 들게 된다."
|
||||
}
|
||||
"reuse_note": "⚠ 12-38-1 「사용횟수」는 **1-7-1 과 다른 자리다.** 1-7-1 은 합판거푸집처럼 **소모성 거푸집을 몇 번 쓰나**(옹벽 3회)이고, 12-38-1 은 유로폼(강재)의 **잔존율 기준**(12회 사용 잔존율 25 % · 25회 사용 잔존율 10 %)으로 **임대료·손료 산정용**이다. 하나로 잇지 않는다.",
|
||||
"material_unit_note": "유로폼 자재는 12-38-2 가 **10㎡당 패널 0.89매**로 낸다. B08 은 **접촉 면적(㎡)** 으로 보내고 매수 환산은 그 표의 밑수(10㎡)를 아는 B09 가 한다 — B08 이 환산하면 밑수를 두 벌로 들게 된다."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,386 +1,387 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"dataset_id": "machine_productivity",
|
||||
"effective_date": "2026-01-01",
|
||||
"note": "기계 작업량 밑값 — 코드에 박혀 있던 값을 그대로 옮긴 벌(2026-09-16 사용자 원칙 「마스터 = 관리자가 제어할 값 · 코드 안에 있으면 안 됨」). 값은 한 칸도 안 바꿨다 — 옮기기 전후 금액이 같다.",
|
||||
"policy": {
|
||||
"no_value_changed": "코드에 있던 값을 그대로 옮겼다. 원문과의 대조는 시험이 지킨다.",
|
||||
"formula_stays_in_code": "식(Q = n·q·f·E 따위)은 값이 아니라 로직이라 코드에 둔다 — 계수만 여기 있다.",
|
||||
"source_tables_mashed": "삽날 용량표는 원문 옮기기에서 절 이름이 뭉개져(`5-3.2-5.5-타 이 어…`) 표로 안 들어왔다. 값은 원문 본문 것이고, 원문 표가 제 모양으로 들어오면 그때 대조한다."
|
||||
"schema_version": "1.0",
|
||||
"dataset_id": "machine_productivity",
|
||||
"effective_date": "2026-01-01",
|
||||
"note": "기계 작업량 밑값 — 코드에 박혀 있던 값을 그대로 옮긴 벌(2026-09-16 사용자 원칙 「마스터 = 관리자가 제어할 값 · 코드 안에 있으면 안 됨」). 값은 한 칸도 안 바꿨다 — 옮기기 전후 금액이 같다.",
|
||||
"policy": {
|
||||
"no_value_changed": "코드에 있던 값을 그대로 옮겼다. 원문과의 대조는 시험이 지킨다.",
|
||||
"formula_stays_in_code": "식(Q = n·q·f·E 따위)은 값이 아니라 로직이라 코드에 둔다 — 계수만 여기 있다.",
|
||||
"source_tables_mashed": "삽날 용량표는 원문 옮기기에서 절 이름이 뭉개져(`5-3.2-5.5-타 이 어…`) 표로 안 들어왔다. 값은 원문 본문 것이고, 원문 표가 제 모양으로 들어오면 그때 대조한다."
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"doc": "건설공사 표준품셈 8-2-1 불도저 2.가·나 전진·후진 속도",
|
||||
"tables": [
|
||||
"C0426",
|
||||
"C0427"
|
||||
],
|
||||
"role": "primary"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"doc": "건설공사 표준품셈 8-2-1 불도저 2.가·나 전진·후진 속도",
|
||||
"tables": [
|
||||
"C0426",
|
||||
"C0427"
|
||||
],
|
||||
"role": "primary"
|
||||
},
|
||||
{
|
||||
"doc": "건설공사 표준품셈 8-2-1 1.가 삽날 용량 q˚",
|
||||
"tables": [],
|
||||
"role": "primary",
|
||||
"note": "원문 표가 뭉개져 카탈로그에 표로 없음"
|
||||
},
|
||||
{
|
||||
"doc": "산림사업 표준품셈(고시 제2025-82호) 10-12 「1. 적재」·「2. 운반」 식 서식",
|
||||
"tables": [],
|
||||
"role": "primary",
|
||||
"note": "원문이 표가 아니라 채워 넣는 식이라 공종 마스터에 안 실림"
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"dozer_speed": {
|
||||
"unit": "m/분",
|
||||
"key": "track+tonnage_ton+gear",
|
||||
"note": "후진이 「-」인 단은 원문에 값이 없어 담지 않는다(없는 속도로 싸이클이 서면 값이 조용히 틀림).",
|
||||
"records": [
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "4",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "63"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "4",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "57",
|
||||
"reverse_m_per_min": "85"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "43",
|
||||
"reverse_m_per_min": "53"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "67",
|
||||
"reverse_m_per_min": "78"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "92",
|
||||
"reverse_m_per_min": "107"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "42",
|
||||
"reverse_m_per_min": "50"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "64",
|
||||
"reverse_m_per_min": "75"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "88",
|
||||
"reverse_m_per_min": "105"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "48"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "55",
|
||||
"reverse_m_per_min": "70"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "75",
|
||||
"reverse_m_per_min": "100"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "13",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "48"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "13",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "55",
|
||||
"reverse_m_per_min": "70"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "46"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "55",
|
||||
"reverse_m_per_min": "70"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "75",
|
||||
"reverse_m_per_min": "98"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "43"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "52",
|
||||
"reverse_m_per_min": "58"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "70",
|
||||
"reverse_m_per_min": "78"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "15",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "83",
|
||||
"reverse_m_per_min": "92"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "15",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "200",
|
||||
"reverse_m_per_min": "125"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "28",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "92",
|
||||
"reverse_m_per_min": "92"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "28",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "200",
|
||||
"reverse_m_per_min": "200"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "33",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "92",
|
||||
"reverse_m_per_min": "110"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "33",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "210",
|
||||
"reverse_m_per_min": "250"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dozer_blade": {
|
||||
"unit": "㎥",
|
||||
"key": "track+tonnage_ton",
|
||||
"note": "무한궤도 10·13 톤이 둘 다 1.5 ㎥ 라 용량만으로는 못 가른다 — 속도로 마저 가른다.",
|
||||
"records": [
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "4",
|
||||
"blade_m3": "0.5"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"blade_m3": "1.1"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"blade_m3": "1.5"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"blade_m3": "2.0"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "13",
|
||||
"blade_m3": "1.5"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"blade_m3": "3.2"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"blade_m3": "5.5"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "15",
|
||||
"blade_m3": "3.1"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "28",
|
||||
"blade_m3": "4.0"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "33",
|
||||
"blade_m3": "5.7"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dump_haul": {
|
||||
"key": "key",
|
||||
"note": "덤프 운반·적재 식이 쓰는 밑값. 장비 규격이 바뀌면 여기를 고친다.",
|
||||
"records": [
|
||||
{
|
||||
"key": "truck_ton",
|
||||
"value": "15",
|
||||
"unit": "ton",
|
||||
"meaning": "덤프트럭 적재 규격 T"
|
||||
},
|
||||
{
|
||||
"key": "bucket_m3",
|
||||
"value": "0.7",
|
||||
"unit": "㎥",
|
||||
"meaning": "적재기계 버켓 용량 q"
|
||||
},
|
||||
{
|
||||
"key": "loader_cycle_sec",
|
||||
"value": "20",
|
||||
"unit": "초",
|
||||
"meaning": "적재 대기 싸이클 ㎝s"
|
||||
},
|
||||
{
|
||||
"key": "speed_loaded_kmh",
|
||||
"value": "5",
|
||||
"unit": "㎞/hr",
|
||||
"meaning": "적재 주행속도 V1"
|
||||
},
|
||||
{
|
||||
"key": "speed_empty_kmh",
|
||||
"value": "6",
|
||||
"unit": "㎞/hr",
|
||||
"meaning": "공차 주행속도 V2"
|
||||
},
|
||||
{
|
||||
"key": "unload_min",
|
||||
"value": "1.1",
|
||||
"unit": "분",
|
||||
"meaning": "적하 시간 t3"
|
||||
},
|
||||
{
|
||||
"key": "wait_min",
|
||||
"value": "0.9",
|
||||
"unit": "분",
|
||||
"meaning": "대기 시간 t4"
|
||||
},
|
||||
{
|
||||
"key": "cover_min",
|
||||
"value": "0.5",
|
||||
"unit": "분",
|
||||
"meaning": "덮개 시간 t5"
|
||||
},
|
||||
{
|
||||
"key": "loading_cycle_sec",
|
||||
"value": "22",
|
||||
"unit": "초",
|
||||
"meaning": "적재 식 싸이클 ㎝(180°)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dump_material": {
|
||||
"key": "work_item_code",
|
||||
"note": "10-12 절 재료별 값 — 고른 값·버린 값 사유를 줄에 함께 둔다. 적재 사유는 `loading_note` 로 따로 둔다(운반 줄 사유와 섞지 않음).",
|
||||
"records": [
|
||||
{
|
||||
"work_item_code": "FP-10-12-01",
|
||||
"label": "토사",
|
||||
"unit_weight_ton_per_m3": "1.9",
|
||||
"loose_factor": "1.3",
|
||||
"bucket_factor": "0.9",
|
||||
"loader_efficiency": "0.85",
|
||||
"truck_efficiency": "0.9",
|
||||
"loading_efficiency": "0.60",
|
||||
"notes": [
|
||||
"n 의 Qt = 계산값 T/γt×L(원문 표기 「10/(0.7×K)」의 10 은 토사 어림수 복사로 봄 — 버림)",
|
||||
"Es = 운반 줄 값(적재 식의 E0 와 다른 기호)"
|
||||
],
|
||||
"loading_note": "E0 = 0.60(표 「임도」·10-12-3 [주]③) — 본문 표기 0.75 버림"
|
||||
},
|
||||
{
|
||||
"work_item_code": "FP-10-12-02",
|
||||
"label": "암절취",
|
||||
"unit_weight_ton_per_m3": "2.4",
|
||||
"loose_factor": "1.35",
|
||||
"bucket_factor": "0.55",
|
||||
"loader_efficiency": "0.35",
|
||||
"truck_efficiency": "0.9",
|
||||
"loading_efficiency": "0.35",
|
||||
"notes": [
|
||||
"n 의 Qt = 계산값 T/γt×L(원문 표기 「10/(0.7×K)」의 10 은 토사 어림수 복사로 봄 — 버림) · 원문 10 이면 n 1.18배",
|
||||
"Es = 운반 줄 값(적재 식의 E0 와 다른 기호)"
|
||||
],
|
||||
"loading_note": "E0 = 0.35(본문·표 「파쇄암」 같음)"
|
||||
},
|
||||
{
|
||||
"work_item_code": "FP-10-12-03",
|
||||
"label": "발파암",
|
||||
"unit_weight_ton_per_m3": "2.4",
|
||||
"loose_factor": "1.625",
|
||||
"bucket_factor": "0.55",
|
||||
"loader_efficiency": "0.35",
|
||||
"truck_efficiency": "0.9",
|
||||
"loading_efficiency": "0.35",
|
||||
"notes": [
|
||||
"n 의 Qt = 계산값 T/γt×L(원문 표기 「10/(0.7×K)」의 10 은 토사 어림수 복사로 봄 — 버림)",
|
||||
"Es = 운반 줄 값(적재 식의 E0 와 다른 기호)",
|
||||
"E 원문 누락 — 0.9 적용(같은 절 토사·암절취 · 덤프 작업효율)"
|
||||
],
|
||||
"loading_note": "E0 = 0.35(10-12-3 [주]③ 「파쇄암 0.35」)"
|
||||
}
|
||||
]
|
||||
}
|
||||
{
|
||||
"doc": "건설공사 표준품셈 8-2-1 1.가 삽날 용량 q˚",
|
||||
"tables": [],
|
||||
"role": "primary",
|
||||
"note": "원문 표가 뭉개져 카탈로그에 표로 없음"
|
||||
},
|
||||
{
|
||||
"doc": "산림사업 표준품셈(고시 제2025-82호) 10-12 「1. 적재」·「2. 운반」 식 서식",
|
||||
"tables": [],
|
||||
"role": "primary",
|
||||
"note": "원문이 표가 아니라 채워 넣는 식이라 공종 마스터에 안 실림"
|
||||
}
|
||||
],
|
||||
"variables": {
|
||||
"dozer_speed": {
|
||||
"unit": "m/분",
|
||||
"key": "track+tonnage_ton+gear",
|
||||
"note": "후진이 「-」인 단은 원문에 값이 없어 담지 않는다(없는 속도로 싸이클이 서면 값이 조용히 틀림).",
|
||||
"records": [
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "4",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "63"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "4",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "57",
|
||||
"reverse_m_per_min": "85"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "43",
|
||||
"reverse_m_per_min": "53"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "67",
|
||||
"reverse_m_per_min": "78"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "92",
|
||||
"reverse_m_per_min": "107"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "42",
|
||||
"reverse_m_per_min": "50"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "64",
|
||||
"reverse_m_per_min": "75"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "88",
|
||||
"reverse_m_per_min": "105"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "48"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "55",
|
||||
"reverse_m_per_min": "70"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "75",
|
||||
"reverse_m_per_min": "100"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "13",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "48"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "13",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "55",
|
||||
"reverse_m_per_min": "70"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "46"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "55",
|
||||
"reverse_m_per_min": "70"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "75",
|
||||
"reverse_m_per_min": "98"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "40",
|
||||
"reverse_m_per_min": "43"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "52",
|
||||
"reverse_m_per_min": "58"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"gear": 3,
|
||||
"forward_m_per_min": "70",
|
||||
"reverse_m_per_min": "78"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "15",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "83",
|
||||
"reverse_m_per_min": "92"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "15",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "200",
|
||||
"reverse_m_per_min": "125"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "28",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "92",
|
||||
"reverse_m_per_min": "92"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "28",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "200",
|
||||
"reverse_m_per_min": "200"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "33",
|
||||
"gear": 1,
|
||||
"forward_m_per_min": "92",
|
||||
"reverse_m_per_min": "110"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "33",
|
||||
"gear": 2,
|
||||
"forward_m_per_min": "210",
|
||||
"reverse_m_per_min": "250"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dozer_blade": {
|
||||
"unit": "㎥",
|
||||
"key": "track+tonnage_ton",
|
||||
"note": "무한궤도 10·13 톤이 둘 다 1.5 ㎥ 라 용량만으로는 못 가른다 — 속도로 마저 가른다.",
|
||||
"records": [
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "4",
|
||||
"blade_m3": "0.5"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "7",
|
||||
"blade_m3": "1.1"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "10",
|
||||
"blade_m3": "1.5"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "12",
|
||||
"blade_m3": "2.0"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "13",
|
||||
"blade_m3": "1.5"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "19",
|
||||
"blade_m3": "3.2"
|
||||
},
|
||||
{
|
||||
"track": "무한궤도",
|
||||
"tonnage_ton": "32",
|
||||
"blade_m3": "5.5"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "15",
|
||||
"blade_m3": "3.1"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "28",
|
||||
"blade_m3": "4.0"
|
||||
},
|
||||
{
|
||||
"track": "타이어",
|
||||
"tonnage_ton": "33",
|
||||
"blade_m3": "5.7"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dump_haul": {
|
||||
"key": "key",
|
||||
"note": "덤프 운반·적재 식이 쓰는 밑값. 장비 규격이 바뀌면 여기를 고친다.",
|
||||
"records": [
|
||||
{
|
||||
"key": "truck_ton",
|
||||
"value": "15",
|
||||
"unit": "ton",
|
||||
"meaning": "덤프트럭 적재 규격 T"
|
||||
},
|
||||
{
|
||||
"key": "bucket_m3",
|
||||
"value": "0.7",
|
||||
"unit": "㎥",
|
||||
"meaning": "적재기계 버켓 용량 q"
|
||||
},
|
||||
{
|
||||
"key": "loader_cycle_sec",
|
||||
"value": "20",
|
||||
"unit": "초",
|
||||
"meaning": "적재 대기 싸이클 ㎝s"
|
||||
},
|
||||
{
|
||||
"key": "speed_loaded_kmh",
|
||||
"value": "5",
|
||||
"unit": "㎞/hr",
|
||||
"meaning": "적재 주행속도 V1"
|
||||
},
|
||||
{
|
||||
"key": "speed_empty_kmh",
|
||||
"value": "6",
|
||||
"unit": "㎞/hr",
|
||||
"meaning": "공차 주행속도 V2"
|
||||
},
|
||||
{
|
||||
"key": "unload_min",
|
||||
"value": "1.1",
|
||||
"unit": "분",
|
||||
"meaning": "적하 시간 t3"
|
||||
},
|
||||
{
|
||||
"key": "wait_min",
|
||||
"value": "0.9",
|
||||
"unit": "분",
|
||||
"meaning": "대기 시간 t4"
|
||||
},
|
||||
{
|
||||
"key": "cover_min",
|
||||
"value": "0.5",
|
||||
"unit": "분",
|
||||
"meaning": "덮개 시간 t5"
|
||||
},
|
||||
{
|
||||
"key": "loading_cycle_sec",
|
||||
"value": "22",
|
||||
"unit": "초",
|
||||
"meaning": "적재 식 싸이클 ㎝(180°)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dump_material": {
|
||||
"key": "work_item_code",
|
||||
"note": "10-12 절 재료별 값 — 고른 값·버린 값 사유를 줄에 함께 둔다. 적재 사유는 `loading_note` 로 따로 둔다(운반 줄 사유와 섞지 않음).",
|
||||
"records": [
|
||||
{
|
||||
"work_item_code": "FP-10-12-01",
|
||||
"label": "토사",
|
||||
"unit_weight_ton_per_m3": "1.9",
|
||||
"loose_factor": "1.3",
|
||||
"bucket_factor": "0.9",
|
||||
"loader_efficiency": "0.85",
|
||||
"truck_efficiency": "0.9",
|
||||
"loading_efficiency": "0.60",
|
||||
"notes": [
|
||||
"n 의 Qt = 계산값 T/γt×L(원문 표기 「10/(0.7×K)」의 10 은 토사 어림수 복사로 봄 — 버림)",
|
||||
"Es = 운반 줄 값(적재 식의 E0 와 다른 기호)"
|
||||
],
|
||||
"loading_note": "E0 = 0.60(표 「임도」·10-12-3 [주]③) — 본문 표기 0.75 버림",
|
||||
"loading_efficiency_basis": "원문 10-12-1 은 식에 `E0=0.75` 를 적지만, 바로 아래 [주]⑤ 「굴착기의 작업능력 산정 비교」 표가 `E0 | 토사 | 0.60(불량)` 의 비고에 **「임 도」** 라고 못박는다 — 임도는 0.60 이 맞다(2026-09-18 원문 L5927·L5938 대조)."
|
||||
},
|
||||
{
|
||||
"work_item_code": "FP-10-12-02",
|
||||
"label": "암절취",
|
||||
"unit_weight_ton_per_m3": "2.4",
|
||||
"loose_factor": "1.35",
|
||||
"bucket_factor": "0.55",
|
||||
"loader_efficiency": "0.35",
|
||||
"truck_efficiency": "0.9",
|
||||
"loading_efficiency": "0.35",
|
||||
"notes": [
|
||||
"n 의 Qt = 계산값 T/γt×L(원문 표기 「10/(0.7×K)」의 10 은 토사 어림수 복사로 봄 — 버림) · 원문 10 이면 n 1.18배",
|
||||
"Es = 운반 줄 값(적재 식의 E0 와 다른 기호)"
|
||||
],
|
||||
"loading_note": "E0 = 0.35(본문·표 「파쇄암」 같음)"
|
||||
},
|
||||
{
|
||||
"work_item_code": "FP-10-12-03",
|
||||
"label": "발파암",
|
||||
"unit_weight_ton_per_m3": "2.4",
|
||||
"loose_factor": "1.625",
|
||||
"bucket_factor": "0.55",
|
||||
"loader_efficiency": "0.35",
|
||||
"truck_efficiency": "0.9",
|
||||
"loading_efficiency": "0.35",
|
||||
"notes": [
|
||||
"n 의 Qt = 계산값 T/γt×L(원문 표기 「10/(0.7×K)」의 10 은 토사 어림수 복사로 봄 — 버림)",
|
||||
"Es = 운반 줄 값(적재 식의 E0 와 다른 기호)",
|
||||
"E 원문 누락 — 0.9 적용(같은 절 토사·암절취 · 덤프 작업효율)"
|
||||
],
|
||||
"loading_note": "E0 = 0.35(10-12-3 [주]③ 「파쇄암 0.35」)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6004,7 +6004,7 @@
|
||||
"name_ko": "일반관리비율 — 전문·전기·통신·소방·기타",
|
||||
"summary": "추정가격 구간마다.",
|
||||
"shape": "list",
|
||||
"rows": 4,
|
||||
"rows": 6,
|
||||
"columns": [
|
||||
{
|
||||
"key": "estimated_price_bracket",
|
||||
|
||||
@@ -1,171 +1,181 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"dataset_id": "material_surcharge",
|
||||
"original_tables": "resources/data_cost_input_value/coef_2026.json → variables/surcharge_mat — 원문 표가 실린 자리. ⚠ 값이 겹치지만 이원화가 아니다: 저쪽은 원문 보관이고 읽어 쓰는 정본은 여기(rates_pct)다.",
|
||||
"effective_date": "2026-01-01",
|
||||
"source": {
|
||||
"primary": {
|
||||
"doc": "산림사업 표준품셈 제1장 1-3-1 재료의 할증",
|
||||
"via": "resources/knowledge/technical_info/01_임도/04_수량분석정보/수량산출_일반.md"
|
||||
},
|
||||
"supplementary": {
|
||||
"doc": "건설공사 표준품셈 1-3-1 재료의 할증('23년 보완)",
|
||||
"via": "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제1장_적용기준.md",
|
||||
"note": "산림품셈에 없는 자재만 보완용으로 본다(PLAN 8-5). 실린 값은 출처를 pumsem 필드로 구분."
|
||||
}
|
||||
"schema_version": "1.0",
|
||||
"dataset_id": "material_surcharge",
|
||||
"original_tables": "resources/data_cost_input_value/coef_2026.json → variables/surcharge_mat — 원문 표가 실린 자리. ⚠ 값이 겹치지만 이원화가 아니다: 저쪽은 원문 보관이고 읽어 쓰는 정본은 여기(rates_pct)다.",
|
||||
"effective_date": "2026-01-01",
|
||||
"source": {
|
||||
"primary": {
|
||||
"doc": "산림사업 표준품셈 제1장 1-3-1 재료의 할증",
|
||||
"via": "resources/knowledge/technical_info/01_임도/04_수량분석정보/수량산출_일반.md"
|
||||
},
|
||||
"policy": {
|
||||
"no_invented_values": true,
|
||||
"unknown_material_is_flagged": true
|
||||
},
|
||||
"rates_pct": [
|
||||
{
|
||||
"material": "시멘트",
|
||||
"rate": 2,
|
||||
"condition": "정치식",
|
||||
"alt_rate": 3,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "잔골재",
|
||||
"rate": 10,
|
||||
"alt_rate": 12,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "채움재",
|
||||
"rate": 10,
|
||||
"alt_rate": 12,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "굵은골재",
|
||||
"rate": 3,
|
||||
"alt_rate": 5,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "모래",
|
||||
"rate": 6,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "부순돌",
|
||||
"rate": 4,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "자갈",
|
||||
"rate": 4,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "점질토",
|
||||
"rate": 6,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "이형철근",
|
||||
"rate": 3,
|
||||
"alt_rate": 7,
|
||||
"alt_condition": "복잡 구조물 주철근",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "원형철근",
|
||||
"rate": 5,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "강판",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "각재",
|
||||
"rate": 5,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "판재",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "레미콘",
|
||||
"rate": 2,
|
||||
"condition": "무근",
|
||||
"alt_rate": 1,
|
||||
"alt_condition": "철근",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "흄관",
|
||||
"rate": 3,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "떼",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "초화류",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "사방용 수목",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "원석",
|
||||
"rate": 30,
|
||||
"condition": "마름돌용",
|
||||
"pumsem": "forest"
|
||||
}
|
||||
],
|
||||
"observed_practice": {
|
||||
"note": "울진 총괄집계 관측 — 참고이지 기본값이 아니다(PLAN 8-10 ★ 법대로).",
|
||||
"values": {
|
||||
"모래": 10,
|
||||
"자갈": 3,
|
||||
"혼합석": 2,
|
||||
"시멘트": 2,
|
||||
"떼": 10
|
||||
}
|
||||
},
|
||||
"candidates_pending_user": {
|
||||
"note": "건설품셈에서 이름은 찾았으나 **적용 조건이 우리 쓰임과 다른** 것. 지식DB는 근거·후보 가이드이지 값을 확정하는 곳이 아니므로(CLAUDE.md 3장) 엔진은 이 값을 쓰지 않고 「할증률 미확보」로 둔다. 사용자 확정 후 rates_pct 로 옮길 것.",
|
||||
"items": [
|
||||
{
|
||||
"material": "막자갈",
|
||||
"rate": 4,
|
||||
"pumsem": "forest",
|
||||
"listed_in": "산림청고시 제2025-82호 1-3-1 3호 「부순돌ㆍ자갈ㆍ막자갈 4」(건설품셈도 같은 조건)",
|
||||
"listed_condition": "노상 및 노반재료(선택층·보조기층·기층)",
|
||||
"our_usage": "돌쌓기 뒤채움",
|
||||
"why_not_applied": "조문이 쓰임을 노반재료로 못박아 뒤채움에 그 상한을 끌어올 근거가 없음(2026-09-14 브레인 판정 보류 유지 · 사방기술교본도 할증률 없음)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"note": "산림·건설 두 품셈의 재료 할증률표를 다 뒤졌으나 **이름이 없는** 자재. 석재 계열은 건설품셈도 해상 사석(기초·피복·뒤채움)과 원석(마름돌용)만 다룬다.",
|
||||
"materials": ["야면석", "고임돌", "물구멍관", "못"],
|
||||
"checked": [
|
||||
"산림품셈 1-3-1 전 19종",
|
||||
"못 — 산림청고시 제2025-82호 1-3-1 6호 기타재료에 없음(2026-09-14 브레인 확인)",
|
||||
"건설품셈 1-3-1 1~7호(콘크리트·노반·관기초·토사(해상)·사석(해상)·속채움(해상)·강재류)",
|
||||
"건설품셈 제7장 돌공사 — 재료 할증률표 없음"
|
||||
]
|
||||
"supplementary": {
|
||||
"doc": "건설공사 표준품셈 1-3-1 재료의 할증('23년 보완)",
|
||||
"via": "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제1장_적용기준.md",
|
||||
"note": "산림품셈에 없는 자재만 보완용으로 본다(PLAN 8-5). 실린 값은 출처를 pumsem 필드로 구분."
|
||||
}
|
||||
},
|
||||
"policy": {
|
||||
"no_invented_values": true,
|
||||
"unknown_material_is_flagged": true
|
||||
},
|
||||
"rates_pct": [
|
||||
{
|
||||
"material": "시멘트",
|
||||
"rate": 2,
|
||||
"condition": "정치식",
|
||||
"alt_rate": 3,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "잔골재",
|
||||
"rate": 10,
|
||||
"alt_rate": 12,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "채움재",
|
||||
"rate": 10,
|
||||
"alt_rate": 12,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "굵은골재",
|
||||
"rate": 3,
|
||||
"alt_rate": 5,
|
||||
"alt_condition": "기타",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "모래",
|
||||
"rate": 6,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "부순돌",
|
||||
"rate": 4,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "자갈",
|
||||
"rate": 4,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "점질토",
|
||||
"rate": 6,
|
||||
"condition": "노반재료",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "이형철근",
|
||||
"rate": 3,
|
||||
"alt_rate": 7,
|
||||
"alt_condition": "복잡 구조물 주철근",
|
||||
"pumsem": "forest",
|
||||
"alt_rate_range": [
|
||||
6,
|
||||
7
|
||||
],
|
||||
"alt_rate_note": "원문은 복잡 구조물 주철근 할증을 **범위 「6~7」**로 적는다. 쓰는 값은 위 끝 7 — 범위를 지우지 않고 함께 싣는다(2026-09-18)."
|
||||
},
|
||||
{
|
||||
"material": "원형철근",
|
||||
"rate": 5,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "강판",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "각재",
|
||||
"rate": 5,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "판재",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "레미콘",
|
||||
"rate": 2,
|
||||
"condition": "무근",
|
||||
"alt_rate": 1,
|
||||
"alt_condition": "철근",
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "흄관",
|
||||
"rate": 3,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "떼",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "초화류",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "사방용 수목",
|
||||
"rate": 10,
|
||||
"pumsem": "forest"
|
||||
},
|
||||
{
|
||||
"material": "원석",
|
||||
"rate": 30,
|
||||
"condition": "마름돌용",
|
||||
"pumsem": "forest"
|
||||
}
|
||||
],
|
||||
"observed_practice": {
|
||||
"note": "울진 총괄집계 관측 — 참고이지 기본값이 아니다(PLAN 8-10 ★ 법대로).",
|
||||
"values": {
|
||||
"모래": 10,
|
||||
"자갈": 3,
|
||||
"혼합석": 2,
|
||||
"시멘트": 2,
|
||||
"떼": 10
|
||||
}
|
||||
},
|
||||
"candidates_pending_user": {
|
||||
"note": "건설품셈에서 이름은 찾았으나 **적용 조건이 우리 쓰임과 다른** 것. 지식DB는 근거·후보 가이드이지 값을 확정하는 곳이 아니므로(CLAUDE.md 3장) 엔진은 이 값을 쓰지 않고 「할증률 미확보」로 둔다. 사용자 확정 후 rates_pct 로 옮길 것.",
|
||||
"items": [
|
||||
{
|
||||
"material": "막자갈",
|
||||
"rate": 4,
|
||||
"pumsem": "forest",
|
||||
"listed_in": "산림청고시 제2025-82호 1-3-1 3호 「부순돌ㆍ자갈ㆍ막자갈 4」(건설품셈도 같은 조건)",
|
||||
"listed_condition": "노상 및 노반재료(선택층·보조기층·기층)",
|
||||
"our_usage": "돌쌓기 뒤채움",
|
||||
"why_not_applied": "조문이 쓰임을 노반재료로 못박아 뒤채움에 그 상한을 끌어올 근거가 없음(2026-09-14 브레인 판정 보류 유지 · 사방기술교본도 할증률 없음)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"not_found": {
|
||||
"note": "산림·건설 두 품셈의 재료 할증률표를 다 뒤졌으나 **이름이 없는** 자재. 석재 계열은 건설품셈도 해상 사석(기초·피복·뒤채움)과 원석(마름돌용)만 다룬다.",
|
||||
"materials": [
|
||||
"야면석",
|
||||
"고임돌",
|
||||
"물구멍관",
|
||||
"못"
|
||||
],
|
||||
"checked": [
|
||||
"산림품셈 1-3-1 전 19종",
|
||||
"못 — 산림청고시 제2025-82호 1-3-1 6호 기타재료에 없음(2026-09-14 브레인 확인)",
|
||||
"건설품셈 1-3-1 1~7호(콘크리트·노반·관기초·토사(해상)·사석(해상)·속채움(해상)·강재류)",
|
||||
"건설품셈 제7장 돌공사 — 재료 할증률표 없음"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,40 +51,7 @@
|
||||
"why": "원문 복잡 구조물 주철근 「6-7」 범위 중 위 끝 7 을 씀 — 범위를 살릴지 사람 확인"
|
||||
}
|
||||
},
|
||||
"formwork_reuse": {
|
||||
"reuse_ratio_pct/timber": {
|
||||
"md": {
|
||||
"각재": "비율 칸 비어 있음",
|
||||
"합판": {
|
||||
"재료별(%)": [
|
||||
"100.0",
|
||||
"57.0",
|
||||
"46.1",
|
||||
"40.1",
|
||||
"37.1",
|
||||
"34.7"
|
||||
],
|
||||
"노무비(%)": [
|
||||
"100.0",
|
||||
"60.0",
|
||||
"47.1",
|
||||
"40.0",
|
||||
"34.2",
|
||||
"32.0"
|
||||
]
|
||||
}
|
||||
},
|
||||
"data": [
|
||||
100.0,
|
||||
60.0,
|
||||
47.1,
|
||||
40.0,
|
||||
34.2,
|
||||
32.0
|
||||
],
|
||||
"why": "⚠ 원문 12-4 는 각재 줄 비율 칸이 비어 있음 — 이 여섯 값은 합판 줄 「노무비(%)」 열인데 각재(timber)라는 이름이 붙음 · 쓰는 곳 확인 필요"
|
||||
}
|
||||
},
|
||||
"formwork_reuse": {},
|
||||
"rebar_complexity": {
|
||||
"classes/복잡": {
|
||||
"md": "12-3 [주]① 에 없는 예시",
|
||||
|
||||
@@ -9,53 +9,7 @@
|
||||
"*_blind: 시험이 못 보는 자리 — what=무엇 · why=까닭. `안 잰 칸 …` 은 자료에 있는데 원문과 안 맞대는 칸(새 칸이 생기면 빨강).",
|
||||
"why: 사람이 적은 까닭 — 시험은 맞대기에서 뺌."
|
||||
],
|
||||
"labor": {
|
||||
"제조 115 industry": {
|
||||
"source": "품질 관리 / 금속 재료",
|
||||
"data": "금속 재료",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 116 industry": {
|
||||
"source": "품질 관리 / 금속 재료",
|
||||
"data": "금속 재료",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 117 industry": {
|
||||
"source": "품질 관리 / 금속 재료",
|
||||
"data": "금속 재료",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 118 industry": {
|
||||
"source": "품질 관리 / 전기· 전자· 기계",
|
||||
"data": "전기· 전자· 기계",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 119 industry": {
|
||||
"source": "품질 관리 / 전기· 전자· 기계",
|
||||
"data": "전기· 전자· 기계",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 120 industry": {
|
||||
"source": "품질 관리 / 전기· 전자· 기계",
|
||||
"data": "전기· 전자· 기계",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 121 industry": {
|
||||
"source": "품질 관리 / 기타 공학",
|
||||
"data": "기타 공학",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 122 industry": {
|
||||
"source": "품질 관리 / 기타 공학",
|
||||
"data": "기타 공학",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
},
|
||||
"제조 123 industry": {
|
||||
"source": "품질 관리 / 기타 공학",
|
||||
"data": "기타 공학",
|
||||
"why": "품질 관리 하위 업종 — 112~114 는 「품질 관리 / 화학 공학」 꼴인데 115~123 은 상위 업종이 빠짐(자료 안 고름)"
|
||||
}
|
||||
},
|
||||
"labor": {},
|
||||
"machine": {
|
||||
"가격 0230-0002 machine_name": {
|
||||
"source": "대형 브레이커",
|
||||
@@ -496,326 +450,6 @@
|
||||
"data": null,
|
||||
"why": "원문 한 칸에 여러 코드가 뭉친 줄 — 자료가 안 옮겨 손료가 없음"
|
||||
},
|
||||
"손료 5202-0127 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.55,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0127 annual_standard_hours": {
|
||||
"source": 800,
|
||||
"data": 4500,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0127 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2000,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0127 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 800,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0127 economic_life_hours": {
|
||||
"source": 4500,
|
||||
"data": null,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0127 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1222,
|
||||
"data": 2000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0127 maintenance_ratio": {
|
||||
"source": 0.55,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0127 management_coefficient_1e_minus_7": {
|
||||
"source": 788,
|
||||
"data": 1222,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.55,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 annual_standard_hours": {
|
||||
"source": 800,
|
||||
"data": 4500,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2000,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 800,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 economic_life_hours": {
|
||||
"source": 4500,
|
||||
"data": null,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1222,
|
||||
"data": 2000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 maintenance_ratio": {
|
||||
"source": 0.55,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0240 management_coefficient_1e_minus_7": {
|
||||
"source": 788,
|
||||
"data": 1222,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.55,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 annual_standard_hours": {
|
||||
"source": 800,
|
||||
"data": 4500,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2000,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 800,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 economic_life_hours": {
|
||||
"source": 4500,
|
||||
"data": 1050,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1222,
|
||||
"data": 2000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 maintenance_ratio": {
|
||||
"source": 0.55,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5202-0300 management_coefficient_1e_minus_7": {
|
||||
"source": 788,
|
||||
"data": 1222,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 annual_standard_hours": {
|
||||
"source": 890,
|
||||
"data": 5.5,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2250,
|
||||
"data": 0.6,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 4000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 economic_life_hours": {
|
||||
"source": 4000,
|
||||
"data": null,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1500,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 maintenance_ratio": {
|
||||
"source": 0.6,
|
||||
"data": 890,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-1800 management_coefficient_1e_minus_7": {
|
||||
"source": 730,
|
||||
"data": 2250,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 annual_standard_hours": {
|
||||
"source": 890,
|
||||
"data": 8.0,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2250,
|
||||
"data": 0.6,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 4000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 economic_life_hours": {
|
||||
"source": 4000,
|
||||
"data": null,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1500,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 maintenance_ratio": {
|
||||
"source": 0.6,
|
||||
"data": 890,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2200 management_coefficient_1e_minus_7": {
|
||||
"source": 730,
|
||||
"data": 2250,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 annual_standard_hours": {
|
||||
"source": 890,
|
||||
"data": 12.0,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2250,
|
||||
"data": 0.6,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 4000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 economic_life_hours": {
|
||||
"source": 4000,
|
||||
"data": null,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1500,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 maintenance_ratio": {
|
||||
"source": 0.6,
|
||||
"data": 890,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-2700 management_coefficient_1e_minus_7": {
|
||||
"source": 730,
|
||||
"data": 2250,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 annual_standard_hours": {
|
||||
"source": 890,
|
||||
"data": 20.0,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2250,
|
||||
"data": 0.6,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 4000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 economic_life_hours": {
|
||||
"source": 4000,
|
||||
"data": null,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1500,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 maintenance_ratio": {
|
||||
"source": 0.6,
|
||||
"data": 890,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-3500 management_coefficient_1e_minus_7": {
|
||||
"source": 730,
|
||||
"data": 2250,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 annual_management_ratio": {
|
||||
"source": 0.1,
|
||||
"data": 0.9,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 annual_standard_hours": {
|
||||
"source": 890,
|
||||
"data": 35.0,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 depreciation_coefficient_1e_minus_7": {
|
||||
"source": 2250,
|
||||
"data": 0.6,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 depreciation_ratio": {
|
||||
"source": 0.9,
|
||||
"data": 4000,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 economic_life_hours": {
|
||||
"source": 4000,
|
||||
"data": null,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 maintenance_coefficient_1e_minus_7": {
|
||||
"source": 1500,
|
||||
"data": 0.1,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 maintenance_ratio": {
|
||||
"source": 0.6,
|
||||
"data": 890,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5203-4500 management_coefficient_1e_minus_7": {
|
||||
"source": 730,
|
||||
"data": 2250,
|
||||
"why": "규격 칸이 둘(5202)·셋(5203)인 표 — 자료가 칸을 밀려 읽음(가동시간 자리에 내용시간 값 등) · 값 틀림"
|
||||
},
|
||||
"손료 5210-0010 economic_life_hours": {
|
||||
"source": 3600,
|
||||
"data": null,
|
||||
@@ -1186,23 +820,7 @@
|
||||
},
|
||||
"material": {},
|
||||
"oil": {},
|
||||
"rate": {
|
||||
"rate_overhead.specialty_electric_communication_fire_other[(1000억이상)].rate_percent": {
|
||||
"source": 4.5,
|
||||
"data": null,
|
||||
"why": "원문 BL35 병합 칸이 300억 이상까지 4.5% — 자료는 100억~300억 구간까지만 둠"
|
||||
},
|
||||
"rate_overhead.specialty_electric_communication_fire_other[(300억-1000억미만)].rate_percent": {
|
||||
"source": 4.5,
|
||||
"data": null,
|
||||
"why": "원문 BL35 병합 칸이 300억 이상까지 4.5% — 자료는 100억~300억 구간까지만 둠"
|
||||
},
|
||||
"셈 원문 값 수": {
|
||||
"source": 233,
|
||||
"data": 231,
|
||||
"why": "위 전문·전기 일반관리비 300억 이상 두 구간이 자료에 없음"
|
||||
}
|
||||
},
|
||||
"rate": {},
|
||||
"labor_blind": {
|
||||
"건설 pdf": {
|
||||
"what": "3. 개별직종 노임단가.md",
|
||||
|
||||
@@ -54,7 +54,7 @@ def test_횟수별_비율을_여기서_곱하지_않을것() -> None:
|
||||
# 3.205 ㎡/m × 10m — 46.1 % 를 곱하지 않았다(2026-09-14 원문 값 3.205 · 전 라이브러리 3.20 → 32.0)
|
||||
assert abs(euroform["amount"] - 32.05) < 1e-9
|
||||
# 비율표는 데이터에 있되 값에 안 걸린다.
|
||||
assert load_formwork_table().reuse_ratio_pct["plywood"]["3"] == 46.1
|
||||
assert load_formwork_table().reuse_ratio_pct["plywood_material_pct"]["3"] == 46.1
|
||||
|
||||
|
||||
def test_모르는_종류는_지어내지_않고_미확보() -> None:
|
||||
|
||||
@@ -218,14 +218,20 @@ def _formwork_reuse(doc: dict, md: dict) -> dict:
|
||||
label = _sq(row[0])
|
||||
series[label] = {heads[1]: row[4].split(), heads[2]: row[5].split()}
|
||||
ratio = doc["reuse_ratio_pct"]
|
||||
for key, row_label in (("plywood", "합판"), ("timber", "각재")):
|
||||
# ⚠ 원문은 **「합 판」 한 줄에 두 열**(재료별% · 노무비%)을 적고, 「각 재」 줄엔 비율이 없다.
|
||||
# 앞서 각재 자리에 노무비 열이 들어가 있었다(2026-09-18 바로잡음) — 열을 이름으로 맞댄다.
|
||||
합판 = {h: [float(x) for x in v] for h, v in series.get("합판", {}).items() if v}
|
||||
for key, head in (("plywood_material_pct", "재료별(%)"), ("plywood_labor_pct", "노무비(%)")):
|
||||
data_val = [ratio[key][str(n)] for n in range(1, 7)]
|
||||
found = {h: [float(x) for x in v] for h, v in series.get(row_label, {}).items() if v}
|
||||
if data_val not in found.values():
|
||||
out[f"reuse_ratio_pct/{key}"] = {
|
||||
"md": {row_label: found or "비율 칸 비어 있음", "합판": series["합판"]},
|
||||
"data": data_val,
|
||||
}
|
||||
if 합판.get(head) != data_val:
|
||||
out[f"reuse_ratio_pct/{key}"] = {"md": 합판.get(head), "data": data_val}
|
||||
# 각재는 **비어 있어야** 한다 — 다른 열을 갖다 쓰면 안 된다
|
||||
각재 = {h: v for h, v in series.get("각재", {}).items() if v}
|
||||
if 각재 or "timber" in ratio:
|
||||
out["reuse_ratio_pct/timber"] = {
|
||||
"md": 각재 or "비율 칸 비어 있음",
|
||||
"data": ratio.get("timber", "없음(원문에 없어 비워 둠)"),
|
||||
}
|
||||
area = md["tables"]["F0395"]["rows"]
|
||||
md_area = dict(zip([_sq(x) for x in area[0][:3]], [_num(x) for x in area[1][3:6]]))
|
||||
for cls in doc["euroform_type"]["classes"]:
|
||||
|
||||
@@ -463,7 +463,7 @@ WORK_TYPE = {"토목": "civil", "조경": "landscape", "산업설비(토목)": "
|
||||
SAFETY_SCALE = {"5억미만": "lt_500_million", "5억~50억미만": "500_million_to_5_billion", "50억이상": "gte_5_billion", "추정금액800억미만건설공사(주공종이토목인경우1,000억)": "gte_5_billion_below_manager_threshold", "추정금액800억이상건설공사(주공종이토목인경우1,000억)": "gte_5_billion_at_or_above_manager_threshold"} # fmt: skip
|
||||
SAFETY_WORK = {"건축공사": "building", "토목공사": "civil", "중건설공사": "heavy_construction", "특수건설공사": "special_construction"} # fmt: skip
|
||||
CIVIL_PRICE = {"5억미만": "lt_5_billion", "5억-30억미만": "lt_5_billion", "30억-50억미만": "lt_5_billion", "50억-100억미만": "5_to_30_billion", "100억-300억미만": "5_to_30_billion", "300억-1000억미만": "30_to_100_billion", "1000억이상": "gte_100_billion"} # fmt: skip
|
||||
SPECIAL_PRICE = {"5억미만": "lt_500_million", "5억-30억미만": "500_million_to_3_billion", "30억-50억미만": "3_to_10_billion", "50억-100억미만": "3_to_10_billion", "100억-300억미만": "10_to_30_billion"} # fmt: skip
|
||||
SPECIAL_PRICE = {"5억미만": "lt_500_million", "5억-30억미만": "500_million_to_3_billion", "30억-50억미만": "3_to_10_billion", "50억-100억미만": "3_to_10_billion", "100억-300억미만": "10_to_30_billion", "300억-1000억미만": "30_to_100_billion", "1000억이상": "gte_100_billion"} # fmt: skip
|
||||
#: (라벨 열, 첫 줄, 끝 줄, 값 열, 라벨→자료 구간, 자료 열쇠 틀)
|
||||
BANDS = [
|
||||
("B", 67, 82, "AH", {"[1등급]1400억이상": "1|gte_140_billion", "[2등급]900억~1400억미만": "2|90_to_140_billion", "[3등급]570억~900억미만": "3|57_to_90_billion", "[4등급]370억~570억미만": "4|37_to_57_billion", "[5등급]220억~370억미만": "5|22_to_37_billion", "[6등급]140억~220억미만": "6|14_to_22_billion", "[7등급]고시금액~140억미만": "7|official_threshold_to_14_billion", "7등급미만": "below_7|below_official_threshold"}, "rate_goyong.brackets[{}].rate_percent"),
|
||||
|
||||
@@ -154,7 +154,7 @@ def test_아홉의_고칠_칸은_값_칸(client: TestClient) -> None:
|
||||
assert stone["fill_concrete_m3_per_m2/견치돌/75"]["m3_per_m2"] == 0.34
|
||||
assert stone["backfill_ratio_of_back_length/깬돌"]["ratio"] == 0.5
|
||||
ratio = {r["@id"]: r for r in _get(client, "formwork_reuse", size=500)["rows"]}
|
||||
assert ratio["reuse_ratio_pct/plywood/2"]["ratio_pct"] == 57.0
|
||||
assert ratio["reuse_ratio_pct/plywood_material_pct/2"]["ratio_pct"] == 57.0
|
||||
assert ratio["reuse_by_class/복잡한 구조"]["reuse_count"] == 2
|
||||
timber = {r["@id"]: r for r in _get(client, "timber_structure_class", size=500)["rows"]}
|
||||
assert timber["classes/보통구조 하"]["carpenter"] == 6.285
|
||||
@@ -185,7 +185,7 @@ def test_고치기도_같은_길(client: TestClient, tmp_path: Path) -> None:
|
||||
assert "@axis" not in row and "@source" not in row # 안쪽 칸은 안 내보냄
|
||||
# 같은 칸이 어느 줄에선 값이고 어느 줄에선 축임(사용횟수) — 축인 줄에선 막혀야 함
|
||||
axis_edit = client.put(
|
||||
"/api/master-data/base-prices/formwork_reuse/reuse_ratio_pct/plywood/2",
|
||||
"/api/master-data/base-prices/formwork_reuse/reuse_ratio_pct/plywood_material_pct/2",
|
||||
json={"values": {"reuse_count": 3}},
|
||||
)
|
||||
assert axis_edit.status_code == 400 and "자료 열쇠" in axis_edit.text
|
||||
|
||||
Reference in New Issue
Block a user