feat(B09): 열이 자원인 표(전치형) 읽기 + 오독 3종 차단
품셈에는 자원이 행이 아니라 **열 머리**에 오는 표가 39건 있음 (「구 분 | 콘크리트공(인) | 보통인부(인)」, 행은 무근·철근·소형구조물). 행-자원으로 읽어 콘크리트 타설(12-1)이 하나도 안 서고 있었음 - 갈래(variant)마다 따로 세움 — 품이 달라 뭉치면 어느 것도 안 맞음. 코드는 `B-FP-12-01-01#무근구조물`, 이름에 갈래를 적어 사람이 고를 수 있음 - 레디믹스트콘크리트 타설: 무근 58,635.0 / 철근 65,826.4 / 소형 117,270.0 원 읽다가 잡은 오독 3종 — 전부 **고쳐 읽지 않고 버림** (자리를 단정할 수 없음) - 병합 셀로 한 칸 밀린 행: 목재틀흙막이가 등급 글자를 건축목공 자리에 두어 단가 503만원으로 섰음 - 좌우 두 판이 붙은 표: 소운반에서 거리값 60 이 「보통인부 60인」으로 읽혀 1,553만원이 섰음. 열 머리가 되풀이되면 표째 버림 - 같은 갈래 이름 중복: 목재틀흙막이 「상」이 8.760 + 13.767 로 합산돼 667만원이 섰음. 그 줄들을 버림 - 갈래 이름에 자원용 머리글 필터를 쓰던 것도 고침 — 「중」·「상」 등급이 통째로 지워지고 있었음. 합계 줄만 걸러 냄 기준 단위 미상 드러내기 (막지 않음 — 막으면 125 중 122 가 멈춤) - `unknown_basis` 122건, 그중 100만원 넘는 10건을 목록으로 냄 (떼채취 평떼 1,032,408원 등 — 「100매당」류 묶음 기준 의심) - 내역서 줄 비고에도 「기준 단위가 표에 없습니다 — 수량 단위와 같다고 보고 곱했습니다」를 적음. 반영률 문구를 덮지 않고 이어 붙임 700줄 제한으로 전치형 처리를 `_Transposed.py` 로 분리 (647 + 138줄) 검증: pytest 163 통과(신규 5). 자원 축 198줄·갈래 54, 일위대가 85 → 125, 분포 최소 233.4 · 중앙 72,268.5 · 최대 5,030,954.6 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -242,18 +242,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-04-02-02"
|
||||
},
|
||||
{
|
||||
"cell": "줄떼",
|
||||
"pum_table_id": "F0096",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-01-04"
|
||||
},
|
||||
{
|
||||
"cell": "평떼",
|
||||
"pum_table_id": "F0096",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-01-04"
|
||||
},
|
||||
{
|
||||
"cell": "지게",
|
||||
"pum_table_id": "F0097",
|
||||
@@ -350,66 +338,12 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-08"
|
||||
},
|
||||
{
|
||||
"cell": "줄떼심기",
|
||||
"pum_table_id": "F0118",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-13"
|
||||
},
|
||||
{
|
||||
"cell": "띠떼심기",
|
||||
"pum_table_id": "F0118",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-13"
|
||||
},
|
||||
{
|
||||
"cell": "절 취",
|
||||
"pum_table_id": "F0121",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-16-01"
|
||||
},
|
||||
{
|
||||
"cell": "수평잡기 및 단정리",
|
||||
"pum_table_id": "F0121",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-16-01"
|
||||
},
|
||||
{
|
||||
"cell": "잡석 및 뿌리 정리",
|
||||
"pum_table_id": "F0121",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-16-01"
|
||||
},
|
||||
{
|
||||
"cell": "절·성토면 고르기",
|
||||
"pum_table_id": "F0121",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-16-01"
|
||||
},
|
||||
{
|
||||
"cell": "표토절취",
|
||||
"pum_table_id": "F0126",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-19-01"
|
||||
},
|
||||
{
|
||||
"cell": "채 취",
|
||||
"pum_table_id": "F0129",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-21"
|
||||
},
|
||||
{
|
||||
"cell": "운 반",
|
||||
"pum_table_id": "F0129",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-21"
|
||||
},
|
||||
{
|
||||
"cell": "붙이기",
|
||||
"pum_table_id": "F0129",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-21"
|
||||
},
|
||||
{
|
||||
"cell": "트럭",
|
||||
"pum_table_id": "F0132",
|
||||
@@ -1395,15 +1329,21 @@
|
||||
"work_item_code": "FP-09-19-03"
|
||||
},
|
||||
{
|
||||
"cell": "콘크리트",
|
||||
"cell": "거리 (m) | 보통인부(인) | 거리 (m) | 보통인부(인) | 비고",
|
||||
"pum_table_id": "F0302",
|
||||
"reason": "열 머리가 되풀이되는 두 판 짜리 표 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-10-06-01"
|
||||
},
|
||||
{
|
||||
"cell": "〃",
|
||||
"pum_table_id": "F0313",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"reason": "같은 갈래 이름이 두 번 나오는 표 — 등급을 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-10-08-01"
|
||||
},
|
||||
{
|
||||
"cell": "제 자재",
|
||||
"cell": "〃",
|
||||
"pum_table_id": "F0313",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"reason": "같은 갈래 이름이 두 번 나오는 표 — 등급을 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-10-08-01"
|
||||
},
|
||||
{
|
||||
@@ -1418,60 +1358,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-10-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "무근구조물",
|
||||
"pum_table_id": "F0329",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-01"
|
||||
},
|
||||
{
|
||||
"cell": "철근구조물",
|
||||
"pum_table_id": "F0329",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-01"
|
||||
},
|
||||
{
|
||||
"cell": "소형구조물",
|
||||
"pum_table_id": "F0329",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-01"
|
||||
},
|
||||
{
|
||||
"cell": "무근구조물",
|
||||
"pum_table_id": "F0330",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-02"
|
||||
},
|
||||
{
|
||||
"cell": "철근구조물",
|
||||
"pum_table_id": "F0330",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-02"
|
||||
},
|
||||
{
|
||||
"cell": "소형구조물",
|
||||
"pum_table_id": "F0330",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-02"
|
||||
},
|
||||
{
|
||||
"cell": "무근구조물",
|
||||
"pum_table_id": "F0331",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-03"
|
||||
},
|
||||
{
|
||||
"cell": "철근구조물",
|
||||
"pum_table_id": "F0331",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-03"
|
||||
},
|
||||
{
|
||||
"cell": "소형구조물",
|
||||
"pum_table_id": "F0331",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-01-03"
|
||||
},
|
||||
{
|
||||
"cell": "간 단",
|
||||
"pum_table_id": "F0335",
|
||||
@@ -1790,30 +1676,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-03"
|
||||
},
|
||||
{
|
||||
"cell": "두 께 3㎝",
|
||||
"pum_table_id": "F0402",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-03-01"
|
||||
},
|
||||
{
|
||||
"cell": "두 께 6㎝",
|
||||
"pum_table_id": "F0402",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-03-01"
|
||||
},
|
||||
{
|
||||
"cell": "자갈 기초다짐 지름 1~3㎝",
|
||||
"pum_table_id": "F0402",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-03-01"
|
||||
},
|
||||
{
|
||||
"cell": "기초다짐 뒷채움",
|
||||
"pum_table_id": "F0403",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-03-02"
|
||||
},
|
||||
{
|
||||
"cell": "굴 삭 기 (무한궤도)",
|
||||
"pum_table_id": "F0419",
|
||||
@@ -1827,10 +1689,46 @@
|
||||
"work_item_code": "FP-13-07-02"
|
||||
},
|
||||
{
|
||||
"cell": "직경 15㎝ 길이 4m",
|
||||
"pum_table_id": "F0426",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-10-01"
|
||||
"cell": "8 9",
|
||||
"pum_table_id": "F0430",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "12",
|
||||
"pum_table_id": "F0430",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "15",
|
||||
"pum_table_id": "F0430",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "18",
|
||||
"pum_table_id": "F0430",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "21",
|
||||
"pum_table_id": "F0430",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "24",
|
||||
"pum_table_id": "F0430",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "27",
|
||||
"pum_table_id": "F0430",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "조약돌량(㎥)",
|
||||
@@ -1904,34 +1802,28 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-11-02"
|
||||
},
|
||||
{
|
||||
"cell": "절 취(㎥)",
|
||||
"pum_table_id": "F0437",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-12-01"
|
||||
},
|
||||
{
|
||||
"cell": "투 입(㎥)",
|
||||
"pum_table_id": "F0437",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-12-01"
|
||||
},
|
||||
{
|
||||
"cell": "보통구조",
|
||||
"pum_table_id": "F0440",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-13-01"
|
||||
},
|
||||
{
|
||||
"cell": "상",
|
||||
"pum_table_id": "F0440",
|
||||
"reason": "같은 갈래 이름이 두 번 나오는 표 — 등급을 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-13-01"
|
||||
},
|
||||
{
|
||||
"cell": "중등구조",
|
||||
"pum_table_id": "F0440",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"reason": "자원 열의 값이 한 칸 밀린 행 — 자리를 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-13-01"
|
||||
},
|
||||
{
|
||||
"cell": "상등구조",
|
||||
"cell": "상",
|
||||
"pum_table_id": "F0440",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"reason": "같은 갈래 이름이 두 번 나오는 표 — 등급을 단정할 수 없어 버렸습니다.",
|
||||
"work_item_code": "FP-13-13-01"
|
||||
},
|
||||
{
|
||||
@@ -1940,36 +1832,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-13-02"
|
||||
},
|
||||
{
|
||||
"cell": "간 단 구 조",
|
||||
"pum_table_id": "F0443",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-13-02"
|
||||
},
|
||||
{
|
||||
"cell": "보 통 구 조",
|
||||
"pum_table_id": "F0443",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-13-02"
|
||||
},
|
||||
{
|
||||
"cell": "단 끊 기",
|
||||
"pum_table_id": "F0444",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-14"
|
||||
},
|
||||
{
|
||||
"cell": "흙채우기(마대채우기)",
|
||||
"pum_table_id": "F0444",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-14"
|
||||
},
|
||||
{
|
||||
"cell": "마대쌓기",
|
||||
"pum_table_id": "F0444",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-14"
|
||||
},
|
||||
{
|
||||
"cell": "어려운 조건",
|
||||
"pum_table_id": "F0447",
|
||||
|
||||
Reference in New Issue
Block a user