Merge remote-tracking branch 'origin/dev' into sub_laptop_4
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import { FORD_MANNING_N, FORD_SLOPE } from "@config/config_frontend";
|
||||
import revetmentSabang from "../resources/master_data/ref/수량_사방기슭막이치수_사방기술교본_2026-01-01.json";
|
||||
import revetmentSabang from "../resources/data_masonry/revetment_sabang_2026-01-01.json";
|
||||
|
||||
/* ── 유입구 구조 ──────────────────────────────────────────────────────────── */
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* =============================================================================
|
||||
* B06_Section_UI_Cross_Lean.ts
|
||||
* 횡단도 벽 전면 기울기 — 품셈 13-4-4 [주]⑪ 표준경사 표(`resources/master_data/old/3_품셈_산림_돌쌓기경사_*`)를
|
||||
* 횡단도 벽 전면 기울기 — 품셈 13-4-4 [주]⑪ 표준경사 표(`resources/data_masonry/masonry_slope_*`)를
|
||||
* 읽는 자리 하나(2026-09-14 B5 · B08 과 한 벌). 표 읽기 식은 `common_util_masonry_slope.ts`(파이썬 짝).
|
||||
*
|
||||
* 따로 뗀 까닭 — 표(JSON)를 가져오는 모듈을 상수 파일에 두면 그 상수를 쓰는 기하 조각을 Node 로
|
||||
@@ -10,7 +10,7 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import { type WallLeanInput, wallLeanRatio } from "../common_util/common_util_masonry_slope";
|
||||
import masonrySlope from "../resources/master_data/old/3_품셈_산림_돌쌓기경사_13-4-4_2026-01-01.json";
|
||||
import masonrySlope from "../resources/data_masonry/masonry_slope_2026-01-01.json";
|
||||
|
||||
/** 벽 전면 기울기 n — 표를 못 고르면 종전 0.3. */
|
||||
export function leanOf(input: WallLeanInput): number {
|
||||
|
||||
@@ -21,8 +21,8 @@ logger = logging.getLogger(__name__)
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
# 번들이 낡았는지 재는 대상 — 기하 계통이 걸쳐 있는 폴더 + 구조물도 식 풀이(B08, 2026-09-13).
|
||||
SOURCE_DIRS = ("B05_Profile", "B06_Section", "B08_Quantity", "common_util")
|
||||
# 번들에 박히는 자료(JSON) — 벽 전면 기울기 표준경사 표(2026-09-14 B5). 표만 바뀌어도 다시 빌드.
|
||||
SOURCE_DATA_DIRS = ("resources/master_data/old",)
|
||||
# 번들에 박히는 자료(JSON) — 벽 전면 기울기 표준경사 표·기슭막이 치수 표(2026-09-14 B5). 표만 바뀌어도 다시 빌드.
|
||||
SOURCE_DATA_DIRS = ("resources/data_masonry",)
|
||||
# 번들 만들기·실행 상한(초). 실측 번들 실행 0.1초, 빌드 3초 수준이라 넉넉하다.
|
||||
BUILD_TIMEOUT_S = 300
|
||||
RUN_TIMEOUT_S = 600
|
||||
|
||||
@@ -500,19 +500,23 @@ def _add_machine_layers(
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def load_basis_missing(
|
||||
file_name: str = "2_공종_산림_밑수없음_2026-01-01.json",
|
||||
file_name: str = "기준수량없음_산림품셈_2026-01-01.json",
|
||||
) -> dict[str, str]:
|
||||
"""B08 이 낸 **밑수 못 찾은 표** 목록 — `{표 번호: 절 이름}`.
|
||||
|
||||
「10㎡당」 같은 기준을 원문에서 못 찾은 표다. 1 단위당으로 단정하면 곱셈이
|
||||
10배·100배 틀리므로(떼채취가 실제로 100배였다) 그 표를 쓰는 공종은
|
||||
**금액을 안 만든다**.
|
||||
|
||||
2026-09-22 — old/ 스냅샷 대신 최상위 마스터로 옮김(PLAN 7-5 ⑤ · 브레인 판정).
|
||||
⚠ `root` 계산이 파일이 `old_code/` 로 옮겨진 뒤(PLAN 7-3) 한 단 부족해 있었음 —
|
||||
조용히 빈 딕셔너리를 돌려주던 것을 여기서 같이 바로잡음(3단 위가 프로젝트 뿌리).
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
|
||||
root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
path = os.path.join(root, "resources", "master_data", "old", file_name)
|
||||
root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
path = os.path.join(root, "resources", "master_data", file_name)
|
||||
if not os.path.exists(path):
|
||||
return {}
|
||||
with open(path, encoding="utf-8") as handle:
|
||||
|
||||
@@ -22,10 +22,10 @@ from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
ALIAS_FILE = (
|
||||
Path(__file__).resolve().parents[1]
|
||||
Path(__file__).resolve().parents[2]
|
||||
/ "resources"
|
||||
/ "master_data"
|
||||
/ "ref"
|
||||
/ "old"
|
||||
/ "공종_자원별칭_실무_2026-01-01.json"
|
||||
)
|
||||
AXES = frozenset({"resource", "variant"})
|
||||
+1
-1
@@ -20,7 +20,7 @@ from functools import lru_cache
|
||||
from pathlib import Path
|
||||
from typing import Any, Iterable
|
||||
|
||||
MASTER_DIR = Path(__file__).resolve().parent.parent / "resources" / "master_data" / "old"
|
||||
MASTER_DIR = Path(__file__).resolve().parent.parent.parent / "resources" / "master_data" / "old"
|
||||
#: 우리가 세운 공종·구조물 — 난수 코드가 곧 불변 열쇠
|
||||
_STABLE_CODE = re.compile(r"^AX-(?:WK|ST)-[0-9a-f]{8}$")
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ from functools import lru_cache
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
FOLDER = Path(__file__).resolve().parent.parent / "resources" / "master_data" / "old"
|
||||
FOLDER = Path(__file__).resolve().parent.parent.parent / "resources" / "master_data" / "old"
|
||||
CONFIRMED = "확정"
|
||||
#: 표 `policy.both_precedence` 낱말 → 그 행의 열쇠 칸
|
||||
_KEY_COLUMN = {"forest": "forest_key", "construction": "const_key"}
|
||||
@@ -1,142 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""B06 벽 전면 기울기도 **품셈 표준경사 표**를 읽음 — B5 (2026-09-14 브레인 판정 「양쪽 다 이 표를」).
|
||||
|
||||
앞서 B06 횡단도는 벽(관 유입·유출 · 독립 기슭막이 · 다단 추가 · C군 벽)을 **1:0.3 붙박이**로 그렸고
|
||||
B08 은 품셈 13-4-4 [주]⑪ 표(원문 L7185~7191)로 셈 — 메쌓기 성토 H2.5 에서 1:0.3 ↔ 1:0.35 로 갈림.
|
||||
|
||||
재는 것(브레인: 고치기 전 코드에서 빨강부터)
|
||||
① 네 갈래 — 직고 구간 × 성토/절토 × 메/찰 (+ 사용자 칸 `face_slope_ratio`·`face_role`, 못 가르면 종전 0.3)
|
||||
TS 짝 `common_util_masonry_slope.ts` 을 실제로 돌려 파이썬 `face_slope_ratio` 와 한 칸씩 대조.
|
||||
② 기하가 그 값을 씀 — 벽 모양 파일에서 붙박이 `REVET_LEAN_RATIO` 곱이 사라지고 벽마다 기울기를 받음.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import itertools
|
||||
import json
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from B08_Quantity.B08_Quantity_Engine_UnitQuantity_StoneSpec import ( # noqa: E402
|
||||
face_slope_ratio,
|
||||
load_slope_table,
|
||||
)
|
||||
from common_util.common_util_structure_face_role import structure_face_role_of # noqa: E402
|
||||
|
||||
TSC = ROOT / "config" / "node_modules" / "typescript" / "bin" / "tsc"
|
||||
TS_FILE = ROOT / "common_util" / "common_util_masonry_slope.ts"
|
||||
|
||||
FORMS = ("돌쌓기(찰)", "돌쌓기(메)", "콘크리트")
|
||||
HEIGHTS = (1.0, 1.5, 2.5, 3.0, 4.0, 6.0, 7.5)
|
||||
MODES = ("left_cut", "right_cut", "both_cut", "both_fill", None)
|
||||
SIDES = (None, "자동(성토 쪽)", "좌", "우", "양쪽")
|
||||
OVERRIDES = ({}, {"face_role": "절토"}, {"face_slope_ratio": 0.5})
|
||||
|
||||
_RUNNER = """
|
||||
const { readFileSync, writeFileSync } = require("node:fs");
|
||||
const { wallLeanRatio } = require("./common_util_masonry_slope.js");
|
||||
const input = JSON.parse(readFileSync(process.argv[2], "utf8"));
|
||||
const out = input.cases.map((c) => wallLeanRatio(input.table, c));
|
||||
writeFileSync(process.argv[3], JSON.stringify(out));
|
||||
"""
|
||||
|
||||
|
||||
def _cases() -> list[dict]:
|
||||
cases = []
|
||||
for form, height, mode, side, extra in itertools.product(
|
||||
FORMS, HEIGHTS, MODES, SIDES, OVERRIDES
|
||||
):
|
||||
cases.append(
|
||||
{"form": form, "height_m": height, "section_mode": mode, "side": side, **extra}
|
||||
)
|
||||
return cases
|
||||
|
||||
|
||||
def _python(case: dict) -> float:
|
||||
"""B08 이 그 벽을 셀 때의 기울기 — 돌쌓기 형태만 표, 나머지는 종전 0.3."""
|
||||
wet = {"돌쌓기(찰)": True, "돌쌓기(메)": False}.get(case["form"])
|
||||
if wet is None:
|
||||
return 0.3
|
||||
options = {k: case[k] for k in ("side", "face_role", "face_slope_ratio") if k in case}
|
||||
face, reason = structure_face_role_of(case["section_mode"], options)
|
||||
ratio, _basis = face_slope_ratio(
|
||||
options, wet=wet, height_m=case["height_m"], face=face, face_reason=reason
|
||||
)
|
||||
return ratio
|
||||
|
||||
|
||||
@pytest.mark.skipif(shutil.which("node") is None or not TSC.is_file(), reason="node·tsc 없음")
|
||||
def test_네_갈래_표를_TS_가_파이썬과_같게_읽는다(tmp_path: Path) -> None:
|
||||
assert TS_FILE.is_file(), "TS 짝이 아직 없음 — B06 이 표를 안 읽는다"
|
||||
out = tmp_path / "js"
|
||||
subprocess.run( # noqa: S603 — 고정 실행 파일
|
||||
[
|
||||
"node",
|
||||
str(TSC),
|
||||
str(TS_FILE),
|
||||
"--outDir",
|
||||
str(out),
|
||||
"--module",
|
||||
"commonjs",
|
||||
"--target",
|
||||
"es2022",
|
||||
"--ignoreConfig",
|
||||
],
|
||||
cwd=str(ROOT),
|
||||
check=True,
|
||||
capture_output=True,
|
||||
)
|
||||
(out / "runner.cjs").write_text(_RUNNER, encoding="utf-8")
|
||||
cases = _cases()
|
||||
payload = tmp_path / "in.json"
|
||||
result = tmp_path / "out.json"
|
||||
payload.write_text(
|
||||
json.dumps({"table": load_slope_table(), "cases": cases}, ensure_ascii=False),
|
||||
encoding="utf-8",
|
||||
)
|
||||
subprocess.run( # noqa: S603
|
||||
["node", str(out / "runner.cjs"), str(payload), str(result)],
|
||||
cwd=str(ROOT),
|
||||
check=True,
|
||||
capture_output=True,
|
||||
)
|
||||
got = json.loads(result.read_text(encoding="utf-8"))
|
||||
wrong = [
|
||||
(case, ts, _python(case))
|
||||
for case, ts in zip(cases, got, strict=True)
|
||||
if abs(ts - _python(case)) > 1e-9
|
||||
]
|
||||
assert not wrong, wrong[:5]
|
||||
# 갈래가 실제로 갈렸는지 — 한 값만 나와 같아지는 것을 막음(메 성토 H2.5 0.35 · 찰 절토 H1.0 0.2)
|
||||
assert {round(v, 2) for v in got} >= {0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5}
|
||||
|
||||
|
||||
GEOMETRY = [
|
||||
"B06_Section_UI_Cross_Culvert_Geom.ts",
|
||||
"B06_Section_UI_Cross_Wall.ts",
|
||||
"B06_Section_UI_Cross_Culvert_Extra.ts",
|
||||
"B06_Section_UI_Cross_Culvert_Solve.ts",
|
||||
]
|
||||
|
||||
|
||||
def test_횡단도가_최신_표준경사_판을_읽는다() -> None:
|
||||
const = (ROOT / "B06_Section" / "B06_Section_UI_Cross_Lean.ts").read_text(encoding="utf-8")
|
||||
latest = sorted((ROOT / "resources" / "master_data" / "old").glob("3_품셈_산림_돌쌓기경사_*.json"))[-1].name
|
||||
imported = re.search(r'from "\.\./resources/master_data/old/(3_품셈_산림_돌쌓기경사_[^"]+)"', const)
|
||||
assert imported and imported.group(1) == latest
|
||||
|
||||
|
||||
def test_벽_모양이_붙박이_기울기를_안_곱한다() -> None:
|
||||
"""벽 모양 파일마다 `REVET_LEAN_RATIO *` 곱이 남아 있으면 그 벽은 아직 1:0.3 붙박이."""
|
||||
for name in GEOMETRY:
|
||||
source = (ROOT / "B06_Section" / name).read_text(encoding="utf-8")
|
||||
assert not re.search(r"REVET_LEAN_RATIO\s*[*/]", source), name
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"다음": {"LB": 409, "EQ": 655, "RT": 20, "MN": 7000, "MT": 30710, "MO": 74, "MP": 364, "FX": 6, "CF": 159, "QF": 477, "GF": 252, "CC": 341, "GC": 1104, "QC": 2060, "GX": 1, "UA": 2},
|
||||
"다음": {"LB": 409, "EQ": 655, "RT": 20, "MN": 7000, "MT": 30719, "MO": 74, "MP": 364, "FX": 6, "CF": 159, "QF": 477, "GF": 252, "CC": 341, "GC": 1104, "QC": 2060, "GX": 1, "UA": 2},
|
||||
"폐기": {"MT000001": "자재품목 휘발유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000002": "자재품목 경유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000003": "자재품목 선박용경유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000004": "자재품목 중유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000005": "자재품목 등유 — 값이 비고 글뿐 · 유가 테이블로 감", "LB000399": "이름 「〃」 — 직종이 아니라 되풀이 기호 · 소요량 13-6-9 에서 윗줄 직종으로 바로잡음", "MN": "재료_나라장터자재 — old 로 옮김 · 로직은 자재품목·품셈재료로 갈아 끼움", "LB000372": "미확보 고급기능사 — 측량노임 항공사진고급기능사 옛이름으로 옮김", "LB000393": "미확보 리베팅공 — 건설노임 철골공 옛이름으로 옮김(2010 통합표 연번10)", "LB000405": "미확보 Belt Conveyor 설치공 — 품셈 13-10-1 주② 배분으로 다섯 직종에 나눔", "MT000006": "자재품목 전력 — 재료_유가전력 전력 줄로 감", "MT000007": "자재품목 전력 — 재료_유가전력 전력 줄로 감", "LB000368": "미확보 기술사 — 기술사(건설) 옛이름으로 옮김", "LB000369": "미확보 특급기술자 — 특급기술자(건설) 옛이름으로 옮김", "LB000370": "미확보 고급기술자 — 고급기술자(건설) 옛이름으로 옮김", "LB000361": "미확보 중급기술자 — 중급기술자(건설) 옛이름으로 옮김", "LB000364": "미확보 초급기술자 — 초급기술자(건설) 옛이름으로 옮김", "LB000365": "미확보 고급숙련기술자 — 고급숙련기술자(건설) 옛이름으로 옮김", "LB000366": "미확보 중급숙련기술자 — 중급숙련기술자(건설) 옛이름으로 옮김", "LB000367": "미확보 초급숙련기술자 — 초급숙련기술자(건설) 옛이름으로 옮김", "LB000389": "미확보 기계기사 — 초급기술자(기계·설비) 옛이름으로 옮김", "LB000388": "미확보 기계산업기사 — 초급숙련기술자(기계·설비) 옛이름으로 옮김", "MO000055": {"원문번호": "주택용저압:기본_200이하", "파일": "재료_유가전력.json"}, "MO000056": {"원문번호": "주택용저압:기본_201~400", "파일": "재료_유가전력.json"}, "MO000057": {"원문번호": "주택용저압:기본_400초과", "파일": "재료_유가전력.json"}, "MO000059": {"원문번호": "주택용저압:전력량_다음200", "파일": "재료_유가전력.json"}, "MO000060": {"원문번호": "주택용저압:전력량_400초과", "파일": "재료_유가전력.json"}, "MO000061": {"원문번호": "주택용저압:월간최저요금", "파일": "재료_유가전력.json"}, "MO000062": {"원문번호": "일반용갑I저압:기본", "파일": "재료_유가전력.json"}, "MO000063": {"원문번호": "일반용갑I저압:전력량_여름철", "파일": "재료_유가전력.json"}, "MO000064": {"원문번호": "일반용갑I저압:전력량_봄가을철", "파일": "재료_유가전력.json"}, "MO000065": {"원문번호": "일반용갑I저압:전력량_겨울철", "파일": "재료_유가전력.json"}, "MO000066": {"원문번호": "산업용갑I저압:기본", "파일": "재료_유가전력.json"}, "MO000067": {"원문번호": "산업용갑I저압:전력량_여름철", "파일": "재료_유가전력.json"}, "MO000068": {"원문번호": "산업용갑I저압:전력량_봄가을철", "파일": "재료_유가전력.json"}, "MO000069": {"원문번호": "산업용갑I저압:전력량_겨울철", "파일": "재료_유가전력.json"}, "MO000070": {"원문번호": "임시전력갑:기본요금적용", "파일": "재료_유가전력.json"}, "MO000071": {"원문번호": "임시전력갑:전력량요금적용", "파일": "재료_유가전력.json"}, "MO000072": {"원문번호": "임시전력갑:월간최저요금", "파일": "재료_유가전력.json"}},
|
||||
"키": {
|
||||
"CC000001": {"원문번호": "공통 1-3-1 콘크리트 및 포장용 재료", "파일": "계수_건설품셈_01장_적용기준.json"},
|
||||
@@ -36582,6 +36582,15 @@
|
||||
"MT030706": {"원문번호": "품셈재료 MP000003 전국", "파일": "재료_자재품목.json"},
|
||||
"MT030707": {"원문번호": "품셈재료 MP000003 지역별", "파일": "재료_자재품목.json"},
|
||||
"MT030708": {"원문번호": "품셈재료 MP000005 전국", "파일": "재료_자재품목.json"},
|
||||
"MT030709": {"원문번호": "품셈재료 MP000005 지역별", "파일": "재료_자재품목.json"}
|
||||
"MT030709": {"원문번호": "품셈재료 MP000005 지역별", "파일": "재료_자재품목.json"},
|
||||
"MT030710": {"원문번호": "품셈재료 MP000209", "파일": "재료_자재품목.json"},
|
||||
"MT030711": {"원문번호": "품셈재료 MP000214", "파일": "재료_자재품목.json"},
|
||||
"MT030712": {"원문번호": "품셈재료 MP000040", "파일": "재료_자재품목.json"},
|
||||
"MT030713": {"원문번호": "품셈재료 MP000094", "파일": "재료_자재품목.json"},
|
||||
"MT030714": {"원문번호": "품셈재료 MP000202", "파일": "재료_자재품목.json"},
|
||||
"MT030715": {"원문번호": "품셈재료 MP000205", "파일": "재료_자재품목.json"},
|
||||
"MT030716": {"원문번호": "품셈재료 MP000206", "파일": "재료_자재품목.json"},
|
||||
"MT030717": {"원문번호": "품셈재료 MP000207", "파일": "재료_자재품목.json"},
|
||||
"MT030718": {"원문번호": "품셈재료 MP000208", "파일": "재료_자재품목.json"}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
| -------------------- | --------------------------------------------------------------------------------------- |
|
||||
| 인력 | `인력.json` 하나 — 줄마다 `구분` |
|
||||
| 기계 | `기계.json` 하나 — 줄마다 `원문` |
|
||||
| 재료 | `재료_<원문>.json` — 자재품목 · 유가전력 · 품셈재료 |
|
||||
| 재료 | `재료_<원문>.json` — 자재품목 · 유가전력 |
|
||||
| 환율 · 요율 | `환율_한국은행환율.json` · `요율_조달청제비율.json` |
|
||||
| 소요량 · 계수 · 로직 | `<그룹>_<원문>_<NN>장_<장 제목>.json` — 예 `소요량_건설품셈_10장_창호_및_유리공사.json` |
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
| LB | 인력 | QF · QC | 소요량 산림 · 건설 |
|
||||
| MT | 재료 자재품목 | CF · CC | 계수 산림 · 건설 |
|
||||
| MO | 재료 유가 | RT | 요율 |
|
||||
| MP | 재료 품셈재료 | GF · GC · GX | 로직 산림 · 건설 · 자체 |
|
||||
| MP | 재료 품셈재료(old/ — PLAN 7-4b) | GF · GC · GX | 로직 산림 · 건설 · 자체 |
|
||||
| EQ | 기계 | | |
|
||||
|
||||
- 빌더는 옛 모양(`열쇠` · 원문별 파일)으로 쓰고 끝에 `scripts/master_keys.py` 의 `adopt` 를 부름 — 키·원문번호·한 테이블·장 파일 이름으로 받음. 옛 이름으로 읽기는 `old_view`.
|
||||
@@ -119,10 +119,8 @@
|
||||
- 유류·전력은 뗌 — 유가·전기요금은 `재료_유가전력`(유류는 값이 비고 글뿐 · 중유는 받지 않음).
|
||||
- `재료_유가전력` · `환율_한국은행환율` 도 열 한 벌 — 키 · 원문번호 · 구분 · 상세구분 · 이름 · 규격 · 단위 · 값 · 출처 · 비고. 유가전력 `구분` = 유류 · 전력 · `상세구분` = 유류(지역 이름) · 전력(계약종별) · `규격` = 기준일(유류 수집일 · 전력 시행일). 환율은 `규격` = 기준일 · 구분·상세구분 비움.
|
||||
- 로직 호표가 자재품목 키(`MT…`)를 바로 가리키면 그 줄의 값 열 가운데 낮은 값 — **시험 계산용**.
|
||||
- `재료_품셈재료` = 품셈이 부르는 재료 목록 — `{ 키, 원문번호, 이름, 규격, 단위, 요구절: [출처 모양], 연결, 고르기 }` · 값 칸 없음.
|
||||
- `고르기` = 그 재료가 자재품목 어느 묶음인지 — 재료 고르기 조건 `{ 구분, 상세구분[, 규격] }`(7장) · 못 가리면 `null` 에 비고 「고르기 없음(까닭)」. 채우기 = `scripts/build_품셈재료_고르기.py`(자재품목을 가른 바로 그 품명 글자 규칙 · 묶음 목록 `ref/_묶음_자재품목.md`) · 손으로 바로잡은 줄은 그 스크립트 `OVERRIDE` 에. `연결` 이 이미 있는 줄은 비움 — 옛 방식 그대로 씀.
|
||||
- 로직 재료 줄 일괄 변환 = `scripts/build_로직_재료_고르기.py` — 호표 요소 `MP…` 를 그 줄의 `고르기` 조건으로 바꿈 · 고르기가 빈 줄과 `{이름}` 이 낀 원문번호 줄은 그대로 둠.
|
||||
- `연결` = 자재품목·유가전력 키 하나 · 후보 조건 `{ 이름, 규격, 지역: "입력" }`(지역이 갈리는 레미콘·골재·아스콘) · `{ 이름, 계약종별: "입력" }`(전력 — 로직 입력 `전력 계약종별`) · `null`(아직 못 이음).
|
||||
- `재료_품셈재료`(PLAN 7-4b 뒤 절반 — `old/` 로 옮김 · 살아 있는 마스터엔 안 읽힘 · 자료로만 둠) = 품셈이 부르는 재료 목록이던 것 — `{ 키, 원문번호, 이름, 규격, 단위, 요구절: [출처 모양], 연결, 고르기 }` · 값 칸 없음. 로직 호표·덧줄의 `MP…` 직접 참조는 다 걷어 자재품목 고르기 조건(7장)이나 대표 키로 바꿈 — 아래 두 줄은 그 옮기던 때의 자취.
|
||||
- `연결` = 자재품목·유가전력 키 하나 · 후보 조건 `{ 이름, 규격, 지역: "입력" }`(지역이 갈리는 레미콘·골재·아스콘) · `{ 이름, 계약종별: "입력" }`(전력 — 로직 입력 `전력 계약종별`) · `null`(못 이음). 이 지역·계약종별 조건 묶음은 이제 7장의 고르기 조건(`PICK_KEYS` 의 `지역`·`계약종별`)에 그대로 들어가 호표에 바로 박힘 — 품셈재료 간접 없이 `master_material._region`·`_tariff` 가 품.
|
||||
- 단가 = 연결된 줄의 값 열 다섯 가운데 낮은 값 · 호표 결과 줄에 `출처`(`<키>.<열>`) — **시험 계산용**. 후보 조건 = 품명 뿌리가 `이름` 으로 끝남 · 이름에 로직 입력 `자재지역` 글자 · 단위 같음 · 규격이 둘 이상 갈리면 멈춤 「후보 여럿」 · 그 지역 줄이 없으면 가까운 시군을 고르지 않고 멈춤 「지역 값 없음」.
|
||||
|
||||
## 6. 표형 요소 (소요량 · 계수)
|
||||
@@ -220,15 +218,17 @@
|
||||
}
|
||||
```
|
||||
|
||||
- 조건 칸 = `구분`(반드시) · `상세구분` · `규격` · `대표` · 그 밖의 칸은 두지 않음. `종류` 는 「재료」만.
|
||||
- 조건 칸 = `구분`(반드시 — `지역`·`계약종별` 조건은 예외) · `상세구분` · `이름` · `규격` · `대표` · `지역`("입력" 만) · `계약종별`("입력" 만) · 그 밖의 칸은 두지 않음. `종류` 는 「재료」만.
|
||||
- `지역`·`계약종별` 조건(PLAN 7-4b 뒤 절반) = 구분·상세구분 없이 `이름` 하나로 자재품목(지역)·유가전력(계약종별)을 넓게 찾음 — 옛 품셈재료 `연결` 묶음과 같은 모양·같은 매칭(`master_material._region`·`_tariff`) · 로직 입력 `자재지역`·`전력 계약종별` 이 계산 때 좁힘 · 값은 `null`(지역·전력 마스터에 안 굳힘).
|
||||
- 구분·상세구분 = 자재품목 줄의 같은 이름 칸과 똑같이 적음(묶음 목록은 `ref/_묶음_자재품목.md`).
|
||||
- 규격 조건 = 원문이 규격을 밝힌 것만 좁힘 — 낱말이 **모두** 든 줄이 후보(「D300」 · 「D300 B종」) · 대소문자·빈칸·`φ` 는 안 가림. 원문이 규격을 안 밝히면 칸을 두지 않음.
|
||||
- 이름 조건 = 구분·상세구분·규격이 같아도 품명이 갈리는 자재품목을 가를 때만 둠(예: 파형강관 커플링밴드 vs 접속티 — 둘 다 관경만 규격에 있어 규격 조건으로는 안 갈림). 규격과 같은 방식(낱말이 **모두** 이름에 든 줄) — 대소문자·빈칸은 안 가림.
|
||||
- 대표 줄 = 관리자가 고른 자재품목 키 — 시험 계산이 그 줄의 값을 씀. 조건 밖 키는 검사가 잡음.
|
||||
- 후보는 **호표 줄 단위와 같은 자재품목 줄만** — 단위가 다르면 다른 물건(우드칩 ㎥ · 원목후로링 ㎡). 조건 안 줄이 모두 다른 단위면 `check_master 단위` 가 알림.
|
||||
- 조건 값에 `{입력}` 을 넣을 수 있음 — `"규격": "{관경}"` 은 계산 때 입력값으로 채워짐(검사에서는 그 칸을 뺌).
|
||||
- 대표가 없으면 시험 계산은 **조건 안 값 있는 첫 줄** · 로직 입력 `자재지역` 이 있으면 이름에 그 지역이 든 줄부터(레미콘·골재처럼 지역이 갈리는 품목).
|
||||
- 실제 줄 고르기는 프로젝트 몫 — 후보 목록은 `GET /api/m01/materials`(화면·테스트 컨테이너가 같이 씀).
|
||||
- 옛 방식(품셈재료 키 `MP…` · 자재품목 키 `MT…`)도 그대로 돎 — 품셈재료 `고르기` 칸이 빈 줄(연결이 이미 있는 줄 · 짝 못 찾은 줄)과 `{이름}` 이 낀 원문번호 줄은 계속 옛 방식.
|
||||
- 옛 방식(자재품목 키를 호표에 바로 적은 `MT…`)도 그대로 돎 — 그 줄은 그 자재품목 줄 값을 바로 씀. 품셈재료 간접(`MP…`)은 PLAN 7-4b 뒤 절반에서 다 걷음(위 4장) — 남았던 22줄(색소·에폭시·버너·퓨즈 등)도 자재품목 새 줄이나 대표 키로 이음.
|
||||
|
||||
- 근거가 덜 선 줄은 `비고` 칸에 적음 — 「환산 근거 미확인」.
|
||||
- 입력 칸 = `이름`(반드시) · `설명` · `단위` · `고르기`·`범위`(둘 중 하나까지) · `출처`(원문 절) · `비고` · `시험입력`은 줄 머리에 따로.
|
||||
@@ -248,7 +248,7 @@
|
||||
- 로직 부르기 — `로직(GC000871, 기계='0201-0070')` · 돈 로직의 결과는 비목 묶음 `.노무비` `.재료비` `.경비` `.계` · 돈 아닌 로직은 수 하나.
|
||||
- 입력 · 중간 · 비목 합은 이름 그대로.
|
||||
- 덧줄에서만 `줄.'호표 줄 이름'` = 그 호표 줄의 금액 — 비목 합에서 한 줄만 빼는 식에 씀(`GF000185` 콘크리트다짐).
|
||||
- 후보 조건 품셈재료를 쓰는 로직(부르는 로직 포함)은 입력 `자재지역` 을 두고 하위 로직에 `자재지역=자재지역` 으로 넘김 — `지역` 은 유가 고르기.
|
||||
- 지역 고르기 조건(7장 `지역: "입력"`)을 쓰는 로직(부르는 로직 포함)은 입력 `자재지역` 을 두고 하위 로직에 `자재지역=자재지역` 으로 넘김 — `지역` 은 유가 고르기.
|
||||
- 쓸 수 있는 것 — `+ - * /` · 괄호 · 비교 `< <= > >= == !=` · `그리고` `또는` · `찾기` · `로직` · `만약(조건, 참, 거짓)` · `올림` `버림` `반올림`(자리) · `최소` `최대`. 그 밖은 쓰지 않음.
|
||||
- 로직이 돌고 도는 참조를 만들지 않음.
|
||||
- 사람이 읽는 자리(M01 화면 · 검사 알림)는 키 옆에 이름.
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
기계 · 전체,키,원문번호,세부분류,이름,규격,단위,단위›가격,단위›내용시간,단위›연간표준가동시간,단위›상각비율,단위›정비비율,단위›연간관리비율,단위›상각비계수,단위›정비비계수,단위›관리비계수,단위›손료계수,단위›주연료,단위›주연료종류,단위›잡재료율,단위›조종원,단위›조종원직종,값,값›가격,값›내용시간,값›연간표준가동시간,값›상각비율,값›정비비율,값›연간관리비율,값›상각비계수,값›정비비계수,값›관리비계수,값›손료계수,값›주연료,값›주연료종류,값›잡재료율,값›조종원,값›조종원직종,출처,출처›가격,출처›내용시간,출처›연간표준가동시간,출처›상각비율,출처›정비비율,출처›연간관리비율,출처›상각비계수,출처›정비비계수,출처›관리비계수,출처›손료계수,출처›주연료,출처›주연료종류,출처›잡재료율,출처›조종원,출처›조종원직종,비고,원문,원문›8-4-2 주연료,원문›8-4-4 주연료,단위›주연료2,단위›주연료2종류,값›주연료2,값›주연료2종류,출처›주연료2,출처›주연료2종류,원문›8-4-5 주연료,원문›8-4-6 주연료,원문›8-4-8 주연료,단위›준설선선장,단위›준설선기관사,단위›선원,값›준설선선장,값›준설선기관사,값›선원,출처›준설선선장,출처›준설선기관사,출처›선원,원문›8-3-10 내용시간,원문›8-4-9 잡재료,단위›고급선원,값›고급선원,출처›고급선원,단위›장비가격,값›장비가격,출처›장비가격,단위›취득가액,값›취득가액,출처›취득가액,단위›시간당손료계수,값›시간당손료계수,출처›시간당손료계수,
|
||||
기계 · 세부분류=건설품셈,키,원문번호,세부분류,이름,규격,단위,단위›가격,단위›내용시간,단위›연간표준가동시간,단위›상각비율,단위›정비비율,단위›연간관리비율,단위›상각비계수,단위›정비비계수,단위›관리비계수,단위›손료계수,단위›주연료,단위›주연료종류,단위›잡재료율,단위›조종원,단위›조종원직종,값,값›가격,값›내용시간,값›연간표준가동시간,값›상각비율,값›정비비율,값›연간관리비율,값›상각비계수,값›정비비계수,값›관리비계수,값›손료계수,값›주연료,값›주연료종류,값›잡재료율,값›조종원,값›조종원직종,출처,출처›가격,출처›내용시간,출처›연간표준가동시간,출처›상각비율,출처›정비비율,출처›연간관리비율,출처›상각비계수,출처›정비비계수,출처›관리비계수,출처›손료계수,출처›주연료,출처›주연료종류,출처›잡재료율,출처›조종원,출처›조종원직종,비고,원문,원문›8-4-2 주연료,원문›8-4-4 주연료,단위›주연료2,단위›주연료2종류,값›주연료2,값›주연료2종류,출처›주연료2,출처›주연료2종류,원문›8-4-5 주연료,원문›8-4-6 주연료,원문›8-4-8 주연료,단위›준설선선장,단위›준설선기관사,단위›선원,값›준설선선장,값›준설선기관사,값›선원,출처›준설선선장,출처›준설선기관사,출처›선원,원문›8-3-10 내용시간,원문›8-4-9 잡재료,단위›고급선원,값›고급선원,출처›고급선원,,,,,,,,,,
|
||||
기계 · 세부분류=산림품셈,키,원문번호,세부분류,이름,규격,단위,단위›손료계수,값,값›손료계수,출처,출처›손료계수,비고,단위›장비가격,값›장비가격,출처›장비가격,단위›취득가액,값›취득가액,출처›취득가액,단위›시간당손료계수,값›시간당손료계수,출처›시간당손료계수,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
요율_조달청제비율 · 전체,키,원문번호,이름,값,값›rate_percent,값›base,출처,값›brackets,값›annual_rates,값›rate_from_2033_percent,값›base_without_owner_supplied_material,값›base_with_owner_supplied_material,값›minimum_total_construction_amount_krw,값›manager_thresholds,값›base_rule,값›embedded_in,값›amount_bracket,값›minimum_estimated_amount_krw,값›forest_road_selection_status,값›forest_road_candidates,값›all_work_types,값›general_construction,값›specialty_construction,값›base_note,값›typical_forest_road_applicability,값›civil_landscape_industrial,값›specialty_electric_communication_fire_other,값›basis,값›specialty_note,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=건설업,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=제조업,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=엔지니어링,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=측량,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=건설사업관리,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=SW,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=산림,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
인력 · 조사=준용대상,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,일시간,상태,옛이름,비고,준용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
재료_나라장터자재 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,분류코드,공시일시,공시번호,사업구분코드,사업구분,부가세,가격종류,인도조건,분야,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
재료_시중물가 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
재료_오피넷유가 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,비고,,상품코드,지역코드,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
환율_한국은행환율 · 전체,키,원문번호,구분,상세구분,이름,규격,단위,값,출처,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
계수_건설품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
계수_산림품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_건설품셈(파일 전체 합침) · 로직 머리,키,원문번호,이름,결과단위,출처,소유,입력,중간,호표,덧줄,끝수,비고,결과,결과›식,결과›출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_건설품셈(파일 전체 합침) · 입력 줄,이름,고르기,출처,비고,단위,범위,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_건설품셈(파일 전체 합침) · 중간 줄,이름,식,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_건설품셈(파일 전체 합침) · 호표 줄,종류,요소,이름,단위,수량,비목,비고,출처,규격,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_건설품셈(파일 전체 합침) · 덧줄 줄,이름,식,비목,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_산림품셈(파일 전체 합침) · 로직 머리,키,원문번호,이름,결과단위,출처,소유,입력,중간,호표,덧줄,끝수,비고,결과,결과›식,결과›출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_산림품셈(파일 전체 합침) · 입력 줄,이름,고르기,단위,출처,범위,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_산림품셈(파일 전체 합침) · 중간 줄,이름,식,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_산림품셈(파일 전체 합침) · 호표 줄,종류,요소,이름,단위,수량,비목,출처,비고,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
로직_산림품셈(파일 전체 합침) · 덧줄 줄,이름,식,비목,출처,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
소요량_건설품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,그룹,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
소요량_산림품셈(파일 전체 합침) · 표 머리,키,원문번호,구분,상세구분,이름,기준,출처,조건,값칸,줄,주,그룹,범위규칙,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
* 건설업의 산정근거는 비고에 산정값은 값에 입력,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
"* 조사는 구분으로 열제목 변경, 업종과 부문은 상세구분으로 편입",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
"* 일하는 시간은 내용이 없는 경우 8시간으로 반영(별도로 언급이 없으면 8시간, 잠수부? 만 6시간)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
* 준용은 공통 항목 다시말해 변경할 수도 있음.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
"* 시중물가의 시중값과 조달값은 필요없음, 나중에 프로젝트 내부에 내역세작성시 필요한 내용, ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
* 품셈재료 품목은 품셈원문에서 사용한 품목가이드 이고 시중물가와 나라장터자재에 있어야하는 정보를 사용하여 계산되어야함. 테이블은 삭제 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
* 오피넷 유가에는 구분과 상세구분은 지역으로 사용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
* 오피넷 유가의 상품코드와 지역코드는 어디에 사용되는지 확인. 필요없으면 삭제하는게.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
* 오피넛 유가의 기준일은 규격 열을 사용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
* 환율의 기준일은 규격 열을 사용,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
|
@@ -20,7 +20,7 @@
|
||||
{ "키": "MP000009", "원문번호": "이형철근 SD300 D13", "이름": "이형철근", "규격": "SD300, D13", "단위": "ton", "요구절": ["산림품셈 12-12"], "연결": "MT014463", "고르기": null, "비고": "연결: 이형철근(SD300) D13 전국 줄" },
|
||||
{ "키": "MP000010", "원문번호": "원형철근 ∅29㎜", "이름": "원형철근", "규격": "∅29㎜, L=500㎜", "단위": "ton", "요구절": ["산림품셈 12-30-2"], "연결": null, "고르기": {"구분": "철근·강재", "상세구분": "철근"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000011", "원문번호": "강봉 D32㎜", "이름": "강봉", "규격": "D32㎜, L=1000㎜", "단위": "EA", "요구절": ["산림품셈 12-30-1"], "연결": null, "고르기": null, "비고": "강봉보강재뿐 · 값은 m — EA 아님 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000012", "원문번호": "사다리", "이름": "사다리", "규격": "∅19㎜ 아연도금 및 스테인레스", "단위": "ton", "요구절": ["산림품셈 12-16"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 단위 ton · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000012", "원문번호": "사다리", "이름": "사다리", "규격": "∅19㎜ 아연도금 및 스테인레스", "단위": "ton", "요구절": ["산림품셈 12-16"], "연결": "MT030600", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030600)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000013", "원문번호": "고철", "이름": "고철", "규격": "", "단위": "kg", "요구절": ["산림품셈 9-8-1 주4", "산림품셈 12-34-3"], "연결": null, "고르기": null, "비고": "경량·중량·STS·알루미늄 갈림 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000014", "원문번호": "폼타이", "이름": "폼타이(Form Tie)", "규격": "D형 1/2인치", "단위": "본", "요구절": ["산림품셈 12-4 주⑦", "건설품셈 공통 6-3-1 주④"], "연결": null, "고르기": null, "비고": "폼타이 값은 「조」 — 본 환산 안 함 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000015", "원문번호": "문양 스티로폴", "이름": "문양 스티로폴(자재비 포함)", "규격": "", "단위": "㎡", "요구절": ["산림품셈 12-5"], "연결": null, "고르기": {"구분": "단열·보온", "상세구분": "단열재"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
@@ -35,20 +35,20 @@
|
||||
{ "키": "MP000024", "원문번호": "고무링 ∅800㎜", "이름": "고무링(VR관)", "규격": "∅800㎜", "단위": "개", "요구절": ["산림품셈 12-11-1"], "연결": "MT009721", "고르기": null, "비고": "연결: VR관고무링 D800 이름·규격 같음" },
|
||||
{ "키": "MP000025", "원문번호": "흄관 ∅800㎜", "이름": "흄관", "규격": "∅800㎜", "단위": "m", "요구절": ["산림품셈 12-11-2-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "흄관", "규격": "Φ800mm", "대표": "MT014981"}, "비고": "A·B형 갈림 · 값은 「본」 — m 아님" },
|
||||
{ "키": "MP000026", "원문번호": "파형강관 ∅800㎜", "이름": "파형강관", "규격": "∅800㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관"}, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음" },
|
||||
{ "키": "MP000027", "원문번호": "커플링밴드 ∅800㎜", "이름": "커플링밴드(파형강관)", "규격": "∅800㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": "MT015309", "고르기": null, "비고": "연결: 파형강관 커플링밴드 Φ800 관급 줄" },
|
||||
{ "키": "MP000027", "원문번호": "커플링밴드 ∅800㎜", "이름": "커플링밴드(파형강관)", "규격": "∅800㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관", "이름": "파형강관 커플링밴드(관급)", "규격": "Φ800mm", "대표": "MT015309"}, "비고": "일감35 — 규격(관경)만으론 접속티와 안 갈려 이름 조건을 더함" },
|
||||
{ "키": "MP000028", "원문번호": "VR관 ∅1000㎜", "이름": "VR관(소켓식)", "규격": "∅1000㎜", "단위": "m", "요구절": ["산림품셈 12-11-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "PVC관"}, "비고": "VR관 값은 「본」 — m 환산 안 함" },
|
||||
{ "키": "MP000029", "원문번호": "고무링 ∅1000㎜", "이름": "고무링(VR관)", "규격": "∅1000㎜", "단위": "개", "요구절": ["산림품셈 12-11-1"], "연결": "MT009723", "고르기": null, "비고": "연결: VR관고무링 D1000 이름·규격 같음" },
|
||||
{ "키": "MP000030", "원문번호": "흄관 ∅1000㎜", "이름": "흄관", "규격": "∅1000㎜", "단위": "m", "요구절": ["산림품셈 12-11-2-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "흄관", "규격": "Φ1000mm", "대표": "MT014983"}, "비고": "A·B형 갈림 · 값은 「본」 — m 아님" },
|
||||
{ "키": "MP000031", "원문번호": "파형강관 ∅1000㎜", "이름": "파형강관", "규격": "∅1000㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관"}, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음" },
|
||||
{ "키": "MP000032", "원문번호": "커플링밴드 ∅1000㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1000㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": "MT015311", "고르기": null, "비고": "연결: 파형강관 커플링밴드 Φ1000 관급 줄" },
|
||||
{ "키": "MP000032", "원문번호": "커플링밴드 ∅1000㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1000㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관", "이름": "파형강관 커플링밴드(관급)", "규격": "Φ1000mm", "대표": "MT015311"}, "비고": "일감35 — 규격(관경)만으론 접속티와 안 갈려 이름 조건을 더함" },
|
||||
{ "키": "MP000033", "원문번호": "VR관 ∅1200㎜", "이름": "VR관(소켓식)", "규격": "∅1200㎜", "단위": "m", "요구절": ["산림품셈 12-11-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "PVC관"}, "비고": "VR관 값은 「본」 — m 환산 안 함" },
|
||||
{ "키": "MP000034", "원문번호": "고무링 ∅1200㎜", "이름": "고무링(VR관)", "규격": "∅1200㎜", "단위": "개", "요구절": ["산림품셈 12-11-1"], "연결": "MT009725", "고르기": null, "비고": "연결: VR관고무링 D1200 이름·규격 같음" },
|
||||
{ "키": "MP000035", "원문번호": "흄관 ∅1200㎜", "이름": "흄관", "규격": "∅1200㎜", "단위": "m", "요구절": ["산림품셈 12-11-2-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "흄관", "규격": "Φ1200mm", "대표": "MT014985"}, "비고": "A·B형 갈림 · 값은 「본」 — m 아님" },
|
||||
{ "키": "MP000036", "원문번호": "파형강관 ∅1200㎜", "이름": "파형강관", "규격": "∅1200㎜", "단위": "m", "요구절": ["산림품셈 12-11-3"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관"}, "비고": "두께 1.6·2.0·2.7T 갈림 — 원문 없음" },
|
||||
{ "키": "MP000037", "원문번호": "커플링밴드 ∅1200㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1200㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": "MT015313", "고르기": null, "비고": "연결: 파형강관 커플링밴드 Φ1200 관급 줄" },
|
||||
{ "키": "MP000038", "원문번호": "지수활제", "이름": "지수활제", "규격": "", "단위": "g", "요구절": ["산림품셈 12-11-1"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000037", "원문번호": "커플링밴드 ∅1200㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1200㎜", "단위": "EA", "요구절": ["산림품셈 12-11-3 주①"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "파형강관", "이름": "파형강관 커플링밴드(관급)", "규격": "Φ1200mm", "대표": "MT015313"}, "비고": "일감35 — 규격(관경)만으론 접속티와 안 갈려 이름 조건을 더함" },
|
||||
{ "키": "MP000038", "원문번호": "지수활제", "이름": "지수활제", "규격": "", "단위": "g", "요구절": ["산림품셈 12-11-1"], "연결": "MT030601", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030601)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000039", "원문번호": "모르타르 1:2", "이름": "접합몰탈", "규격": "1:2", "단위": "㎥", "요구절": ["산림품셈 12-11-2-1", "건설품셈 건축 2-1-4", "건설품셈 건축 3-2-2"], "연결": null, "고르기": {"구분": "시멘트·골재", "상세구분": "모르타르", "규격": "1:2"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000040", "원문번호": "스틸그레이팅", "이름": "집수정 뚜껑", "규격": "스틸그레이팅", "단위": "개", "요구절": ["산림품셈 12-15"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000040", "원문번호": "스틸그레이팅", "이름": "집수정 뚜껑", "규격": "스틸그레이팅", "단위": "개", "요구절": ["산림품셈 12-15"], "연결": "MT030712", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목 새 줄(MT030712)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000041", "원문번호": "원형거푸집 벽체", "이름": "원형거푸집(PE 10회)", "규격": "벽체", "단위": "조", "요구절": ["산림품셈 12-16"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000042", "원문번호": "원형거푸집 스라브 및 기초", "이름": "원형거푸집(PE 10회)", "규격": "스라브 및 기초", "단위": "조", "요구절": ["산림품셈 12-16"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000043", "원문번호": "철물", "이름": "철물(강관비계)", "규격": "", "단위": "개", "요구절": ["산림품셈 12-19"], "연결": null, "고르기": {"구분": "거푸집·가설재", "상세구분": "동바리·비계"}, "비고": "이음·조임·받침 철물 갈림" },
|
||||
@@ -56,41 +56,41 @@
|
||||
{ "키": "MP000045", "원문번호": "강관동바리 외관", "이름": "강관동바리 외관", "규격": "60.6㎜×2.3㎜", "단위": "본", "요구절": ["산림품셈 12-20"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000046", "원문번호": "아스팔트 ㏊-500", "이름": "아스팔트", "규격": "㏊-500", "단위": "kg", "요구절": ["산림품셈 12-21"], "연결": null, "고르기": {"구분": "아스콘·포장", "상세구분": "아스팔트"}, "비고": "AP-3·AP-5 갈림 — 원문 규격과 안 맞음" },
|
||||
{ "키": "MP000047", "원문번호": "PVC 파이프 50㎜", "이름": "P.V.C 파이프", "규격": "50㎜", "단위": "", "요구절": ["산림품셈 12-22"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "PVC관", "규격": "50mm"}, "비고": "원문 단위 없음 — 못 맞댐" },
|
||||
{ "키": "MP000048", "원문번호": "JOINT FILLER", "이름": "JOINT FILLER", "규격": "", "단위": "㎡", "요구절": ["산림품셈 12-27-2", "산림품셈 12-34-4"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000048", "원문번호": "JOINT FILLER", "이름": "JOINT FILLER", "규격": "", "단위": "㎡", "요구절": ["산림품셈 12-27-2", "산림품셈 12-34-4"], "연결": "MT030602", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030602)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000049", "원문번호": "JOINT FILLER 접착제", "이름": "접착제(JOINT FILLER)", "규격": "", "단위": "kg", "요구절": ["산림품셈 12-27-2"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "접착제 종류 갈림" },
|
||||
{ "키": "MP000050", "원문번호": "실런트", "이름": "실런트", "규격": "20×25㎜", "단위": "kg", "요구절": ["산림품셈 12-27-3"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000051", "원문번호": "에폭시 접착제 콘크리트용", "이름": "에폭시 접착제", "규격": "콘크리트용", "단위": "kg", "요구절": ["산림품셈 12-28"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "에폭시 접착제 GF800 한 줄 — 규격 다름" },
|
||||
{ "키": "MP000052", "원문번호": "스페이셔 몰탈 블록", "이름": "스페이셔(몰탈 블록)", "규격": "", "단위": "", "요구절": ["산림품셈 12-29"], "연결": null, "고르기": null, "비고": "원문 단위 없음 — 못 맞댐 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000052", "원문번호": "스페이셔 몰탈 블록", "이름": "스페이셔(몰탈 블록)", "규격": "", "단위": "", "요구절": ["산림품셈 12-29"], "연결": "MT030603", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030603)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000053", "원문번호": "PVC 파이프 Ø35㎜", "이름": "P.V.C 파이프", "규격": "Ø35㎜", "단위": "m", "요구절": ["산림품셈 12-30-1"], "연결": null, "고르기": {"구분": "관·이음관", "상세구분": "PVC관"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000054", "원문번호": "탄성고무받침", "이름": "탄성고무받침", "규격": "150×150×15", "단위": "㎡", "요구절": ["산림품셈 12-30-2"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000055", "원문번호": "스티로폴 T20㎜", "이름": "스티로폴", "규격": "T=20㎜", "단위": "㎡", "요구절": ["산림품셈 12-30-2"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000056", "원문번호": "TAR PAPER", "이름": "TAR PAPER", "규격": "T=15㎜", "단위": "㎡", "요구절": ["산림품셈 12-30-2"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000057", "원문번호": "채움재 아스팔트", "이름": "채움재(아스팔트)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 12-30-2"], "연결": null, "고르기": null, "비고": "아스팔트 값은 kg — ㎥ 환산 안 함 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000055", "원문번호": "스티로폴 T20㎜", "이름": "스티로폴", "규격": "T=20㎜", "단위": "㎡", "요구절": ["산림품셈 12-30-2"], "연결": "MT030604", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030604)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000056", "원문번호": "TAR PAPER", "이름": "TAR PAPER", "규격": "T=15㎜", "단위": "㎡", "요구절": ["산림품셈 12-30-2"], "연결": "MT030605", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030605)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000057", "원문번호": "채움재 아스팔트", "이름": "채움재(아스팔트)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 12-30-2"], "연결": "MT030606", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030606)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000058", "원문번호": "다웰바캡", "이름": "다웰바캡", "규격": "D=50㎜", "단위": "m", "요구절": ["산림품셈 12-30-2"], "연결": null, "고르기": {"구분": "교량·구조부속", "상세구분": "보강재·정착"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000059", "원문번호": "물끊기 홈 재료", "이름": "물끊기 홈(NOTCH) 재료", "규격": "", "단위": "", "요구절": ["산림품셈 12-31"], "연결": null, "고르기": null, "비고": "원문 단위 없음 — 못 맞댐 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000060", "원문번호": "하드너", "이름": "콘크리트 표면 강화재(하드너)", "규격": "", "단위": "", "요구절": ["산림품셈 12-35"], "연결": null, "고르기": null, "비고": "원문 단위 없음 — 못 맞댐 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000060", "원문번호": "하드너", "이름": "콘크리트 표면 강화재(하드너)", "규격": "", "단위": "", "요구절": ["산림품셈 12-35"], "연결": "MT030607", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030607)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000061", "원문번호": "소재", "이름": "소재(원목)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 10-8-2"], "연결": null, "고르기": null, "비고": "대·중·소경목 갈림 — 원문 지름 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000062", "원문번호": "각재·판재", "이름": "각재·판재", "규격": "", "단위": "㎥", "요구절": ["산림품셈 10-8-2"], "연결": null, "고르기": null, "비고": "미송·외송 갈림 · 각재와 판재 둘 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000063", "원문번호": "목재", "이름": "목재(규준틀)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 11-2", "산림품셈 11-3", "건설품셈 공통 2-5-4", "건설품셈 공통 2-11-1 재료량"], "연결": null, "고르기": {"구분": "목재", "상세구분": "각재·판재", "대표": "MT000409"}, "비고": "규준틀 목재 줄 없음 — 합성목재뿐" },
|
||||
{ "키": "MP000064", "원문번호": "줄눈 모르타르", "이름": "줄눈메꿈 모르타르", "규격": "", "단위": "㎥", "요구절": ["산림품셈 13-4-4 주④", "산림품셈 13-5-1 주③"], "연결": null, "고르기": {"구분": "시멘트·골재", "상세구분": "모르타르"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000065", "원문번호": "틈메우기돌", "이름": "틈메우기돌", "규격": "", "단위": "㎥", "요구절": ["산림품셈 13-5-1 주④"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000066", "원문번호": "철망태", "이름": "철망태(사각형 돌망태)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 13-11-4"], "연결": null, "고르기": {"구분": "매트·토목섬유", "상세구분": "돌망태·사방"}, "비고": "개비온 값은 「조」 — ㎥ 환산 안 함" },
|
||||
{ "키": "MP000065", "원문번호": "틈메우기돌", "이름": "틈메우기돌", "규격": "", "단위": "㎥", "요구절": ["산림품셈 13-5-1 주④"], "연결": "MT030608", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030608)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000066", "원문번호": "철망태", "이름": "철망태(사각형 돌망태)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 13-11-4"], "연결": "MT004110", "고르기": null, "비고": "PLAN 7-4b: 개비온 값은 「조」 — ㎥ 환산 안 함 · 후보 5줄(사석류) 가운데 돌망태에 넣는 망태석 300mm(MT004110)로 이음(정확한 짝 아님)" },
|
||||
{ "키": "MP000067", "원문번호": "돌망태 채움재", "이름": "채움재(돌망태)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 13-11-4"], "연결": null, "고르기": {"구분": "매트·토목섬유", "상세구분": "돌망태·사방"}, "비고": "돌망태 채움돌 값 줄 없음" },
|
||||
{ "키": "MP000068", "원문번호": "농약(Fluroxypyr-meptyl+Triclypyr-TEA 미탁제)", "이름": "농약", "규격": "Fluroxypyr-meptyl+Triclypyr-TEA 미탁제", "단위": "병", "요구절": ["산림품셈 2-1-5-1", "산림품셈 6-4-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000069", "원문번호": "우드칩", "이름": "우드칩(목재칩)", "규격": "", "단위": "㎥", "요구절": ["산림품셈 6-8"], "연결": null, "고르기": null, "비고": "우드칩 값은 「포」 — ㎥ 환산 안 함 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000070", "원문번호": "깃발", "이름": "깃발", "규격": "", "단위": "개", "요구절": ["산림품셈 8-6-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000070", "원문번호": "깃발", "이름": "깃발", "규격": "", "단위": "개", "요구절": ["산림품셈 8-6-1"], "연결": "MT030609", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030609)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000071", "원문번호": "폭약", "이름": "폭약", "규격": "", "단위": "㎏", "요구절": ["건설품셈 공통 3-3-7", "건설품셈 공통 3-3-9"], "연결": null, "고르기": null, "비고": "지름·제품별 갈림 — 원문 규격 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000072", "원문번호": "뇌관", "이름": "뇌관", "규격": "", "단위": "개", "요구절": ["건설품셈 공통 3-3-7", "건설품셈 공통 3-3-9"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "화약", "대표": "MT005677"}, "비고": "전기뇌관 각선 길이 갈림" },
|
||||
{ "키": "MP000073", "원문번호": "비트", "이름": "비트(소형브레이커 천공)", "규격": "", "단위": "개", "요구절": ["건설품셈 공통 3-3-7", "건설품셈 공통 3-3-9"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "코어·버튼·착암기 비트 갈림" },
|
||||
{ "키": "MP000074", "원문번호": "초류종자", "이름": "종자(초류)", "규격": "", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": null, "고르기": {"구분": "식생·종자", "상세구분": "종자", "대표": "MT006651"}, "비고": "초종별 갈림 — 원문 「초류」 만" },
|
||||
{ "키": "MP000075", "원문번호": "복합비료", "이름": "비료", "규격": "복합비료", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT006489", "고르기": null, "비고": "연결: 복합비료 규격 없는 kg 줄" },
|
||||
{ "키": "MP000076", "원문번호": "피복제", "이름": "피복제", "규격": "화이버/펄프류", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000077", "원문번호": "침식방지안정제", "이름": "침식방지안정제", "규격": "합성접착제", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000078", "원문번호": "착색제", "이름": "색소", "규격": "착색제", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT006740) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000076", "원문번호": "피복제", "이름": "피복제", "규격": "화이버/펄프류", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT030610", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030610)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000077", "원문번호": "침식방지안정제", "이름": "침식방지안정제", "규격": "합성접착제", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT030611", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030611)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000078", "원문번호": "착색제", "이름": "색소", "규격": "착색제", "단위": "㎏", "요구절": ["건설품셈 공통 4-1-3 재료량"], "연결": "MT006740", "고르기": null, "비고": "PLAN 7-4b: 후보 1줄(착색제, M-Green)뿐이라 그대로 이음" },
|
||||
{ "키": "MP000079", "원문번호": "차선도색 프라이머", "이름": "프라이머", "규격": "융착식 도료 차선도색용", "단위": "kg", "요구절": ["건설품셈 토목 1-8-9 융착식 도료 수동식 재료", "건설품셈 유지관리 2-1-15 4 자재수량"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "도료"}, "비고": "자재품목 후보 19줄 — 지역·규격 선택 필요 (MT003562, MT003588, MT003600 외)" },
|
||||
{ "키": "MP000080", "원문번호": "낙석방지망 철망", "이름": "철망", "규격": "낙석방지망용", "단위": "㎡", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": null, "고르기": null, "비고": "자재품목 후보 6줄 — 지역·규격 선택 필요 (MT006697, MT007164, MT007165 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000081", "원문번호": "결속선", "이름": "결속선", "규격": "", "단위": "m", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": null, "고르기": {"구분": "철근·강재", "상세구분": "철선", "대표": "MT000194"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT007332)" },
|
||||
{ "키": "MP000082", "원문번호": "에폭시", "이름": "에폭시", "규격": "", "단위": "kg", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": null, "고르기": null, "비고": "포켓식만 · 자재품목 후보 4줄 — 지역·규격 선택 필요 (MT007705, MT007706, MT007931 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000082", "원문번호": "에폭시", "이름": "에폭시", "규격": "", "단위": "kg", "요구절": ["건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"], "연결": "MT007705", "고르기": null, "비고": "PLAN 7-4b: 후보 4줄(주입용 습식·건식·씰링용) 가운데 낙석방지망 앵커 주입에 흔한 주입용 습식으로 이음(사용자 확정 — 값 없어도 넘어감)" },
|
||||
{ "키": "MP000083", "원문번호": "에폭시 신구콘크리트 접착제", "이름": "Epoxy 신구-콘크리트 접착제", "규격": "", "단위": "kg", "요구절": ["건설품셈 공통 6-1-5"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000084", "원문번호": "에폭시 콘크리트고무 접착제", "이름": "Epoxy-콘크리트 고무 접착제", "규격": "", "단위": "kg", "요구절": ["건설품셈 공통 6-1-5"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000085", "원문번호": "폼타이 9.5㎜", "이름": "폼타이(Form Tie)", "규격": "9.5㎜", "단위": "본", "요구절": ["건설품셈 공통 6-3-1 주④"], "연결": null, "고르기": null, "비고": "폼타이 값은 「조」 — 본 환산 안 함 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
@@ -102,14 +102,14 @@
|
||||
{ "키": "MP000091", "원문번호": "합성수지 원형맨홀거푸집 ø1200", "이름": "합성수지(P.E) 원형 맨홀 거푸집", "규격": "ø1200", "단위": "조", "요구절": ["건설품셈 공통 6-3-5 주④"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000092", "원문번호": "합성수지 원형맨홀거푸집 ø1500", "이름": "합성수지(P.E) 원형 맨홀 거푸집", "규격": "ø1500", "단위": "조", "요구절": ["건설품셈 공통 6-3-5 주④"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000093", "원문번호": "합성수지 원형맨홀거푸집 ø1800", "이름": "합성수지(P.E) 원형 맨홀 거푸집", "규격": "ø1800", "단위": "조", "요구절": ["건설품셈 공통 6-3-5 주④"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000094", "원문번호": "쉬즈관", "이름": "쉬즈관", "규격": "", "단위": "m", "요구절": ["건설품셈 공통 6-4-1 주④", "건설품셈 공통 6-4-2 주④"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000095", "원문번호": "조립식 가설건축물 BASECHANNEL", "이름": "BASECHANNEL", "규격": "두께 2.0㎜ 이상", "단위": "m", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000096", "원문번호": "조립식 가설건축물 TOPCHANNEL", "이름": "TOPCHANNEL", "규격": "두께 2.0㎜ 이상", "단위": "m", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000094", "원문번호": "쉬즈관", "이름": "쉬즈관", "규격": "", "단위": "m", "요구절": ["건설품셈 공통 6-4-1 주④", "건설품셈 공통 6-4-2 주④"], "연결": "MT030713", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목 새 줄(MT030713)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000095", "원문번호": "조립식 가설건축물 BASECHANNEL", "이름": "BASECHANNEL", "규격": "두께 2.0㎜ 이상", "단위": "m", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": "MT030612", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030612)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000096", "원문번호": "조립식 가설건축물 TOPCHANNEL", "이름": "TOPCHANNEL", "규격": "두께 2.0㎜ 이상", "단위": "m", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": "MT030613", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030613)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000097", "원문번호": "조립식 가설건축물 외부PANEL(벽)", "이름": "외부PANEL(벽)", "규격": "1,200×2,400㎜", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000098", "원문번호": "조립식 가설건축물 외부PANEL (창문)", "이름": "외부PANEL (창문)", "규격": "1,200×2,400㎜", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000099", "원문번호": "조립식 가설건축물 외부PANEL (철재문)", "이름": "외부PANEL (철재문)", "규격": "1,200×2,400㎜", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000100", "원문번호": "조립식 가설건축물 내부PANEL(벽)", "이름": "내부PANEL(벽)", "규격": "1,200×2,400㎜", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000101", "원문번호": "조립식 가설건축물 내부PANEL (목재문)", "이름": "내부PANEL (목재문)", "규격": "1,200×2,400㎜", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000101", "원문번호": "조립식 가설건축물 내부PANEL (목재문)", "이름": "내부PANEL (목재문)", "규격": "1,200×2,400㎜", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": "MT030614", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030614)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000102", "원문번호": "조립식 가설건축물 PANEL JOINT(AL-BAR)", "이름": "PANEL JOINT(AL-BAR)", "규격": "L=2,400㎜", "단위": "조", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000103", "원문번호": "조립식 가설건축물 CANOPY(출입구채양)", "이름": "CANOPY(출입구채양)", "규격": "600×1,200㎜", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000104", "원문번호": "조립식 가설건축물 박공PANEL", "이름": "박공PANEL", "규격": "", "단위": "매", "요구절": ["건설품셈 공통 2-2-3 주자재"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
@@ -121,7 +121,7 @@
|
||||
{ "키": "MP000110", "원문번호": "콘테이너형 가설건축물 3.0x3.0m", "이름": "콘테이너형 가설건축물", "규격": "3.0x3.0m", "단위": "개", "요구절": ["건설품셈 공통 2-2-3", "건설품셈 공통 2-3-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000111", "원문번호": "콘테이너형 가설건축물 3.0x6.0m", "이름": "콘테이너형 가설건축물", "규격": "3.0x6.0m", "단위": "개", "요구절": ["건설품셈 공통 2-2-3", "건설품셈 공통 2-3-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000112", "원문번호": "콘테이너형 가설건축물 3.0x9.0m", "이름": "콘테이너형 가설건축물", "규격": "3.0x9.0m", "단위": "개", "요구절": ["건설품셈 공통 2-2-3", "건설품셈 공통 2-3-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000113", "원문번호": "축중계", "이름": "축중계(이동식)", "규격": "", "단위": "대", "요구절": ["건설품셈 공통 2-2-6"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000113", "원문번호": "축중계", "이름": "축중계(이동식)", "규격": "", "단위": "대", "요구절": ["건설품셈 공통 2-2-6"], "연결": "MT030615", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030615)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000114", "원문번호": "조립말비계 가새", "이름": "조립말비계 가새", "규격": "L1518-2개", "단위": "조", "요구절": ["건설품셈 공통 2-7-6 재료량"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000115", "원문번호": "조립말비계 수평띠장", "이름": "조립말비계 수평띠장", "규격": "L1829", "단위": "개", "요구절": ["건설품셈 공통 2-7-6 재료량"], "연결": null, "고르기": {"구분": "거푸집·가설재", "상세구분": "동바리·비계"} },
|
||||
{ "키": "MP000116", "원문번호": "조립말비계 손잡이기둥", "이름": "조립말비계 손잡이기둥", "규격": "", "단위": "개", "요구절": ["건설품셈 공통 2-7-6 재료량"], "연결": null, "고르기": {"구분": "거푸집·가설재", "상세구분": "동바리·비계"} },
|
||||
@@ -137,28 +137,28 @@
|
||||
{ "키": "MP000126", "원문번호": "플라잉넷 사다리", "이름": "사다리(플라잉넷)", "규격": "폭 30㎝×길이 3m 기준", "단위": "m", "요구절": ["건설품셈 공통 2-8-2 재료량"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000127", "원문번호": "철골 안전망 보강재", "이름": "보강재(철골 안전망)", "규격": "", "단위": "m", "요구절": ["건설품셈 공통 2-8-7 재료량"], "연결": null, "고르기": {"구분": "안전시설", "상세구분": "낙석방지·휀스"} },
|
||||
{ "키": "MP000128", "원문번호": "보호망", "이름": "보호망", "규격": "", "단위": "㎡", "요구절": ["건설품셈 공통 2-8-8 재료량", "건설품셈 공통 2-8-9 재료량"], "연결": null, "고르기": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유"} },
|
||||
{ "키": "MP000129", "원문번호": "보호막", "이름": "보호막", "규격": "", "단위": "㎡", "요구절": ["건설품셈 공통 2-10-1 재료량"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000129", "원문번호": "보호막", "이름": "보호막", "규격": "", "단위": "㎡", "요구절": ["건설품셈 공통 2-10-1 재료량"], "연결": "MT030616", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030616)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000130", "원문번호": "방진망", "이름": "방진망", "규격": "", "단위": "㎡", "요구절": ["건설품셈 공통 2-10-2 재료량"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000131", "원문번호": "풀", "이름": "풀(보양지)", "규격": "", "단위": "kg", "요구절": ["건설품셈 공통 2-11-1 재료량", "건설품셈 건축 5-3-7"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT008075"} },
|
||||
{ "키": "MP000132", "원문번호": "토목섬유 매트", "이름": "매트(합성수지 토목섬유)", "규격": "", "단위": "㎡", "요구절": ["건설품셈 공통 5-2-1 매트고정 재료량"], "연결": null, "고르기": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유"}, "비고": "매트 종류 갈림 — 원문은 재질만" },
|
||||
{ "키": "MP000133", "원문번호": "PP로프 9㎜", "이름": "P.P로프", "규격": "9㎜", "단위": "m", "요구절": ["건설품셈 공통 5-2-1 매트고정 재료량"], "연결": null, "고르기": {"구분": "볼트·앵커·철물", "상세구분": "와이어로프·클램프", "규격": "9mm"}, "비고": "자재품목 후보 6줄 — 지역·규격 선택 필요 (MT007584, MT007585, MT007586 외)" },
|
||||
{ "키": "MP000134", "원문번호": "모래주머니", "이름": "모래주머니", "규격": "", "단위": "개", "요구절": ["건설품셈 공통 5-2-1 매트고정 재료량"], "연결": null, "고르기": null, "비고": "자재품목에 같은 품명 없음 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000134", "원문번호": "모래주머니", "이름": "모래주머니", "규격": "", "단위": "개", "요구절": ["건설품셈 공통 5-2-1 매트고정 재료량"], "연결": "MT030617", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030617)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000135", "원문번호": "철근 19㎜", "이름": "철근", "규격": "19㎜", "단위": "m", "요구절": ["건설품셈 공통 5-2-1 매트고정 재료량"], "연결": null, "고르기": null, "비고": "철근 값은 Ton — m 환산 안 함 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000136", "원문번호": "드레인 보드", "이름": "드레인 보드(연직배수재)", "규격": "", "단위": "m", "요구절": ["건설품셈 공통 5-2-3 주②"], "연결": null, "고르기": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "대표": "MT006388"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT006388)" },
|
||||
{ "키": "MP000137", "원문번호": "지오콤포지트", "이름": "지오콤포지트", "규격": "6.0㎜", "단위": "㎡", "요구절": ["건설품셈 공통 5-4-1 재료량"], "연결": null, "고르기": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유"} },
|
||||
{ "키": "MP000138", "원문번호": "벤토나이트매트", "이름": "벤토나이트매트", "규격": "6.0㎜", "단위": "㎡", "요구절": ["건설품셈 공통 5-4-1 재료량"], "연결": null, "고르기": null, "비고": "S·LS·K 갈림 · 값은 6.5㎜ · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000139", "원문번호": "HDPE 시트", "이름": "HDPE 시트", "규격": "2∼2.5㎜", "단위": "㎡", "요구절": ["건설품셈 공통 5-4-1 재료량"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000139", "원문번호": "HDPE 시트", "이름": "HDPE 시트", "규격": "2∼2.5㎜", "단위": "㎡", "요구절": ["건설품셈 공통 5-4-1 재료량"], "연결": "MT030618", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030618)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000140", "원문번호": "아세틸렌(ℓ)", "이름": "아세틸렌", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 공통 6-2-5"], "연결": "MT003164", "고르기": null, "비고": "연결: 아세틸렌 ℓ 줄 하나" },
|
||||
{ "키": "MP000141", "원문번호": "노면파쇄기 팁(날)", "이름": "팁(날)", "규격": "노면파쇄기 절삭용", "단위": "개", "요구절": ["건설품셈 유지관리 2-1-3 주④", "건설품셈 유지관리 2-1-4 주④", "건설품셈 유지관리 2-1-5 주②"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스", "대표": "MT007928"} },
|
||||
{ "키": "MP000142", "원문번호": "프로판가스", "이름": "프로판가스", "규격": "", "단위": "kg", "요구절": ["건설품셈 유지관리 2-1-15 4 자재수량"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003175)" },
|
||||
{ "키": "MP000143", "원문번호": "서비스볼트", "이름": "서비스볼트", "규격": "", "단위": "본", "요구절": ["건설품셈 건축 1-1-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000144", "원문번호": "보조강재", "이름": "보조강재", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-1-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000144", "원문번호": "보조강재", "이름": "보조강재", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-1-2"], "연결": "MT030619", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030619)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000145", "원문번호": "CO_2 와이어", "이름": "CO_2 와이어", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-1-4", "건설품셈 건축 1-2-5"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"} },
|
||||
{ "키": "MP000146", "원문번호": "탄산가스", "이름": "탄산가스", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-1-4", "건설품셈 건축 1-2-5"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"}, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT003173, MT003174)" },
|
||||
{ "키": "MP000147", "원문번호": "잠호용접와이어", "이름": "잠호용접와이어", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-1-4"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"} },
|
||||
{ "키": "MP000148", "원문번호": "FLUX", "이름": "FLUX", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-1-4"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000148", "원문번호": "FLUX", "이름": "FLUX", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-1-4"], "연결": "MT030620", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030620)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000149", "원문번호": "보통볼트 가조임", "이름": "보통볼트", "규격": "가조임", "단위": "본", "요구절": ["건설품셈 건축 1-2-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000150", "원문번호": "질석", "이름": "질석", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-4-3"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000150", "원문번호": "질석", "이름": "질석", "규격": "", "단위": "㎏", "요구절": ["건설품셈 건축 1-4-3"], "연결": "MT030621", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030621)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000151", "원문번호": "시멘트벽돌 19×9×5.7㎝", "이름": "시멘트벽돌", "규격": "19×9×5.7㎝", "단위": "매", "요구절": ["건설품셈 건축 2-1-1"], "연결": null, "고르기": {"구분": "콘크리트제품", "상세구분": "경계석·블록", "대표": "MT005769"}, "비고": "자재품목 후보 17줄 — 지역·규격 선택 필요 (MT005760, MT005761, MT005762 외)" },
|
||||
{ "키": "MP000152", "원문번호": "모르타르 1:3", "이름": "모르타르", "규격": "1:3", "단위": "㎥", "요구절": ["건설품셈 건축 2-1-1", "건설품셈 건축 2-1-2", "건설품셈 건축 2-2-1", "건설품셈 건축 2-2-2", "건설품셈 건축 3-2-1"], "연결": null, "고르기": {"구분": "시멘트·골재", "상세구분": "모르타르", "규격": "1:3"}, "비고": "자재품목 후보 11줄 — 지역·규격 선택 필요 (MT000287, MT000292, MT000297 외)" },
|
||||
{ "키": "MP000153", "원문번호": "치장벽돌 19×9×5.7㎝", "이름": "치장벽돌", "규격": "19×9×5.7㎝", "단위": "매", "요구절": ["건설품셈 건축 2-1-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
@@ -177,15 +177,15 @@
|
||||
{ "키": "MP000166", "원문번호": "중밀도섬유판 걸레받이", "이름": "중밀도섬유판 걸레받이", "규격": "", "단위": "m", "요구절": ["건설품셈 건축 5-3-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000167", "원문번호": "접착제 걸레받이용", "이름": "접착제", "규격": "걸레받이용", "단위": "㎏", "요구절": ["건설품셈 건축 5-3-5"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "자재품목 후보 15줄 — 지역·규격 선택 필요 (MT003315, MT003320, MT003363 외)" },
|
||||
{ "키": "MP000168", "원문번호": "초배지", "이름": "초배지", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-3-7"], "연결": null, "고르기": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "대표": "MT008074"}, "비고": null },
|
||||
{ "키": "MP000169", "원문번호": "정배지", "이름": "정배지", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-3-7"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000169", "원문번호": "정배지", "이름": "정배지", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-3-7"], "연결": "MT030622", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030622)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000170", "원문번호": "단열재", "이름": "단열재", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-4-1", "건설품셈 건축 5-4-2", "건설품셈 건축 5-4-3", "건설품셈 건축 5-4-4", "건설품셈 건축 5-4-6", "건설품셈 건축 5-4-7"], "연결": null, "고르기": {"구분": "단열·보온", "상세구분": "단열재"}, "비고": "자재품목 후보 66줄 — 지역·규격 선택 필요 (MT007760, MT007761, MT007762 외)" },
|
||||
{ "키": "MP000171", "원문번호": "접착제 단열재용", "이름": "접착제", "규격": "단열재용", "단위": "㎏", "요구절": ["건설품셈 건축 5-4-1", "건설품셈 건축 5-4-2", "건설품셈 건축 5-4-4", "건설품셈 건축 5-4-7"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "자재품목 후보 15줄 — 지역·규격 선택 필요 (MT003315, MT003320, MT003363 외)" },
|
||||
{ "키": "MP000172", "원문번호": "알루미늄핀", "이름": "알루미늄핀", "규격": "", "단위": "개", "요구절": ["건설품셈 건축 5-4-4"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000172", "원문번호": "알루미늄핀", "이름": "알루미늄핀", "규격": "", "단위": "개", "요구절": ["건설품셈 건축 5-4-4"], "연결": "MT030623", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030623)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000173", "원문번호": "방습필름 폭 0.9m", "이름": "방습필름", "규격": "폭 0.9m", "단위": "㎡", "요구절": ["건설품셈 건축 5-4-8"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000174", "원문번호": "단열판", "이름": "단열판", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-4-9"], "연결": null, "고르기": {"구분": "단열·보온", "상세구분": "단열재"} },
|
||||
{ "키": "MP000175", "원문번호": "접착제 외벽단열용", "이름": "접착제", "규격": "외벽단열용", "단위": "㎏", "요구절": ["건설품셈 건축 5-4-9"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화"}, "비고": "자재품목 후보 15줄 — 지역·규격 선택 필요 (MT003315, MT003320, MT003363 외)" },
|
||||
{ "키": "MP000176", "원문번호": "표준보강메시", "이름": "표준보강메시", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-4-9"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000177", "원문번호": "고강도메시", "이름": "고강도메시", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-4-9"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000176", "원문번호": "표준보강메시", "이름": "표준보강메시", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-4-9"], "연결": "MT030624", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030624)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000177", "원문번호": "고강도메시", "이름": "고강도메시", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 5-4-9"], "연결": "MT030625", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030625)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000178", "원문번호": "방수시트", "이름": "방수시트", "규격": "", "단위": "㎡", "요구절": ["건설품셈 건축 6-3-1", "건설품셈 건축 6-3-2", "건설품셈 건축 6-3-3"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "방수·실링"}, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT006814, MT006815)" },
|
||||
{ "키": "MP000179", "원문번호": "벤토나이트방수재 매트", "이름": "벤토나이트방수재", "규격": "매트 1219×4570×6.4㎜", "단위": "㎡", "요구절": ["건설품셈 건축 6-5-3"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "방수·실링"} },
|
||||
{ "키": "MP000180", "원문번호": "벤토나이트방수재 시트", "이름": "벤토나이트방수재", "규격": "시트 1220×6700×4.5㎜", "단위": "㎡", "요구절": ["건설품셈 건축 6-5-3"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "방수·실링"} },
|
||||
@@ -209,29 +209,29 @@
|
||||
{ "키": "MP000198", "원문번호": "앵커 1/2〃", "이름": "앵커", "규격": "1/2〃", "단위": "개", "요구절": ["건설품셈 기계설비 2-2-6"], "연결": null, "고르기": {"구분": "볼트·앵커·철물", "상세구분": "앵커"}, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT002657, MT002688)" },
|
||||
{ "키": "MP000199", "원문번호": "블라인드리벳", "이름": "블라인드리벳", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 2-2-6"], "연결": null, "고르기": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트"} },
|
||||
{ "키": "MP000200", "원문번호": "철물 D22 철근", "이름": "철물", "규격": "D22 철근", "단위": "㎏", "요구절": ["건설품셈 기계설비 2-2-6"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000201", "원문번호": "실리콘(㎏)", "이름": "실리콘", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 2-2-6"], "연결": null, "고르기": null, "비고": "자재품목 실리콘실란트는 ℓ — ㎏ 환산 안 함 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000202", "원문번호": "IV전선 2.0㎜", "이름": "IV전선", "규격": "2.0㎜", "단위": "m", "요구절": ["건설품셈 토목 6-7-5 강관압입추진공 조명시설"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000203", "원문번호": "백열등 100W", "이름": "백열등", "규격": "100W", "단위": "EA", "요구절": ["건설품셈 토목 6-7-5 강관압입추진공 조명시설"], "연결": null, "고르기": {"구분": "전기·통신", "상세구분": "부속·기타", "규격": "100W"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT008751)" },
|
||||
{ "키": "MP000201", "원문번호": "실리콘(㎏)", "이름": "실리콘", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 2-2-6"], "연결": "MT030626", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030626)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000202", "원문번호": "IV전선 2.0㎜", "이름": "IV전선", "규격": "2.0㎜", "단위": "m", "요구절": ["건설품셈 토목 6-7-5 강관압입추진공 조명시설"], "연결": "MT030714", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목은 ㎟ 단면(지름 아님)이라 짝 없어 새 줄(MT030714)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000203", "원문번호": "백열등 100W", "이름": "백열등", "규격": "100W", "단위": "EA", "요구절": ["건설품셈 토목 6-7-5 강관압입추진공 조명시설"], "연결": "MT008751", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 후보 1줄뿐이라 그대로 이음(MT008751)" },
|
||||
{ "키": "MP000204", "원문번호": "일체식 방수시트", "이름": "일체식 방수시트", "규격": "부직포 부착 터널 방수시트", "단위": "㎡", "요구절": ["건설품셈 토목 3-4-1 터널 방수 재료량"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "방수·실링"} },
|
||||
{ "키": "MP000205", "원문번호": "바퀴숫돌 단면용", "이름": "바퀴숫돌", "규격": "단면용 A36m B11호 A150×8×22 KSL 6501", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000206", "원문번호": "바퀴숫돌 측면용", "이름": "바퀴숫돌", "규격": "측면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000207", "원문번호": "바퀴숫돌 평면용", "이름": "바퀴숫돌", "규격": "평면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000208", "원문번호": "바퀴숫돌 최종용", "이름": "바퀴숫돌", "규격": "최종용 A24 QWV 5호 A205×22×22", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000209", "원문번호": "압접가열용 버너", "이름": "버너", "규격": "압접가열용", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT009352) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000210", "원문번호": "압접버너용 노즐", "이름": "노즐", "규격": "압접버너용", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000211", "원문번호": "테르밋용재", "이름": "테르밋용재", "규격": "점화용", "단위": "포", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000212", "원문번호": "테르밋 몰드", "이름": "몰드", "규격": "테르밋 용접용", "단위": "개", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000213", "원문번호": "테르밋 골무", "이름": "골무", "규격": "테르밋 용접용", "단위": "개", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000214", "원문번호": "테르밋 퓨즈", "이름": "퓨즈", "규격": "테르밋 용접용", "단위": "개", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": null, "고르기": null, "비고": "자재품목 후보 5줄 — 지역·규격 선택 필요 (MT009288, MT009289, MT009290 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000215", "원문번호": "강교 용접봉", "이름": "용접봉", "규격": "강교 제작용", "단위": "㎏", "요구절": ["건설품셈 토목 5-1-3 기타재료 소요량"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"}, "비고": "자재품목 후보 12줄 — 지역·규격 선택 필요 (MT003186, MT003187, MT003188 외)" },
|
||||
{ "키": "MP000216", "원문번호": "철구(Shot ball)", "이름": "철구(Shot ball)", "규격": "", "단위": "㎏", "요구절": ["건설품셈 토목 5-2-1 소재 표면처리", "건설품셈 기계설비 9-2-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000205", "원문번호": "바퀴숫돌 단면용", "이름": "바퀴숫돌", "규격": "단면용 A36m B11호 A150×8×22 KSL 6501", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": "MT030715", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목 새 줄(MT030715)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000206", "원문번호": "바퀴숫돌 측면용", "이름": "바퀴숫돌", "규격": "측면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": "MT030716", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목 새 줄(MT030716)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000207", "원문번호": "바퀴숫돌 평면용", "이름": "바퀴숫돌", "규격": "평면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": "MT030717", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목 새 줄(MT030717)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000208", "원문번호": "바퀴숫돌 최종용", "이름": "바퀴숫돌", "규격": "최종용 A24 QWV 5호 A205×22×22", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": "MT030718", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목 새 줄(MT030718)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000209", "원문번호": "압접가열용 버너", "이름": "버너", "규격": "압접가열용", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": "MT030710", "고르기": null, "비고": "PLAN 7-4b: 후보 1줄(개장로용 가스버너, 915만원)은 산업용 화덕이라 다른 물건 — 새 줄(MT030710)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000210", "원문번호": "압접버너용 노즐", "이름": "노즐", "규격": "압접버너용", "단위": "개", "요구절": ["건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)"], "연결": "MT030627", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030627)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000211", "원문번호": "테르밋용재", "이름": "테르밋용재", "규격": "점화용", "단위": "포", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": "MT030628", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030628)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000212", "원문번호": "테르밋 몰드", "이름": "몰드", "규격": "테르밋 용접용", "단위": "개", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": "MT030629", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030629)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000213", "원문번호": "테르밋 골무", "이름": "골무", "규격": "테르밋 용접용", "단위": "개", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": "MT030630", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030630)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000214", "원문번호": "테르밋 퓨즈", "이름": "퓨즈", "규격": "테르밋 용접용", "단위": "개", "요구절": ["건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"], "연결": "MT030711", "고르기": null, "비고": "PLAN 7-4b: 후보 다섯(전선퓨즈·통형퓨즈·고리퓨즈)이 모두 전기용이라 다른 물건 — 새 줄(MT030711)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000215", "원문번호": "강교 용접봉", "이름": "용접봉", "규격": "강교 제작용", "단위": "㎏", "요구절": ["건설품셈 토목 5-1-3 기타재료 소요량"], "연결": "MT003191", "고르기": null, "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 후보 12줄(용접봉 전기·산소·스테인레스 등) 가운데 일반용 전기 용접봉 KS E4311(MT003191)로 이음" },
|
||||
{ "키": "MP000216", "원문번호": "철구(Shot ball)", "이름": "철구(Shot ball)", "규격": "", "단위": "㎏", "요구절": ["건설품셈 토목 5-2-1 소재 표면처리", "건설품셈 기계설비 9-2-1"], "연결": "MT030631", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030631)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000217", "원문번호": "무기질아연말샵프라이머", "이름": "무기질아연말 샵프라이머", "규격": "도막두께 20μm", "단위": "ℓ", "요구절": ["건설품셈 토목 5-2-1 소재 표면처리"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000218", "원문번호": "철편(Grit)", "이름": "철편(Grit)", "규격": "", "단위": "㎏", "요구절": ["건설품셈 토목 5-2-2 제품 표면처리"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000218", "원문번호": "철편(Grit)", "이름": "철편(Grit)", "규격": "", "단위": "㎏", "요구절": ["건설품셈 토목 5-2-2 제품 표면처리"], "연결": "MT030632", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030632)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000219", "원문번호": "규사 함유량80%", "이름": "규사", "규격": "규사함유량 80%", "단위": "㎥", "요구절": ["건설품셈 기계설비 9-2-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000220", "원문번호": "동력 Brush", "이름": "동력 Brush", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 9-2-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000221", "원문번호": "Wire Brush", "이름": "Wire Brush", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 9-2-1", "건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000220", "원문번호": "동력 Brush", "이름": "동력 Brush", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 9-2-1"], "연결": "MT030633", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030633)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000221", "원문번호": "Wire Brush", "이름": "Wire Brush", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 9-2-1", "건설품셈 기계설비 13-11-5"], "연결": "MT030634", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030634)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000222", "원문번호": "스레트실테이프 13㎜", "이름": "스레트실테이프", "규격": "13㎜", "단위": "㎝", "요구절": ["건설품셈 기계설비 11-1-3", "건설품셈 기계설비 11-3-3"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000223", "원문번호": "컴파운드", "이름": "컴파운드", "규격": "", "단위": "g", "요구절": ["건설품셈 기계설비 11-1-3", "건설품셈 기계설비 11-3-3"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000223", "원문번호": "컴파운드", "이름": "컴파운드", "규격": "", "단위": "g", "요구절": ["건설품셈 기계설비 11-1-3", "건설품셈 기계설비 11-3-3"], "연결": "MT030635", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030635)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000224", "원문번호": "싱글코아바렐 보링용", "이름": "싱글코아바렐", "규격": "보링용", "단위": "개", "요구절": ["건설품셈 토목 8-1-2"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT007894, MT007906)" },
|
||||
{ "키": "MP000225", "원문번호": "메탈크라운비트 보링용", "이름": "메탈크라운비트", "규격": "보링용", "단위": "개", "요구절": ["건설품셈 토목 8-1-2", "건설품셈 토목 8-1-3"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "자재품목 후보 3줄 — 지역·규격 선택 필요 (MT007897, MT007910, MT007923)" },
|
||||
{ "키": "MP000226", "원문번호": "쵸핑비트 보링용", "이름": "쵸핑비트", "규격": "보링용", "단위": "개", "요구절": ["건설품셈 토목 8-1-2"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT007898, MT007909)" },
|
||||
@@ -243,14 +243,14 @@
|
||||
{ "키": "MP000232", "원문번호": "메탈리밍쉘 보링용", "이름": "메탈리밍쉘", "규격": "보링용", "단위": "개", "요구절": ["건설품셈 토목 8-1-3"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT007902)" },
|
||||
{ "키": "MP000233", "원문번호": "다이아몬드리밍쉘 보링용", "이름": "다이아몬드리밍쉘", "규격": "보링용", "단위": "개", "요구절": ["건설품셈 토목 8-1-3"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT007905, MT007918)" },
|
||||
{ "키": "MP000234", "원문번호": "코아리프터 보링용", "이름": "코아리프터", "규격": "보링용", "단위": "개", "요구절": ["건설품셈 토목 8-1-3"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"} },
|
||||
{ "키": "MP000235", "원문번호": "슈 표준관입시험용", "이름": "슈", "규격": "표준관입시험용", "단위": "개", "요구절": ["건설품셈 토목 8-2-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000235", "원문번호": "슈 표준관입시험용", "이름": "슈", "규격": "표준관입시험용", "단위": "개", "요구절": ["건설품셈 토목 8-2-1"], "연결": "MT030636", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030636)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000236", "원문번호": "샘플러 표준관입시험용", "이름": "샘플러", "규격": "표준관입시험용", "단위": "개", "요구절": ["건설품셈 토목 8-2-1"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"} },
|
||||
{ "키": "MP000237", "원문번호": "신월튜브 자연시료 채취용", "이름": "신월튜브", "규격": "자연시료 채취용", "단위": "개", "요구절": ["건설품셈 토목 8-2-3"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"} },
|
||||
{ "키": "MP000238", "원문번호": "베인 블레이드 대형 75×150×3㎜", "이름": "베인 블레이드", "규격": "대형 75×150×3㎜", "단위": "개", "요구절": ["건설품셈 토목 8-2-2"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"} },
|
||||
{ "키": "MP000239", "원문번호": "베인 전용로드 ø16×750", "이름": "베인 전용로드", "규격": "ø16×750", "단위": "본", "요구절": ["건설품셈 토목 8-2-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000240", "원문번호": "로드 ø40.5×1m", "이름": "로드", "규격": "ø40.5×1m", "단위": "본", "요구절": ["건설품셈 토목 8-2-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000241", "원문번호": "표준사 평판재하시험용", "이름": "표준사", "규격": "평판재하시험용", "단위": "㎏", "요구절": ["건설품셈 토목 8-2-4"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000242", "원문번호": "단독콘 정재하시험용", "이름": "단독콘", "규격": "정재하시험용", "단위": "개", "요구절": ["건설품셈 토목 8-2-6"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000239", "원문번호": "베인 전용로드 ø16×750", "이름": "베인 전용로드", "규격": "ø16×750", "단위": "본", "요구절": ["건설품셈 토목 8-2-2"], "연결": "MT030637", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030637)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000240", "원문번호": "로드 ø40.5×1m", "이름": "로드", "규격": "ø40.5×1m", "단위": "본", "요구절": ["건설품셈 토목 8-2-2"], "연결": "MT030638", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030638)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000241", "원문번호": "표준사 평판재하시험용", "이름": "표준사", "규격": "평판재하시험용", "단위": "㎏", "요구절": ["건설품셈 토목 8-2-4"], "연결": "MT030639", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030639)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000242", "원문번호": "단독콘 정재하시험용", "이름": "단독콘", "규격": "정재하시험용", "단위": "개", "요구절": ["건설품셈 토목 8-2-6"], "연결": "MT030640", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030640)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000243", "원문번호": "윙비트 대구경 보링용", "이름": "윙비트", "규격": "대구경 보링용", "단위": "개", "요구절": ["건설품셈 토목 8-4-1", "건설품셈 토목 8-4-2"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "자재품목 후보 8줄 — 지역·규격 선택 필요 (MT005696, MT005697, MT005698 외)" },
|
||||
{ "키": "MP000244", "원문번호": "벤토나이트 보링 이수용", "이름": "벤토나이트", "규격": "보링 이수용", "단위": "㎏", "요구절": ["건설품셈 토목 8-4-1", "건설품셈 토목 8-4-2"], "연결": null, "고르기": null, "비고": "자재품목 후보 3줄 — 지역·규격 선택 필요 (MT007622, MT007623, MT007624) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000245", "원문번호": "기포제 대구경 보링용", "이름": "기포제", "규격": "대구경 보링용", "단위": "ℓ", "요구절": ["건설품셈 토목 8-4-2"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "대표": "MT000097"}, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT000097, MT007754)" },
|
||||
@@ -258,119 +258,119 @@
|
||||
{ "키": "MP000247", "원문번호": "버튼비트 대구경 보링용", "이름": "버튼비트", "규격": "대구경 보링용", "단위": "개", "요구절": ["건설품셈 토목 8-4-2"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": "자재품목 후보 5줄 — 지역·규격 선택 필요 (MT005691, MT005692, MT005693 외)" },
|
||||
{ "키": "MP000248", "원문번호": "보온 성형물", "이름": "보온 성형물", "규격": "", "단위": "m", "요구절": ["건설품셈 기계설비 13-3-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000249", "원문번호": "보온용 철선", "이름": "철선", "규격": "", "단위": "m", "요구절": ["건설품셈 기계설비 13-3-1"], "연결": null, "고르기": {"구분": "철근·강재", "상세구분": "철선", "대표": "MT000194"}, "비고": "굵기(#8~#20) 갈림 — 원문 규격 없음" },
|
||||
{ "키": "MP000250", "원문번호": "Lagging Sheet", "이름": "Lagging Sheet", "규격": "", "단위": "㎡", "요구절": ["건설품셈 기계설비 13-3-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000250", "원문번호": "Lagging Sheet", "이름": "Lagging Sheet", "규격": "", "단위": "㎡", "요구절": ["건설품셈 기계설비 13-3-1"], "연결": "MT030641", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030641)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000251", "원문번호": "Sheet Metal Screw", "이름": "Sheet Metal Screw", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-3-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000252", "원문번호": "기계유", "이름": "기름", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-4-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000253", "원문번호": "코크스", "이름": "코크스", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2", "건설품셈 기계설비 13-6-4"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000254", "원문번호": "Sand Paper 각종", "이름": "Sand Paper", "규격": "각종", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000255", "원문번호": "여과기 14\"×14〃", "이름": "여과기", "규격": "14\"×14〃", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000253", "원문번호": "코크스", "이름": "코크스", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2", "건설품셈 기계설비 13-6-4"], "연결": "MT030642", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030642)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000254", "원문번호": "Sand Paper 각종", "이름": "Sand Paper", "규격": "각종", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": "MT030643", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030643)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000255", "원문번호": "여과기 14\"×14〃", "이름": "여과기", "규격": "14\"×14〃", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": "MT030644", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030644)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000256", "원문번호": "걸레 특상품", "이름": "걸레", "규격": "특상품", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000257", "원문번호": "세유 C-3", "이름": "세유", "규격": "C-3", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000258", "원문번호": "Grease", "이름": "Grease", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2", "건설품셈 기계설비 13-10-2", "건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000259", "원문번호": "Machine oil", "이름": "Machine oil", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2", "건설품셈 기계설비 13-10-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000260", "원문번호": "Gasoline", "이름": "Gasoline", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000261", "원문번호": "Galvanized wire #8∼#16", "이름": "Galvanized wire", "규격": "#8∼#16", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000262", "원문번호": "Grinding Wheel 8\"ø×25m/m t", "이름": "Grinding Wheel", "규격": "8\"ø×25m/m t", "단위": "EA", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000257", "원문번호": "세유 C-3", "이름": "세유", "규격": "C-3", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": "MT030645", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030645)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000258", "원문번호": "Grease", "이름": "Grease", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2", "건설품셈 기계설비 13-10-2", "건설품셈 기계설비 13-11-5"], "연결": "MT030646", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030646)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000259", "원문번호": "Machine oil", "이름": "Machine oil", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2", "건설품셈 기계설비 13-10-2"], "연결": "MT030647", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030647)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000260", "원문번호": "Gasoline", "이름": "Gasoline", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": "MT030648", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030648)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000261", "원문번호": "Galvanized wire #8∼#16", "이름": "Galvanized wire", "규격": "#8∼#16", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": "MT030649", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030649)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000262", "원문번호": "Grinding Wheel 8\"ø×25m/m t", "이름": "Grinding Wheel", "규격": "8\"ø×25m/m t", "단위": "EA", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": "MT030650", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030650)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000263", "원문번호": "비닐세트 0.1t×2m", "이름": "비닐세트", "규격": "0.1t×2m", "단위": "m", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "소모품"} },
|
||||
{ "키": "MP000264", "원문번호": "소창직", "이름": "소창직", "규격": "", "단위": "m", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "소모품"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT010153)" },
|
||||
{ "키": "MP000265", "원문번호": "보일유", "이름": "보일유", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000265", "원문번호": "보일유", "이름": "보일유", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-2"], "연결": "MT030651", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030651)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000266", "원문번호": "시너", "이름": "시너", "규격": "", "단위": "ℓ", "요구절": ["산림품셈 12-28", "건설품셈 공통 6-1-5", "건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-16", "건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000267", "원문번호": "광명단", "이름": "광명단", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1", "건설품셈 기계설비 13-6-3", "건설품셈 기계설비 13-6-4", "건설품셈 기계설비 13-6-5", "건설품셈 기계설비 13-6-6", "건설품셈 기계설비 13-10-3"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "도료", "대표": "MT003376"} },
|
||||
{ "키": "MP000268", "원문번호": "조합페인트", "이름": "조합페인트", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-1"], "연결": null, "고르기": null, "비고": "자재품목 후보 12줄 — 지역·규격 선택 필요 (MT003366, MT003367, MT003368 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000269", "원문번호": "세유 0∼3", "이름": "세유", "규격": "0∼3", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000269", "원문번호": "세유 0∼3", "이름": "세유", "규격": "0∼3", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030652", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030652)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000270", "원문번호": "시너 에나멜용", "이름": "시너", "규격": "에나멜용", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000271", "원문번호": "Wire brush 각종 3/8∼1.6\"", "이름": "Wire brush", "규격": "각종 3/8∼1.6\"", "단위": "EA", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000272", "원문번호": "Hack saw blade 12\"", "이름": "Hack saw blade", "규격": "12\"", "단위": "EA", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000273", "원문번호": "Drill 1.6ø∼3.8ø", "이름": "Drill", "규격": "1.6ø∼3.8ø", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000274", "원문번호": "Grinder wheel 8\"ø∼25m/m t", "이름": "Grinder wheel", "규격": "8\"ø∼25m/m t", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000275", "원문번호": "File 각종", "이름": "File", "규격": "각종", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000276", "원문번호": "Oil stone 각종(황 중 세)", "이름": "Oil stone", "규격": "각종(황, 중, 세)", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000271", "원문번호": "Wire brush 각종 3/8∼1.6\"", "이름": "Wire brush", "규격": "각종 3/8∼1.6\"", "단위": "EA", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030653", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030653)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000272", "원문번호": "Hack saw blade 12\"", "이름": "Hack saw blade", "규격": "12\"", "단위": "EA", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030654", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030654)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000273", "원문번호": "Drill 1.6ø∼3.8ø", "이름": "Drill", "규격": "1.6ø∼3.8ø", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030655", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030655)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000274", "원문번호": "Grinder wheel 8\"ø∼25m/m t", "이름": "Grinder wheel", "규격": "8\"ø∼25m/m t", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030656", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030656)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000275", "원문번호": "File 각종", "이름": "File", "규격": "각종", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030657", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030657)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000276", "원문번호": "Oil stone 각종(황 중 세)", "이름": "Oil stone", "규격": "각종(황, 중, 세)", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030658", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030658)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000277", "원문번호": "목탄 6000ℓ", "이름": "목탄", "규격": "6,000ℓ", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT006278"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT006278)" },
|
||||
{ "키": "MP000278", "원문번호": "가스용접봉 2ø", "이름": "가스용접봉", "규격": "2ø", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"} },
|
||||
{ "키": "MP000279", "원문번호": "신주용접봉 각종", "이름": "신주용접봉", "규격": "각종", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"} },
|
||||
{ "키": "MP000280", "원문번호": "Sand Paper", "이름": "Sand Paper", "규격": "", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000281", "원문번호": "광목", "이름": "광목", "규격": "", "단위": "m", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000280", "원문번호": "Sand Paper", "이름": "Sand Paper", "규격": "", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030659", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030659)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000281", "원문번호": "광목", "이름": "광목", "규격": "", "단위": "m", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030660", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030660)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000282", "원문번호": "비닐시트 3m×3m", "이름": "비닐시트", "규격": "3m×3m", "단위": "Sh", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000283", "원문번호": "방청페인트 DR-80", "이름": "방청페인트", "규격": "DR-80", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": {"구분": "도료·방수·접착", "상세구분": "도료", "대표": "MT003378"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003378)" },
|
||||
{ "키": "MP000284", "원문번호": "페인트 노루표", "이름": "페인트", "규격": "노루표", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "자재품목 후보 47줄 — 지역·규격 선택 필요 (MT003366, MT003367, MT003368 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000285", "원문번호": "땜납 50 : 50", "이름": "땜납", "규격": "50 : 50", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "자재품목 후보 2줄 — 지역·규격 선택 필요 (MT001251, MT001252) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000286", "원문번호": "붕사", "이름": "붕사", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000287", "원문번호": "Compound 절연용", "이름": "Compound", "규격": "절연용", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000288", "원문번호": "3-Bond 밀착제 No.2", "이름": "3-Bond", "규격": "밀착제 No.2", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000285", "원문번호": "땜납 50 : 50", "이름": "땜납", "규격": "50 : 50", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT001252", "고르기": null, "비고": "PLAN 7-4b: 봉땜납 후보 둘(Sn10%·Sn30%) — 원문 50:50 과 정확히는 안 맞아 더 가까운 Sn30% 로 이음(사용자 확정 — 값 없어도 넘어감)" },
|
||||
{ "키": "MP000286", "원문번호": "붕사", "이름": "붕사", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030661", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030661)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000287", "원문번호": "Compound 절연용", "이름": "Compound", "규격": "절연용", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030662", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030662)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000288", "원문번호": "3-Bond 밀착제 No.2", "이름": "3-Bond", "규격": "밀착제 No.2", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-2"], "연결": "MT030663", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030663)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000289", "원문번호": "함석 #31×3'×6'", "이름": "함석", "규격": "#31×3'×6'", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-3"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003499) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000290", "원문번호": "Nozzle", "이름": "Nozzle", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-3", "건설품셈 기계설비 13-6-6"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000290", "원문번호": "Nozzle", "이름": "Nozzle", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-3", "건설품셈 기계설비 13-6-6"], "연결": "MT030664", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030664)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000291", "원문번호": "페인트 에나멜", "이름": "페인트", "규격": "에나멜", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-4", "건설품셈 기계설비 13-6-5"], "연결": null, "고르기": null, "비고": "자재품목 후보 47줄 — 지역·규격 선택 필요 (MT003366, MT003367, MT003368 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000292", "원문번호": "함석 #31×3×6", "이름": "함석", "규격": "#31×3×6", "단위": "대", "요구절": ["건설품셈 기계설비 13-6-6"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000293", "원문번호": "세유", "이름": "세유", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-7", "건설품셈 기계설비 13-10-2", "건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000294", "원문번호": "전기용접", "이름": "전기용접", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000295", "원문번호": "탄소봉", "이름": "탄소봉", "규격": "", "단위": "본", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000296", "원문번호": "Grinder 12\"ø", "이름": "Grinder", "규격": "12\"ø", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000297", "원문번호": "돌 65×305", "이름": "돌", "규격": "65×305", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000298", "원문번호": "Film 2회", "이름": "Film", "규격": "2회", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000299", "원문번호": "탄소봉 8ø×350㎜", "이름": "탄소봉", "규격": "8ø×350㎜", "단위": "본", "요구절": ["건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-10"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000293", "원문번호": "세유", "이름": "세유", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-7", "건설품셈 기계설비 13-10-2", "건설품셈 기계설비 13-11-5"], "연결": "MT030665", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030665)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000294", "원문번호": "전기용접", "이름": "전기용접", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": "MT030666", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030666)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000295", "원문번호": "탄소봉", "이름": "탄소봉", "규격": "", "단위": "본", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": "MT030667", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030667)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000296", "원문번호": "Grinder 12\"ø", "이름": "Grinder", "규격": "12\"ø", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": "MT030668", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030668)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000297", "원문번호": "돌 65×305", "이름": "돌", "규격": "65×305", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": "MT030669", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030669)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000298", "원문번호": "Film 2회", "이름": "Film", "규격": "2회", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-8"], "연결": "MT030670", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030670)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000299", "원문번호": "탄소봉 8ø×350㎜", "이름": "탄소봉", "규격": "8ø×350㎜", "단위": "본", "요구절": ["건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-10"], "연결": "MT030671", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030671)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000300", "원문번호": "규사", "이름": "규사", "규격": "", "단위": "㎥", "요구절": ["건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000301", "원문번호": "노즐", "이름": "노즐", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000302", "원문번호": "탈에폭시레신", "이름": "탈에폭시레신", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-9"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000303", "원문번호": "그라인더돌 12\"ø", "이름": "그라인더돌", "규격": "12\"ø", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-10", "건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000304", "원문번호": "Film 65×305", "이름": "Film", "규격": "65×305", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-10"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000305", "원문번호": "Tar epoxy", "이름": "Tar epoxy", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-10"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000306", "원문번호": "마린B/T(선박도로용)", "이름": "마린B/T(선박도로용)", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-10"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000301", "원문번호": "노즐", "이름": "노즐", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": "MT030672", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030672)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000302", "원문번호": "탈에폭시레신", "이름": "탈에폭시레신", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-9"], "연결": "MT030673", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030673)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000303", "원문번호": "그라인더돌 12\"ø", "이름": "그라인더돌", "규격": "12\"ø", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-10", "건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": "MT030674", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030674)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000304", "원문번호": "Film 65×305", "이름": "Film", "규격": "65×305", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-10"], "연결": "MT030675", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030675)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000305", "원문번호": "Tar epoxy", "이름": "Tar epoxy", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-10"], "연결": "MT030676", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030676)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000306", "원문번호": "마린B/T(선박도로용)", "이름": "마린B/T(선박도로용)", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-10"], "연결": "MT030677", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030677)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000307", "원문번호": "함석 #32×3'×6'", "이름": "함석", "규격": "#32×3'×6'", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-13", "건설품셈 기계설비 13-6-17"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003499) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000308", "원문번호": "Zinc primer 15μ", "이름": "Zinc primer", "규격": "15μ", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000309", "원문번호": "Tar Epoxy 125μ", "이름": "Tar Epoxy", "규격": "125μ", "단위": "㎾h", "요구절": ["건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000310", "원문번호": "Tar Epoxy 2회", "이름": "Tar Epoxy", "규격": "2회", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-12"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000308", "원문번호": "Zinc primer 15μ", "이름": "Zinc primer", "규격": "15μ", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": "MT030678", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030678)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000309", "원문번호": "Tar Epoxy 125μ", "이름": "Tar Epoxy", "규격": "125μ", "단위": "㎾h", "요구절": ["건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": "MT030679", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030679)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000310", "원문번호": "Tar Epoxy 2회", "이름": "Tar Epoxy", "규격": "2회", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-12"], "연결": "MT030680", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030680)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000311", "원문번호": "전기용접봉", "이름": "전기용접봉", "규격": "", "단위": "㎾h", "요구절": ["건설품셈 기계설비 13-6-13"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000312", "원문번호": "함석(Template) #32×3'×6'", "이름": "함석(Template)", "규격": "#32×3'×6'", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003499) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000313", "원문번호": "연마석 12\"ø", "이름": "연마석", "규격": "12\"ø", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000314", "원문번호": "drill 1/4\"", "이름": "drill", "규격": "1/4\"", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000315", "원문번호": "drill 11/15\"", "이름": "drill", "규격": "11/15\"", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000314", "원문번호": "drill 1/4\"", "이름": "drill", "규격": "1/4\"", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": "MT030681", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030681)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000315", "원문번호": "drill 11/15\"", "이름": "drill", "규격": "11/15\"", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": "MT030682", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030682)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000316", "원문번호": "Bite", "이름": "Bite", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": null, "고르기": {"구분": "기계·설비", "상세구분": "기계류"}, "비고": null },
|
||||
{ "키": "MP000317", "원문번호": "톱날", "이름": "톱날", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-6-15"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000318", "원문번호": "함석 31×3×6", "이름": "함석", "규격": "31×3×6", "단위": "매", "요구절": ["건설품셈 기계설비 13-6-9"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003499) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000319", "원문번호": "Tar Epoxy 1회도장", "이름": "Tar Epoxy", "규격": "1회도장", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-16"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000319", "원문번호": "Tar Epoxy 1회도장", "이름": "Tar Epoxy", "규격": "1회도장", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-16"], "연결": "MT030683", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030683)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000320", "원문번호": "가루비누", "이름": "가루비누", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-7-22"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000321", "원문번호": "걸레", "이름": "걸레", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-10-2", "건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000322", "원문번호": "페인트 유성", "이름": "페인트", "규격": "유성", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-10-3"], "연결": null, "고르기": null, "비고": "자재품목 후보 47줄 — 지역·규격 선택 필요 (MT003366, MT003367, MT003368 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000323", "원문번호": "용접봉(전기)", "이름": "용접봉(전기)", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"}, "비고": "자재품목 후보 12줄 — 지역·규격 선택 필요 (MT003186, MT003187, MT003188 외)" },
|
||||
{ "키": "MP000324", "원문번호": "용접봉(산소)", "이름": "용접봉(산소)", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"}, "비고": "자재품목 후보 12줄 — 지역·규격 선택 필요 (MT003186, MT003187, MT003188 외)" },
|
||||
{ "키": "MP000325", "원문번호": "M/C OIL", "이름": "M/C OIL", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000326", "원문번호": "Grinder Wheel", "이름": "Grinder Wheel", "규격": "", "단위": "매", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000327", "원문번호": "Oil Stone", "이름": "Oil Stone", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000328", "원문번호": "File", "이름": "File", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000325", "원문번호": "M/C OIL", "이름": "M/C OIL", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030684", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030684)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000326", "원문번호": "Grinder Wheel", "이름": "Grinder Wheel", "규격": "", "단위": "매", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030685", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030685)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000327", "원문번호": "Oil Stone", "이름": "Oil Stone", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030686", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030686)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000328", "원문번호": "File", "이름": "File", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030687", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030687)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000329", "원문번호": "아연도철선", "이름": "아연도철선", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": {"구분": "철근·강재", "상세구분": "철선"}, "비고": "굵기별 갈림 — 원문 규격 없음" },
|
||||
{ "키": "MP000330", "원문번호": "Drill", "이름": "Drill", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000330", "원문번호": "Drill", "이름": "Drill", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030688", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030688)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000331", "원문번호": "사포", "이름": "사포", "규격": "", "단위": "매", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000332", "원문번호": "비닐시드", "이름": "비닐시드", "규격": "", "단위": "㎡", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000333", "원문번호": "용접장갑", "이름": "용접장갑", "규격": "", "단위": "족", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000334", "원문번호": "Compound", "이름": "Compound", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000335", "원문번호": "3-Bond", "이름": "3-Bond", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000336", "원문번호": "Seal Tape", "이름": "Seal Tape", "규격": "", "단위": "통", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000337", "원문번호": "백묵", "이름": "백묵", "규격": "", "단위": "통", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000338", "원문번호": "석필", "이름": "석필", "규격": "", "단위": "통", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000334", "원문번호": "Compound", "이름": "Compound", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030689", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030689)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000335", "원문번호": "3-Bond", "이름": "3-Bond", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030690", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030690)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000336", "원문번호": "Seal Tape", "이름": "Seal Tape", "규격": "", "단위": "통", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030691", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030691)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000337", "원문번호": "백묵", "이름": "백묵", "규격": "", "단위": "통", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030692", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030692)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000338", "원문번호": "석필", "이름": "석필", "규격": "", "단위": "통", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030693", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030693)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000339", "원문번호": "함석", "이름": "함석", "규격": "", "단위": "매", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT003499) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000340", "원문번호": "흑 Welder Glass", "이름": "흑 Welder Glass", "규격": "", "단위": "연", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000341", "원문번호": "백 Welder Glass", "이름": "백 Welder Glass", "규격": "", "단위": "연", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000342", "원문번호": "오스터날", "이름": "오스터날", "규격": "", "단위": "SET", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000343", "원문번호": "탭", "이름": "탭", "규격": "", "단위": "SET", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000344", "원문번호": "다이스", "이름": "다이스", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000345", "원문번호": "정", "이름": "정", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000340", "원문번호": "흑 Welder Glass", "이름": "흑 Welder Glass", "규격": "", "단위": "연", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030694", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030694)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000341", "원문번호": "백 Welder Glass", "이름": "백 Welder Glass", "규격": "", "단위": "연", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030695", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030695)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000342", "원문번호": "오스터날", "이름": "오스터날", "규격": "", "단위": "SET", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030696", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030696)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000343", "원문번호": "탭", "이름": "탭", "규격": "", "단위": "SET", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030697", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030697)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000344", "원문번호": "다이스", "이름": "다이스", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030698", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030698)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000345", "원문번호": "정", "이름": "정", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030699", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030699)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000346", "원문번호": "용접면", "이름": "용접면", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000347", "원문번호": "용접홀다", "이름": "용접홀다", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000348", "원문번호": "용접앞치마", "이름": "용접앞치마", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000349", "원문번호": "Center Punch", "이름": "Center Punch", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000349", "원문번호": "Center Punch", "이름": "Center Punch", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030700", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030700)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000350", "원문번호": "써비스볼트", "이름": "써비스볼트", "규격": "", "단위": "본", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000351", "원문번호": "대강", "이름": "대강", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000352", "원문번호": "유지", "이름": "유지", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000353", "원문번호": "Washer", "이름": "Washer", "규격": "", "단위": "매", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000351", "원문번호": "대강", "이름": "대강", "규격": "", "단위": "㎏", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030701", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030701)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000352", "원문번호": "유지", "이름": "유지", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030702", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030702)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000353", "원문번호": "Washer", "이름": "Washer", "규격": "", "단위": "매", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": "MT030703", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030703)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000354", "원문번호": "페인트(표기용)", "이름": "페인트(표기용)", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": null, "비고": "자재품목 후보 47줄 — 지역·규격 선택 필요 (MT003366, MT003367, MT003368 외) · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000355", "원문번호": "페인트붓(표기용)", "이름": "페인트붓(표기용)", "규격": "", "단위": "개", "요구절": ["건설품셈 기계설비 13-11-5"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT008178"}, "비고": "자재품목 후보 1줄 — 지역·규격 선택 필요 (MT008178)" },
|
||||
{ "키": "MP000356", "원문번호": "벤토나이트알갱이", "이름": "벤토나이트알갱이", "규격": "", "단위": "kg", "요구절": ["건설품셈 건축 6-5-3"], "연결": "MT007749", "고르기": null, "비고": "연결: 자재품목 한 줄" },
|
||||
{ "키": "MP000357", "원문번호": "카트리지 화약", "이름": "카트리지", "규격": "화약", "단위": "개", "요구절": ["건설품셈 건축 6-5-3"], "연결": "MT007751", "고르기": null, "비고": "연결: 자재품목 한 줄" },
|
||||
{ "키": "MP000358", "원문번호": "전력", "이름": "전력", "규격": "", "단위": "㎾h", "요구절": ["건설품셈 기계설비 13-2-4", "건설품셈 기계설비 13-6-3", "건설품셈 기계설비 13-6-6"], "연결": {"이름": "전력량요금", "계약종별": "입력"}, "고르기": null, "비고": "연결: 유가전력 전력 줄 · 계약종별은 로직 입력 「전력 계약종별」 — 품셈·계약예규에 계약종별 규정 없음(전력비는 실비 계상) · 시험 계산은 그 계약종별 전력량요금 가운데 낮은 값" },
|
||||
{ "키": "MP000359", "원문번호": "중유", "이름": "중유", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": null, "고르기": null, "비고": "중유는 받지 않기로 함 — 미연결 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" },
|
||||
{ "키": "MP000359", "원문번호": "중유", "이름": "중유", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-9", "건설품셈 기계설비 13-6-11", "건설품셈 기계설비 13-6-17"], "연결": "MT030704", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030704)로 이음 · 값 미확보" },
|
||||
{ "키": "MP000360", "원문번호": "징크프라이머", "이름": "징크프라이머", "규격": "", "단위": "ℓ", "요구절": ["건설품셈 기계설비 13-6-9"], "연결": "MT003383", "고르기": null, "비고": "연결: 자재품목 한 줄" },
|
||||
{ "키": "MP000361", "원문번호": "동 및 동합금용 용접봉 BCUP3", "이름": "동 및 동합금용 용접봉", "규격": "BCUP3", "단위": "㎏", "요구절": ["건설품셈 기계설비 1-2-1"], "연결": null, "고르기": {"구분": "잡재료", "상세구분": "용접·가스"}, "비고": "자재품목에 같은 품명 없음" },
|
||||
{ "키": "MP000362", "원문번호": "폴리에틸렌필름 0.04㎜", "이름": "폴리에틸렌필름", "규격": "t=0.04㎜", "단위": "㎡", "요구절": ["건설품셈 건축 6-5-3"], "연결": null, "고르기": null, "비고": "자재품목 PE 필름은 0.03·0.05㎜ — 0.04㎜ 없음 · 고르기 없음(자재품목 그 묶음에 같은 단위·이름 줄이 없음)" },
|
||||
{ "키": "MP000363", "원문번호": "아스팔트싱글 336×1,000×3㎜", "이름": "아스팔트싱글", "규격": "336×1,000×3㎜", "단위": "매", "요구절": ["건설품셈 건축 7-1-5"], "연결": null, "고르기": null, "비고": "자재품목 슁글은 ㎡ — 매 환산 안 함 · 고르기 없음(자재품목 묶음에 짝이 없음 — 관리자가 화면에서 이음)" }
|
||||
{ "키": "MP000363", "원문번호": "아스팔트싱글 336×1,000×3㎜", "이름": "아스팔트싱글", "규격": "336×1,000×3㎜", "단위": "매", "요구절": ["건설품셈 건축 7-1-5"], "연결": "MT030705", "고르기": null, "비고": "PLAN 7-4b: 자재품목 새 줄(MT030705)로 이음 · 값 미확보" }
|
||||
]
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`scripts/build_자재품목_분류.py` 가 만든 표 — 손으로 고치지 않음.
|
||||
|
||||
- 구분 24 · 상세구분 100 · 미분류 25 줄 (전체 30702 줄)
|
||||
- 구분 24 · 상세구분 100 · 미분류 25 줄 (전체 30711 줄)
|
||||
|
||||
## 규칙
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
|
||||
## 구분별 상세구분 (줄 수)
|
||||
|
||||
### 관·이음관 (7151)
|
||||
### 관·이음관 (7152)
|
||||
|
||||
PE관 2907 · 이음쇠·부속 1003 · 주철관 828 · 강관 705 · PVC관 461 · 파형강관 417 · 유리섬유·FRP관 398 · 흄관 222 · 동관·스텐관 133 · 단열이중관 77
|
||||
PE관 2907 · 이음쇠·부속 1003 · 주철관 828 · 강관 706 · PVC관 461 · 파형강관 417 · 유리섬유·FRP관 398 · 흄관 222 · 동관·스텐관 133 · 단열이중관 77
|
||||
|
||||
### 식생·종자 (6128)
|
||||
|
||||
@@ -42,9 +42,9 @@ PE관 2907 · 이음쇠·부속 1003 · 주철관 828 · 강관 705 · PVC관 46
|
||||
|
||||
볼트·너트 526 · 와이어로프·클램프 208 · 앵커 189 · 못 41 · 철근커플러 38
|
||||
|
||||
### 전기·통신 (900)
|
||||
### 전기·통신 (902)
|
||||
|
||||
케이블·전선 319 · 판넬·차단기 163 · 전선관·트레이 139 · 조명·전등 133 · 제어·계측기기 89 · 부속·기타 57
|
||||
케이블·전선 320 · 판넬·차단기 164 · 전선관·트레이 139 · 조명·전등 133 · 제어·계측기기 89 · 부속·기타 57
|
||||
|
||||
### 밸브·수도자재 (761)
|
||||
|
||||
@@ -58,13 +58,13 @@ PE관 2907 · 이음쇠·부속 1003 · 주철관 828 · 강관 705 · PVC관 46
|
||||
|
||||
화물운임 552 · 시험·검사 62 · 폐기물 61 · 상하차 2
|
||||
|
||||
### 기계·설비 (626)
|
||||
### 기계·설비 (627)
|
||||
|
||||
기계류 267 · 보일러·공조 172 · 놀이·운동·시설물 109 · 측정·시험기기 68 · 소방·가스 10
|
||||
기계류 267 · 보일러·공조 173 · 놀이·운동·시설물 109 · 측정·시험기기 68 · 소방·가스 10
|
||||
|
||||
### 맨홀·수로·그레이팅 (602)
|
||||
### 맨홀·수로·그레이팅 (603)
|
||||
|
||||
수로관 283 · 그레이팅 169 · 맨홀 150
|
||||
수로관 283 · 그레이팅 169 · 맨홀 151
|
||||
|
||||
### 시멘트·골재 (588)
|
||||
|
||||
@@ -90,9 +90,9 @@ PE관 2907 · 이음쇠·부속 1003 · 주철관 828 · 강관 705 · PVC관 46
|
||||
|
||||
각재·판재 168 · 목재덱 161 · 합판 78 · 판재 24
|
||||
|
||||
### 잡재료 (313)
|
||||
### 잡재료 (317)
|
||||
|
||||
소모품 231 · 용접·가스 36 · 고철·기타금속 31 · 화약 13 · 용수 2
|
||||
소모품 235 · 용접·가스 36 · 고철·기타금속 31 · 화약 13 · 용수 2
|
||||
|
||||
### 단열·보온 (284)
|
||||
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
# B05·B06 이 old/·ref 파일 여섯을 읽는 진짜 까닭
|
||||
|
||||
읽기 전용 분석 — 코드·데이터 하나도 안 고침.
|
||||
|
||||
`ref/_분석_안쓰는마스터.md`(sub1)가 「B05·B06 이 old/·ref 파일 여섯을 읽음」이라 적은 것을 한 줄 한 줄
|
||||
따라가 다시 봄. **결론부터 — 여섯 가운데 실제로 B05·B06 화면을 돌리는 건 둘뿐**이고, 나머지 넷은
|
||||
B08·B09(끊긴 옛 코드)만 쓰는 것을 sub1 이 잘못 묶은 것.
|
||||
|
||||
## 파일 하나씩
|
||||
|
||||
### ① `old/2_공종_건설_마스터_2026-01-01.json` · `old/2_공종_산림_마스터_2026-01-01.json`
|
||||
|
||||
- **읽는 코드** — `common_util/common_util_work_item_key.py` 41째 줄(`MASTER_DIR.glob("2_공종_*_마스터_*.json")`).
|
||||
이 모듈을 실제로 부르는 곳은 `old_code/B08_Quantity/B08_Quantity_Engine_Handoff.py` 254째 줄과
|
||||
`old_code/B09_Estimation/B09_Estimation_BillOfQuantities_Input.py` 뿐 — **B05·B06 코드 어디에도
|
||||
`common_util_work_item_key` 를 부르는 줄이 없음**(직접 검색해 확인).
|
||||
- **B05·B06 과 닿는 유일한 자리** — `common_util_node_bundle.py` 가 `resources/master_data/old/` 의
|
||||
`*.json` **수정 시각**을 통째로 지켜봄(내용은 안 읽음·「낡음」 판정만). 이 파일도 그 34개 가운데
|
||||
하나라 시각은 보이지만, **화면에 쓰이는 값은 하나도 없음**.
|
||||
- **언제 들어왔나** — 파일 자체는 2026-09-17 커밋 `642a5be9`(건설)·`8f3a01cd`(work_item_key.py) —
|
||||
제목 그대로 **B08 인계 출구·B09 인계 입구 두 곳에서만 쓰려고 만든 것**(B08·B09 작업 중 생김, 사용자 말과 일치).
|
||||
2026-09-19 `0e6412fe` 로 `master_data/` 첫 층에서 `old/` 로 옮겨짐(B05·B06 과는 무관한 정리).
|
||||
- **안 읽으면** — B05·B06 은 **아무 일도 없음**(원래 안 읽으므로). old_code 의 B08·B09 인계 계산이
|
||||
다시 붙을 때만 문제(지금은 라우터가 끊겨 안 돌아감).
|
||||
- **갈래 — ㉮ 그냥 걷어도 됨**(B05·B06 기준).
|
||||
|
||||
### ② `old/2_공종_산림건설_연결_2026-01-01.json`
|
||||
|
||||
- **읽는 코드** — `common_util/common_util_work_item_link.py` 42째 줄(`FOLDER.glob("2_공종_산림건설_연결_*.json")`).
|
||||
부르는 곳은 `old_code/B09_Estimation/B09_Estimation_BillOfQuantities_Input.py`·
|
||||
`B09_Estimation_BillOfQuantities.py` 뿐 — 역시 B05·B06 은 안 부름.
|
||||
- **언제** — 2026-09-17 `06e1f4ef` — 「산림·건설 어느 품을 쓸지 표가 정함」, B09 인계 규칙(사용자 말과 일치).
|
||||
- **안 읽으면** — B05·B06 무관. old_code B09 재연결 때만 문제.
|
||||
- **갈래 — ㉮ 그냥 걷어도 됨**(B05·B06 기준).
|
||||
|
||||
### ③ `old/3_품셈_산림_돌쌓기경사_13-4-4_2026-01-01.json`
|
||||
|
||||
- **읽는 코드** — `B06_Section_UI_Cross_Lean.ts` 13째 줄이 이 파일을 바로 import 해 `leanOf()` 함수를
|
||||
만듦(16~18째 줄). 그 함수를 `B06_Section_UI_Cross_Culvert_Geom.ts`(178·629째 줄)와
|
||||
`B06_Section_UI_Cross_Revetment.ts`(201·291째 줄)가 불러 씀.
|
||||
- **화면에 쓰는 자리** — 횡단도(단면도)에서 **관 유입·유출부·독립 기슭막이·다단 벽**을 그릴 때 벽
|
||||
전면의 기울기(1:n)를 정함 — 품셈 13-4-4 [주]⑪ 「돌쌓기 표준경사」 표(직고 4단계 × 성토/절토 ×
|
||||
메쌓기/찰쌓기 = 16칸). **사용자에게 보이는 것은 횡단도 벽의 실제 기울어진 모양 그 자체**임.
|
||||
- **언제 들어왔나(중요)** — 기능은 2026-09-14 커밋 `0e609e69` 로 처음 생겼는데, 그때 import 경로는
|
||||
`resources/data_masonry/masonry_slope_2026-01-01.json` — **B08·B09 와 무관한 이 기능만의 전용 폴더**였음.
|
||||
2026-09-19 커밋 `ebd148c4`(제목 「옛 자료 폴더 이동 뒤 서버 불러오기 복구」)가 `data_masonry/` 를
|
||||
통째로 `master_data/old/` 로 옮기는 정리를 하면서 import 경로만 기계적으로 따라 고침 —
|
||||
**B08·B09 를 만들며 들어간 게 아니라, B08·B09 정리(사용자 말 그대로) 때 엉뚱하게 같이 쓸려 들어간 것**.
|
||||
- **안 읽으면** — 파일이 없어지면 TS import 가 못 찾아 **번들 빌드 자체가 깨짐**(횡단도를 그리는 화면
|
||||
코드 전체가 안 뜸) — 이 파일이 있는데 표에 맞는 칸이 없을 때만 코드가 「종전 0.3」 으로 조용히
|
||||
후퇴함(주석 확인) — 어느 쪽이든 심각.
|
||||
- **마스터로 갈음되는지** — `계수_산림품셈_13장_구조물.json` 안에 13-4-4 표가 이미 있으나(CF000140)
|
||||
그건 **주④⑤⑥⑦⑨**(줄눈메꿈·물구멍·뒷채움) 표이고, 이 파일이 쓰는 건 **주⑪ 표준경사**(다른 절) —
|
||||
**지금 마스터는 이 표를 안 가지고 있음. 갈음 안 됨.**
|
||||
- **갈래 — ㉰ 걷으면 기능이 없어짐**(화면 자체가 못 뜸). 지킬 파일.
|
||||
- **덤 — 지킴 시험도 같이 쓸려 들어감** — `resources/tester/test_b06_wall_lean_table.py` 가
|
||||
이 표의 최신 판을 대조하는 시험인데, `old_code/B08_Quantity_Engine_UnitQuantity_StoneSpec` 을
|
||||
같이 읽는 바람에(B08 쪽 대조도 겸함) `old_code/resources/tester/` 로 함께 옮겨져 **지금은 안 돌아감**
|
||||
— B06 쪽 지킴이 비어 있음.
|
||||
|
||||
### ④ `ref/공종_자원별칭_실무_2026-01-01.json`
|
||||
|
||||
- **읽는 코드** — `common_util/common_util_aliases.py` 29째 줄.
|
||||
- **부르는 곳** — 전부 `old_code/`(B08_Quantity_Engine_Handoff_Mapping · B09_Estimation_UnitPrice ·
|
||||
ResourceAxis_Join · MachineProductivity 계열) + `resources/tester/test_b09_fuel_kind_vibrator.py` ·
|
||||
`resources/tester/test_b08_root_removal_excavator.py` 둘. **B05·B06 화면 코드는 전혀 안 부름.**
|
||||
- **⚠ 그 시험 둘은 지금 이미 깨져 있음** — 실제로 `pytest --collect-only` 로 돌려 확인:
|
||||
`ModuleNotFoundError: No module named 'B09_Estimation.B09_Estimation_UnitPrice'`(B08 도 같은 증상).
|
||||
B08·B09 가 `old_code/` 로 옮겨간 뒤 이 시험 둘의 import 만 안 고쳐져 지금은 **아예 실행이 안 됨** —
|
||||
sub1 문서의 「시험이 지킴」은 이제 사실이 아님(시험이 죽어서 지키는 게 없음).
|
||||
- **갈래 — ㉮ 그냥 걷어도 됨**(B05·B06 기준). 단 시험 둘은 이 파일과 무관하게 이미 고장 나 있어
|
||||
별도 정리 필요(이 일감 범위 밖 — 한 줄만 남김).
|
||||
|
||||
### ⑤ `ref/수량_사방기슭막이치수_사방기술교본_2026-01-01.json`
|
||||
|
||||
- **읽는 코드** — `B05_Profile_UI_Drainage_Facility_Fields.ts` 12째 줄이 바로 import.
|
||||
256~268째 줄 `sabangBasisLines()` 가 이 표에서 「높이 규칙·계획비탈 표준비·둑마루 두께 기준·
|
||||
뒷채움 조약돌 두께」 네 줄을 뽑아 문장으로 만듦.
|
||||
- **화면에 쓰는 자리** — `createRevetSideGroup()`(270~301째 줄)이 이 문장을 **독립 기슭막이 입력칸
|
||||
바로 밑에 안내문(근거)으로 보여줌** — 계산에 쓰이는 수치가 아니라 **사용자가 값을 넣을 때 보는
|
||||
설명 문구**. `B05_Profile_UI_Drainage_Facility.ts`(본체 폼)가 이 조각을 불러 써서 실제 화면에 붙음.
|
||||
- **언제 들어왔나** — 기능은 2026-09-14 `ad63dd8f`(제목에 `feat(b05,b06,b08)` — B05 화면 근거와
|
||||
B08 사유가 「같은 파일」을 보게 지었다고 명시)로 생겼고, 그때 경로는 `resources/data_masonry/
|
||||
revetment_sabang_2026-01-01.json` — 전용 폴더. 2026-09-19 `ebd148c4`(③과 같은 커밋)가 `master_data/ref/`
|
||||
로 옮기며 경로만 고침. **B05 몫으로 함께 설계된 파일이 정리 때 ref/ 로 쓸려 들어간 것.**
|
||||
- **안 읽으면** — 파일이 없으면 TS import 가 못 찾아 **B05 배수시설 서브폼 빌드가 깨짐**(계곡 통과
|
||||
시설 입력 화면 전체가 못 뜸). 있어도 삭제하면 근거 문구 네 줄이 사라짐 — 계산 값 자체는 안
|
||||
바뀌지만 「왜 이 값을 제안하는지」 사용자가 못 봄.
|
||||
- **마스터로 갈음되는지** — 지금 마스터에 「독립 기슭막이 근거」에 해당하는 표가 없음(품셈이 아니라
|
||||
**사방기술교본**이 원출처라 산림품셈 계수·소요량 파일에 안 실림). 갈음 안 됨.
|
||||
- **갈래 — ㉰ 걷으면 기능이 없어짐**. 지킬 파일.
|
||||
- **덤 — 지킴 시험도 함께 쓸려 들어감** — `resources/tester/test_b05_revetment_sabang_basis.py` 도
|
||||
`old_code/B08_Quantity_Engine_Pipe` 를 같이 읽어(B08 사유 대조 겸함) `old_code/resources/tester/` 로
|
||||
옮겨짐 — 지금은 안 돌아가 B05 쪽 지킴도 비어 있음.
|
||||
|
||||
## 한 줄 요약표
|
||||
|
||||
| 파일 | B05·B06 이 실제로 읽나 | 언제·왜 들어왔나 | 갈래 |
|
||||
|---|---|---|---|
|
||||
| 공종_건설_마스터 · 공종_산림_마스터 | 아니오(old_code 만) | 09-17 B08·B09 인계용으로 만듦 | ㉮ 걷어도 됨 |
|
||||
| 공종_산림건설_연결 | 아니오(old_code 만) | 09-17 B09 인계 규칙 | ㉮ 걷어도 됨 |
|
||||
| 돌쌓기경사_13-4-4(품셈 표준경사) | **예 — B06 횡단도 벽 기울기** | 09-14 전용 폴더에서 만듦 → 09-19 old/ 로 쓸려 옮겨짐 | ㉰ 못 걷음 |
|
||||
| 공종_자원별칭_실무 | 아니오(old_code + 죽은 시험 2개) | — | ㉮ 걷어도 됨 |
|
||||
| 수량_사방기슭막이치수 | **예 — B05 근거 문구** | 09-14 전용 폴더에서 만듦 → 09-19 ref/ 로 쓸려 옮겨짐 | ㉰ 못 걷음 |
|
||||
|
||||
## 걷는 차례 제안
|
||||
|
||||
1. **먼저** — 공종_건설_마스터·공종_산림_마스터·공종_산림건설_연결·공종_자원별칭_실무 넷은 B05·B06 과
|
||||
무관하니 이 넷 때문에 `old/`·`ref/` 를 못 건드릴 이유는 없음(다른 일감의 old/ 정리 그대로 진행 가능).
|
||||
2. **돌쌓기경사·사방기슭막이치수 둘은 자리를 옮김** — `old/`·`ref/`(정리 대상 폴더) 밖에 전용 자리를
|
||||
새로 줌(예: 옛 이름 그대로 `resources/data_masonry/` 되살리기, 또는 `resources/master_data/` 안에
|
||||
「old 아님」이 분명한 이름). 옮길 때 고칠 곳 — TS import 경로 2줄(`B06_Section_UI_Cross_Lean.ts` 13째,
|
||||
`B05_Profile_UI_Drainage_Facility_Fields.ts` 12째) · `common_util_node_bundle.py` 의
|
||||
`SOURCE_DATA_DIRS`(새 폴더도 보게).
|
||||
3. **죽은 지킴 시험 둘을 살림** — `test_b06_wall_lean_table.py`·`test_b05_revetment_sabang_basis.py` 를
|
||||
`old_code/resources/tester/` 에서 `resources/tester/` 로 되돌리고, B08 쪽만 읽는 줄(대조 부분)은
|
||||
빼거나 손봐 **B05·B06 몫만** 다시 돌게 함 — 지금은 이 표가 바뀌어도 아무 시험도 안 잡아 줌.
|
||||
4. 이 순서대로 하면 `old/`·`ref/` 안에 더는 B05·B06 이 읽는 파일이 없어져, 남은 정리(PLAN 7-4·7-5)를
|
||||
B05·B06 걱정 없이 진행할 수 있음.
|
||||
@@ -31,3 +31,12 @@
|
||||
- **지금 당장은 문제 없음** — 산림 쪽 기본 파일명으로 매번 정상 작동, 시험도 그 경로로 통과 중.
|
||||
- **잠재 문제 하나**: `load_basis_missing()`은 파일이 없으면 예외 없이 **빈 딕셔너리로 조용히 넘어감**(516~517행 `if not os.path.exists(path): return {}`). `old/` 를 지우는 날(그게 이 폴더들의 최종 목표) 이 함수를 안 옮기고 그대로 두면 **에러 하나 없이 밑수 검사가 통째로 사라짐** — 10배·100배 틀린 금액이 아무 경고 없이 내역서에 설 수 있음. 걷기 전에 반드시 먼저 옮겨야 할 항목으로 표시해 둠.
|
||||
- 건설 벌(3,164줄)은 이미 아무도 안 읽어 지금 걷어도 즉시 영향 없음 — 다만 건설 견적 기능이 나중에 켜질 때 필요한지는 그때 확인.
|
||||
|
||||
## 고친 뒤 (2026-09-22 PLAN 7-5 ⑤ · 브레인 판정 「새 마스터 JSON 쪽」)
|
||||
|
||||
- 이 문서를 쓴 뒤(일감 34) `B09_Estimation_UnitPrice.py` 자체가 7-3 에서 **`old_code/` 로 통째로 옮겨짐** — 지금은 부르는 살아 있는 자리가 0(다시 짤 때 참고용).
|
||||
- 그래도 데이터는 최상위 마스터로 옮김 — `resources/master_data/기준수량없음_산림품셈_2026-01-01.json`(옛 `old/2_공종_산림_밑수없음_2026-01-01.json`, 산림 벌만 — 건설 벌은 원래부터 안 읽혀 그대로 `old/` 에 둠).
|
||||
- `load_basis_missing()` 의 기본 파일명·자리를 새 파일로 바꿈 — 겸사겸사 **숨은 버그 하나 바로잡음**: 7-3 이 파일을 `old_code/` 로 옮기며 뿌리 경로 계산(`dirname` 두 번)이 한 단 모자라져, 그동안 조용히 빈 딕셔너리만 돌려주고 있었음(경고했던 「old/ 지우는 날 조용히 사라짐」이 이미 벌어져 있었던 셈).
|
||||
- 견본 대조 — 새 자리에서 79건 읽힘(`F0042`·`F0447` 등 값 대조 확인), old/ 옛 자리는 파일 자체가 없어짐(git mv 로 옮김, 복제 안 함).
|
||||
- `check_master.py` 의 「틀」 검사는 이 파일 하나만 이름으로 면제(8장 표·요소 틀에 안 맞는 특수 자료라 억지로 맞추지 않음) — `check_master.py 틀` 전체 재실행 0건 확인.
|
||||
- `test_b09_table_reading_2.py`(직접 단위시험)는 `conftest.py` 의 `test_b09_*` 제외 글롭에 이미 걸려 있어 안 돎 — B09 를 마스터 얼개로 다시 짤 때 같이 되살릴 것(이번 범위 밖).
|
||||
|
||||
@@ -32,6 +32,11 @@
|
||||
|
||||
결론 — 완전히 같은 검사를 옮겨 합칠 기존 자리는 없음. 옮긴다면 **자리(마스터 JSON이냐 코드 상수냐)를 새로 정하는 일**임.
|
||||
|
||||
## 고친 뒤 (2026-09-22 — 브레인 판정: 갈래 A)
|
||||
|
||||
- 「값이니 코드 상수보다 마스터가 맞음」 판정대로 갈래 A(새 마스터 JSON)로 옮김 — `resources/master_data/기준수량없음_산림품셈_2026-01-01.json`.
|
||||
- 8장 표·요소 틀에 억지로 맞추지 않음(구조를 건드리면 값을 지어낼 위험) — `schema_version`·`items` 모양 그대로 옮기고, `check_master.py` 「틀」 검사는 이 파일 하나만 이름으로 면제. 자세한 건 `ref/_분석_UnitPrice.md` 「고친 뒤」.
|
||||
|
||||
## ④ 옮긴다면 어디 — 두 갈래(고르지 않음)
|
||||
|
||||
**갈래 A — 새 마스터 JSON으로(`resources/master_data/` 최상위, M01 이 관리)**
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
# 안 쓰는 마스터 자료 분석 (PLAN 7-4 앞 절반)
|
||||
|
||||
읽기 전용 분석 — 목록만 뽑음 · **파일·코드는 하나도 안 옮김**(다음 일감 몫).
|
||||
|
||||
## ① M01 화면이 실제로 읽는 파일
|
||||
|
||||
읽기 사슬 — `M01_MasterData_Router.py` → `Store.py` → `check_master.load(FOLDER)`
|
||||
(`FOLDER = resources/master_data`). `load()` 는 밑줄(`_`)로 시작하는 파일만 빼고
|
||||
**첫 층 `*.json` 전부**를 매 요청마다 통째로 읽음 — 갈래를 가려 고르지 않음.
|
||||
|
||||
- **최상위 `*.json` 145개** — 로직 54 · 소요량 56 · 계수 27 · 재료 3(자재품목·품셈재료·유가전력) ·
|
||||
환율·일위대가조합·인력·기계·요율 각 1. **전부 `load()` 가 읽음 — 목록 밖인 최상위 json 은 하나도 없음.**
|
||||
- **`_키대장.json`** — `load()` 는 건너뛰지만 `master_keys.py`(`BOOK`)가 새 키를 줄 때 따로 읽음 → 실제로 읽힘.
|
||||
- **엔진·검사 스크립트 8개** — `check_master.py`(695) · `master_combo.py`(141) · `master_copy.py`(298) ·
|
||||
`master_keys.py`(426) · `master_text.py`(285) · `master_formula.py`(767) · `master_material.py`(224) ·
|
||||
`master_draft.py`(641) — `Store.py`·`Store_Cache.py`·`Store_Make.py` 가 부르는 사슬.
|
||||
|
||||
**「목록」 = 최상위 json 145 + `_키대장.json` + 위 스크립트 8개.** 이 밖의 파일만 ②에서 가름.
|
||||
|
||||
## ② 목록 밖 파일 갈래
|
||||
|
||||
### `scripts/` — 37개(46 항목 중 `__pycache__` 빼고, 위 8개 제외)
|
||||
|
||||
모두 **㉯ 검사·빌더만 읽음** — 서버는 안 부르지만 사람이 손으로 돌리는 도구라 옮기면 그 도구가 깨짐.
|
||||
|
||||
| 갈래 | 파일(줄 수) |
|
||||
|---|---|
|
||||
| 빌더(정본을 원자료에서 다시 만듦) 16 | build_계수_산림품셈_01장_추가(641) · build_기계_건설품셈(660) · build_로직_재료_고르기(78) · build_소요량_건설품셈_공통2장(688) · build_소요량_건설품셈_공통3장(611) · build_소요량_건설품셈_기계설비(62) · build_소요량_건설품셈_토목(167) · build_시설자재가격(86) · build_요율(427) · build_용도(223) · build_인력_노임(416) · build_자재품목_분류(688) · build_재료_유가전력(227) · build_재료_자재품목(156) · build_품셈재료_고르기(185) · build_환율(90) |
|
||||
| 빌더가 부르는 공통 부품(직접 안 돌림) 12 | _md표_읽기(307) · _migrate_base(472) · _migrate_keys(317) · _계수_공통2장(149) · _설비_계수(179) · _설비_손(12) · _설비_읽기(131) · _설비_표(389) · _토목_계수(100) · _토목_손(204) · _토목_읽기(194) · _토목_표(322) |
|
||||
| 관급단가 갱신 사슬(서로 부름) 5 | update_관급단가(723) · update_관급단가_기타(240) · update_관급단가_느슨(371) · update_관급단가_보강(182) · update_관급단가_합침(170) |
|
||||
| 읽기 전용 분석 도구 4 | analyze_식_복사(155, `ref/_설계_식_복사.md` 근거) · compare_estx(486) · 로직_복잡도_재기(53) · check_값없는줄(120, 일감 이전 것) |
|
||||
|
||||
### `old/` — 37개(json 34 · py 3)
|
||||
|
||||
PLAN 7-4 의 가정(「B08·B09 를 옮긴 뒤라 `old/` 의존이 줄었을 것」)은 **일부만 맞음** —
|
||||
`old/` 는 지금도 살아 있는 화면이 읽는 자리가 있음.
|
||||
|
||||
- **㉰ 화면이 지금도 읽음 — 4개(옮기면 그 화면이 깨짐)**
|
||||
- `2_공종_건설_마스터_2026-01-01.json` · `2_공종_산림_마스터_2026-01-01.json` —
|
||||
`common_util_work_item_key.py`(글롭 `2_공종_*_마스터_*.json`) →
|
||||
`B05_Profile_Corridor_Prebuild.py` · `B06_Section_Router_HaulPlan.py` · `B06_Section_Server_Calc_Prebuild.py`
|
||||
- `2_공종_산림건설_연결_2026-01-01.json` — `common_util_work_item_link.py` → 위와 같은 화면
|
||||
- `3_품셈_산림_돌쌓기경사_13-4-4_2026-01-01.json` — `B06_Section_UI_Cross_Lean.ts` 가 **직접 import**
|
||||
(횡단도 벽 전면 기울기 표준경사)
|
||||
- 덤 — `common_util_node_bundle.py` 가 `old/` 의 모든 `*.json` 수정 시각을 지켜봄(내용은 안 읽고
|
||||
「낡음」 판정만 — 하나라도 바뀌면 TS 번들을 다시 지음)
|
||||
- **㉯ old_code(끊긴 B08·B09·Z01)만 읽음 — 12개** — 지금 화면과는 무관.
|
||||
`old_code/` 는 `main.py` 에서 라우터가 끊겨 있어(PLAN 7-3) 실제로는 안 돌지만, 그 코드를 지우기 전엔
|
||||
참조가 남음: `1_기초_노임_건설업`·`1_기초_유가_시도별`·`1_기초_유가_전국평균`·`1_기초_자재_시설공통`·
|
||||
`1_기초_제비율_토목`·`2_공종_산림_밑수없음`·`3_품셈_건설_기계경비기준_8장`·`3_품셈_건설_기계운전경비`·
|
||||
`3_품셈_건설_표전체`·`3_품셈_산림_계수`·`3_품셈_산림_자원목록보충`·`3_품셈_산림_표전체`
|
||||
- **㉮ 아무도 안 읽음 — 21개** — 살아 있는 화면도 old_code 도 안 부름:
|
||||
`1_기초_노임_제조업`(1168) · `1_기초_환율_일별`(45) · `2_공종_건설_밑수없음`(3164) ·
|
||||
`2_공종_건설_열쇠대장`(12948) · `2_공종_건설_형태미정`(4702) · `2_공종_산림_열쇠대장`(4519) ·
|
||||
`2_공종_산림_자원줄`(6300) · `2_공종_산림_자원줄못맞춤`(2988) · `2_공종_산림_형태미정`(6) ·
|
||||
`2_공종_산림건설_줄구실기준`(112) · `3_품셈_산림_거푸집사용횟수_1-7-1`(184) ·
|
||||
`3_품셈_산림_돌쌓기규격갈래_13-4`(54) · `3_품셈_산림_돌쌓기뒷길이_13-4-4`(40) ·
|
||||
`3_품셈_산림_목재구조갈래_13-13-1`(80) · `3_품셈_산림_철근가공갈래_12-3`(101) ·
|
||||
`3_품셈_산림건설_기계작업량`(387) · `4_화면_이름표`(9656) · `재료_나라장터자재`(7034) ·
|
||||
`_build_mach.py`(455) · `_build_mat_price.py`(103) · `_build_pum.py`(198)
|
||||
|
||||
⚠ 이 21개는 **이미 `old/` 안**이라 「옮길 후보」가 아니라 「지울 후보」 — 삭제 판단은 7-5·사용자 몫.
|
||||
|
||||
### `ref/` — 67개(md 58 · json 8 · csv 1)
|
||||
|
||||
md 58개는 **코드가 안 읽음**(사람·AI 가 보는 설계·검증 기록) — 이 분석은 「코드가 읽는지」 만 가르므로
|
||||
md 하나하나가 「아직 쓸모 있나」 는 이 일감 범위 밖으로 둠(임의 결정 — 막히면 정하고 한 줄 남기라는 규칙을 따름).
|
||||
|
||||
json·csv 9개는 갈래가 갈림:
|
||||
|
||||
| 파일(줄 수) | 갈래 | 읽는 곳 |
|
||||
|---|---|---|
|
||||
| 공종_자원별칭_실무_2026-01-01(167) | ㉰ 시험이 읽음 | `common_util_aliases.py` → 시험 `test_b09_fuel_kind_vibrator.py`·`test_b08_root_removal_excavator.py` |
|
||||
| 수량_사방기슭막이치수_사방기술교본_2026-01-01 | ㉰ 화면이 읽음 | `B05_Profile_UI_Drainage_Facility_Fields.ts` 가 직접 import |
|
||||
| _관급_보강_후보.json | ㉯ 도구가 씀 | `update_관급단가_보강.py`·`update_관급단가_합침.py` |
|
||||
| 공종_수량연결_실무_2026-01-01(691) | ㉯ old_code 만 | `old_code/B08_Quantity_Engine_Handoff_Mapping.py` |
|
||||
| 수량_구조물원단위_울진_2026-01-01(652) | ㉯ old_code 만 | `old_code/B08_Quantity_Engine_ObservedUnit.py` |
|
||||
| 품셈_산림_돌종류계수_울진_2026-01-01(164) | ㉯ old_code 만 | `old_code/B08_Quantity_Engine_UnitQuantity_StoneSpec.py` |
|
||||
| 품셈_산림_재료할증_울진_2026-01-01(181) | ㉯ old_code 만 | `old_code/B08_Quantity_Engine_MaterialSummary.py` |
|
||||
| _열목록_화면표.csv(45) | **㉮ 아무도 안 읽음** | 없음 |
|
||||
| 수량_돌쌓기찰라이브러리_소광리_2026-01-01(285) | **㉮ 아무도 안 읽음** | 없음 |
|
||||
|
||||
## ③ `old/`·`ref/` 도 같은 잣대 — 이미 ②에 담음
|
||||
|
||||
## ④ 옮길 후보(파일 이름·줄 수) — 지금 아무도 안 읽는 것만
|
||||
|
||||
### 강한 후보 — 진짜 아무도 안 읽음(옮겨도 깨질 자리 없음)
|
||||
|
||||
| 파일 | 자리 | 줄 수 | 깨질 자리 |
|
||||
|---|---|---|---|
|
||||
| _원문목록.json | resources/master_data/ | 201 | 없음 — 단, `ref/_걷을_옛코드.md` 가 미래 B09 색인 후보로 이미 언급함(지우진 말고 old/ 로만) |
|
||||
| _열목록_화면표.csv | resources/master_data/ref/ | 45 | 없음 |
|
||||
| 수량_돌쌓기찰라이브러리_소광리_2026-01-01.json | resources/master_data/ref/ | 285 | 없음 |
|
||||
|
||||
### 약한 후보 — old_code(끊긴 라우터)만 읽음(old_code 를 먼저 걷어야 안전)
|
||||
|
||||
| 파일 | 자리 | 줄 수 | 깨질 자리 |
|
||||
|---|---|---|---|
|
||||
| 공종_수량연결_실무_2026-01-01.json | ref/ | 691 | old_code/B08_Quantity_Engine_Handoff_Mapping.py(지금은 안 돌아감) |
|
||||
| 수량_구조물원단위_울진_2026-01-01.json | ref/ | 652 | old_code/B08_Quantity_Engine_ObservedUnit.py |
|
||||
| 품셈_산림_재료할증_울진_2026-01-01.json | ref/ | 181 | old_code/B08_Quantity_Engine_MaterialSummary.py |
|
||||
| 품셈_산림_돌종류계수_울진_2026-01-01.json | ref/ | 164 | old_code/B08_Quantity_Engine_UnitQuantity_StoneSpec.py |
|
||||
|
||||
### 절대 옮기면 안 되는 것 — 6개
|
||||
|
||||
`old/` 4개(공종 마스터 2·공종 산림건설 연결 1·돌쌓기경사 1) + `ref/` 2개(공종_자원별칭_실무·수량_사방기슭막이치수) —
|
||||
B05·B06 화면과 시험 2개가 지금도 부름.
|
||||
|
||||
## 한 줄 결론
|
||||
|
||||
- 최상위 `*.json` 145개·엔진 스크립트 8개는 전부 M01 이 읽어 옮길 후보가 없음.
|
||||
- `scripts/` 37개도 전부 살아 있는 빌더·검사 도구라 옮길 후보 없음.
|
||||
- 진짜 옮길 후보는 **3개(531줄)** + old_code 정리 뒤에나 옮길 수 있는 **4개(1,688줄)** 뿐 —
|
||||
PLAN 7-4 가 기대한 것보다 훨씬 작음.
|
||||
- `old/` 는 이미 4개 파일로 B05·B06 화면을 떠받치고 있어 **7-5 에서 `old/` 를 통째로 지우면 안 됨** —
|
||||
7-4 세 번째 체크(공종 마스터를 `old/` 에 두되 버리지 않음)와도 들어맞음.
|
||||
- `old/` 안의 21개(54,244줄)는 이미 옮겨져 있고 아무도 안 읽음 — 「지울 후보」 로 7-5·사용자 몫에 넘김.
|
||||
|
||||
## 고친 뒤 (2026-09-22 PLAN 7-4·7-5)
|
||||
|
||||
**① 다시 훑은 결과 — 품셈재료 이관·B05B06 자료 복귀로 그림이 바뀜**
|
||||
|
||||
- 품셈재료(`재료_품셈재료.json`)가 7-4b 에서 이미 `old/` 로 옮겨짐 — 로직의 MP 직접참조는 0.
|
||||
- B05·B06 전용 자료 둘(돌쌓기경사·사방기슭막이치수)이 옛 자료 정리 때 실수로 `old/`·`ref/` 에 같이 쓸려 들어간 것을 되짚어 `resources/data_masonry/`(옛 이름)로 되돌림 — 바로 앞 일감.
|
||||
- 그 결과 「절대 옮기면 안 되는 것 6개」 가운데 **진짜 살아 있던 건 그 둘뿐**(B05·B06 화면이 직접 읽음). 공종 마스터 2·공종 산림건설 연결·공종 자원별칭은 `common_util_work_item_key.py`·`common_util_work_item_link.py`·`common_util_aliases.py` 를 거쳐 old_code(끊긴 B08·B09)만 읽고 있었음 — B05·B06 은 안 읽음(`ref/_분석_B05B06_옛자료.md` 가 코드로 확인).
|
||||
|
||||
**② 아무도 안 읽는 파일 7개를 `old/` 로 옮김(지우지 않음)**
|
||||
|
||||
| 파일 | 옛 자리 | 줄 수 | 옮기기 전 재확인 |
|
||||
|---|---|---|---|
|
||||
| `_원문목록.json` | `resources/master_data/` | 201 | 코드 0곳(문서만 언급) |
|
||||
| `_열목록_화면표.csv` | `ref/` | 45 | 코드 0곳 |
|
||||
| `수량_돌쌓기찰라이브러리_소광리_2026-01-01.json` | `ref/` | 285 | 코드 0곳 |
|
||||
| `공종_수량연결_실무_2026-01-01.json` | `ref/` | 691 | old_code(`B08_Quantity_Engine_Handoff_Mapping.py`)만 — old_code 자체가 안 돎 |
|
||||
| `수량_구조물원단위_울진_2026-01-01.json` | `ref/` | 652 | old_code(`B08_Quantity_Engine_ObservedUnit.py`)만 |
|
||||
| `품셈_산림_재료할증_울진_2026-01-01.json` | `ref/` | 181 | old_code(`B08_Quantity_Engine_MaterialSummary.py`)만 |
|
||||
| `품셈_산림_돌종류계수_울진_2026-01-01.json` | `ref/` | 164 | old_code(`B08_Quantity_Engine_UnitQuantity_StoneSpec.py`)만 |
|
||||
| `공종_자원별칭_실무_2026-01-01.json`(167) | `ref/` | 167 | `common_util_aliases.py` → old_code 5곳 + 시험 2개(이미 `ModuleNotFoundError` 로 깨져 있었음 — 실제로 도는 자리 0) |
|
||||
|
||||
임의 결정 한 줄 — 「약한 후보(old_code 정리 뒤에나)」로 미뤄 뒀던 4개도, B08·B09 가 이미 7-3 에서 통째로 `old_code/` 로 옮겨져 **아무것도 안 부르는 게 확인돼** 이번에 같이 옮김(더 미룰 까닭 없음).
|
||||
|
||||
**③④ old/·ref 를 아직 읽는 코드 — 전부 센 목록**
|
||||
|
||||
| 자리 | 파일 | 무엇을 읽나 | 왜 | 끊을 수 있나 |
|
||||
|---|---|---|---|---|
|
||||
| 살아 있던 공용 모듈 | `common_util_work_item_key.py` | `old/2_공종_*_마스터_*.json` | old_code(B08 인계·B09 인계)만 부름 | **끊음** — `old_code/common_util/` 로 옮김(경로 계산만 한 단 보정, 가리키는 대상은 그대로 `old/` 공종 마스터) |
|
||||
| 살아 있던 공용 모듈 | `common_util_work_item_link.py` | `old/2_공종_산림건설_연결_*.json` | old_code(B09 청구서)만 부름 | **끊음** — 위와 같이 옮김 |
|
||||
| 살아 있던 공용 모듈 | `common_util_aliases.py` | `ref/공종_자원별칭_실무` | old_code + 깨진 시험 2 | **끊음** — `old_code/common_util/` 로 옮기고 대상 파일도 `old/` 로 |
|
||||
| 시험(살아 있던 자리, 이미 깨짐) | `test_b09_fuel_kind_vibrator.py`·`test_b08_root_removal_excavator.py` | 위 aliases 경유 | B08·B09 옛 엔진(ModuleNotFoundError) | **끊음** — `old_code/resources/tester/` 로 옮김(7-3 이 놓친 것) |
|
||||
| 빌더 도구 | `resources/master_data/scripts/_migrate_base.py` | `old/` 여럿 | 옛 인력·재료 값을 새 표로 한 번 옮긴 대조 밑감 | 못 끊음 — 이관이 옳았는지 되짚는 게 이 도구의 목적 |
|
||||
| 빌더 도구 | `build_시설자재가격.py` | `ref/_없는_재료.md` | `--count` 로 몇 줄 남았는지 셈 | 못 끊음 — 사람이 손으로 돌리는 검사 도구 |
|
||||
| 빌더 도구 | `update_관급단가_보강.py` | `ref/_관급_보강_후보.json`(씀) | 관급단가 보강 후보를 파일로 냄 | 못 끊음 — 출력 자리일 뿐 |
|
||||
| 이관 대조 시험 | `test_masterdata_check.py`·`test_자재품목_분류.py` | `old/재료_품셈재료.json` | 7-4b 이관(옛→새)이 맞았는지 옛 값과 대조 | 못 끊음 — 대조가 시험의 목적 자체 |
|
||||
| 원가계산 엔진(옛 코드) | `old_code/B09_Estimation/B09_Estimation_UnitPrice.py`(`load_basis_missing`) | `old/2_공종_산림_밑수없음` → **새 최상위 마스터로 이관**(아래 ⑤) | 밑수(기준수량) 없는 표를 가려냄 | 이관함 — 자리는 최상위로, 함수는 old_code 에 그대로(다시 짤 때 참고) |
|
||||
|
||||
**⑥ 끝 수 — `old/`·`ref/` 를 읽는 코드**
|
||||
|
||||
- **실제로 돌아가는 로직 코드 = 0곳**(오늘 셋 다 끊음).
|
||||
- 남은 것은 성격이 다른 둘뿐 — 사람이 손으로만 돌리는 검사·빌더 도구 **5곳**(전부터 그랬음, 자동으로 안 돎) · 이관이 맞았는지 대조하는 시험 **2곳**(끊으면 검사 자체가 없어짐).
|
||||
- `old/` 안의 나머지(공종 마스터 2·산림건설 연결·21개 안 읽는 옛 파일)는 삭제 후보로 그대로 사용자 몫에 남김.
|
||||
@@ -1,12 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""로직 호표의 재료 줄을 「고르기 조건」 으로 바꿈 — 요소 「MP……」·「MT……」 를 조건 묶음으로.
|
||||
|
||||
· 바탕 셋 —
|
||||
· 바탕 넷 —
|
||||
① 재료_품셈재료.json 의 「고르기」 칸 (`scripts/build_품셈재료_고르기.py` 가 채움)
|
||||
② 자재품목 줄을 바로 가리키는 「MT……」 — 그 줄의 구분·상세구분·규격 + 대표 = 그 줄
|
||||
③ 연결이 자재품목 키 하나인 품셈재료 「MP……」 — 그 자재품목 줄로 ② 와 같게
|
||||
④ 연결이 지역·계약종별 조건 묶음(모래 · 자갈 · 전력)인 품셈재료 — 그 묶음을 호표에
|
||||
그대로 박음(PLAN 7-4b 뒤 절반 · `master_material._region`·`_tariff` 가 품셈재료
|
||||
간접 없이 바로 풂)
|
||||
②③ 은 대표 줄이 옛 요소와 같은 줄이라 금액이 그대로임(고르기 화면만 열림)
|
||||
· 고르기 칸이 비고 연결도 지역·계약종별을 계산 때 푸는 줄(모래 · 자갈 · 전력)은 옛 방식 그대로 둠
|
||||
· 줄 텍스트의 「"요소": "MP……"」 한 줄만 바꿈 — 나머지 글자·차례 그대로
|
||||
· 다시 돌려도 같은 결과(이미 바뀐 줄은 건드릴 것이 없음)
|
||||
|
||||
@@ -38,12 +40,18 @@ def _cond_of(row: dict) -> dict | None:
|
||||
|
||||
|
||||
def _picks() -> dict[str, dict]:
|
||||
"""요소 키 → 고르기 조건 — 품셈재료 고르기 칸 · 자재품목 줄 · 연결이 키 하나인 품셈재료."""
|
||||
"""요소 키 → 고르기 조건 — 품셈재료 고르기 칸 · 자재품목 줄 · 연결이 키 하나인 품셈재료 ·
|
||||
연결이 지역·계약종별 조건 묶음인 품셈재료(그 묶음을 그대로 호표에 박음 — PLAN 7-4b 뒤 절반)."""
|
||||
market = {str(r["키"]): r for r in json.loads(MARKET.read_text(encoding="utf-8"))["줄"]}
|
||||
picks = {key: cond for key, row in market.items() if (cond := _cond_of(row))}
|
||||
for row in json.loads(SRC.read_text(encoding="utf-8"))["줄"]:
|
||||
link = row.get("연결")
|
||||
cond = row.get("고르기") or (picks.get(link) if isinstance(link, str) else None)
|
||||
if isinstance(link, str):
|
||||
cond = row.get("고르기") or picks.get(link)
|
||||
elif isinstance(link, dict) and (link.get("지역") == "입력" or link.get("계약종별") == "입력"):
|
||||
cond = link
|
||||
else:
|
||||
cond = row.get("고르기")
|
||||
if cond:
|
||||
picks[str(row["키"])] = cond
|
||||
return picks
|
||||
|
||||
@@ -62,6 +62,8 @@ DIVISIONS = {
|
||||
_FILE = re.compile(
|
||||
rf"^(?:(인력|기계)|({'|'.join(mf.GROUPS)})_({'|'.join(BOOKS)})(?:_(\d\d)장_(.+))?)\.json$"
|
||||
)
|
||||
#: 8장 틀에 안 맞는 특수 최상위 파일(표·요소가 아닌 다른 모양) — 틀 검사에서 뺌(PLAN 7-5 ⑤).
|
||||
SPECIAL_FILES = {"기준수량없음_산림품셈_2026-01-01.json"}
|
||||
_SOURCE = re.compile(
|
||||
rf"^(?:자체|(?:{'|'.join(b for b in BOOKS if b not in ('건설품셈', '자체'))})(?:\s\S.*)?|건설품셈 (?:{'|'.join(DIVISIONS)}) \S.*)$"
|
||||
)
|
||||
@@ -253,6 +255,8 @@ def check_combo_form(name: str, data: dict) -> list[str]:
|
||||
def check_form(name: str, data: dict) -> list[str]:
|
||||
if name == mcb.FILE:
|
||||
return check_combo_form(name, data)
|
||||
if name in SPECIAL_FILES:
|
||||
return []
|
||||
m = _FILE.match(name)
|
||||
if not m:
|
||||
return [
|
||||
|
||||
@@ -16,7 +16,7 @@ LINKED = "MP" # 품셈재료 테이블ID
|
||||
MARKET = "MT" # 자재품목 테이블ID
|
||||
PRICED = "MO" # 유가전력 테이블ID — 값 한 칸
|
||||
SLOTS = ("물가자료", "유통물가", "물가정보", "거래가격", "관급") # 자재품목 값 열
|
||||
PICK_KEYS = ("구분", "상세구분", "규격", "대표") # 재료 고르기 조건 칸 (`_틀.md` 7장)
|
||||
PICK_KEYS = ("구분", "상세구분", "이름", "규격", "대표", "지역", "계약종별") # 재료 고르기 조건 칸 (`_틀.md` 7장)
|
||||
REGION = "자재지역" # 로직 입력 — 「지역」 은 유가 고르기가 씀
|
||||
TARIFF = "전력 계약종별" # 로직 입력 — 품셈·계약예규에 계약종별 규정 없음
|
||||
_UNITS = {"ea": "개", "ton": "톤", "t": "톤", "l": "ℓ", "리터": "ℓ", "set": "조", "세트": "조"}
|
||||
@@ -64,11 +64,11 @@ def _market_index(master: mf.Master) -> list[tuple[str, str, str, str, str]]:
|
||||
return master._market
|
||||
|
||||
|
||||
def _tariff(master: mf.Master, ref: str, row: dict, env: dict) -> list[str]:
|
||||
"""후보 조건{이름 · 계약종별: 입력} — 유가전력 전력 줄 가운데 그 계약종별·이름으로 시작하는 줄."""
|
||||
cond = row["연결"]
|
||||
def _tariff(master: mf.Master, label_ref, cond: dict, env: dict) -> list[str]:
|
||||
"""후보 조건{이름 · 계약종별: 입력} — 유가전력 전력 줄 가운데 그 계약종별·이름으로 시작하는 줄.
|
||||
`label_ref` 는 알림 글에 쓸 자리(호표 줄의 고르기 조건 · 또는 품셈재료 옛 키)."""
|
||||
if TARIFF not in env:
|
||||
raise mf.FormulaError(f"「{master.label(ref)}」 입력 「{TARIFF}」 없음")
|
||||
raise mf.FormulaError(f"「{master.label(label_ref)}」 입력 「{TARIFF}」 없음")
|
||||
want, kind = plain(cond["이름"]), plain(env[TARIFF])
|
||||
hits = [
|
||||
key
|
||||
@@ -79,29 +79,26 @@ def _tariff(master: mf.Master, ref: str, row: dict, env: dict) -> list[str]:
|
||||
and one.get("값") is not None
|
||||
]
|
||||
if not hits:
|
||||
raise mf.FormulaError(f"「{master.label(ref)}」 계약종별 값 없음 — {env[TARIFF]}")
|
||||
raise mf.FormulaError(f"「{master.label(label_ref)}」 계약종별 값 없음 — {env[TARIFF]}")
|
||||
return hits
|
||||
|
||||
|
||||
def _candidates(master: mf.Master, ref: str, row: dict, env: dict) -> list[str]:
|
||||
def _region(master: mf.Master, label_ref, cond: dict, env: dict, unit) -> list[str]:
|
||||
"""후보 조건{이름 · 규격 · 지역: 입력} — 뿌리가 이름으로 끝나고 이름에 지역 글자 · 단위 같음."""
|
||||
cond = row["연결"]
|
||||
if cond.get("계약종별") == "입력":
|
||||
return _tariff(master, ref, row, env)
|
||||
if cond.get("지역") == "입력" and REGION not in env:
|
||||
raise mf.FormulaError(f"「{master.label(ref)}」 입력 「{REGION}」 없음")
|
||||
raise mf.FormulaError(f"「{master.label(label_ref)}」 입력 「{REGION}」 없음")
|
||||
region = plain(env.get(REGION, "")) if cond.get("지역") == "입력" else ""
|
||||
want, spec, unit = plain(cond["이름"]), plain_spec(cond.get("규격")), plain_unit(row["단위"])
|
||||
want, spec, unit_p = plain(cond["이름"]), plain_spec(cond.get("규격")), plain_unit(unit)
|
||||
hits = [
|
||||
(s, key)
|
||||
for root, name, s, u, key in _market_index(master)
|
||||
if root.endswith(want) and region in name and u == unit and (not spec or s == spec)
|
||||
if root.endswith(want) and region in name and u == unit_p and (not spec or s == spec)
|
||||
]
|
||||
hits = [(s, key) for s, key in hits if _offers(master, key)]
|
||||
if not hits:
|
||||
raise mf.FormulaError(f"「{master.label(ref)}」 지역 값 없음 — {env.get(REGION)}")
|
||||
raise mf.FormulaError(f"「{master.label(label_ref)}」 지역 값 없음 — {env.get(REGION)}")
|
||||
if len({s for s, _ in hits}) > 1:
|
||||
raise mf.FormulaError(f"「{master.label(ref)}」 후보 여럿 — 규격 선택 필요 ({len(hits)}줄)")
|
||||
raise mf.FormulaError(f"「{master.label(label_ref)}」 후보 여럿 — 규격 선택 필요 ({len(hits)}줄)")
|
||||
return [key for _, key in hits]
|
||||
|
||||
|
||||
@@ -131,16 +128,18 @@ def by_class(master: mf.Master) -> dict[str, dict]:
|
||||
def candidates(
|
||||
master: mf.Master, cond: dict, env: dict | None = None, unit: str | None = None
|
||||
) -> list[str]:
|
||||
"""고르기 조건 안 자재품목 키 — 구분 · 상세구분 · 규격 낱말이 모두 든 줄 · 파일 차례대로.
|
||||
"""고르기 조건 안 자재품목 키 — 구분 · 상세구분 · 이름 · 규격 낱말이 모두 든 줄 · 파일 차례대로.
|
||||
`unit` 을 주면 그 단위(호표 줄 단위)와 같은 줄만 — 단위가 다르면 다른 물건.
|
||||
입력 `자재지역` 이 있으면 이름에 그 지역이 든 줄만(그런 줄이 없으면 조건 안 전부)."""
|
||||
want = [plain_spec(w) for w in str(cond.get("규격") or "").split()]
|
||||
want_name = [plain(w) for w in str(cond.get("이름") or "").split()]
|
||||
detail = cond.get("상세구분")
|
||||
need = plain_unit(unit) if unit else ""
|
||||
hits = [
|
||||
key
|
||||
for key, row in by_class(master).get(cond.get("구분"), {}).items()
|
||||
if (not detail or row.get("상세구분") == detail)
|
||||
and all(w in plain(row.get("이름")) for w in want_name)
|
||||
and all(w in plain_spec(row.get("규격")) for w in want)
|
||||
and (not need or plain_unit(row.get("단위")) == need)
|
||||
]
|
||||
@@ -181,8 +180,18 @@ def check_unit(master: mf.Master, where: str, cond: dict, unit: str | None) -> l
|
||||
|
||||
def check_pick(master: mf.Master, where: str, cond: dict, unit: str | None = None) -> list[str]:
|
||||
"""고르기 조건 검사 — 칸 이름 · 구분·상세구분이 자재품목에 있는지 · 대표 줄 · 후보 0.
|
||||
값에 `{입력}` 이 든 칸(관경 등)은 계산 때 채워지므로 검사에서 뺌."""
|
||||
if set(cond) - set(PICK_KEYS) or not cond.get("구분"):
|
||||
값에 `{입력}` 이 든 칸(관경 등)은 계산 때 채워지므로 검사에서 뺌.
|
||||
지역·계약종별 조건은 구분 없이 이름 하나로 자재품목·유가전력을 넓게 찾음(_region · _tariff)
|
||||
— 여기서는 이름 칸만 있는지 봄(후보 0 은 계산 때 판단)."""
|
||||
if set(cond) - set(PICK_KEYS):
|
||||
return [f"{where} · 재료 고르기 조건 모양 「{cond}」 — {' · '.join(PICK_KEYS)}"]
|
||||
if ("지역" in cond and cond["지역"] != "입력") or (
|
||||
"계약종별" in cond and cond["계약종별"] != "입력"
|
||||
):
|
||||
return [f"{where} · 재료 고르기 조건 모양 「{cond}」 — 지역·계약종별은 늘 「입력」"]
|
||||
if cond.get("지역") == "입력" or cond.get("계약종별") == "입력":
|
||||
return [] if cond.get("이름") else [f"{where} · 재료 고르기 조건 「{cond}」 — 이름 없음"]
|
||||
if not cond.get("구분"):
|
||||
return [f"{where} · 재료 고르기 조건 모양 「{cond}」 — {' · '.join(PICK_KEYS)}"]
|
||||
cond = static(cond)
|
||||
if not cond.get("구분"): # 구분 자체가 `{입력}` — 계산 때 채워져 여기서 좁힐 것이 없음
|
||||
@@ -205,7 +214,17 @@ def element(
|
||||
master: mf.Master, ref, env: dict, unit: str | None = None
|
||||
) -> tuple[object, str | None]:
|
||||
"""요소 값과 출처 — 자재품목은 제 줄, 품셈재료는 연결을 따라가 낮은 값 · 그 밖은 줄의 `값`.
|
||||
`ref` 가 고르기 조건 묶음이면 대표 줄(없으면 단위 같은 조건 안 첫 줄)로 풂."""
|
||||
`ref` 가 고르기 조건 묶음이면 대표 줄(없으면 단위 같은 조건 안 첫 줄)로 풂.
|
||||
조건에 지역·계약종별 이 「입력」 이면 구분·상세구분 없이 이름 하나로 넓게 찾음(_region · _tariff)
|
||||
— 호표 줄에 바로 써도 품셈재료 간접 없이 풀림(PLAN 7-4b 뒤 절반)."""
|
||||
if isinstance(ref, dict) and (ref.get("계약종별") == "입력" or ref.get("지역") == "입력"):
|
||||
keys = (
|
||||
_tariff(master, ref, ref, env)
|
||||
if ref.get("계약종별") == "입력"
|
||||
else _region(master, ref, ref, env, unit)
|
||||
)
|
||||
offers = [x for key in keys for x in _offers(master, key)]
|
||||
return min(offers, key=lambda x: x[0]) if offers else (None, None)
|
||||
if isinstance(ref, dict):
|
||||
ref = pick(master, ref, env, unit)
|
||||
row = master.get(ref)
|
||||
@@ -216,7 +235,12 @@ def element(
|
||||
link = row.get("연결")
|
||||
if not link:
|
||||
return None, None
|
||||
keys = [link] if isinstance(link, str) else _candidates(master, ref, row, env)
|
||||
if isinstance(link, str):
|
||||
keys = [link]
|
||||
elif link.get("계약종별") == "입력":
|
||||
keys = _tariff(master, ref, link, env)
|
||||
else:
|
||||
keys = _region(master, ref, link, env, row["단위"])
|
||||
offers = [x for key in keys for x in _offers(master, key)]
|
||||
return min(offers, key=lambda x: x[0]) if offers else (None, None)
|
||||
|
||||
|
||||
@@ -4296,7 +4296,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000082",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "M-Poxy I(습식)", "대표": "MT007705"},
|
||||
"이름": "에폭시",
|
||||
"단위": "kg",
|
||||
"수량": "만약(방지망 == '포켓식', 찾기(QC000569, 구분='에폭시').수량, 0)",
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000144",
|
||||
"요소": {"구분": "철근·강재", "상세구분": "형강", "대표": "MT030619"},
|
||||
"이름": "보조강재",
|
||||
"단위": "㎏",
|
||||
"수량": "만약(부재 == 'H형강부재', 찾기(QC001188, 재료='보조강재').H형강부재, 찾기(QC001188, 재료='보조강재').전용접부재)",
|
||||
@@ -212,7 +212,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000148",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "대표": "MT030620"},
|
||||
"이름": "FLUX",
|
||||
"단위": "㎏",
|
||||
"수량": "만약(용접방식 == '자동용접', 환산용접길이 * 찾기(QC001190, 재료='FLUX').자동용접, 0)",
|
||||
@@ -1198,7 +1198,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000150",
|
||||
"요소": {"구분": "단열·보온", "상세구분": "단열재", "대표": "MT030621"},
|
||||
"이름": "질석",
|
||||
"단위": "㎏",
|
||||
"수량": "찾기(QC001208, 구분='질석').수량",
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
"호표": [
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000095",
|
||||
"요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "규격": "두께 2.0㎜ 이상", "대표": "MT030612"},
|
||||
"이름": "BASECHANNEL 두께:2.0㎜이상",
|
||||
"단위": "m",
|
||||
"수량": "찾기(QC000012, 구분='BASECHANNEL', 종류=주자재종류).수량 * 손율 / 100",
|
||||
@@ -55,7 +55,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000096",
|
||||
"요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "규격": "두께 2.0㎜ 이상", "대표": "MT030613"},
|
||||
"이름": "TOPCHANNEL 두께:2.0㎜이상",
|
||||
"단위": "m",
|
||||
"수량": "찾기(QC000012, 구분='TOPCHANNEL', 종류=주자재종류).수량 * 손율 / 100",
|
||||
@@ -107,7 +107,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000101",
|
||||
"요소": {"구분": "목재", "상세구분": "각재·판재", "규격": "1,200×2,400㎜", "대표": "MT030614"},
|
||||
"이름": "내부PANEL (목재문) 1,200×2,400㎜",
|
||||
"단위": "매",
|
||||
"수량": "만약(종류 == '사무실', 찾기(QC000012, 구분='내부PANEL (목재문)', 종류=주자재종류).수량 * 손율 / 100, 0)",
|
||||
@@ -291,7 +291,7 @@
|
||||
"호표": [
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000113",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "대표": "MT030615"},
|
||||
"이름": "축중계(이동식)",
|
||||
"단위": "대",
|
||||
"수량": "찾기(QC000018, 구분='손율', 기간=기간).값 / 100",
|
||||
@@ -3954,7 +3954,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000129",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "대표": "MT030616"},
|
||||
"이름": "보호막",
|
||||
"단위": "㎡",
|
||||
"수량": "찾기(QC000130, 구분='보호막').수량",
|
||||
|
||||
@@ -695,7 +695,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000201",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "대표": "MT030626"},
|
||||
"이름": "실리콘",
|
||||
"단위": "㎏",
|
||||
"수량": "찾기(QC001430, 구분='실리콘').수량",
|
||||
|
||||
@@ -838,7 +838,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000209",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "보일러·공조", "규격": "압접가열용", "대표": "MT030710"},
|
||||
"이름": "버너 압접가열용",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000648, 품명='버너', 레일규격=레일규격, 규격='압접가열용').수량",
|
||||
@@ -847,7 +847,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000210",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "규격": "압접버너용", "대표": "MT030627"},
|
||||
"이름": "노즐 압접버너용",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000648, 품명='노즐', 레일규격=레일규격, 규격='압접버너용').수량",
|
||||
@@ -858,7 +858,7 @@
|
||||
"덧줄": [
|
||||
{
|
||||
"이름": "기타 소모품·재료비",
|
||||
"식": "((찾기(QC000648, 품명='아세틸렌', 레일규격=레일규격).수량) * MT003163 + (찾기(QC000648, 품명='산소', 레일규격=레일규격, 규격='KSM 1101, 99.5%').수량 * 1000) * MT003165 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='단면용 A36m B11호 A150×8×22 KSL 6501').수량) * MP000205 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='측면용 A24 QWV1호 A205×25×25 KSL 6501').수량) * MP000206 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='평면용 A24 QWV1호 A205×25×25 KSL 6501').수량) * MP000207 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='최종용 A24 QWV 5호 A205×22×22').수량) * MP000208 + (찾기(QC000648, 품명='버너', 레일규격=레일규격, 규격='압접가열용').수량) * MP000209 + (찾기(QC000648, 품명='노즐', 레일규격=레일규격, 규격='압접버너용').수량) * MP000210) * 기타재료 / 100",
|
||||
"식": "((찾기(QC000648, 품명='아세틸렌', 레일규격=레일규격).수량) * MT003163 + (찾기(QC000648, 품명='산소', 레일규격=레일규격, 규격='KSM 1101, 99.5%').수량 * 1000) * MT003165 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='단면용 A36m B11호 A150×8×22 KSL 6501').수량) * MT030715 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='측면용 A24 QWV1호 A205×25×25 KSL 6501').수량) * MT030716 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='평면용 A24 QWV1호 A205×25×25 KSL 6501').수량) * MT030717 + (찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='최종용 A24 QWV 5호 A205×22×22').수량) * MT030718 + (찾기(QC000648, 품명='버너', 레일규격=레일규격, 규격='압접가열용').수량) * MT030710 + (찾기(QC000648, 품명='노즐', 레일규격=레일규격, 규격='압접버너용').수량) * MT030627) * 기타재료 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "건설품셈 토목 4-5-1 참고자료 주①"
|
||||
}
|
||||
@@ -914,7 +914,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000211",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "규격": "점화용", "대표": "MT030628"},
|
||||
"이름": "테르밋용재 점화용",
|
||||
"단위": "포",
|
||||
"수량": "찾기(QC000650, 품명='테르밋용재', 레일규격=레일규격, 규격='점화용').수량",
|
||||
@@ -923,7 +923,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000212",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "규격": "테르밋 용접용", "대표": "MT030629"},
|
||||
"이름": "몰드",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000650, 품명='몰드', 레일규격=레일규격).수량",
|
||||
@@ -932,7 +932,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000213",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "규격": "테르밋 용접용", "대표": "MT030630"},
|
||||
"이름": "골무",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000650, 품명='골무', 레일규격=레일규격).수량",
|
||||
@@ -941,7 +941,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000214",
|
||||
"요소": {"구분": "전기·통신", "상세구분": "판넬·차단기", "규격": "테르밋 용접용", "대표": "MT030711"},
|
||||
"이름": "퓨즈",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000650, 품명='퓨즈', 레일규격=레일규격).수량",
|
||||
@@ -970,7 +970,7 @@
|
||||
"덧줄": [
|
||||
{
|
||||
"이름": "기타 소모품·재료비",
|
||||
"식": "((찾기(QC000650, 품명='테르밋용재', 레일규격=레일규격, 규격='점화용').수량) * MP000211 + (찾기(QC000650, 품명='몰드', 레일규격=레일규격).수량) * MP000212 + (찾기(QC000650, 품명='골무', 레일규격=레일규격).수량) * MP000213 + (찾기(QC000650, 품명='퓨즈', 레일규격=레일규격).수량) * MP000214 + (찾기(QC000650, 품명='산소', 레일규격=레일규격).수량 * 1000) * MT003165 + (찾기(QC000650, 품명='프로판가스', 레일규격=레일규격).수량) * MT003176) * 기타재료 / 100",
|
||||
"식": "((찾기(QC000650, 품명='테르밋용재', 레일규격=레일규격, 규격='점화용').수량) * MT030628 + (찾기(QC000650, 품명='몰드', 레일규격=레일규격).수량) * MT030629 + (찾기(QC000650, 품명='골무', 레일규격=레일규격).수량) * MT030630 + (찾기(QC000650, 품명='퓨즈', 레일규격=레일규격).수량) * MT030711 + (찾기(QC000650, 품명='산소', 레일규격=레일규격).수량 * 1000) * MT003165 + (찾기(QC000650, 품명='프로판가스', 레일규격=레일규격).수량) * MT003176) * 기타재료 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "건설품셈 토목 4-5-2 참고자료 주①"
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000076",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "화이버/펄프류", "대표": "MT030610"},
|
||||
"이름": "피복제(화이버/펄프류)",
|
||||
"단위": "㎏",
|
||||
"수량": "찾기(QC000274, 구분='피복제').수량 / 100",
|
||||
@@ -208,7 +208,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000077",
|
||||
"요소": {"구분": "식생·종자", "상세구분": "비료·토양개량", "규격": "합성접착제", "대표": "MT030611"},
|
||||
"이름": "침식방지안정제(합성접착제)",
|
||||
"단위": "㎏",
|
||||
"수량": "안정제량 / 100",
|
||||
@@ -217,7 +217,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000078",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "규격": "색소(M-Green)", "대표": "MT006740"},
|
||||
"이름": "색소(착색제)",
|
||||
"단위": "㎏",
|
||||
"수량": "찾기(QC000274, 구분='색소').수량 / 100",
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
"덧줄": [
|
||||
{
|
||||
"이름": "잡품·기타",
|
||||
"식": "(찾기(QC000664, 품명='용접봉').수량 * MP000215 + 찾기(QC000664, 품명='산소').수량 * 1000 * MT003165 + 찾기(QC000664, 품명='LPG가스').수량 * MT003176) * 잡품 / 100",
|
||||
"식": "(찾기(QC000664, 품명='용접봉').수량 * MT003191 + 찾기(QC000664, 품명='산소').수량 * 1000 * MT003165 + 찾기(QC000664, 품명='LPG가스').수량 * MT003176) * 잡품 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "건설품셈 토목 5-1-3 주②"
|
||||
}
|
||||
@@ -164,7 +164,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000216",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030631"},
|
||||
"이름": "철구(Shot ball)",
|
||||
"단위": "㎏",
|
||||
"수량": "찾기(QC000665, 구분='철구(Shot ball)').수량",
|
||||
@@ -204,7 +204,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000218",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030632"},
|
||||
"이름": "철편(Grit)",
|
||||
"단위": "㎏",
|
||||
"수량": "찾기(QC000666, 구분='철편(Grit)').수량",
|
||||
|
||||
@@ -2402,7 +2402,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000134",
|
||||
"요소": {"구분": "시멘트·골재", "상세구분": "골재", "대표": "MT030617"},
|
||||
"이름": "모래주머니",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000334, 구분='육상부설').모래주머니 / 100",
|
||||
@@ -5355,7 +5355,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000139",
|
||||
"요소": {"구분": "관·이음관", "상세구분": "PE관", "규격": "2∼2.5㎜", "대표": "MT030618"},
|
||||
"이름": "HDPE 시트",
|
||||
"단위": "㎡",
|
||||
"수량": "만약(재료 == 'HDPE시트', 찾기(QC000399, 구분='HDPE 시트').수량, 0)",
|
||||
|
||||
@@ -1122,7 +1122,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000169",
|
||||
"요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "대표": "MT030622"},
|
||||
"이름": "정배지",
|
||||
"단위": "㎡",
|
||||
"수량": "찾기(QC001269, 바탕면=바탕면).정배지",
|
||||
@@ -1502,7 +1502,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000172",
|
||||
"요소": {"구분": "거푸집·가설재", "상세구분": "거푸집", "대표": "MT030623"},
|
||||
"이름": "알루미늄핀",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC001278, 구분='알루미늄핀').수량",
|
||||
@@ -1873,7 +1873,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000176",
|
||||
"요소": {"구분": "철근·강재", "상세구분": "철망·와이어메쉬", "대표": "MT030624"},
|
||||
"이름": "표준보강메시",
|
||||
"단위": "㎡",
|
||||
"수량": "찾기(QC001288, 구분='외벽단열').표준보강메시",
|
||||
@@ -1946,7 +1946,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000177",
|
||||
"요소": {"구분": "철근·강재", "상세구분": "철망·와이어메쉬", "대표": "MT030625"},
|
||||
"이름": "고강도메시",
|
||||
"단위": "㎡",
|
||||
"수량": "찾기(QC001288, 구분='하부보강').고강도메시",
|
||||
|
||||
@@ -2078,7 +2078,7 @@
|
||||
},
|
||||
{
|
||||
"이름": "잡재료",
|
||||
"식": "(찾기(QC000707).IV전선 * MP000202 + 찾기(QC000707).백열등 * MP000203) * 2 / 100",
|
||||
"식": "(찾기(QC000707).IV전선 * MT030714 + 찾기(QC000707).백열등 * MT008751) * 2 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "건설품셈 토목 6-7-5 주⑤"
|
||||
}
|
||||
|
||||
@@ -1189,7 +1189,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "구멍땜 모래",
|
||||
"단위": "㎥",
|
||||
"수량": "구멍땜 * 찾기(QC000430).모래 / 100",
|
||||
@@ -2463,7 +2463,7 @@
|
||||
},
|
||||
{
|
||||
"이름": "잡재료 및 소모재료",
|
||||
"식": "MP000094 * 5 / 100",
|
||||
"식": "MT030713 * 5 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "건설품셈 공통 6-4-1 주④"
|
||||
}
|
||||
@@ -3021,7 +3021,7 @@
|
||||
},
|
||||
{
|
||||
"이름": "잡재료 및 소모재료",
|
||||
"식": "MP000094 * 5 / 100",
|
||||
"식": "MT030713 * 5 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "건설품셈 공통 6-4-2 주④"
|
||||
}
|
||||
|
||||
@@ -340,7 +340,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000363",
|
||||
"요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "규격": "336×1,000×3㎜", "대표": "MT030705"},
|
||||
"이름": "아스팔트싱글",
|
||||
"단위": "매",
|
||||
"수량": "찾기(QC001317, 구분='아스팔트싱글', 규격='336×1.000×3㎜').수량",
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000235",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "규격": "표준관입시험용", "대표": "MT030636"},
|
||||
"이름": "슈",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000779, 종별='슈').수량",
|
||||
@@ -531,7 +531,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000239",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "규격": "ø16×750", "대표": "MT030637"},
|
||||
"이름": "베인 전용로드",
|
||||
"단위": "본",
|
||||
"수량": "찾기(QC000780, 종별='재료비', 세목='전용로드(ø16×750)').수량",
|
||||
@@ -540,7 +540,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000240",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "규격": "ø40.5×1m", "대표": "MT030638"},
|
||||
"이름": "로드",
|
||||
"단위": "본",
|
||||
"수량": "찾기(QC000780, 종별='재료비', 세목='로드(ø40.5×1m)').수량",
|
||||
@@ -596,7 +596,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000241",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "규격": "평판재하시험용", "대표": "MT030639"},
|
||||
"이름": "표준사",
|
||||
"단위": "㎏",
|
||||
"수량": "찾기(QC000782, 종별='표준사').수량",
|
||||
@@ -685,7 +685,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000242",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "규격": "정재하시험용", "대표": "MT030640"},
|
||||
"이름": "단독콘",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QC000785, 종별='단독콘').수량",
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000216",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030631"},
|
||||
"이름": "steel shot",
|
||||
"단위": "㎏",
|
||||
"수량": "만약(구분 == 'Shot Blast', 강구수량, 0)",
|
||||
@@ -289,7 +289,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000220",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030633"},
|
||||
"이름": "동력 Brush",
|
||||
"단위": "개",
|
||||
"수량": "만약(구분 == 'Power Tool', 0.03, 0)",
|
||||
@@ -307,7 +307,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000221",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030634"},
|
||||
"이름": "Wire Brush",
|
||||
"단위": "개",
|
||||
"수량": "만약(구분 == 'Wire Brush', 0.016, 0)",
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "모래",
|
||||
"단위": "㎥",
|
||||
"수량": "찾기(QC001347, 배합용적비=배합용적비).모래",
|
||||
@@ -533,7 +533,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "모래",
|
||||
"단위": "㎥",
|
||||
"수량": "찾기(QC001358, 구분='모래').수량",
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000223",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030635"},
|
||||
"이름": "컴파운드",
|
||||
"단위": "g",
|
||||
"수량": "만약(규격 == 'ø20', 찾기(QC001578, '구경(㎜)'='ø20').컴파운드, 만약(규격 == '25', 찾기(QC001578, '구경(㎜)'='25').컴파운드, 만약(규격 == '32', 찾기(QC001578, '구경(㎜)'='30').컴파운드, 만약(규격 == '40', 찾기(QC001578, '구경(㎜)'='40').컴파운드, 찾기(QC001578, '구경(㎜)'='50').컴파운드))))",
|
||||
@@ -516,7 +516,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000223",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030635"},
|
||||
"이름": "컴파운드",
|
||||
"단위": "g",
|
||||
"수량": "찾기(QC001583, '구경(㎜)'='컴파운드(g)', 항목=만약(구분 == 'ø15㎜', 'ø15', 'ø20∼25')).수량",
|
||||
|
||||
@@ -2415,7 +2415,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "찾기(QC001638, '두께(㎜)'=두께, '자세 및 직종'=자세, 구분='소요전력(㎾h)').수량",
|
||||
@@ -2521,7 +2521,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "찾기(QC001641, '두께(㎜)'=두께, '자세 및 직종'=자세, 구분='전력소비량(㎾h)').수량",
|
||||
@@ -2635,7 +2635,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "찾기(QC001642, '두께(㎜)'=두께, '자세 및 직종'=자세, 구분='소요전력(㎾h)').수량",
|
||||
@@ -2744,7 +2744,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "찾기(QC001639, '자세 및 직종 두께(㎜)'=두께, 구분=만약(용접면 == '하향한면', '하향한면 용접', '하향양면 용접')).'소요전력(㎾h)'",
|
||||
@@ -2853,7 +2853,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "찾기(QC001640, '자세 및 직종 두께(㎜)'=두께, 구분=만약(용접면 == '하향한면', '하향한면 용접', '하향양면 용접')).'소요전력(㎾h)'",
|
||||
@@ -3195,7 +3195,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000250",
|
||||
"요소": {"구분": "콘크리트제품", "상세구분": "경계석·블록", "대표": "MT030641"},
|
||||
"이름": "Lagging Sheet",
|
||||
"단위": "㎡",
|
||||
"수량": "만약(보온두께 == '30mm이하', 찾기(QC001650, 'Pipe Size mm'=관경, 구분='직관의물량').'Lagging Sheet', 만약(보온두께 == '31mm∼40mm', 찾기(QC001651, 'Pipe Size mm'=관경, 구분='직관의물량').'Lagging Sheet', 만약(보온두께 == '41mm∼60mm', 찾기(QC001652, 'Pipe Size mm'=관경, 구분='직관의물량').'Lagging Sheet', 만약(보온두께 == '61mm∼75mm', 찾기(QC001653, 'Pipe Size mm'=관경, 구분='직관의물량').'Lagging Sheet', 찾기(QC001654, 'Pipe Size mm'=관경, 구분='직관의물량').'Lagging Sheet')))) * 만약(부위 == '관(m당)', 1, 0)",
|
||||
@@ -7763,7 +7763,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000253",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030642"},
|
||||
"이름": "코크스",
|
||||
"단위": "㎏",
|
||||
"수량": "9",
|
||||
@@ -7772,7 +7772,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000254",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "각종", "대표": "MT030643"},
|
||||
"이름": "Sand Paper",
|
||||
"단위": "Sh",
|
||||
"수량": "3.125",
|
||||
@@ -7781,7 +7781,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000255",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "14\"×14〃", "대표": "MT030644"},
|
||||
"이름": "여과기",
|
||||
"단위": "Sh",
|
||||
"수량": "3",
|
||||
@@ -7799,7 +7799,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000257",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "C-3", "대표": "MT030645"},
|
||||
"이름": "세유",
|
||||
"단위": "ℓ",
|
||||
"수량": "2.2",
|
||||
@@ -7808,7 +7808,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000258",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030646"},
|
||||
"이름": "Grease",
|
||||
"단위": "㎏",
|
||||
"수량": "0.2",
|
||||
@@ -7817,7 +7817,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000259",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030647"},
|
||||
"이름": "Machine oil",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.7",
|
||||
@@ -7826,7 +7826,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000260",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030648"},
|
||||
"이름": "Gasoline",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.24",
|
||||
@@ -7835,7 +7835,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000261",
|
||||
"요소": {"구분": "철근·강재", "상세구분": "철선", "규격": "#8∼#16", "대표": "MT030649"},
|
||||
"이름": "Galvanized wire",
|
||||
"단위": "㎏",
|
||||
"수량": "0.5",
|
||||
@@ -7844,7 +7844,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000262",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "8\"ø×25m/m t", "대표": "MT030650"},
|
||||
"이름": "Grinding Wheel",
|
||||
"단위": "EA",
|
||||
"수량": "0.375",
|
||||
@@ -7871,7 +7871,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000265",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030651"},
|
||||
"이름": "보일유",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.008",
|
||||
@@ -8178,7 +8178,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000269",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "0∼3", "대표": "MT030652"},
|
||||
"이름": "세유",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.73",
|
||||
@@ -8187,7 +8187,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000260",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030648"},
|
||||
"이름": "Gasoline",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.73",
|
||||
@@ -8196,7 +8196,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000265",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030651"},
|
||||
"이름": "보일유",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.069",
|
||||
@@ -8205,7 +8205,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000259",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030647"},
|
||||
"이름": "Machine oil",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.365",
|
||||
@@ -8214,7 +8214,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000258",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030646"},
|
||||
"이름": "Grease",
|
||||
"단위": "㎏",
|
||||
"수량": "0.175",
|
||||
@@ -8232,7 +8232,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000261",
|
||||
"요소": {"구분": "철근·강재", "상세구분": "철선", "규격": "#8∼#16", "대표": "MT030649"},
|
||||
"이름": "Galvanized wire",
|
||||
"단위": "㎏",
|
||||
"수량": "0.73",
|
||||
@@ -8241,7 +8241,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000271",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "각종 3/8∼1.6\"", "대표": "MT030653"},
|
||||
"이름": "Wire brush",
|
||||
"단위": "EA",
|
||||
"수량": "0.292",
|
||||
@@ -8250,7 +8250,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000272",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "12\"", "대표": "MT030654"},
|
||||
"이름": "Hack saw blade",
|
||||
"단위": "EA",
|
||||
"수량": "0.438",
|
||||
@@ -8259,7 +8259,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000273",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "규격": "1.6ø∼3.8ø", "대표": "MT030655"},
|
||||
"이름": "Drill",
|
||||
"단위": "㎏",
|
||||
"수량": "0.018",
|
||||
@@ -8268,7 +8268,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000274",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "8\"ø∼25m/m t", "대표": "MT030656"},
|
||||
"이름": "Grinder wheel",
|
||||
"단위": "㎏",
|
||||
"수량": "0.022",
|
||||
@@ -8277,7 +8277,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000275",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "각종", "대표": "MT030657"},
|
||||
"이름": "File",
|
||||
"단위": "㎏",
|
||||
"수량": "0.218",
|
||||
@@ -8286,7 +8286,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000276",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "각종(황, 중, 세)", "대표": "MT030658"},
|
||||
"이름": "Oil stone",
|
||||
"단위": "Sh",
|
||||
"수량": "0.055",
|
||||
@@ -8295,7 +8295,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000253",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030642"},
|
||||
"이름": "코크스",
|
||||
"단위": "㎏",
|
||||
"수량": "0.328",
|
||||
@@ -8360,7 +8360,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000280",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030659"},
|
||||
"이름": "Sand Paper",
|
||||
"단위": "Sh",
|
||||
"수량": "0.11",
|
||||
@@ -8369,7 +8369,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000281",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030660"},
|
||||
"이름": "광목",
|
||||
"단위": "m",
|
||||
"수량": "0.402",
|
||||
@@ -8423,7 +8423,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000285",
|
||||
"요소": {"구분": "잡재료", "상세구분": "고철·기타금속", "규격": "Sn 30%", "대표": "MT001252"},
|
||||
"이름": "땜납",
|
||||
"단위": "㎏",
|
||||
"수량": "0.055",
|
||||
@@ -8432,7 +8432,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000286",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "대표": "MT030661"},
|
||||
"이름": "붕사",
|
||||
"단위": "㎏",
|
||||
"수량": "0.016",
|
||||
@@ -8441,7 +8441,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000287",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "절연용", "대표": "MT030662"},
|
||||
"이름": "Compound",
|
||||
"단위": "㎏",
|
||||
"수량": "0.073",
|
||||
@@ -8450,7 +8450,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000288",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "밀착제 No.2", "대표": "MT030663"},
|
||||
"이름": "3-Bond",
|
||||
"단위": "㎏",
|
||||
"수량": "0.007",
|
||||
@@ -8736,7 +8736,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "모래",
|
||||
"단위": "㎥",
|
||||
"수량": "0.262",
|
||||
@@ -8745,7 +8745,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000290",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030664"},
|
||||
"이름": "Nozzle",
|
||||
"단위": "개",
|
||||
"수량": "0.5",
|
||||
@@ -8763,7 +8763,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "370",
|
||||
@@ -9041,7 +9041,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "모래",
|
||||
"단위": "㎥",
|
||||
"수량": "0.242",
|
||||
@@ -9050,7 +9050,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000290",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030664"},
|
||||
"이름": "Nozzle",
|
||||
"단위": "개",
|
||||
"수량": "0.5",
|
||||
@@ -9068,7 +9068,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "310",
|
||||
@@ -9373,7 +9373,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000253",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030642"},
|
||||
"이름": "코크스",
|
||||
"단위": "㎏",
|
||||
"수량": "27",
|
||||
@@ -9710,7 +9710,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000253",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030642"},
|
||||
"이름": "코크스",
|
||||
"단위": "㎏",
|
||||
"수량": "27",
|
||||
@@ -10289,7 +10289,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "모래",
|
||||
"단위": "㎥",
|
||||
"수량": "0.242",
|
||||
@@ -10298,7 +10298,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000290",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030664"},
|
||||
"이름": "Nozzle",
|
||||
"단위": "개",
|
||||
"수량": "0.5",
|
||||
@@ -10316,7 +10316,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000358",
|
||||
"요소": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"수량": "306",
|
||||
@@ -10552,7 +10552,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000293",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030665"},
|
||||
"이름": "세유",
|
||||
"단위": "ℓ",
|
||||
"수량": "3",
|
||||
@@ -10799,7 +10799,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000294",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "대표": "MT030666"},
|
||||
"이름": "전기용접",
|
||||
"단위": "㎏",
|
||||
"수량": "9.77",
|
||||
@@ -10808,7 +10808,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000295",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "대표": "MT030667"},
|
||||
"이름": "탄소봉",
|
||||
"단위": "본",
|
||||
"수량": "3.67",
|
||||
@@ -10836,7 +10836,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000296",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "규격": "12\"ø", "대표": "MT030668"},
|
||||
"이름": "Grinder",
|
||||
"단위": "개",
|
||||
"수량": "0.815",
|
||||
@@ -10845,7 +10845,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000297",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "65×305", "대표": "MT030669"},
|
||||
"이름": "돌",
|
||||
"단위": "매",
|
||||
"수량": "4.9",
|
||||
@@ -10854,7 +10854,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000298",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "규격": "2회", "대표": "MT030670"},
|
||||
"이름": "Film",
|
||||
"단위": "㎏",
|
||||
"수량": "405",
|
||||
@@ -11064,7 +11064,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000299",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "규격": "8ø×350㎜", "대표": "MT030671"},
|
||||
"이름": "탄소봉",
|
||||
"단위": "본",
|
||||
"수량": "6",
|
||||
@@ -11082,7 +11082,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000359",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030704"},
|
||||
"이름": "중유",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.023",
|
||||
@@ -11091,7 +11091,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000301",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030672"},
|
||||
"이름": "노즐",
|
||||
"단위": "개",
|
||||
"수량": "0.38",
|
||||
@@ -11118,7 +11118,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000302",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "대표": "MT030673"},
|
||||
"이름": "탈에폭시레신",
|
||||
"단위": "ℓ",
|
||||
"수량": "2.05",
|
||||
@@ -11318,7 +11318,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000299",
|
||||
"요소": {"구분": "잡재료", "상세구분": "용접·가스", "규격": "8ø×350㎜", "대표": "MT030671"},
|
||||
"이름": "탄소봉",
|
||||
"단위": "본",
|
||||
"수량": "3.53",
|
||||
@@ -11346,7 +11346,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000303",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "12\"ø", "대표": "MT030674"},
|
||||
"이름": "그라인더돌",
|
||||
"단위": "개",
|
||||
"수량": "0.5",
|
||||
@@ -11355,7 +11355,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000304",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "측정·시험기기", "규격": "65×305", "대표": "MT030675"},
|
||||
"이름": "Film",
|
||||
"단위": "매",
|
||||
"수량": "4.8",
|
||||
@@ -11364,7 +11364,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000305",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "대표": "MT030676"},
|
||||
"이름": "Tar epoxy",
|
||||
"단위": "ℓ",
|
||||
"수량": "1.81",
|
||||
@@ -11373,7 +11373,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000306",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "대표": "MT030677"},
|
||||
"이름": "마린B/T(선박도로용)",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.96",
|
||||
@@ -11644,7 +11644,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000359",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030704"},
|
||||
"이름": "중유",
|
||||
"단위": "D/M",
|
||||
"수량": "0.0018",
|
||||
@@ -11653,7 +11653,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000301",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030672"},
|
||||
"이름": "노즐",
|
||||
"단위": "개",
|
||||
"수량": "0.037",
|
||||
@@ -11662,7 +11662,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000308",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "15μ", "대표": "MT030678"},
|
||||
"이름": "Zinc primer",
|
||||
"단위": "㎏",
|
||||
"수량": "0.14",
|
||||
@@ -11671,7 +11671,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000309",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "125μ", "대표": "MT030679"},
|
||||
"이름": "Tar Epoxy",
|
||||
"단위": "㎾h",
|
||||
"수량": "550",
|
||||
@@ -11680,7 +11680,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000303",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "12\"ø", "대표": "MT030674"},
|
||||
"이름": "그라인더돌",
|
||||
"단위": "개",
|
||||
"수량": "0.3",
|
||||
@@ -11903,7 +11903,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000310",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "2회", "대표": "MT030680"},
|
||||
"이름": "Tar Epoxy",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.536",
|
||||
@@ -12565,7 +12565,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000314",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "규격": "1/4\"", "대표": "MT030681"},
|
||||
"이름": "drill",
|
||||
"단위": "개",
|
||||
"수량": "0.96",
|
||||
@@ -12574,7 +12574,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000315",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "규격": "11/15\"", "대표": "MT030682"},
|
||||
"이름": "drill",
|
||||
"단위": "개",
|
||||
"수량": "0.96",
|
||||
@@ -12865,7 +12865,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000359",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030704"},
|
||||
"이름": "중유",
|
||||
"단위": "D/M",
|
||||
"수량": "0.019",
|
||||
@@ -12874,7 +12874,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000301",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030672"},
|
||||
"이름": "노즐",
|
||||
"단위": "개",
|
||||
"수량": "0.4",
|
||||
@@ -12883,7 +12883,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000308",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "15μ", "대표": "MT030678"},
|
||||
"이름": "Zinc primer",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.36",
|
||||
@@ -12892,7 +12892,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000309",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "125μ", "대표": "MT030679"},
|
||||
"이름": "Tar Epoxy",
|
||||
"단위": "㎾h",
|
||||
"수량": "420",
|
||||
@@ -12901,7 +12901,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000303",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "규격": "12\"ø", "대표": "MT030674"},
|
||||
"이름": "그라인더돌",
|
||||
"단위": "개",
|
||||
"수량": "0.33",
|
||||
@@ -13299,7 +13299,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000319",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "규격": "1회도장", "대표": "MT030683"},
|
||||
"이름": "Tar Epoxy",
|
||||
"단위": "ℓ",
|
||||
"수량": "7.06",
|
||||
@@ -18133,7 +18133,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000293",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030665"},
|
||||
"이름": "세유",
|
||||
"단위": "ℓ",
|
||||
"수량": "2",
|
||||
@@ -18142,7 +18142,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000258",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030646"},
|
||||
"이름": "Grease",
|
||||
"단위": "㎏",
|
||||
"수량": "0.2",
|
||||
@@ -18151,7 +18151,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000259",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030647"},
|
||||
"이름": "Machine oil",
|
||||
"단위": "ℓ",
|
||||
"수량": "0.7",
|
||||
@@ -19094,7 +19094,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000293",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030665"},
|
||||
"이름": "세유",
|
||||
"단위": "ℓ",
|
||||
"수량": "(만약(공사 == '기기', 0.73, 만약(공사 == '철골', 0.07, 만약(공사 == '배관', 0.07, 만약(공사 == 'Belt & Conveyor', 0.2, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.73, 만약(공사 == 'Crane 류', 2, 0))))))))",
|
||||
@@ -19103,7 +19103,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000325",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030684"},
|
||||
"이름": "M/C OIL",
|
||||
"단위": "ℓ",
|
||||
"수량": "(만약(공사 == '기기', 0.365, 만약(공사 == '철골', 0.04, 만약(공사 == '배관', 4.6, 만약(공사 == 'Belt & Conveyor', 0.1, 만약(공사 == 'Heater & Tank', 0.02, 만약(공사 == 'Pump & Fan', 0.36, 만약(공사 == 'Crane 류', 0.7, 0))))))))",
|
||||
@@ -19112,7 +19112,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000221",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030634"},
|
||||
"이름": "Wire Brush",
|
||||
"단위": "EA",
|
||||
"수량": "(만약(공사 == '기기', 0.292, 만약(공사 == '철골', 0.15, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.1, 만약(공사 == 'Heater & Tank', 0.1, 만약(공사 == 'Pump & Fan', 0.3, 만약(공사 == 'Crane 류', 0.1, 0))))))))",
|
||||
@@ -19121,7 +19121,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000326",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030685"},
|
||||
"이름": "Grinder Wheel",
|
||||
"단위": "매",
|
||||
"수량": "(만약(공사 == '기기', 0.022, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.02, 만약(공사 == 'Crane 류', 0.05, 0))))))))",
|
||||
@@ -19130,7 +19130,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000327",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030686"},
|
||||
"이름": "Oil Stone",
|
||||
"단위": "개",
|
||||
"수량": "(만약(공사 == '기기', 0.055, 만약(공사 == '철골', 0.02, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.02, 만약(공사 == 'Heater & Tank', 0.02, 만약(공사 == 'Pump & Fan', 0.15, 만약(공사 == 'Crane 류', 0.02, 0))))))))",
|
||||
@@ -19139,7 +19139,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000328",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030687"},
|
||||
"이름": "File",
|
||||
"단위": "개",
|
||||
"수량": "(만약(공사 == '기기', 0.218, 만약(공사 == '철골', 0.2, 만약(공사 == '배관', 0.1, 만약(공사 == 'Belt & Conveyor', 0.1, 만약(공사 == 'Heater & Tank', 0.1, 만약(공사 == 'Pump & Fan', 0.2, 만약(공사 == 'Crane 류', 0.1, 0))))))))",
|
||||
@@ -19157,7 +19157,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000330",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030688"},
|
||||
"이름": "Drill",
|
||||
"단위": "개",
|
||||
"수량": "(만약(공사 == '기기', 0.018, 만약(공사 == '철골', 0.04, 만약(공사 == '배관', 0.02, 만약(공사 == 'Belt & Conveyor', 0.02, 만약(공사 == 'Heater & Tank', 0.02, 만약(공사 == 'Pump & Fan', 0.02, 만약(공사 == 'Crane 류', 0.02, 0))))))))",
|
||||
@@ -19166,7 +19166,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000258",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030646"},
|
||||
"이름": "Grease",
|
||||
"단위": "㎏",
|
||||
"수량": "(만약(공사 == '기기', 0.175, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.02, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.2, 만약(공사 == 'Crane 류', 0.2, 0))))))))",
|
||||
@@ -19220,7 +19220,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000334",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030689"},
|
||||
"이름": "Compound",
|
||||
"단위": "㎏",
|
||||
"수량": "(만약(공사 == '기기', 0.073, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.07, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.073, 만약(공사 == 'Crane 류', 0.05, 0))))))))",
|
||||
@@ -19229,7 +19229,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000335",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030690"},
|
||||
"이름": "3-Bond",
|
||||
"단위": "㎏",
|
||||
"수량": "(만약(공사 == '기기', 0.007, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.07, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.07, 만약(공사 == 'Crane 류', 0.05, 0))))))))",
|
||||
@@ -19238,7 +19238,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000336",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030691"},
|
||||
"이름": "Seal Tape",
|
||||
"단위": "통",
|
||||
"수량": "(만약(공사 == '기기', 0.1, 만약(공사 == '철골', 0.1, 만약(공사 == '배관', 0.87, 만약(공사 == 'Belt & Conveyor', 0.1, 만약(공사 == 'Heater & Tank', 0.1, 만약(공사 == 'Pump & Fan', 0.1, 만약(공사 == 'Crane 류', 0.1, 0))))))))",
|
||||
@@ -19247,7 +19247,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000337",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030692"},
|
||||
"이름": "백묵",
|
||||
"단위": "통",
|
||||
"수량": "(만약(공사 == '기기', 0.1, 만약(공사 == '철골', 0.2, 만약(공사 == '배관', 0.1, 만약(공사 == 'Belt & Conveyor', 0.15, 만약(공사 == 'Heater & Tank', 0.15, 만약(공사 == 'Pump & Fan', 0.15, 만약(공사 == 'Crane 류', 0.15, 0))))))))",
|
||||
@@ -19256,7 +19256,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000338",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030693"},
|
||||
"이름": "석필",
|
||||
"단위": "통",
|
||||
"수량": "(만약(공사 == '기기', 0.2, 만약(공사 == '철골', 0.3, 만약(공사 == '배관', 0.2, 만약(공사 == 'Belt & Conveyor', 0.2, 만약(공사 == 'Heater & Tank', 0.2, 만약(공사 == 'Pump & Fan', 0.2, 만약(공사 == 'Crane 류', 0.2, 0))))))))",
|
||||
@@ -19278,7 +19278,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000340",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030694"},
|
||||
"이름": "흑 Welder Glass",
|
||||
"단위": "연",
|
||||
"수량": "(만약(공사 == '기기', 0.01, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.01, 만약(공사 == 'Belt & Conveyor', 0.01, 만약(공사 == 'Heater & Tank', 0.01, 만약(공사 == 'Pump & Fan', 0.01, 만약(공사 == 'Crane 류', 0.01, 0))))))))",
|
||||
@@ -19287,7 +19287,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000341",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030695"},
|
||||
"이름": "백 Welder Glass",
|
||||
"단위": "연",
|
||||
"수량": "(만약(공사 == '기기', 0.1, 만약(공사 == '철골', 0.2, 만약(공사 == '배관', 0.1, 만약(공사 == 'Belt & Conveyor', 0.2, 만약(공사 == 'Heater & Tank', 0.2, 만약(공사 == 'Pump & Fan', 0.1, 만약(공사 == 'Crane 류', 0.2, 0))))))))",
|
||||
@@ -19296,7 +19296,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000342",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030696"},
|
||||
"이름": "오스터날",
|
||||
"단위": "SET",
|
||||
"수량": "(만약(공사 == '기기', 0.05, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.3, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.05, 만약(공사 == 'Crane 류', 0.05, 0))))))))",
|
||||
@@ -19305,7 +19305,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000343",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030697"},
|
||||
"이름": "탭",
|
||||
"단위": "SET",
|
||||
"수량": "(만약(공사 == '기기', 0.05, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.05, 만약(공사 == 'Crane 류', 0.05, 0))))))))",
|
||||
@@ -19314,7 +19314,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000344",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030698"},
|
||||
"이름": "다이스",
|
||||
"단위": "개",
|
||||
"수량": "(만약(공사 == '기기', 0.05, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.05, 만약(공사 == 'Crane 류', 0.05, 0))))))))",
|
||||
@@ -19323,7 +19323,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000345",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030699"},
|
||||
"이름": "정",
|
||||
"단위": "개",
|
||||
"수량": "(만약(공사 == '기기', 0.1, 만약(공사 == '철골', 0.2, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.1, 만약(공사 == 'Crane 류', 0.05, 0))))))))",
|
||||
@@ -19359,7 +19359,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000349",
|
||||
"요소": {"구분": "기계·설비", "상세구분": "기계류", "대표": "MT030700"},
|
||||
"이름": "Center Punch",
|
||||
"단위": "개",
|
||||
"수량": "(만약(공사 == '기기', 0.02, 만약(공사 == '철골', 0.02, 만약(공사 == '배관', 0.02, 만약(공사 == 'Belt & Conveyor', 0.02, 만약(공사 == 'Heater & Tank', 0.02, 만약(공사 == 'Pump & Fan', 0.02, 만약(공사 == 'Crane 류', 0.02, 0))))))))",
|
||||
@@ -19377,7 +19377,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000351",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030701"},
|
||||
"이름": "대강",
|
||||
"단위": "㎏",
|
||||
"수량": "(만약(공사 == '기기', 0.02, 만약(공사 == '철골', 0.1, 만약(공사 == '배관', 0.02, 만약(공사 == 'Belt & Conveyor', 0.1, 만약(공사 == 'Heater & Tank', 0.1, 만약(공사 == 'Pump & Fan', 0.02, 만약(공사 == 'Crane 류', 0.1, 0))))))))",
|
||||
@@ -19386,7 +19386,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000352",
|
||||
"요소": {"구분": "잡재료", "상세구분": "소모품", "대표": "MT030702"},
|
||||
"이름": "유지",
|
||||
"단위": "ℓ",
|
||||
"수량": "(만약(공사 == '기기', 0.07, 만약(공사 == '철골', 0.1, 만약(공사 == '배관', 0.07, 만약(공사 == 'Belt & Conveyor', 0.07, 만약(공사 == 'Heater & Tank', 0.07, 만약(공사 == 'Pump & Fan', 0.07, 만약(공사 == 'Crane 류', 0.07, 0))))))))",
|
||||
@@ -19395,7 +19395,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000353",
|
||||
"요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "대표": "MT030703"},
|
||||
"이름": "Washer",
|
||||
"단위": "매",
|
||||
"수량": "(만약(공사 == '기기', 0.3, 만약(공사 == '철골', 0.5, 만약(공사 == '배관', 0.3, 만약(공사 == 'Belt & Conveyor', 0.3, 만약(공사 == 'Heater & Tank', 0.3, 만약(공사 == 'Pump & Fan', 0.3, 만약(공사 == 'Crane 류', 0.3, 0))))))))",
|
||||
|
||||
@@ -287,7 +287,7 @@
|
||||
{ "종류": "재료", "요소": "MO:휘발유:{지역}", "이름": "휘발유(양수기)", "단위": "ℓ", "수량": "휘발유", "비목": "재료비", "출처": "산림품셈 2-1-8" },
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000070",
|
||||
"요소": {"구분": "안전시설", "상세구분": "표지판·지주", "대표": "MT030609"},
|
||||
"이름": "깃발",
|
||||
"단위": "개",
|
||||
"수량": "찾기(QF000016, 구분='깃발').수량 / 찾기(CF000090, 구분='1일 살포면적 소형헬기').적용",
|
||||
|
||||
@@ -2081,11 +2081,12 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP:VR관 ∅{관경}㎜",
|
||||
"요소": {"구분": "관·이음관", "상세구분": "PVC관", "규격": "D={관경}mm"},
|
||||
"이름": "VR관",
|
||||
"단위": "m",
|
||||
"수량": "찾기(QF000370, 구분='VR관', 관경=관경).적용",
|
||||
"비목": "재료비"
|
||||
"단위": "본",
|
||||
"수량": "찾기(QF000370, 구분='VR관', 관경=관경).적용 / 2.5",
|
||||
"비목": "재료비",
|
||||
"비고": "본↔m — 1본 = 2.5m(PLAN 7-4b · 자재품목 VR관 비고에 출처)"
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
@@ -2097,7 +2098,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000038",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "대표": "MT030601"},
|
||||
"이름": "지수활제",
|
||||
"단위": "g",
|
||||
"수량": "찾기(QF000370, 구분='지수활제', 관경=관경).적용",
|
||||
@@ -2484,7 +2485,12 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP:커플링밴드 ∅{관경}㎜",
|
||||
"요소": {
|
||||
"구분": "관·이음관",
|
||||
"상세구분": "파형강관",
|
||||
"이름": "파형강관 커플링밴드(관급)",
|
||||
"규격": "Φ{관경}mm"
|
||||
},
|
||||
"이름": "커플링밴드",
|
||||
"단위": "EA",
|
||||
"수량": "만약(커플링밴드 == '필요', 1 / 6, 0)",
|
||||
@@ -2493,7 +2499,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "모래부설(또는 양질토사)",
|
||||
"단위": "㎥",
|
||||
"수량": "모래량",
|
||||
@@ -3390,7 +3396,7 @@
|
||||
"덧줄": [
|
||||
{
|
||||
"이름": "집수정 뚜껑 설치비",
|
||||
"식": "뚜껑수 * MP000040 * 5 / 100",
|
||||
"식": "뚜껑수 * MT030712 * 5 / 100",
|
||||
"비목": "노무비",
|
||||
"출처": "산림품셈 12-15"
|
||||
}
|
||||
@@ -3721,7 +3727,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000012",
|
||||
"요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "규격": "∅19㎜ 아연도금 및 스테인레스", "대표": "MT030600"},
|
||||
"이름": "사다리(∅19㎜ 아연도금 및 스테인레스)",
|
||||
"단위": "ton",
|
||||
"수량": "사다리량",
|
||||
@@ -3938,7 +3944,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000004",
|
||||
"요소": {"이름": "모래", "규격": "", "지역": "입력"},
|
||||
"이름": "모래",
|
||||
"단위": "㎥",
|
||||
"수량": "찾기(QF000385, 배합비=배합비).모래",
|
||||
@@ -3946,7 +3952,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000006",
|
||||
"요소": {"이름": "자갈", "규격": "", "지역": "입력"},
|
||||
"이름": "자갈",
|
||||
"단위": "㎥",
|
||||
"수량": "찾기(QF000385, 배합비=배합비).자갈",
|
||||
@@ -4867,7 +4873,7 @@
|
||||
"호표": [
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000048",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "대표": "MT030602"},
|
||||
"이름": "JOINT FILLER",
|
||||
"단위": "㎡",
|
||||
"수량": "찾기(QF000400, 구분='자재 - JOINT FILLER').적용",
|
||||
@@ -4979,7 +4985,7 @@
|
||||
"호표": [
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000052",
|
||||
"요소": {"구분": "시멘트·골재", "상세구분": "모르타르", "대표": "MT030603"},
|
||||
"이름": "스페이셔(몰탈 블록)",
|
||||
"단위": "",
|
||||
"수량": "수량",
|
||||
@@ -5147,7 +5153,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000055",
|
||||
"요소": {"구분": "단열·보온", "상세구분": "단열재", "규격": "T=20㎜", "대표": "MT030604"},
|
||||
"이름": "스티로폴(T=20㎜)",
|
||||
"단위": "㎡",
|
||||
"수량": "스티로폴면적",
|
||||
@@ -5155,7 +5161,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000056",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "규격": "T=15㎜", "대표": "MT030605"},
|
||||
"이름": "TAR PAPER(T=15㎜)",
|
||||
"단위": "㎡",
|
||||
"수량": "타르페이퍼면적",
|
||||
@@ -5163,7 +5169,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000057",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "대표": "MT030606"},
|
||||
"이름": "채움재(아스팔트)",
|
||||
"단위": "㎥",
|
||||
"수량": "찾기(QF000405, 구분='재료 - 채움재(아스팔트)').적용",
|
||||
@@ -5447,7 +5453,7 @@
|
||||
"호표": [
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000048",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "대표": "MT030602"},
|
||||
"이름": "JOINT FILLER(T=20㎜)",
|
||||
"단위": "㎡",
|
||||
"수량": "1",
|
||||
@@ -5473,7 +5479,7 @@
|
||||
"호표": [
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000060",
|
||||
"요소": {"구분": "도료·방수·접착", "상세구분": "도료", "대표": "MT030607"},
|
||||
"이름": "하드너",
|
||||
"단위": "",
|
||||
"수량": "하드너량",
|
||||
|
||||
@@ -792,7 +792,7 @@
|
||||
},
|
||||
{
|
||||
"종류": "재료",
|
||||
"요소": "MP000065",
|
||||
"요소": {"구분": "석재", "상세구분": "조경석·자연석", "대표": "MT030608"},
|
||||
"이름": "틈메우기돌",
|
||||
"단위": "㎥",
|
||||
"수량": "찾기(QF000432, 뒷길이=뒷길이, 종별=만약(돌 == '조약돌 및 야면석' 또는 돌 == '호박돌 및 야면석', '야면석', 돌)).소요량 * 틈메우기율 / 100",
|
||||
@@ -1710,7 +1710,7 @@
|
||||
"덧줄": [
|
||||
{
|
||||
"이름": "잡재료",
|
||||
"식": "찾기(QF000460, 구분='자재', 명칭='철망태').수량 * MP000066 * 찾기(QF000460, 구분='자재', 명칭='잡재료').수량 / 100",
|
||||
"식": "찾기(QF000460, 구분='자재', 명칭='철망태').수량 * MT004110 * 찾기(QF000460, 구분='자재', 명칭='잡재료').수량 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "산림품셈 13-11-4"
|
||||
}
|
||||
|
||||
@@ -30722,6 +30722,15 @@
|
||||
{ "키": "MT030706", "구분": "시멘트·골재", "상세구분": "골재", "이름": "모래(건조상태·전국)", "규격": "건조상태", "단위": "kg", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000003 · 산림품셈 12-1-3 주⑤", "비고": "품셈재료에서 옮김 · 값 미확보 · 전국 대표 값 자리(지역 갈림은 아래 줄)", "면수": null },
|
||||
{ "키": "MT030707", "구분": "시멘트·골재", "상세구분": "골재", "이름": "모래(건조상태·지역별)", "규격": "건조상태", "단위": "kg", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000003 · 산림품셈 12-1-3 주⑤", "비고": "품셈재료에서 옮김 · 값 미확보 · 지역마다 값이 다름 — 필요한 지역마다 관리자가 줄을 더 만들어야 함", "면수": null },
|
||||
{ "키": "MT030708", "구분": "시멘트·골재", "상세구분": "골재", "이름": "자갈(건조상태·전국)", "규격": "", "단위": "kg", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000005 · 산림품셈 12-1-3 주⑤", "비고": "품셈재료에서 옮김 · 값 미확보 · 전국 대표 값 자리(지역 갈림은 아래 줄)", "면수": null },
|
||||
{ "키": "MT030709", "구분": "시멘트·골재", "상세구분": "골재", "이름": "자갈(건조상태·지역별)", "규격": "", "단위": "kg", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000005 · 산림품셈 12-1-3 주⑤", "비고": "품셈재료에서 옮김 · 값 미확보 · 지역마다 값이 다름 — 필요한 지역마다 관리자가 줄을 더 만들어야 함", "면수": null }
|
||||
{ "키": "MT030709", "구분": "시멘트·골재", "상세구분": "골재", "이름": "자갈(건조상태·지역별)", "규격": "", "단위": "kg", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000005 · 산림품셈 12-1-3 주⑤", "비고": "품셈재료에서 옮김 · 값 미확보 · 지역마다 값이 다름 — 필요한 지역마다 관리자가 줄을 더 만들어야 함", "면수": null },
|
||||
{ "키": "MT030710", "구분": "기계·설비", "상세구분": "보일러·공조", "이름": "버너", "규격": "압접가열용", "단위": "개", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000209 · 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)", "비고": "PLAN 7-4b: 자재품목 후보 1줄(MT009352 개장로용 가스버너, 915만원)은 산업용 화덕이라 다른 물건 — 못 이어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030711", "구분": "전기·통신", "상세구분": "판넬·차단기", "이름": "퓨즈", "규격": "테르밋 용접용", "단위": "개", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000214 · 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)", "비고": "PLAN 7-4b: 자재품목 후보 다섯(전선퓨즈·통형퓨즈·고리퓨즈)이 모두 전기용이라 다른 물건 — 못 이어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030712", "구분": "맨홀·수로·그레이팅", "상세구분": "맨홀", "이름": "집수정 뚜껑", "규격": "스틸그레이팅", "단위": "개", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000040 · 산림품셈 12-15", "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목에 짝 없어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030713", "구분": "관·이음관", "상세구분": "강관", "이름": "쉬즈관", "규격": "", "단위": "m", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000094 · 건설품셈 공통 6-4-1 주④; 건설품셈 공통 6-4-2 주④", "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목에 짝 없어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030714", "구분": "전기·통신", "상세구분": "케이블·전선", "이름": "IV전선", "규격": "2.0㎜", "단위": "m", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000202 · 건설품셈 토목 6-7-5 강관압입추진공 조명시설", "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목은 ㎟ 단면(지름 아님)이라 짝 없어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030715", "구분": "잡재료", "상세구분": "소모품", "이름": "바퀴숫돌", "규격": "단면용 A36m B11호 A150×8×22 KSL 6501", "단위": "개", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000205 · 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)", "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목에 짝 없어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030716", "구분": "잡재료", "상세구분": "소모품", "이름": "바퀴숫돌", "규격": "측면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000206 · 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)", "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목에 짝 없어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030717", "구분": "잡재료", "상세구분": "소모품", "이름": "바퀴숫돌", "규격": "평면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000207 · 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)", "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목에 짝 없어 새 줄 · 값 미확보", "면수": null },
|
||||
{ "키": "MT030718", "구분": "잡재료", "상세구분": "소모품", "이름": "바퀴숫돌", "규격": "최종용 A24 QWV 5호 A205×22×22", "단위": "개", "물가자료": null, "유통물가": null, "물가정보": null, "거래가격": null, "관급": null, "출처": "품셈재료 MP000208 · 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료)", "비고": "PLAN 7-4b: 덧줄 식에 박힌 재료 — 자재품목에 짝 없어 새 줄 · 값 미확보", "면수": null }
|
||||
]
|
||||
}
|
||||
|
||||
+8
-19
@@ -1,8 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""독립 기슭막이 치수 한 벌 — B05 칸 밑 근거와 B08 사유가 **같은 파일**을 읽음 (2026-09-14 브레인 판정).
|
||||
"""독립 기슭막이 치수 — B05 칸 밑 근거가 표(`resources/data_masonry/revetment_sabang_*.json`)를 읽음.
|
||||
|
||||
한 자리 = `resources/data_masonry/수량_사방기슭막이치수_*.json`. TS 는 판 이름을 import 로 박으므로 판이
|
||||
바뀌면 import 도 옮겨야 함 — 여기서 최신 판과 대조. 쪽·줄 번호가 사유에 그대로 실리는지도 봄.
|
||||
2026-09-22 sub1: B08 쪽 사유 대조(`B08_Quantity_Engine_Pipe.own_revetment_basis` 등)는 B08 이
|
||||
`old_code/` 로 끊기며 같이 죽었음 — 그 대조 시험은 빼고, **B05 몫**(TS 가 최신판을 읽는지 ·
|
||||
그 판이 쓰는 칸이 실제로 있는지 · 높이 칸이 제안 없이 설계자 입력인지)만 되살림.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -16,12 +17,7 @@ ROOT = Path(__file__).resolve().parents[2]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from B08_Quantity.B08_Quantity_Engine_Pipe import ( # noqa: E402
|
||||
own_height_unconfirmed,
|
||||
own_revetment_basis,
|
||||
)
|
||||
|
||||
DATA_DIR = ROOT / "resources" / "master_data" / "ref"
|
||||
DATA_DIR = ROOT / "resources" / "data_masonry"
|
||||
FIELDS = (ROOT / "B05_Profile" / "B05_Profile_UI_Drainage_Facility_Fields.ts").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
@@ -29,13 +25,13 @@ CHROME = (ROOT / "B06_Section" / "B06_Section_UI_Cross_Card_Chrome.ts").read_tex
|
||||
|
||||
|
||||
def test_TS_가_최신_판을_읽는다() -> None:
|
||||
latest = sorted(DATA_DIR.glob("수량_사방기슭막이치수_*.json"))[-1].name
|
||||
imported = re.search(r'from "\.\./resources/master_data/ref/(수량_사방기슭막이치수_[^"]+)"', FIELDS)
|
||||
latest = sorted(DATA_DIR.glob("revetment_sabang_*.json"))[-1].name
|
||||
imported = re.search(r'from "\.\./resources/data_masonry/(revetment_sabang_[^"]+)"', FIELDS)
|
||||
assert imported and imported.group(1) == latest
|
||||
|
||||
|
||||
def test_TS_가_쓰는_칸이_파일에_있다() -> None:
|
||||
latest = sorted(DATA_DIR.glob("수량_사방기슭막이치수_*.json"))[-1]
|
||||
latest = sorted(DATA_DIR.glob("revetment_sabang_*.json"))[-1]
|
||||
data = json.loads(latest.read_text(encoding="utf-8"))
|
||||
items = data["items"]
|
||||
assert data["scope"] and "사방(계류) 교본 기준" in data["scope"]
|
||||
@@ -45,13 +41,6 @@ def test_TS_가_쓰는_칸이_파일에_있다() -> None:
|
||||
assert "L7164" in items["backfill_pebble"]["source"]
|
||||
|
||||
|
||||
def test_B08_사유가_같은_근거를_쪽_줄_번호로() -> None:
|
||||
basis = own_revetment_basis()
|
||||
for ref in ("2-나:141", "3-가:181", "2-나:129", "3-가:151", "2-나:143", "L7164~7171"):
|
||||
assert ref in basis, ref
|
||||
assert "2-나:141" in own_height_unconfirmed()
|
||||
|
||||
|
||||
def test_B05_높이_칸은_제안_없이_설계자_입력() -> None:
|
||||
assert 'height: "",' in FIELDS and '"설계자 입력"' in FIELDS
|
||||
assert "기슭막이 높이 없음 — 근입만 그림" in CHROME
|
||||
@@ -0,0 +1,40 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""B06 벽 전면 기울기도 **품셈 표준경사 표**를 읽음 — B5 (2026-09-14 브레인 판정 「양쪽 다 이 표를」).
|
||||
|
||||
2026-09-22 sub1: B08 쪽 파이썬 대조(`B08_Quantity_Engine_UnitQuantity_StoneSpec`)는 B08 이
|
||||
`old_code/` 로 끊기며 같이 죽었음 — 그 대조 시험은 빼고, **B06 몫**(표 경로가 최신판인지 ·
|
||||
벽 모양이 붙박이 기울기를 더는 안 곱하는지)만 되살림.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
DATA_DIR = ROOT / "resources" / "data_masonry"
|
||||
|
||||
GEOMETRY = [
|
||||
"B06_Section_UI_Cross_Culvert_Geom.ts",
|
||||
"B06_Section_UI_Cross_Wall.ts",
|
||||
"B06_Section_UI_Cross_Culvert_Extra.ts",
|
||||
"B06_Section_UI_Cross_Culvert_Solve.ts",
|
||||
]
|
||||
|
||||
|
||||
def test_횡단도가_최신_표준경사_판을_읽는다() -> None:
|
||||
const = (ROOT / "B06_Section" / "B06_Section_UI_Cross_Lean.ts").read_text(encoding="utf-8")
|
||||
latest = sorted(DATA_DIR.glob("masonry_slope_*.json"))[-1].name
|
||||
imported = re.search(r'from "\.\./resources/data_masonry/(masonry_slope_[^"]+)"', const)
|
||||
assert imported and imported.group(1) == latest
|
||||
|
||||
|
||||
def test_벽_모양이_붙박이_기울기를_안_곱한다() -> None:
|
||||
"""벽 모양 파일마다 `REVET_LEAN_RATIO *` 곱이 남아 있으면 그 벽은 아직 1:0.3 붙박이."""
|
||||
for name in GEOMETRY:
|
||||
source = (ROOT / "B06_Section" / name).read_text(encoding="utf-8")
|
||||
assert not re.search(r"REVET_LEAN_RATIO\s*[*/]", source), name
|
||||
@@ -369,12 +369,6 @@ def test_구분_목록(client: TestClient) -> None:
|
||||
assert steel["details"]
|
||||
|
||||
|
||||
def test_못_이은_줄만_거름(client: TestClient) -> None:
|
||||
every = _get(client, "/api/m01/rows", file="재료_품셈재료.json", size=500)
|
||||
cut = _get(client, "/api/m01/rows", file="재료_품셈재료.json", size=500, unlinked=1)
|
||||
assert 0 < cut["total"] < every["total"] and not any(r["연결"] for r in cut["rows"])
|
||||
|
||||
|
||||
def test_재료_고르기_줄_단가는_대표_자재품목의_낮은_값(client: TestClient) -> None:
|
||||
"""옛 「MP:시멘트」 줄이 고르기 조건+대표로 바뀜 — 값은 대표 자재품목 줄의 낮은 값."""
|
||||
one = _get(client, "/api/m01/logic", key=key_of("GC000628"))
|
||||
@@ -384,11 +378,17 @@ def test_재료_고르기_줄_단가는_대표_자재품목의_낮은_값(client
|
||||
|
||||
|
||||
def test_전력은_계약종별을_골라야_값이_섬(client: TestClient) -> None:
|
||||
"""후보 조건 「계약종별: 입력」 — 화면에선 값 없음 · 계산 때 로직 입력으로 정해짐."""
|
||||
"""후보 조건 「계약종별: 입력」(PLAN 7-4b 뒤 절반 — 품셈재료 간접 없이 호표에 바로 박음) —
|
||||
계산은 로직 입력으로 값이 섬(mf.element 로 직접 확인). 화면 단가 미리보기(_pick_brief)는
|
||||
구분·상세구분 자리로만 후보를 찾아 지역·계약종별 조건은 아직 못 다뤄 None — 아는 구멍."""
|
||||
one = _get(client, "/api/m01/logic", key=key_of("GC000893"))
|
||||
power = one["prices"][key_of("MP:전력")]
|
||||
assert power["값"] is None and power["출처"] is None
|
||||
cond = {"이름": "전력량요금", "계약종별": "입력"}
|
||||
assert one["prices"][store.cm.mf.cond_text(cond)] is None
|
||||
assert "전력 계약종별" in {x["이름"] for x in one["logic"]["입력"]}
|
||||
with pytest.raises(store.cm.mf.FormulaError, match="전력 계약종별"):
|
||||
store.cm.mf.element(store.cm.master(), cond, {})
|
||||
value, source = store.cm.mf.element(store.cm.master(), cond, {"전력 계약종별": "주택용 저압"})
|
||||
assert value is not None and source
|
||||
|
||||
|
||||
def test_하위_거름과_참조_이름(client: TestClient) -> None:
|
||||
@@ -400,9 +400,8 @@ def test_하위_거름과_참조_이름(client: TestClient) -> None:
|
||||
assert {r["상세구분"] for r in field["rows"]} == {"기능계 도화"}
|
||||
machine = _get(client, "/api/m01/rows", file="기계.json", size=500, sub="산림품셈")
|
||||
assert 0 < machine["total"] < 100 and {r["원문"] for r in machine["rows"]} == {"산림품셈"}
|
||||
linked = _get(client, "/api/m01/rows", file="재료_품셈재료.json", size=500)
|
||||
keyed = [r for r in linked["rows"] if isinstance(r["연결"], str)]
|
||||
assert keyed and all(linked["refs"][r["연결"]] for r in keyed)
|
||||
# 참조 이름(refs) 확인은 예전에 재료_품셈재료.json 「연결」로 했음 — PLAN 7-4b 뒤 절반이
|
||||
# 그 파일을 old/ 로 옮겨(살아 있는 마스터 밖) 이 자리에서는 더 못 봄
|
||||
|
||||
|
||||
def test_자재품목_저장은_띄어쓰기를_안_바꿈(client: TestClient) -> None:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
"""마스터 데이터 검사 도구 — 견본 셋 손 계산 · 견본 파일 검사 통과 (`resources/master_data/scripts/check_master.py`)."""
|
||||
|
||||
import json
|
||||
import sys
|
||||
from decimal import ROUND_HALF_UP, Decimal
|
||||
from pathlib import Path
|
||||
@@ -432,8 +433,6 @@ def test_토목_보링_심도_가산():
|
||||
files["재료_자재품목.json"]["줄"].append(
|
||||
{"키": "MT999999", "원문번호": "가짜", "물가자료": Decimal(1000)}
|
||||
)
|
||||
for row in files["재료_품셈재료.json"]["줄"]:
|
||||
row["연결"] = row["연결"] or "MT999999" # 못 이은 재료 — 시험용 가짜 연결
|
||||
given = {"층": "점토층", "규격": "BX", "깊이": 35, "심도가산율": 5}
|
||||
got = mf.run(mf.Master(files), "GC000431", given)
|
||||
qty = {x["이름"]: x["수량"] for x in got["줄"]}
|
||||
@@ -695,20 +694,49 @@ def test_노임_갈래_파일_원문_대조():
|
||||
|
||||
|
||||
def test_품셈재료_연결_낮은_값과_출처(whole):
|
||||
"""연결 하나 — 값 열 다섯 가운데 낮은 값 · 출처 = 「<키>.<열>」."""
|
||||
"""연결 하나 — 값 열 다섯 가운데 낮은 값 · 출처 = 「<키>.<열>」.
|
||||
재료_품셈재료.json 은 PLAN 7-4b 뒤 절반이 old/ 로 옮겨 살아 있는 마스터엔 없음 —
|
||||
element() 의 옛길(품셈재료 간접)이 여전히 도는지 자체 마스터로 확인."""
|
||||
row = whole.get("MT004176") # 시멘트
|
||||
low = min(row[s] for s in mm.SLOTS if row.get(s) is not None)
|
||||
value, source = mf.element(whole, "MP:시멘트", {})
|
||||
files = cm.load(["재료_자재품목.json"]) | {
|
||||
"재료_품셈재료.json": {
|
||||
"그룹": "재료",
|
||||
"원문": "품셈재료",
|
||||
"줄": [{"키": "MP900001", "이름": "시멘트", "단위": "kg", "연결": "MT004176"}],
|
||||
}
|
||||
}
|
||||
value, source = mf.element(mf.Master(files), "MP900001", {})
|
||||
assert value == low and source.split(".")[0] == row["키"]
|
||||
|
||||
|
||||
def test_전력은_계약종별로_고름(whole):
|
||||
"""전력은 자재품목이 아니라 유가전력 줄 — 계약종별은 로직 입력 · 그 안에서 낮은 값."""
|
||||
"""전력은 자재품목이 아니라 유가전력 줄 — 계약종별은 로직 입력 · 그 안에서 낮은 값.
|
||||
옛길(품셈재료 연결이 계약종별 조건 묶음)로도 여전히 도는지 자체 마스터로 확인."""
|
||||
assert whole.index["MT"].get("MT000006") is None # 자재품목 전력 2줄 뺌
|
||||
files = cm.load(["재료_유가전력.json"]) | {
|
||||
"재료_품셈재료.json": {
|
||||
"그룹": "재료",
|
||||
"원문": "품셈재료",
|
||||
"줄": [
|
||||
{
|
||||
"키": "MP900002",
|
||||
"이름": "전력",
|
||||
"단위": "㎾h",
|
||||
"연결": {"이름": "전력량요금", "계약종별": "입력"},
|
||||
}
|
||||
],
|
||||
}
|
||||
}
|
||||
linked = mf.Master(files)
|
||||
with pytest.raises(mf.FormulaError): # 계약종별 없이는 값이 안 섬
|
||||
mf.element(whole, "MP:전력", {})
|
||||
value, source = mf.element(whole, "MP:전력", {mf.TARIFF: "주택용 저압"})
|
||||
mf.element(linked, "MP900002", {})
|
||||
value, source = mf.element(linked, "MP900002", {mf.TARIFF: "주택용 저압"})
|
||||
assert value == 120 and source == "MO000058.값"
|
||||
# PLAN 7-4b 뒤 절반 — 호표에 조건 묶음을 바로 박아도 같은 길(품셈재료 간접 없이)
|
||||
cond = {"이름": "전력량요금", "계약종별": "입력"}
|
||||
value2, source2 = mf.element(whole, cond, {mf.TARIFF: "주택용 저압"})
|
||||
assert value2 == value and source2 == source
|
||||
|
||||
|
||||
def test_자재품목_열_한_벌():
|
||||
@@ -735,15 +763,31 @@ def test_자재품목_열_한_벌():
|
||||
|
||||
|
||||
def test_품셈재료_자재지역_후보(whole):
|
||||
"""지역 재료 — 입력 없음 · 그 지역 줄 없음 · 규격 여럿은 멈춤 · 하나면 낮은 값."""
|
||||
"""지역 재료 — 입력 없음 · 그 지역 줄 없음 · 규격 여럿은 멈춤 · 하나면 낮은 값.
|
||||
옛길(품셈재료 연결이 지역 조건 묶음)로도 여전히 도는지 자체 마스터로 확인."""
|
||||
files = cm.load(["재료_자재품목.json"]) | {
|
||||
"재료_품셈재료.json": {
|
||||
"그룹": "재료",
|
||||
"원문": "품셈재료",
|
||||
"줄": [
|
||||
{"키": "MP900003", "이름": "모래", "단위": "㎥", "연결": {"이름": "모래", "규격": "", "지역": "입력"}},
|
||||
{"키": "MP900004", "이름": "레미콘", "단위": "㎥", "연결": {"이름": "레미콘", "규격": "", "지역": "입력"}},
|
||||
],
|
||||
}
|
||||
}
|
||||
linked = mf.Master(files)
|
||||
with pytest.raises(mf.FormulaError, match="입력 「자재지역」 없음"):
|
||||
mf.element(whole, "MP:모래", {})
|
||||
mf.element(linked, "MP900003", {})
|
||||
with pytest.raises(mf.FormulaError, match="지역 값 없음"):
|
||||
mf.element(whole, "MP:모래", {"자재지역": "울진"})
|
||||
mf.element(linked, "MP900003", {"자재지역": "울진"})
|
||||
with pytest.raises(mf.FormulaError, match="후보 여럿"):
|
||||
mf.element(whole, "MP:레미콘", {"자재지역": "울진"})
|
||||
value, source = mf.element(whole, "MP:모래", {"자재지역": "수원"})
|
||||
mf.element(linked, "MP900004", {"자재지역": "울진"})
|
||||
value, source = mf.element(linked, "MP900003", {"자재지역": "수원"})
|
||||
assert source.startswith("MT") and value > 0
|
||||
# PLAN 7-4b 뒤 절반 — 호표에 조건 묶음을 바로 박아도 같은 길(품셈재료 간접 없이)
|
||||
cond = {"이름": "모래", "규격": "", "지역": "입력"}
|
||||
value2, source2 = mf.element(whole, cond, {"자재지역": "수원"}, "㎥")
|
||||
assert value2 == value and source2 == source
|
||||
|
||||
|
||||
# ── 재료 고르기 조건 (`_틀.md` 7장) ────────────────────────────────────
|
||||
@@ -824,6 +868,40 @@ def test_재료_고르기_조건이_후보를_좁힘():
|
||||
assert mm.candidates(whole, {"구분": "없는구분"}) == []
|
||||
|
||||
|
||||
def test_재료_고르기_이름_조건이_같은_규격_다른_품명을_가름():
|
||||
"""일감35 — 규격(관경)만 같고 품명이 다른 줄(커플링밴드 vs 접속티)이 이름 칸으로 갈림."""
|
||||
files = {
|
||||
"재료_자재품목.json": {
|
||||
"줄": [
|
||||
{
|
||||
"키": "MT900010",
|
||||
"구분": "관·이음관",
|
||||
"상세구분": "파형강관",
|
||||
"이름": "파형강관 커플링밴드(관급)",
|
||||
"규격": "Φ800mm",
|
||||
"단위": "개",
|
||||
"물가자료": None,
|
||||
"관급": Decimal(19030),
|
||||
},
|
||||
{
|
||||
"키": "MT900011",
|
||||
"구분": "관·이음관",
|
||||
"상세구분": "파형강관",
|
||||
"이름": "파형강관이음관(관급)-거양",
|
||||
"규격": "접속티, Φ800mm, 아연도금",
|
||||
"단위": "개",
|
||||
"물가자료": None,
|
||||
"관급": Decimal(216770),
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
whole = mf.Master(files)
|
||||
cond = {"구분": "관·이음관", "상세구분": "파형강관", "규격": "Φ800mm"}
|
||||
assert sorted(mm.candidates(whole, cond)) == ["MT900010", "MT900011"] # 이름 없으면 둘 다 걸림
|
||||
assert mm.candidates(whole, {**cond, "이름": "파형강관 커플링밴드(관급)"}) == ["MT900010"]
|
||||
|
||||
|
||||
def test_재료_고르기_시험계산은_대표_줄_없으면_값_있는_첫_줄():
|
||||
whole = _pipes()
|
||||
cond = {"구분": "관·수로", "상세구분": "흄관", "규격": "D300"}
|
||||
@@ -917,17 +995,25 @@ def test_품셈재료_고르기_칸_검사():
|
||||
|
||||
def test_고르기_조건_글자_열쇠():
|
||||
"""화면 단가 미리보기가 조건 줄을 찾는 이름 — 빈 칸은 빈 글자."""
|
||||
assert mm.cond_text({"구분": "관·수로", "상세구분": "흄관"}) == "관·수로|흄관||"
|
||||
assert mm.cond_text({"구분": "레미콘", "대표": "MT900002"}) == "레미콘|||MT900002"
|
||||
assert mm.cond_text({"구분": "관·수로", "상세구분": "흄관"}) == "관·수로|흄관|||||"
|
||||
assert mm.cond_text({"구분": "레미콘", "대표": "MT900002"}) == "레미콘||||MT900002||"
|
||||
|
||||
|
||||
def test_품셈재료_고르기_칸이_실파일에_있음():
|
||||
"""일괄 변환의 바탕 — 모든 품셈재료 줄에 고르기 칸 · 조건은 자재품목 묶음 안."""
|
||||
whole = cm.master()
|
||||
def test_품셈재료_고르기_칸이_옛_파일에_있음():
|
||||
"""일괄 변환의 바탕(옛 자료) — PLAN 7-4b 뒤 절반이 재료_품셈재료.json 을 old/ 로 옮겨
|
||||
이제 살아 있는 마스터엔 안 읽힘 — 옮기기 전 앞뒤 확인이 남긴 옛 자료 자체를 대고 봄."""
|
||||
market = cm.load(["재료_자재품목.json"])
|
||||
old_pm = json.loads(
|
||||
(cm.MASTER / "old" / "재료_품셈재료.json").read_text(encoding="utf-8"),
|
||||
parse_float=Decimal,
|
||||
parse_int=Decimal,
|
||||
)
|
||||
whole = mf.Master({**market, "재료_품셈재료.json": old_pm})
|
||||
rows = whole.index["MP"]
|
||||
assert rows and all("고르기" in row for row in rows.values())
|
||||
assert any(isinstance(row["고르기"], dict) for row in rows.values())
|
||||
assert cm.check_links(whole) == []
|
||||
assert cm.master().index.get("MP") is None # 살아 있는 마스터엔 이제 없음
|
||||
|
||||
|
||||
def test_로직_일괄_시험계산():
|
||||
@@ -1068,7 +1154,9 @@ def test_고르기_조건의_모르는_변수를_잡음(whole):
|
||||
|
||||
|
||||
def test_변수_참조_줄은_고르기_조건으로_바뀜(whole):
|
||||
"""일감24 — `MT:{철선}` 꼴 옛 참조 19줄을 고르기 조건으로 옮김(남은 2줄은 관·단위 사정)."""
|
||||
"""일감24 — `MT:{철선}` 꼴 옛 참조 19줄을 고르기 조건으로 옮김. VR관(GF000173)은
|
||||
PLAN 7-4b 뒤 절반에서 1본=2.5m 환산으로, 커플링밴드(GF000176)는 일감35 에서
|
||||
「이름」 조건으로 마저 옮겨 남은 줄 없음."""
|
||||
남음 = [
|
||||
(str(row["키"]), item["요소"])
|
||||
for data in cm.load().values()
|
||||
@@ -1079,7 +1167,4 @@ def test_변수_참조_줄은_고르기_조건으로_바뀜(whole):
|
||||
and item["요소"][:2] in ("MP", "MT")
|
||||
and "{" in item["요소"]
|
||||
]
|
||||
assert sorted(남음) == [
|
||||
("GF000173", "MP:VR관 ∅{관경}㎜"),
|
||||
("GF000176", "MP:커플링밴드 ∅{관경}㎜"),
|
||||
]
|
||||
assert sorted(남음) == []
|
||||
|
||||
@@ -14,7 +14,9 @@ sys.path.insert(0, str(MD / "scripts"))
|
||||
import build_자재품목_분류 as B # noqa: E402
|
||||
|
||||
ROWS = json.loads((MD / "재료_자재품목.json").read_text(encoding="utf-8"))["줄"]
|
||||
PM = json.loads((MD / "재료_품셈재료.json").read_text(encoding="utf-8"))["줄"]
|
||||
# PLAN 7-4b 뒤 절반 — 재료_품셈재료.json 은 old/ 로 옮김(살아 있는 마스터엔 안 읽힘) · 이 시험은
|
||||
# 옮기기 전 일괄 변환이 옳았는지 옛 자료를 대고 보는 것이라 old/ 에서 그대로 읽음
|
||||
PM = json.loads((MD / "old" / "재료_품셈재료.json").read_text(encoding="utf-8"))["줄"]
|
||||
|
||||
# 품셈재료 이름(뿌리) → 자재품목에서 들어가야 할 구분
|
||||
기대 = {
|
||||
@@ -66,6 +68,117 @@ PM = json.loads((MD / "재료_품셈재료.json").read_text(encoding="utf-8"))["
|
||||
"용접봉": "잡재료",
|
||||
"물": "잡재료",
|
||||
"고철": "잡재료",
|
||||
# PLAN 7-4b 뒤 절반 ② — 후보는 있으나 애매해 어제 뺀 것 가운데 셋(값 없어도 넘어감)
|
||||
"색소": "도료·방수·접착",
|
||||
"에폭시": "도료·방수·접착",
|
||||
"땜납": "잡재료",
|
||||
# PLAN 7-4b 뒤 절반 ④ — 버너·퓨즈는 후보가 물건 자체가 달라 못 이어 새 줄을 만듦
|
||||
"버너": "기계·설비",
|
||||
"퓨즈": "전기·통신",
|
||||
# PLAN 7-4b 뒤 절반 — 덧줄 식에 바로 박혀 있던 나머지 아홉 종(그동안 「요소」 칸만
|
||||
# 훑어 안 걸렸던 자리) · 새 줄 넷은 이름이 그대로 같아 여기 더함
|
||||
"집수정 뚜껑": "맨홀·수로·그레이팅",
|
||||
"쉬즈관": "관·이음관",
|
||||
"IV전선": "전기·통신",
|
||||
"바퀴숫돌": "잡재료",
|
||||
# 철망태(사각형 돌망태)·백열등은 이름이 다른 자재품목 줄(망태석·백열등100W)로 이어
|
||||
# 뿌리-이름 검사에서 스페이셔와 같은 이유로 뺌(아래 제외_뿌리충돌)
|
||||
"철망태(사각형 돌망태)": "매트·토목섬유",
|
||||
"백열등": "전기·통신",
|
||||
# PLAN 7-4b 뒤 절반 ① — 자재품목에 짝 없던 재료 106종을 새 줄로 만들어 이음(값 미확보)
|
||||
"3-Bond": "잡재료",
|
||||
"BASECHANNEL": "건축마감",
|
||||
"Center Punch": "기계·설비",
|
||||
"Compound": "잡재료",
|
||||
"Drill": "기계·설비",
|
||||
"FLUX": "잡재료",
|
||||
"File": "잡재료",
|
||||
"Film": "기계·설비",
|
||||
"Galvanized wire": "철근·강재",
|
||||
"Gasoline": "잡재료",
|
||||
"Grease": "잡재료",
|
||||
"Grinder": "기계·설비",
|
||||
"Grinder Wheel": "잡재료",
|
||||
"Grinder wheel": "잡재료",
|
||||
"Grinding Wheel": "잡재료",
|
||||
"HDPE 시트": "관·이음관",
|
||||
"Hack saw blade": "잡재료",
|
||||
"JOINT FILLER": "도료·방수·접착",
|
||||
"Lagging Sheet": "콘크리트제품",
|
||||
"M/C OIL": "잡재료",
|
||||
"Machine oil": "잡재료",
|
||||
"Nozzle": "기계·설비",
|
||||
"Oil Stone": "잡재료",
|
||||
"Oil stone": "잡재료",
|
||||
"Sand Paper": "잡재료",
|
||||
"Seal Tape": "잡재료",
|
||||
"TAR PAPER": "도료·방수·접착",
|
||||
"TOPCHANNEL": "건축마감",
|
||||
"Tar Epoxy": "도료·방수·접착",
|
||||
"Tar epoxy": "도료·방수·접착",
|
||||
"Washer": "볼트·앵커·철물",
|
||||
"Wire Brush": "잡재료",
|
||||
"Wire brush": "잡재료",
|
||||
"Zinc primer": "도료·방수·접착",
|
||||
"drill": "기계·설비",
|
||||
"고강도메시": "철근·강재",
|
||||
"골무": "잡재료",
|
||||
"광목": "잡재료",
|
||||
"그라인더돌": "잡재료",
|
||||
"깃발": "안전시설",
|
||||
"내부PANEL (목재문)": "목재",
|
||||
"노즐": "기계·설비",
|
||||
"다이스": "기계·설비",
|
||||
"단독콘": "기계·설비",
|
||||
"대강": "잡재료",
|
||||
"돌": "잡재료",
|
||||
"동력 Brush": "잡재료",
|
||||
"로드": "기계·설비",
|
||||
"마린B/T(선박도로용)": "도료·방수·접착",
|
||||
"모래주머니": "시멘트·골재",
|
||||
"몰드": "잡재료",
|
||||
"백 Welder Glass": "잡재료",
|
||||
"백묵": "잡재료",
|
||||
"베인 전용로드": "기계·설비",
|
||||
"보일유": "잡재료",
|
||||
"보조강재": "철근·강재",
|
||||
"보호막": "도료·방수·접착",
|
||||
"붕사": "잡재료",
|
||||
"사다리": "거푸집·가설재",
|
||||
"석필": "잡재료",
|
||||
"세유": "잡재료",
|
||||
"슈": "기계·설비",
|
||||
"스티로폴": "단열·보온",
|
||||
"스페이셔(몰탈 블록)": "시멘트·골재",
|
||||
"실리콘": "도료·방수·접착",
|
||||
"아스팔트싱글": "건축마감",
|
||||
"알루미늄핀": "거푸집·가설재",
|
||||
"여과기": "잡재료",
|
||||
"오스터날": "기계·설비",
|
||||
"유지": "잡재료",
|
||||
"전기용접": "잡재료",
|
||||
"정": "잡재료",
|
||||
"정배지": "건축마감",
|
||||
"중유": "잡재료",
|
||||
"지수활제": "도료·방수·접착",
|
||||
"질석": "단열·보온",
|
||||
"채움재(아스팔트)": "도료·방수·접착",
|
||||
"철구(Shot ball)": "잡재료",
|
||||
"철편(Grit)": "잡재료",
|
||||
"축중계(이동식)": "기계·설비",
|
||||
"침식방지안정제": "식생·종자",
|
||||
"컴파운드": "잡재료",
|
||||
"코크스": "잡재료",
|
||||
"콘크리트 표면 강화재(하드너)": "도료·방수·접착",
|
||||
"탄소봉": "잡재료",
|
||||
"탈에폭시레신": "도료·방수·접착",
|
||||
"탭": "기계·설비",
|
||||
"테르밋용재": "잡재료",
|
||||
"틈메우기돌": "석재",
|
||||
"표준보강메시": "철근·강재",
|
||||
"표준사": "기계·설비",
|
||||
"피복제": "도료·방수·접착",
|
||||
"흑 Welder Glass": "잡재료",
|
||||
}
|
||||
|
||||
|
||||
@@ -106,10 +219,25 @@ def test_품셈재료_연결_줄이_제_묶음():
|
||||
|
||||
|
||||
def test_품셈재료_이름과_같은_품명_줄이_한_묶음():
|
||||
# 「스페이셔(몰탈 블록)」 은 뿌리(「스페이셔」)가 같은 다른 물건(철근 스페이셔, 교량·구조부속)과
|
||||
# 이름만 겹침 — PLAN 7-4b 뒤 절반이 자재품목 새 줄(시멘트·골재)에 「대표」로 콕 집어 이어
|
||||
# 실제로는 안 섞임(test_품셈재료_연결_줄이_제_묶음 이 그 연결을 확인) · 이 뿌리-우선 검사만 뺌.
|
||||
# 색소·에폭시·땜납은 PLAN 7-4b ② — 품셈 이름과 자재품목 이름이 달라(착색제·주입용 에폭시·
|
||||
# 봉땜납) 대표로 콕 집어 이음 · 뿌리 이름으로는 자재품목에 아예 없어 이 검사 대상 밖.
|
||||
제외_뿌리충돌 = {
|
||||
"스페이셔(몰탈 블록)",
|
||||
"색소",
|
||||
"에폭시",
|
||||
"땜납",
|
||||
"철망태(사각형 돌망태)",
|
||||
"백열등",
|
||||
}
|
||||
idx = collections.defaultdict(list)
|
||||
for x in ROWS:
|
||||
idx[_root(x["이름"])].append(x)
|
||||
for p in PM:
|
||||
if p["이름"] in 제외_뿌리충돌:
|
||||
continue
|
||||
want = 기대.get(p["이름"])
|
||||
if not want:
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user