diff --git a/resources/data_master_labels/labels_2026-01-01.json b/resources/data_master_labels/labels_2026-01-01.json index c91f964b..bf0f046d 100644 --- a/resources/data_master_labels/labels_2026-01-01.json +++ b/resources/data_master_labels/labels_2026-01-01.json @@ -2,7 +2,7 @@ "schema_version": "1.0", "dataset_id": "data_master_labels", "effective_date": "2026-01-01", - "generated_at": "2026-09-16T13:11:45+09:00", + "generated_at": "2026-09-16T15:44:59+09:00", "note": "마스터 자료의 **사람이 읽을 이름표**. 값이 아니라 이름만 담는다 — 여기를 고쳐도 계산은 안 바뀐다. Z01 마스터 관리 화면이 표·열 이름을 여기서 읽는다.", "policy": { "labels_only": "값·수식·단가를 담지 않는다. 마스터 파일은 손대지 않는다.", @@ -1197,6 +1197,153 @@ "note": "형식마다 정해진 값. 코드 기본 0.3 이 여기서 왔다." } ] + }, + { + "key": "machine_productivity", + "name_ko": "기계 시공능력", + "summary": "불도저 속도·삽날 용량과 덤프 운반 계수. 코드에 박혀 있던 표를 꺼낸 벌이다.", + "sources": [ + "B09_Estimation_MachineProductivity_Dozer.py (건설품셈 8-2-1)", + "B09_Estimation_MachineProductivity_Dump.py (산림품셈 10-12)" + ], + "rows_note": "불도저 속도 · 삽날 용량 · 덤프 운반 낱값 · 재료별 계수 = 47 줄", + "columns": [ + { + "key": "table", + "name_ko": "어느 표", + "unit": "", + "visible": true, + "note": "`dozer_speed`(불도저 속도) · `dozer_blade`(삽날 용량) · `dump_haul`(덤프 운반 낱값) · `dump_material`(재료별 계수). ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다." + }, + { + "key": "track", + "name_ko": "주행 장치", + "unit": "", + "visible": true, + "note": "무한궤도 · 타이어. ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다." + }, + { + "key": "tonnage_ton", + "name_ko": "기계 규격", + "unit": "ton", + "visible": true, + "note": "⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다." + }, + { + "key": "gear", + "name_ko": "변속 단", + "unit": "", + "visible": true, + "note": "1단·2단… 속도가 단마다 다르다. ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다." + }, + { + "key": "forward_m_per_min", + "name_ko": "전진 속도", + "unit": "m/분", + "visible": true + }, + { + "key": "reverse_m_per_min", + "name_ko": "후진 속도", + "unit": "m/분", + "visible": true + }, + { + "key": "blade_m3", + "name_ko": "삽날 용량", + "unit": "㎥", + "visible": true, + "note": "1회에 밀 수 있는 흐트러진 상태 부피." + }, + { + "key": "key", + "name_ko": "낱값 키", + "unit": "", + "visible": true, + "note": "`truck_ton` 처럼 한 값짜리를 가리키는 이름. ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다." + }, + { + "key": "value", + "name_ko": "값", + "unit": "", + "visible": true, + "note": "낱값 표에서만 선다 — 단위는 곁 칸이 말한다." + }, + { + "key": "unit", + "name_ko": "단위", + "unit": "", + "visible": true, + "note": "위 낱값의 단위." + }, + { + "key": "meaning", + "name_ko": "무엇인가", + "unit": "", + "visible": true, + "note": "낱값이 품셈 식에서 어느 기호인지 풀어 적은 자리." + }, + { + "key": "work_item_code", + "name_ko": "공종코드", + "unit": "", + "visible": true, + "note": "덤프 운반 재료 갈래(토사·암절취·발파암). ⚠ 줄을 가리는 축 — 못 고침. 바꾸면 고친 값이 주인을 잃는다." + }, + { + "key": "label", + "name_ko": "재료 이름", + "unit": "", + "visible": true + }, + { + "key": "unit_weight_ton_per_m3", + "name_ko": "단위중량", + "unit": "ton/㎥", + "visible": true, + "note": "자연 상태 토석의 습윤밀도 γt — 적재량을 무게로 묶는 값." + }, + { + "key": "loose_factor", + "name_ko": "체적변화율", + "unit": "L", + "visible": true, + "note": "흐트러진 상태 ÷ 자연 상태. 토량환산계수 표와 같은 축의 값이다." + }, + { + "key": "bucket_factor", + "name_ko": "버킷계수", + "unit": "K", + "visible": true, + "note": "적재 장비가 한 번에 뜨는 몫." + }, + { + "key": "loader_efficiency", + "name_ko": "적재 작업효율", + "unit": "E0", + "visible": true, + "note": "⚠ 운반 식의 `Es` 와 **다른 기호**다 — 섞으면 작업량이 갈린다." + }, + { + "key": "truck_efficiency", + "name_ko": "운반 작업효율", + "unit": "Es", + "visible": true + }, + { + "key": "loading_efficiency", + "name_ko": "적재 효율", + "unit": "E", + "visible": true + }, + { + "key": "loading_note", + "name_ko": "적재 비고", + "unit": "", + "visible": true, + "note": "원문이 값을 안 준 자리와 우리가 고른 까닭." + } + ] } ], "machine_cost_chain": { @@ -1517,6 +1664,20 @@ "type_id" ], "checked": "id 칸이 없다. 뒷길이·돌 직경 갈래는 `table+class`, 형식별 기울기는 `table+type_id`. ⚠ 돌 직경 갈래 이름은 원문 표기 `40~60` 꼴 그대로다." + }, + { + "table": "machine_productivity", + "name_ko": "기계 시공능력", + "verdict": "없음 — 축으로만 가려짐", + "key": [ + "table", + "track", + "tonnage_ton", + "gear", + "key", + "work_item_code" + ], + "checked": "id 칸이 없다. **표마다 축이 다르다** — 속도표는 `table+track+tonnage_ton+gear`, 삽날표는 `table+track+tonnage_ton`, 낱값은 `table+key`, 재료별 계수는 `table+work_item_code`. 서버가 줄마다 `@axis` 로 무엇이 축인지 알려 준다." } ], "null_is_real": { @@ -1610,8 +1771,8 @@ } }, "counts": { - "merged_tables": 14, - "merged_columns": 136, + "merged_tables": 15, + "merged_columns": 156, "files": 34, "tables": 91, "columns": 462, diff --git a/resources/tester/test_master_labels_cover.py b/resources/tester/test_master_labels_cover.py index 9a9a9c4a..dc363718 100644 --- a/resources/tester/test_master_labels_cover.py +++ b/resources/tester/test_master_labels_cover.py @@ -452,6 +452,7 @@ def test_미결은_미판정으로_표시된다(labels): #: 2026-09-16 사용자 판정 — 기초데이터 아홉이 더해져 열넷. +#: 곧이어 코드에 박혀 있던 기계 시공능력을 꺼내 열다섯(브레인 b6fb3725). #: 잣대 = 계산되는 값이 아니라 **그냥 값만으로 정의되는 데이터셋**. MERGED_KEYS = ( "labor", @@ -468,6 +469,7 @@ MERGED_KEYS = ( "masonry_back_length", "stone_kind", "masonry_class", + "machine_productivity", )