fix(B09): 값 못 읽은 자원 줄이 있는 공종은 금액을 막음
기초잡석 12-25 를 붙이다 발견 — `소할(30%) | 할석공(인) | 0.2 × 30%` 를 못 읽어 **부설다짐 0.6인만으로 107,145원**이 서고 있었음. 값이 그럴듯해 어떤 검사에도 안 걸림(「부분 성공이 가장 위험」) - 이름 칸 판정을 **낱말 목록이 아니라 「풀리는지」**로 바꿈 — 첫 칸이 공정 이름인 표(기초잡석)가 딱지 목록에 없어 통째로 못 맞추고 있었음. 자원 축 231 → 243 - **자원은 알아봤는데 값을 못 읽은 줄**이 있으면 그 공종을 `partial_items` 로 표시하고 일위대가 금액을 만들지 않음. 그런 공종이 **28건** 있었고, 그중 23건이 조용히 성분 빠진 단가로 서 있었음 - 못 읽은 줄은 `unmatched` 에 사유째 남김 검증: pytest 172 통과(신규 2 — 표시되는지 + 실제로 막는지 짝) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -414,6 +414,10 @@ class AxisResult:
|
||||
rows: list[ResourceRow] = field(default_factory=list)
|
||||
unmatched: list[UnmatchedRow] = field(default_factory=list)
|
||||
skipped_forms: dict[str, int] = field(default_factory=dict)
|
||||
#: 자원은 알아봤는데 **값을 못 읽은** 줄이 있는 공종 — 그 단가는 「일부만 선 것」이다.
|
||||
#: 기초잡석 12-25 가 `소할(30%) | 할석공(인) | 0.2 × 30%` 를 못 읽어 부설다짐만으로
|
||||
#: 107,145 원이 서고 있었다(2026-09-08). **부분 성공이 가장 위험하다.**
|
||||
partial_items: dict[str, str] = field(default_factory=dict)
|
||||
|
||||
|
||||
def _resolve_cell(catalog: ResourceCatalog, name_cell: str, cells: list[str]):
|
||||
@@ -474,10 +478,22 @@ def match_table(
|
||||
if not cells:
|
||||
continue
|
||||
# 첫 칸이 분류 딱지(「자재」·「장비」)면 **이름은 둘째 칸**이다.
|
||||
#
|
||||
# ⚠ 딱지 목록만으로는 모자란다 — 첫 칸이 **공정 이름**인 표가 따로 있다
|
||||
# (기초잡석 12-25: `소할(30%) | 할석공(인) | 0.2 × 30%`). 목록에 없는 말이라
|
||||
# 통째로 못 맞추고 있었다. 그래서 **딱지 목록에 없더라도 첫 칸이 자원으로 안 풀리고
|
||||
# 둘째 칸이 풀리면** 이름을 둘째 칸에서 읽는다 — 판정을 낱말이 아니라
|
||||
# **풀리는지**로 한다. 배분율 꼬리표(「(30%)」)는 어느 쪽이든 첫 칸에서 읽는다.
|
||||
name_cell = cells[0]
|
||||
value_cells = cells[1:]
|
||||
group_ratio = None
|
||||
if _group_label_of(name_cell) is not None and len(cells) > 1:
|
||||
if len(cells) > 1 and (
|
||||
_group_label_of(name_cell) is not None
|
||||
or (
|
||||
_resolve_cell(catalog, name_cell, cells) is None
|
||||
and _resolve_cell(catalog, cells[1], cells[1:]) is not None
|
||||
)
|
||||
):
|
||||
group_ratio = _group_ratio_of(name_cell)
|
||||
name_cell = cells[1]
|
||||
value_cells = cells[2:]
|
||||
@@ -487,6 +503,20 @@ def match_table(
|
||||
(parse_amount(c) for c in value_cells if parse_amount(c) is not None), None
|
||||
)
|
||||
if amount_cell is None:
|
||||
# ⚠ **이름은 자원인데 값을 못 읽은 줄**은 다르다 — 그 공종 단가는 성분이
|
||||
# 빠진 채 서게 된다. 조용히 넘기지 않고 「일부만 섬」으로 표시한다.
|
||||
if _resolve_cell(catalog, name_cell, [name_cell, *value_cells]) is not None:
|
||||
result.partial_items[node.get("work_item_code", "")] = (
|
||||
f"{name_cell} 줄의 값을 못 읽었습니다"
|
||||
)
|
||||
result.unmatched.append(
|
||||
UnmatchedRow(
|
||||
work_item_code=node.get("work_item_code", ""),
|
||||
pum_table_id=str(table.get("pum_table_id", "")),
|
||||
cell=" | ".join(cells[:3]),
|
||||
reason="자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
)
|
||||
)
|
||||
continue
|
||||
|
||||
# ⚠ **카탈로그 조회를 먼저 한다.** 이름 필터를 앞에 두면 필터가 넓을 때
|
||||
|
||||
@@ -300,6 +300,10 @@ def build_unit_prices(axis: AxisResult | None = None) -> UnitPriceBuild:
|
||||
# 「인력(10%)·장비(90%)」 표에서 인력만 붙으면 단가가 10 % 몫만인데, 그 값이
|
||||
# 조용히 서면 내역서가 틀린 줄 모른다(2026-09-08 실측: 측구터파기 39,575.6원/㎥
|
||||
# 이 인력 10 % 몫만이었다). 0 으로 때우는 것과 같은 종류의 사고다.
|
||||
# 값을 못 읽은 자원 줄이 있으면 **일부만 선 단가**다 — 금액을 만들지 않는다.
|
||||
if work_item_code in axis.partial_items:
|
||||
build.partial_ratio.setdefault(work_item_code, _ZERO)
|
||||
|
||||
covered = _covered_ratio_pct(rows, {ref for _, ref in attachable}, build)
|
||||
if covered is not None:
|
||||
covered += machine_share
|
||||
|
||||
@@ -441,6 +441,34 @@
|
||||
"variant": "띠떼심기",
|
||||
"work_item_code": "FP-05-13"
|
||||
},
|
||||
{
|
||||
"amount": "0.20",
|
||||
"amount_unit": "",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0126",
|
||||
"raw_row_index": 1,
|
||||
"resource_code": "1002",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "보통인부",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-05-19-01"
|
||||
},
|
||||
{
|
||||
"amount": "0.004666666666666666666666666667",
|
||||
"amount_unit": "㎥",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0127",
|
||||
"raw_row_index": 1,
|
||||
"resource_code": "1002",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "보통인부",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-05-19-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.34",
|
||||
"amount_unit": "",
|
||||
@@ -2247,6 +2275,20 @@
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-04"
|
||||
},
|
||||
{
|
||||
"amount": "0.07",
|
||||
"amount_unit": "",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0337",
|
||||
"raw_row_index": 1,
|
||||
"resource_code": "1007",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "형틀목공",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-05"
|
||||
},
|
||||
{
|
||||
"amount": "0.03",
|
||||
"amount_unit": "",
|
||||
@@ -2401,6 +2443,20 @@
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-11-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.07",
|
||||
"amount_unit": "㎥",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0363",
|
||||
"raw_row_index": 1,
|
||||
"resource_code": "1013",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "콘크리트공",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-17-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.05",
|
||||
"amount_unit": "㎥",
|
||||
@@ -2541,6 +2597,20 @@
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-24-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.6",
|
||||
"amount_unit": "㎥",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0373",
|
||||
"raw_row_index": 6,
|
||||
"resource_code": "1002",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "보통인부",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-25"
|
||||
},
|
||||
{
|
||||
"amount": "1",
|
||||
"amount_unit": "개소",
|
||||
@@ -2583,6 +2653,34 @@
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-24-01"
|
||||
},
|
||||
{
|
||||
"amount": "0.08",
|
||||
"amount_unit": "㎡",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0376",
|
||||
"raw_row_index": 2,
|
||||
"resource_code": "1002",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "보통인부",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-27-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.04",
|
||||
"amount_unit": "개소",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0377",
|
||||
"raw_row_index": 1,
|
||||
"resource_code": "1026",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "방수공",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-27-03"
|
||||
},
|
||||
{
|
||||
"amount": "0.12",
|
||||
"amount_unit": "개소",
|
||||
@@ -2639,6 +2737,20 @@
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-34-03"
|
||||
},
|
||||
{
|
||||
"amount": "0.14",
|
||||
"amount_unit": "㎡",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0389",
|
||||
"raw_row_index": 1,
|
||||
"resource_code": "1027",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "미장공",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-12-35"
|
||||
},
|
||||
{
|
||||
"amount": "0.05",
|
||||
"amount_unit": "㎡",
|
||||
@@ -2989,6 +3101,20 @@
|
||||
"variant": "직경 15㎝ 길이 4m",
|
||||
"work_item_code": "FP-13-10-01"
|
||||
},
|
||||
{
|
||||
"amount": "0.035",
|
||||
"amount_unit": "㎡",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0432",
|
||||
"raw_row_index": 0,
|
||||
"resource_code": "1003",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "특별인부",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-13-11-01"
|
||||
},
|
||||
{
|
||||
"amount": "0.015",
|
||||
"amount_unit": "㎡",
|
||||
@@ -3003,6 +3129,34 @@
|
||||
"variant": "",
|
||||
"work_item_code": "FP-13-11-01"
|
||||
},
|
||||
{
|
||||
"amount": "0.037",
|
||||
"amount_unit": "㎡",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0432",
|
||||
"raw_row_index": 2,
|
||||
"resource_code": "1033",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "석공",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-13-11-01"
|
||||
},
|
||||
{
|
||||
"amount": "0.013",
|
||||
"amount_unit": "㎡",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0434",
|
||||
"raw_row_index": 0,
|
||||
"resource_code": "1003",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "특별인부",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-13-11-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.005",
|
||||
"amount_unit": "㎡",
|
||||
@@ -3017,6 +3171,20 @@
|
||||
"variant": "",
|
||||
"work_item_code": "FP-13-11-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.039",
|
||||
"amount_unit": "㎡",
|
||||
"group_ratio_pct": null,
|
||||
"pum_form": "requirement",
|
||||
"pum_table_id": "F0434",
|
||||
"raw_row_index": 2,
|
||||
"resource_code": "1033",
|
||||
"resource_kind": "labor",
|
||||
"resource_name": "석공",
|
||||
"resource_spec": "",
|
||||
"variant": "",
|
||||
"work_item_code": "FP-13-11-02"
|
||||
},
|
||||
{
|
||||
"amount": "0.0141",
|
||||
"amount_unit": "",
|
||||
@@ -3254,12 +3422,12 @@
|
||||
"sha256": "fe454c56c9dc01ad7dae04a8f90d776d08c5ce33badeadb2606b35234bfce7eb"
|
||||
},
|
||||
"stats": {
|
||||
"rows": 231,
|
||||
"rows": 243,
|
||||
"skipped_forms": {
|
||||
"coefficient": 19,
|
||||
"reference": 98,
|
||||
"undetermined": 76
|
||||
},
|
||||
"unmatched": 306
|
||||
"unmatched": 331
|
||||
}
|
||||
}
|
||||
@@ -80,6 +80,12 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-02-02"
|
||||
},
|
||||
{
|
||||
"cell": "0.2 | 보통인부",
|
||||
"pum_table_id": "F0075",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-03-01"
|
||||
},
|
||||
{
|
||||
"cell": "경비(기계경비)",
|
||||
"pum_table_id": "F0472",
|
||||
@@ -242,12 +248,36 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-04-02-02"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부 | 벌목부 | 보통인부",
|
||||
"pum_table_id": "F0088",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-04-03"
|
||||
},
|
||||
{
|
||||
"cell": "0.13인 | 벌목부",
|
||||
"pum_table_id": "F0090",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-04-05"
|
||||
},
|
||||
{
|
||||
"cell": "1인 | 보통인부",
|
||||
"pum_table_id": "F0091",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-04-06"
|
||||
},
|
||||
{
|
||||
"cell": "비 고",
|
||||
"pum_table_id": "F0093",
|
||||
"reason": "숫자 칸 0 개가 자원 열 2 개와 안 맞아 버렸습니다(자리 밀림 방지).",
|
||||
"work_item_code": "FP-05-01-02"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부(인) | 보통인부(인) | 굴착기(시간)",
|
||||
"pum_table_id": "F0094",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-01-03"
|
||||
},
|
||||
{
|
||||
"cell": "지게",
|
||||
"pum_table_id": "F0097",
|
||||
@@ -266,6 +296,12 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-01-05"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부 | 보통인부 | 특별인부",
|
||||
"pum_table_id": "F0098",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-02"
|
||||
},
|
||||
{
|
||||
"cell": "소묘식재",
|
||||
"pum_table_id": "F0099",
|
||||
@@ -284,6 +320,18 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-03-01"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부(인) | 보통인부(인) | 특별인부(인)",
|
||||
"pum_table_id": "F0104",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-03-04"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부(인) | 보통인부(인) | 굴착기(시간)",
|
||||
"pum_table_id": "F0106",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-03-05"
|
||||
},
|
||||
{
|
||||
"cell": "파종상 만들기",
|
||||
"pum_table_id": "F0109",
|
||||
@@ -393,10 +441,28 @@
|
||||
"work_item_code": "FP-05-16-01"
|
||||
},
|
||||
{
|
||||
"cell": "표토절취",
|
||||
"pum_table_id": "F0126",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-05-19-01"
|
||||
"cell": "표토채취 | 보통인부 | 0.2인",
|
||||
"pum_table_id": "F0128",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-20"
|
||||
},
|
||||
{
|
||||
"cell": "굴착기(무한궤도, 0.7㎥) | 0.1시간 | ",
|
||||
"pum_table_id": "F0128",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-20"
|
||||
},
|
||||
{
|
||||
"cell": "표토붙이기 | 보통인부 | 0.2인",
|
||||
"pum_table_id": "F0128",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-20"
|
||||
},
|
||||
{
|
||||
"cell": "굴착기(무한궤도, 0.7㎥) | 0.1시간 | ",
|
||||
"pum_table_id": "F0128",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-05-20"
|
||||
},
|
||||
{
|
||||
"cell": "트럭",
|
||||
@@ -734,6 +800,18 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-07-13"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부 | 보통인부 | 특별인부",
|
||||
"pum_table_id": "F0201",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-08-01-01"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부 | 보통인부 | 특별인부",
|
||||
"pum_table_id": "F0202",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-08-01-02"
|
||||
},
|
||||
{
|
||||
"cell": "경비(기계경비)",
|
||||
"pum_table_id": "F0454",
|
||||
@@ -878,6 +956,12 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-08-09"
|
||||
},
|
||||
{
|
||||
"cell": "특별인부 | 5인/km | 10인/km",
|
||||
"pum_table_id": "F0238",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-09-02"
|
||||
},
|
||||
{
|
||||
"cell": "대형브레이커+ 유압식백호우 (무한궤도,0.7㎥)",
|
||||
"pum_table_id": "F0241",
|
||||
@@ -1220,6 +1304,12 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-09-14-01"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 (인) | 공기압축기 (시간) | 소형브레이커 (시간)",
|
||||
"pum_table_id": "F0288",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-09-19-01"
|
||||
},
|
||||
{
|
||||
"cell": "모래ㆍ사질토ㆍ점토ㆍ점질토",
|
||||
"pum_table_id": "F0288",
|
||||
@@ -1322,12 +1412,24 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-10-08-01"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 인 〃 〃 〃",
|
||||
"pum_table_id": "F0317",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-10-10-01"
|
||||
},
|
||||
{
|
||||
"cell": "버켓 손료",
|
||||
"pum_table_id": "F0317",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-10-10-01"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 인 〃 〃 〃",
|
||||
"pum_table_id": "F0318",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-10-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "와이어 손료",
|
||||
"pum_table_id": "F0318",
|
||||
@@ -1370,12 +1472,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-05"
|
||||
},
|
||||
{
|
||||
"cell": "설치 및 해체",
|
||||
"pum_table_id": "F0337",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-05"
|
||||
},
|
||||
{
|
||||
"cell": "형틀목공 보통인부",
|
||||
"pum_table_id": "F0341",
|
||||
@@ -1400,6 +1496,18 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-11-02"
|
||||
},
|
||||
{
|
||||
"cell": "배관공 | | 인",
|
||||
"pum_table_id": "F0347",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-11-02"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 인",
|
||||
"pum_table_id": "F0347",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-11-02"
|
||||
},
|
||||
{
|
||||
"cell": "절단기",
|
||||
"pum_table_id": "F0348",
|
||||
@@ -1436,6 +1544,24 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-16"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | 인 | ",
|
||||
"pum_table_id": "F0354",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-16"
|
||||
},
|
||||
{
|
||||
"cell": "벽체 | 특별인부 | 인",
|
||||
"pum_table_id": "F0354",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-16"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | 인 | ",
|
||||
"pum_table_id": "F0354",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-16"
|
||||
},
|
||||
{
|
||||
"cell": "설치비",
|
||||
"pum_table_id": "F0354",
|
||||
@@ -1448,12 +1574,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-17-02"
|
||||
},
|
||||
{
|
||||
"cell": "타설",
|
||||
"pum_table_id": "F0363",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-17-02"
|
||||
},
|
||||
{
|
||||
"cell": "펌프카(80㎥/hr)",
|
||||
"pum_table_id": "F0363",
|
||||
@@ -1520,6 +1640,12 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-24-02"
|
||||
},
|
||||
{
|
||||
"cell": "소할(30%) | 할석공(인) | 0.2 × 30%",
|
||||
"pum_table_id": "F0373",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-25"
|
||||
},
|
||||
{
|
||||
"cell": "적사",
|
||||
"pum_table_id": "F0373",
|
||||
@@ -1527,11 +1653,17 @@
|
||||
"work_item_code": "FP-12-25"
|
||||
},
|
||||
{
|
||||
"cell": "부설 및 다짐",
|
||||
"cell": "운반 | 덤프트럭(15ton) | ",
|
||||
"pum_table_id": "F0373",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-25"
|
||||
},
|
||||
{
|
||||
"cell": "기계 | 양수기(150m/m) | ",
|
||||
"pum_table_id": "F0374",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-12-26"
|
||||
},
|
||||
{
|
||||
"cell": "운반 및 설치 (목도운반)",
|
||||
"pum_table_id": "F0374",
|
||||
@@ -1550,24 +1682,12 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-27-02"
|
||||
},
|
||||
{
|
||||
"cell": "인력(설치비)",
|
||||
"pum_table_id": "F0376",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-27-02"
|
||||
},
|
||||
{
|
||||
"cell": "실런트",
|
||||
"pum_table_id": "F0377",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-27-03"
|
||||
},
|
||||
{
|
||||
"cell": "인력(설치비)",
|
||||
"pum_table_id": "F0377",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-27-03"
|
||||
},
|
||||
{
|
||||
"cell": "에폭시 접착제",
|
||||
"pum_table_id": "F0378",
|
||||
@@ -1592,12 +1712,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-34-03"
|
||||
},
|
||||
{
|
||||
"cell": "설치",
|
||||
"pum_table_id": "F0389",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-12-35"
|
||||
},
|
||||
{
|
||||
"cell": "굴착기",
|
||||
"pum_table_id": "F0399",
|
||||
@@ -1646,18 +1760,78 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-03-02"
|
||||
},
|
||||
{
|
||||
"cell": "석공 (인) | 보통인부 (인) | 석공 (인)",
|
||||
"pum_table_id": "F0404",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-04-01"
|
||||
},
|
||||
{
|
||||
"cell": "석 공 (인) | 보통인부 (인) | 석공 (인)",
|
||||
"pum_table_id": "F0409",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-04-04"
|
||||
},
|
||||
{
|
||||
"cell": "뒷길이 (㎝) | 석공 (인) | 보통 인부 (인)",
|
||||
"pum_table_id": "F0416",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-05-01"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 〃",
|
||||
"pum_table_id": "F0419",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-06-01"
|
||||
},
|
||||
{
|
||||
"cell": "굴 삭 기 (무한궤도)",
|
||||
"pum_table_id": "F0419",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-06-01"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 〃",
|
||||
"pum_table_id": "F0420",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-06-02"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 〃",
|
||||
"pum_table_id": "F0421",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-06-03"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 〃",
|
||||
"pum_table_id": "F0422",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-07-01"
|
||||
},
|
||||
{
|
||||
"cell": "보통인부 | | 〃",
|
||||
"pum_table_id": "F0423",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-07-02"
|
||||
},
|
||||
{
|
||||
"cell": "굴 삭 기 (무한궤도)",
|
||||
"pum_table_id": "F0423",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-07-02"
|
||||
},
|
||||
{
|
||||
"cell": "보통 인부 (인) | 0.9m 1.2m 1.5m 1.8m 2.1m 2.4m 2.7m 3.0m 3.5m 4.0m 4.5m | 0.022 0.034 0.05 0.07 - - - - - - -",
|
||||
"pum_table_id": "F0427",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "보 통 인 부 (인) | 3.5m 4.0m 4.5m 5.0m 5.5m 6.0m 6.5m 7.0m 7.5m 8.0m 8.5m 9.0m 10.0m 11.0m 12.0m | 0.75 1.10 1.50 1.93 - - - - - - - - - - -",
|
||||
"pum_table_id": "F0428",
|
||||
"reason": "자원은 알아봤으나 값을 못 읽었습니다 — 단가가 일부만 섭니다.",
|
||||
"work_item_code": "FP-13-10-02"
|
||||
},
|
||||
{
|
||||
"cell": "8 9",
|
||||
"pum_table_id": "F0430",
|
||||
@@ -1718,18 +1892,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-11-01"
|
||||
},
|
||||
{
|
||||
"cell": "조립 설치",
|
||||
"pum_table_id": "F0432",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-11-01"
|
||||
},
|
||||
{
|
||||
"cell": "돌채움",
|
||||
"pum_table_id": "F0432",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-11-01"
|
||||
},
|
||||
{
|
||||
"cell": "굴착기(1.0㎥)",
|
||||
"pum_table_id": "F0432",
|
||||
@@ -1754,18 +1916,6 @@
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-11-02"
|
||||
},
|
||||
{
|
||||
"cell": "조립 설치",
|
||||
"pum_table_id": "F0434",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-11-02"
|
||||
},
|
||||
{
|
||||
"cell": "돌채움",
|
||||
"pum_table_id": "F0434",
|
||||
"reason": "카탈로그에 없는 이름 (기계·자재 카탈로그 미확보 포함)",
|
||||
"work_item_code": "FP-13-11-02"
|
||||
},
|
||||
{
|
||||
"cell": "굴착기 (1.0㎥)",
|
||||
"pum_table_id": "F0434",
|
||||
|
||||
Reference in New Issue
Block a user