Merge remote-tracking branch 'origin/sub_laptop_1' into sub_desktop_1
This commit is contained in:
@@ -308,7 +308,8 @@ def save(batch: list[dict]) -> list[dict]:
|
||||
raise StoreError(422, {"errors": new})
|
||||
out = []
|
||||
for name in dict.fromkeys(names):
|
||||
text = dump(after[name])
|
||||
old_text = (FOLDER / name).read_bytes().decode("utf-8")
|
||||
text = keep_shape(old_text, before[name], after[name]) or dump(after[name])
|
||||
tmp = FOLDER / f".{name}.tmp"
|
||||
tmp.write_text(text, encoding="utf-8", newline="\n")
|
||||
os.replace(tmp, FOLDER / name)
|
||||
@@ -323,20 +324,72 @@ def _atom(v) -> str:
|
||||
return json.dumps(v, ensure_ascii=False)
|
||||
|
||||
|
||||
def _flat(v) -> str:
|
||||
def _flat(v, tight: bool = False) -> str:
|
||||
if isinstance(v, dict):
|
||||
return (
|
||||
"{ " + ", ".join(f"{_atom(k)}: {_flat(x)}" for k, x in v.items()) + " }" if v else "{}"
|
||||
)
|
||||
if not v:
|
||||
return "{}"
|
||||
body = ", ".join(f"{_atom(k)}: {_flat(x, tight)}" for k, x in v.items())
|
||||
return "{" + body + "}" if tight else "{ " + body + " }"
|
||||
if isinstance(v, list):
|
||||
return "[" + ", ".join(_flat(x) for x in v) + "]"
|
||||
return "[" + ", ".join(_flat(x, tight) for x in v) + "]"
|
||||
return _atom(v)
|
||||
|
||||
|
||||
def dump(v, indent: int = 0, width: int = 160) -> str:
|
||||
"""UTF-8 · 들여쓰기 2칸 · 한 줄에 들어가는 묶음은 한 줄로."""
|
||||
def _skip(text: str, pos: int) -> int:
|
||||
while text[pos] in " \t\r\n":
|
||||
pos += 1
|
||||
return pos
|
||||
|
||||
|
||||
def keep_shape(old_text: str, before: dict, after: dict) -> str | None:
|
||||
"""고친 요소만 새로 씀 — 안 바뀐 요소는 옛 글 그대로(한 줄 요소는 한 줄 · 들여쓰기 · 줄바꿈).
|
||||
머리가 바뀌었거나 옛 글을 못 읽으면 None(통째로 dump)."""
|
||||
key = items_key(after)
|
||||
head = lambda d: {k: v for k, v in d.items() if k != key} # noqa: E731
|
||||
old_items, new_items = before.get(key) or [], after.get(key) or []
|
||||
if head(before) != head(after) or not old_items or not new_items:
|
||||
return None
|
||||
for m in re.finditer(rf'"{key}"\s*:\s*\[', old_text): # 머리 속 같은 이름 칸은 건너뜀
|
||||
spans, pos, dec = [], m.end(), json.JSONDecoder()
|
||||
try:
|
||||
while old_text[pos := _skip(old_text, pos)] != "]":
|
||||
_, end = dec.raw_decode(old_text, pos)
|
||||
spans.append((pos, end))
|
||||
pos = _skip(old_text, end)
|
||||
pos += old_text[pos] == ","
|
||||
except (IndexError, ValueError):
|
||||
return None
|
||||
if len(spans) == len(old_items):
|
||||
break
|
||||
else:
|
||||
return None
|
||||
nl = "\r\n" if "\r\n" in old_text else "\n"
|
||||
lead = old_text[m.end() : spans[0][0]]
|
||||
indent = len(lead) - len(lead.rstrip(" "))
|
||||
olds = {str(r.get("열쇠")): (r, old_text[s:e]) for r, (s, e) in zip(old_items, spans)}
|
||||
shape, parts = old_text[spans[0][0] : spans[0][1]], []
|
||||
for row in new_items:
|
||||
was, text = olds.get(str(row.get("열쇠")), (None, None))
|
||||
shape = text or shape
|
||||
if was == row:
|
||||
parts.append(text)
|
||||
elif "\n" not in shape:
|
||||
parts.append(_flat(row, tight=shape.startswith('{"')))
|
||||
else:
|
||||
parts.append(dump(row, indent, expand=True).replace("\n", nl))
|
||||
out = old_text[: m.end()] + lead + ("," + lead).join(parts) + old_text[spans[-1][1] :]
|
||||
same = json.loads(out, parse_float=Decimal, parse_int=Decimal) == after
|
||||
return out if same else None
|
||||
|
||||
|
||||
def dump(v, indent: int = 0, width: int = 160, expand: bool = False) -> str:
|
||||
"""UTF-8 · 들여쓰기 2칸 · 한 줄에 들어가는 묶음은 한 줄로(expand 면 첫 층은 펼침)."""
|
||||
flat = _flat(v)
|
||||
if indent and len(flat) + indent <= width or not isinstance(v, (dict, list)) or not v:
|
||||
if (
|
||||
not isinstance(v, (dict, list))
|
||||
or not v
|
||||
or (not expand and indent and len(flat) + indent <= width)
|
||||
):
|
||||
return flat + ("" if indent else "\n")
|
||||
pad = " " * (indent + 2)
|
||||
if isinstance(v, dict):
|
||||
|
||||
@@ -9,7 +9,7 @@ import { API_BASE_URL } from "@config/config_frontend";
|
||||
export interface LogicInput {
|
||||
이름: string;
|
||||
단위?: string;
|
||||
고르기?: string[];
|
||||
고르기?: (string | number)[];
|
||||
범위?: [number, number];
|
||||
}
|
||||
export interface HoLine {
|
||||
|
||||
@@ -34,7 +34,7 @@ export function buildCalc(host: HTMLElement, ctx: CalcContext): void {
|
||||
let control: HTMLInputElement | HTMLSelectElement;
|
||||
if (spec.고르기?.length) {
|
||||
control = el("select", { className: "m01-logic__input" });
|
||||
for (const option of ["", ...spec.고르기]) {
|
||||
for (const option of ["", ...spec.고르기.map(String)]) {
|
||||
control.append(el("option", { text: option, attrs: { value: option } }));
|
||||
}
|
||||
} else {
|
||||
@@ -59,7 +59,10 @@ export function buildCalc(host: HTMLElement, ctx: CalcContext): void {
|
||||
for (const spec of ctx.row.입력 ?? []) {
|
||||
const raw = (ctx.values[spec.이름] ?? "").trim();
|
||||
if (raw === "") continue; // 빈 칸은 안 보냄 — 엔진이 「입력 없음」 으로 멈춤
|
||||
inputs[spec.이름] = spec.고르기?.length || Number.isNaN(Number(raw)) ? raw : Number(raw);
|
||||
// 고르기는 원래 값(수면 수) 그대로 — 글 "35" 로 보내면 「고르기 밖」
|
||||
const option = spec.고르기?.find((o) => String(o) === raw);
|
||||
inputs[spec.이름] =
|
||||
option !== undefined ? option : Number.isNaN(Number(raw)) ? raw : Number(raw);
|
||||
}
|
||||
const draft = ctx.dirty() || ctx.savedKey === null;
|
||||
try {
|
||||
|
||||
@@ -228,7 +228,9 @@ function inputsSection(
|
||||
.split(",")
|
||||
.map((x) => x.trim())
|
||||
.filter(Boolean);
|
||||
if (items.length) spec.고르기 = items;
|
||||
// 모두 수면 수로 — 글 "35" 로 적으면 표의 35 와 안 맞음
|
||||
const numbers = items.every((x) => !Number.isNaN(Number(x)));
|
||||
if (items.length) spec.고르기 = numbers ? items.map(Number) : items;
|
||||
else delete spec.고르기;
|
||||
}),
|
||||
),
|
||||
|
||||
@@ -382,6 +382,14 @@ def _inputs(row: dict, given: dict) -> dict:
|
||||
if name not in given:
|
||||
raise FormulaError(f"「{row['열쇠']}」 입력 「{name}」 없음")
|
||||
value = given[name]
|
||||
if isinstance(value, str): # 화면이 글로 보낸 수 — 고르기 원래 값 · 아니면 수로
|
||||
if "고르기" in spec:
|
||||
value = next((o for o in spec["고르기"] if str(o) == value.strip()), value)
|
||||
else:
|
||||
try:
|
||||
value = Decimal(value.strip())
|
||||
except ArithmeticError:
|
||||
pass
|
||||
if isinstance(value, (int, float)):
|
||||
value = Decimal(str(value))
|
||||
if "고르기" in spec and value not in spec["고르기"]:
|
||||
|
||||
@@ -416,7 +416,7 @@
|
||||
"입력": [
|
||||
{
|
||||
"이름": "기계",
|
||||
"고르기": ["2106-0002", "2106-0003", "2106-0005", "6802-0040", "6802-0060", "6802-0100", "6802-0120", "6802-0135", "6802-0160", "6801-0010", "6803-0100", "6803-0120", "4430-0400", "3302-0038", "3801-0795", "7330-0010", "7954-1119", "7110-0025", "7110-0013", "7120-0746"]
|
||||
"고르기": ["2106-0002", "2106-0003", "2106-0005", "6802-0040", "6802-0060", "6802-0100", "6802-0120", "6802-0135", "6802-0160", "6801-0010", "6803-0100", "6803-0120", "4430-0400", "3302-0038", "3801-0795", "7330-0010", "7954-1119", "7110-0025", "7110-0013", "7120-0746", "7101-0450"]
|
||||
},
|
||||
{
|
||||
"이름": "지역",
|
||||
|
||||
@@ -0,0 +1,555 @@
|
||||
{
|
||||
"그룹": "로직",
|
||||
"원문": "건설품셈",
|
||||
"판": "2026",
|
||||
"줄": [
|
||||
{
|
||||
"열쇠": "7-2-1 적재 및 운반",
|
||||
"이름": "사석 적재 및 운반",
|
||||
"결과단위": "원/10㎥",
|
||||
"출처": "건설품셈 토목 7-2-1",
|
||||
"소유": "공용",
|
||||
"입력": [{ "이름": "종류", "고르기": ["0.03㎥ 이하", "0.1㎥ 이상"], "출처": "건설품셈 토목 7-2-1" }],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1003",
|
||||
"이름": "특별인부",
|
||||
"단위": "인",
|
||||
"수량": "만약((종류 == '0.03㎥ 이하'), 0, 찾기(소요량:건설품셈:7-2-1 적재 및 운반, 종류=종류).특별인부)",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1002",
|
||||
"이름": "보통인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-2-1 적재 및 운반, 종류=종류).보통인부",
|
||||
"비목": "노무비"
|
||||
}
|
||||
],
|
||||
"덧줄": [
|
||||
{
|
||||
"이름": "잡재료",
|
||||
"식": "((만약((종류 == '0.03㎥ 이하'), 0, 찾기(소요량:건설품셈:7-2-1 적재 및 운반, 종류=종류).특별인부)) * 인력:건설노임:1003 + (찾기(소요량:건설품셈:7-2-1 적재 및 운반, 종류=종류).보통인부) * 인력:건설노임:1002) * 찾기(소요량:건설품셈:7-2-1 잡재료 보정 — 그룹 계수, 구분='잡재료').비율 / 100",
|
||||
"비목": "재료비",
|
||||
"출처": "건설품셈 토목 7-2-1 주④"
|
||||
}
|
||||
],
|
||||
"끝수": null,
|
||||
"비고": "0.03㎥ 이하 덤프트럭·대선 진입 · 0.1㎥ 이상 크레인 적재(원문 적재방법) · 크레인 10ton·예선·운반선 별도(주②③) · 해석: 잡재료 = 인력품 × 2%(원문 「2% 이내」 상한) · 1일 운반량 Q = N×q×E(주⑤) · 작업효율(해상운반) 표는 설계자 계산"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-2-2 해상투하",
|
||||
"이름": "사석 해상투하",
|
||||
"결과단위": "원/10㎥",
|
||||
"출처": "건설품셈 토목 7-2-2",
|
||||
"소유": "공용",
|
||||
"입력": [{ "이름": "구분", "고르기": ["0.03㎥ 이하 굴착기 투하", "0.1㎥ 이상 크레인 투하"], "출처": "건설품셈 토목 7-2-2" }],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1003",
|
||||
"이름": "특별인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-2-2 해상투하, 구분=구분).특별인부",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1002",
|
||||
"이름": "보통인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-2-2 해상투하, 구분=구분).보통인부",
|
||||
"비목": "노무비"
|
||||
}
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "수상부분은 잠수부 계상 안 함(원문 주) · 기계경비 별도 — 굴착기 1.0㎥ · 크레인 10ton(원문 주) · 막힘: 잠수부 줄 빠짐 — 원문 단위 「조」 · 조 편성 원문에 없음"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-2-3 육상투하",
|
||||
"이름": "사석 육상투하",
|
||||
"결과단위": "원/10㎥",
|
||||
"출처": "건설품셈 토목 7-2-3",
|
||||
"소유": "공용",
|
||||
"입력": [{ "이름": "구분", "고르기": ["0.03㎥ 이하 덤프트럭+굴착기 투하", "0.1㎥ 이상 크레인 투하"], "출처": "건설품셈 토목 7-2-3" }],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1003",
|
||||
"이름": "특별인부",
|
||||
"단위": "인",
|
||||
"수량": "만약((구분 == '0.03㎥ 이하 덤프트럭+굴착기 투하'), 0, 찾기(소요량:건설품셈:7-2-3 육상투하, 구분=구분).특별인부)",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1002",
|
||||
"이름": "보통인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-2-3 육상투하, 구분=구분).보통인부",
|
||||
"비목": "노무비"
|
||||
}
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "수상부분은 잠수부 계상 안 함(원문 주) · 기계경비 별도 — 굴착기 1.0㎥ · 크레인 10ton(원문 주) · 막힘: 잠수부 줄 빠짐 — 원문 단위 「조」 · 조 편성 원문에 없음"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-2-4 수상고르기",
|
||||
"이름": "사석 수상고르기",
|
||||
"결과단위": "원/10㎡",
|
||||
"출처": "건설품셈 토목 7-2-4",
|
||||
"소유": "공용",
|
||||
"입력": [
|
||||
{ "이름": "작업구분", "고르기": ["기초고르기", "피복석 고르기", "피복석 거친고르기", "내부사석 고르기", "필터사석 고르기"], "출처": "건설품셈 토목 7-2-4" },
|
||||
{
|
||||
"이름": "크레인",
|
||||
"고르기": [
|
||||
"2105-0005",
|
||||
"2104-0010",
|
||||
"2104-0015",
|
||||
"2104-0020",
|
||||
"2104-0025",
|
||||
"2104-0030",
|
||||
"2104-0035",
|
||||
"2104-0040",
|
||||
"2104-0045",
|
||||
"2104-0050",
|
||||
"2104-0060",
|
||||
"2104-0070",
|
||||
"2104-0080",
|
||||
"2104-0100",
|
||||
"2104-0130",
|
||||
"2104-0160",
|
||||
"2104-0200",
|
||||
"2104-0220",
|
||||
"2104-0250",
|
||||
"2104-0300",
|
||||
"2105-0002",
|
||||
"2105-0003",
|
||||
"2105-0010",
|
||||
"2105-0015",
|
||||
"2105-0018",
|
||||
"2101-0010",
|
||||
"2101-0015",
|
||||
"2101-0020",
|
||||
"2101-0025",
|
||||
"2101-0030",
|
||||
"2101-0035",
|
||||
"2101-0040",
|
||||
"2101-0050",
|
||||
"2101-0070",
|
||||
"2101-0080",
|
||||
"2101-0100",
|
||||
"2101-0150",
|
||||
"2101-0220",
|
||||
"2101-0280",
|
||||
"2101-0300"
|
||||
]
|
||||
},
|
||||
{
|
||||
"이름": "지역",
|
||||
"고르기": [
|
||||
"전국평균",
|
||||
"전국",
|
||||
"서울",
|
||||
"경기",
|
||||
"강원",
|
||||
"충북",
|
||||
"충남",
|
||||
"전북",
|
||||
"경북",
|
||||
"경남",
|
||||
"부산",
|
||||
"제주",
|
||||
"대구",
|
||||
"인천",
|
||||
"대전",
|
||||
"울산",
|
||||
"세종",
|
||||
"전남광주"
|
||||
],
|
||||
"출처": "건설품셈 공통 8-1-7 5"
|
||||
},
|
||||
{ "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" }
|
||||
],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1033",
|
||||
"이름": "석공",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-2-4 수상고르기, 작업구분=작업구분).석공",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1002",
|
||||
"이름": "보통인부",
|
||||
"단위": "인",
|
||||
"수량": "만약((작업구분 == '필터사석 고르기'), 0, 찾기(소요량:건설품셈:7-2-4 수상고르기, 작업구분=작업구분).보통인부)",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 굴착기(무한궤도) 시간당 경비, 기계='0201-0100', 지역=지역, 보정작업=보정작업)",
|
||||
"이름": "굴착기 1.0㎥",
|
||||
"단위": "시간",
|
||||
"수량": "만약((작업구분 == '피복석 고르기') 또는 (작업구분 == '피복석 거친고르기'), 0, 찾기(소요량:건설품셈:7-2-4 수상고르기, 작업구분=작업구분).굴착기_1_0m3)"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 기계 시간당 경비, 기계=크레인, 지역=지역)",
|
||||
"이름": "크레인",
|
||||
"단위": "시간",
|
||||
"수량": "만약((작업구분 == '기초고르기') 또는 (작업구분 == '내부사석 고르기') 또는 (작업구분 == '필터사석 고르기'), 0, 찾기(소요량:건설품셈:7-2-4 수상고르기, 작업구분=작업구분).크레인_10ton)"
|
||||
}
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "원문 장비 굴착기 1.0㎥ · 크레인 10ton(장비규격 표) — 크레인 종류 설계자 고름 · 원문 장비 값 = 10㎡당 시간"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-2-5 수중고르기 능력",
|
||||
"이름": "수중고르기 잠수부 1조 시간당 고르기 면적",
|
||||
"결과단위": "㎡/시간",
|
||||
"출처": "건설품셈 토목 7-2-5",
|
||||
"소유": "공용",
|
||||
"입력": [
|
||||
{ "이름": "작업", "고르기": ["기초고르기", "피복석고르기", "피복석거친고르기", "내부사석고르기", "필터사석고르기"], "출처": "건설품셈 토목 7-2-5 표준고르기면적" },
|
||||
{ "이름": "수심", "단위": "m", "고르기": ["0∼15", "15∼20", "20∼25", "25∼30"], "출처": "건설품셈 토목 7-2-5" },
|
||||
{ "이름": "구분", "고르기": ["천후", "조류", "명암"], "출처": "건설품셈 토목 7-2-5 주④" },
|
||||
{ "이름": "세부", "고르기": ["조용할때", "풍랑", "0∼2.8km/hr", "2.8∼5.5km/hr", "보통", "흐릴때"], "출처": "건설품셈 토목 7-2-5" }
|
||||
],
|
||||
"중간": [
|
||||
{
|
||||
"이름": "a",
|
||||
"식": "만약(작업 == '기초고르기', 찾기(소요량:건설품셈:7-2-5 표준고르기면적(a)).기초고르기, 만약(작업 == '피복석고르기', 찾기(소요량:건설품셈:7-2-5 표준고르기면적(a)).피복석고르기, 만약(작업 == '피복석거친고르기', 찾기(소요량:건설품셈:7-2-5 표준고르기면적(a)).피복석거친고르기, 만약(작업 == '내부사석고르기', 찾기(소요량:건설품셈:7-2-5 표준고르기면적(a)).내부사석고르기, 만약(작업 == '필터사석고르기', 찾기(소요량:건설품셈:7-2-5 표준고르기면적(a)).필터사석고르기, 0)))))",
|
||||
"출처": "건설품셈 토목 7-2-5 표준고르기면적(a)"
|
||||
},
|
||||
{ "이름": "E", "식": "찾기(소요량:건설품셈:7-2-5 작업효율(E), 수심=수심, 구분=구분, 세부=세부).효율", "출처": "건설품셈 토목 7-2-5 작업효율(E)" }
|
||||
],
|
||||
"끝수": null,
|
||||
"비고": "A = a × E — 잠수부 1조 시간당 능력 · 작업효율은 천후·조류·명암 가운데 최악 하나만(주④) · 막힘: 수중고르기 돈 로직 — 잠수부 「조」 편성 원문에 없음 · 선박·부장장비 별도(주①)",
|
||||
"결과": { "식": "a * E", "출처": "건설품셈 토목 7-2-5" }
|
||||
},
|
||||
{
|
||||
"열쇠": "7-3-1 케이슨 진수",
|
||||
"이름": "케이슨 진수",
|
||||
"결과단위": "원/개",
|
||||
"출처": "건설품셈 토목 7-3-1",
|
||||
"소유": "공용",
|
||||
"입력": [{ "이름": "비계공인원", "단위": "인", "출처": "건설품셈 토목 7-3-1" }, { "이름": "보통인부인원", "단위": "인", "출처": "건설품셈 토목 7-3-1" }],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{ "종류": "인력", "요소": "인력:건설노임:1006", "이름": "비계공", "단위": "인", "수량": "비계공인원", "비목": "노무비" },
|
||||
{ "종류": "인력", "요소": "인력:건설노임:1002", "이름": "보통인부", "단위": "인", "수량": "보통인부인원", "비목": "노무비" }
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "원문 범위 — 설계자 입력: 비계공 500t미만 1∼2 · 500∼1,000t 2∼3 · 1,000∼2,000t 3∼4 · 2,000∼3,000t 4∼6 / 보통인부 500t미만 2∼3 · 500∼1,000t 2∼4 · 1,000∼2,000t 4∼5 · 2,000∼3,000t 5∼7 · 선박 및 부장장비 손료·운전경비 별도"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-3-2 케이슨 거치",
|
||||
"이름": "케이슨 거치",
|
||||
"결과단위": "원/개",
|
||||
"출처": "건설품셈 토목 7-3-2",
|
||||
"소유": "공용",
|
||||
"입력": [{ "이름": "비계공인원", "단위": "인", "출처": "건설품셈 토목 7-3-2" }, { "이름": "보통인부인원", "단위": "인", "출처": "건설품셈 토목 7-3-2" }],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{ "종류": "인력", "요소": "인력:건설노임:1006", "이름": "비계공", "단위": "인", "수량": "비계공인원", "비목": "노무비" },
|
||||
{ "종류": "인력", "요소": "인력:건설노임:1002", "이름": "보통인부", "단위": "인", "수량": "보통인부인원", "비목": "노무비" }
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "원문 범위 — 설계자 입력: 비계공 500t미만 1∼2 · 500∼1,000t 2∼3 · 1,000∼2,000t 3∼4 · 2,000∼3,000t 4∼5 / 보통인부 500t미만 2∼3 · 500∼1,000t 3∼4 · 1,000∼2,000t 4∼6 · 2,000∼3,000t 5∼7 · 선박 및 부장장비 손료·운전경비 별도 · 막힘: 잠수부 줄 빠짐 — 원문 단위 「조」 · 조 편성 원문에 없음"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-3-3 일반블록 거치",
|
||||
"이름": "일반블록 거치",
|
||||
"결과단위": "원/개",
|
||||
"출처": "건설품셈 토목 7-3-3",
|
||||
"소유": "공용",
|
||||
"입력": [
|
||||
{ "이름": "장소", "고르기": ["수상", "수중"], "출처": "건설품셈 토목 7-3-3" },
|
||||
{ "이름": "중량", "고르기": ["5톤 미만", "5∼10t", "10∼15t", "15∼20t", "20∼30t", "30t 이상"], "출처": "건설품셈 토목 7-3-3" },
|
||||
{ "이름": "작업량", "단위": "개/일", "출처": "건설품셈 토목 7-3-3" },
|
||||
{ "이름": "보통인부인원", "단위": "인", "출처": "건설품셈 토목 7-3-3" }
|
||||
],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1003",
|
||||
"이름": "특별인부",
|
||||
"단위": "인",
|
||||
"수량": "만약((장소 == '수중' 그리고 중량 == '5톤 미만') 또는 (장소 == '수중' 그리고 중량 == '5∼10t') 또는 (장소 == '수중' 그리고 중량 == '10∼15t') 또는 (장소 == '수중' 그리고 중량 == '15∼20t') 또는 (장소 == '수중' 그리고 중량 == '20∼30t') 또는 (장소 == '수중' 그리고 중량 == '30t 이상'), 0, 찾기(소요량:건설품셈:7-3-3 일반블록 거치, 장소=장소, 중량=중량).특별인부) / 작업량",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{ "종류": "인력", "요소": "인력:건설노임:1002", "이름": "보통인부", "단위": "인", "수량": "보통인부인원 / 작업량", "비목": "노무비" }
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "해석: 일당 편성 인원 ÷ 1일 작업량(개) · 1일 작업량·보통인부 원문 범위 — 설계자 입력(주①) · 특별인부는 수상 · 잠수부는 수중(원문 표) · 선박 및 부장장비 손료·운전경비 별도 · 막힘: 잠수부 줄 빠짐 — 원문 단위 「조」 · 조 편성 원문에 없음"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-3-4 소파블록 거치",
|
||||
"이름": "소파블록 거치",
|
||||
"결과단위": "원/개",
|
||||
"출처": "건설품셈 토목 7-3-4",
|
||||
"소유": "공용",
|
||||
"입력": [
|
||||
{ "이름": "장소", "고르기": ["수상", "수중"], "출처": "건설품셈 토목 7-3-4" },
|
||||
{ "이름": "적재방식", "고르기": ["충적", "난적"], "출처": "건설품셈 토목 7-3-4" },
|
||||
{ "이름": "중량", "고르기": ["2톤미만", "2∼5t", "5∼10t", "10∼15t", "15∼20t", "20∼30t", "30t이상"], "출처": "건설품셈 토목 7-3-4" },
|
||||
{ "이름": "작업량", "단위": "개/일", "출처": "건설품셈 토목 7-3-4" },
|
||||
{ "이름": "보통인부인원", "단위": "인", "출처": "건설품셈 토목 7-3-4" }
|
||||
],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1003",
|
||||
"이름": "특별인부",
|
||||
"단위": "인",
|
||||
"수량": "만약((장소 == '수중' 그리고 적재방식 == '충적' 그리고 중량 == '2톤미만') 또는 (장소 == '수중' 그리고 적재방식 == '난적' 그리고 중량 == '2톤미만') 또는 (장소 == '수중' 그리고 적재방식 == '충적' 그리고 중량 == '2∼5t') 또는 (장소 == '수중' 그리고 적재방식 == '난적' 그리고 중량 == '2∼5t') 또는 (장소 == '수중' 그리고 적재방식 == '충적' 그리고 중량 == '5∼10t') 또는 (장소 == '수중' 그리고 적재방식 == '난적' 그리고 중량 == '5∼10t') 또는 (장소 == '수중' 그리고 적재방식 == '충적' 그리고 중량 == '10∼15t') 또는 (장소 == '수중' 그리고 적재방식 == '난적' 그리고 중량 == '10∼15t') 또는 (장소 == '수중' 그리고 적재방식 == '충적' 그리고 중량 == '15∼20t') 또는 (장소 == '수중' 그리고 적재방식 == '난적' 그리고 중량 == '15∼20t') 또는 (장소 == '수중' 그리고 적재방식 == '충적' 그리고 중량 == '20∼30t') 또는 (장소 == '수중' 그리고 적재방식 == '난적' 그리고 중량 == '20∼30t') 또는 (장소 == '수중' 그리고 적재방식 == '충적' 그리고 중량 == '30t이상') 또는 (장소 == '수중' 그리고 적재방식 == '난적' 그리고 중량 == '30t이상'), 0, 찾기(소요량:건설품셈:7-3-4 소파블록 거치, 장소=장소, 적재방식=적재방식, 중량=중량).특별인부) / 작업량",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{ "종류": "인력", "요소": "인력:건설노임:1002", "이름": "보통인부", "단위": "인", "수량": "보통인부인원 / 작업량", "비목": "노무비" }
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "해석: 일당 편성 인원 ÷ 1일 작업량(개) · 1일 작업량·보통인부 원문 범위 — 설계자 입력(주①) · 특별인부는 수상 · 잠수부는 수중(원문 표) · 선박 및 부장장비 손료·운전경비 별도 · 막힘: 잠수부 줄 빠짐 — 원문 단위 「조」 · 조 편성 원문에 없음"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-4-1 배송관 접합",
|
||||
"이름": "준설 배송관 접합",
|
||||
"결과단위": "원/개소",
|
||||
"출처": "건설품셈 토목 7-4-1",
|
||||
"소유": "공용",
|
||||
"입력": [
|
||||
{
|
||||
"이름": "관경",
|
||||
"단위": "mm",
|
||||
"고르기": ["250이하", "300", "350", "400", "510", "560", "610", "630", "660", "685", "710", "760", "840", "860"],
|
||||
"출처": "건설품셈 토목 7-4-1"
|
||||
},
|
||||
{ "이름": "접합방식", "고르기": ["플랜지접합", "고무슬리브접합"], "출처": "건설품셈 토목 7-4-1" },
|
||||
{ "이름": "작업", "고르기": ["설치", "철거"], "출처": "건설품셈 토목 7-4-1 주①" },
|
||||
{ "이름": "철거감률", "단위": "%", "범위": [0, 30], "출처": "건설품셈 토목 7-4-1 주①" },
|
||||
{
|
||||
"이름": "지역",
|
||||
"고르기": [
|
||||
"전국평균",
|
||||
"전국",
|
||||
"서울",
|
||||
"경기",
|
||||
"강원",
|
||||
"충북",
|
||||
"충남",
|
||||
"전북",
|
||||
"경북",
|
||||
"경남",
|
||||
"부산",
|
||||
"제주",
|
||||
"대구",
|
||||
"인천",
|
||||
"대전",
|
||||
"울산",
|
||||
"세종",
|
||||
"전남광주"
|
||||
],
|
||||
"출처": "건설품셈 공통 8-1-7 5"
|
||||
}
|
||||
],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1040",
|
||||
"이름": "배관공(수도)",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-4-1 배송관 접합, 관경=관경).배관공_수도 * (1 - 만약(작업 == '철거', 철거감률, 0) / 100)",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1002",
|
||||
"이름": "보통인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-4-1 배송관 접합, 관경=관경).보통인부 * (1 - 만약(작업 == '철거', 철거감률, 0) / 100)",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0010', 지역=지역)",
|
||||
"이름": "트럭탑재형 크레인 10ton",
|
||||
"단위": "시간",
|
||||
"수량": "만약(관경 == '760' 또는 관경 == '840' 또는 관경 == '860', 0, 만약(접합방식 == '플랜지접합', 찾기(소요량:건설품셈:7-4-1 배송관 접합, 관경=관경).크레인_플랜지접합, 찾기(소요량:건설품셈:7-4-1 배송관 접합, 관경=관경).크레인_고무슬리브접합) * (1 - 만약(작업 == '철거', 철거감률, 0) / 100))"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0015', 지역=지역)",
|
||||
"이름": "트럭탑재형 크레인 15ton",
|
||||
"단위": "시간",
|
||||
"수량": "만약(관경 == '760' 또는 관경 == '840' 또는 관경 == '860', 만약(접합방식 == '플랜지접합', 찾기(소요량:건설품셈:7-4-1 배송관 접합, 관경=관경).크레인_플랜지접합, 찾기(소요량:건설품셈:7-4-1 배송관 접합, 관경=관경).크레인_고무슬리브접합) * (1 - 만약(작업 == '철거', 철거감률, 0) / 100), 0)"
|
||||
}
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "크레인 규격 관경 200∼710 10톤 · 760 이상 15톤(주④ 장비규격 표) · 현장 여건상 같은 톤 크롤러·타이어 크레인 가능(주⑤) — 설계자 조정 · 철거는 본 품(인력+장비) 30%까지 감(주①) — 감률 설계자 입력 · 6m 직관 기준 · 소운반 포함 · 체결부 절단 별도"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-4-2 배송관 띄우개 접합",
|
||||
"이름": "배송관 띄우개(부함) 접합",
|
||||
"결과단위": "원/본",
|
||||
"출처": "건설품셈 토목 7-4-2",
|
||||
"소유": "공용",
|
||||
"입력": [
|
||||
{
|
||||
"이름": "관경",
|
||||
"단위": "mm",
|
||||
"고르기": [430, 500, 600, 700, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600],
|
||||
"출처": "건설품셈 토목 7-4-2"
|
||||
},
|
||||
{ "이름": "작업", "고르기": ["설치", "철거"], "출처": "건설품셈 토목 7-4-2 주①" },
|
||||
{ "이름": "철거감률", "단위": "%", "범위": [0, 30], "출처": "건설품셈 토목 7-4-2 주①" },
|
||||
{
|
||||
"이름": "지역",
|
||||
"고르기": [
|
||||
"전국평균",
|
||||
"전국",
|
||||
"서울",
|
||||
"경기",
|
||||
"강원",
|
||||
"충북",
|
||||
"충남",
|
||||
"전북",
|
||||
"경북",
|
||||
"경남",
|
||||
"부산",
|
||||
"제주",
|
||||
"대구",
|
||||
"인천",
|
||||
"대전",
|
||||
"울산",
|
||||
"세종",
|
||||
"전남광주"
|
||||
],
|
||||
"출처": "건설품셈 공통 8-1-7 5"
|
||||
}
|
||||
],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1003",
|
||||
"이름": "특별인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-4-2 배송관 띄우개 접합, 관경=관경).특별인부 * (1 - 만약(작업 == '철거', 철거감률, 0) / 100)",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1002",
|
||||
"이름": "보통인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-4-2 배송관 띄우개 접합, 관경=관경).보통인부 * (1 - 만약(작업 == '철거', 철거감률, 0) / 100)",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0010', 지역=지역)",
|
||||
"이름": "트럭탑재형 크레인 10ton",
|
||||
"단위": "시간",
|
||||
"수량": "만약(관경 >= 1500, 0, 찾기(소요량:건설품셈:7-4-2 배송관 띄우개 접합, 관경=관경).크레인 * (1 - 만약(작업 == '철거', 철거감률, 0) / 100))"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0015', 지역=지역)",
|
||||
"이름": "트럭탑재형 크레인 15ton",
|
||||
"단위": "시간",
|
||||
"수량": "만약(관경 >= 1500, 찾기(소요량:건설품셈:7-4-2 배송관 띄우개 접합, 관경=관경).크레인 * (1 - 만약(작업 == '철거', 철거감률, 0) / 100), 0)"
|
||||
}
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "크레인 규격 띄우개 관경 430∼1,400 10톤 · 1,500 이상 15톤(주③ 장비규격 표) · 같은 톤 크롤러·타이어 크레인 가능(주④) · 철거는 본 품 30%까지 감(주①) — 감률 설계자 입력 · 소운반 포함 · 체결부 절단 별도"
|
||||
},
|
||||
{
|
||||
"열쇠": "7-4-3 배송관 진수",
|
||||
"이름": "배송관 진수",
|
||||
"결과단위": "원/set",
|
||||
"출처": "건설품셈 토목 7-4-3",
|
||||
"소유": "공용",
|
||||
"입력": [
|
||||
{
|
||||
"이름": "배송관관경",
|
||||
"단위": "mm",
|
||||
"고르기": [200, 250, 300, 350, 400, 510, 560, 610, 630, 660, 685, 710, 760, 840, 860],
|
||||
"출처": "건설품셈 토목 7-4-3"
|
||||
},
|
||||
{
|
||||
"이름": "지역",
|
||||
"고르기": [
|
||||
"전국평균",
|
||||
"전국",
|
||||
"서울",
|
||||
"경기",
|
||||
"강원",
|
||||
"충북",
|
||||
"충남",
|
||||
"전북",
|
||||
"경북",
|
||||
"경남",
|
||||
"부산",
|
||||
"제주",
|
||||
"대구",
|
||||
"인천",
|
||||
"대전",
|
||||
"울산",
|
||||
"세종",
|
||||
"전남광주"
|
||||
],
|
||||
"출처": "건설품셈 공통 8-1-7 5"
|
||||
}
|
||||
],
|
||||
"중간": [],
|
||||
"호표": [
|
||||
{
|
||||
"종류": "인력",
|
||||
"요소": "인력:건설노임:1002",
|
||||
"이름": "보통인부",
|
||||
"단위": "인",
|
||||
"수량": "찾기(소요량:건설품셈:7-4-3 배송관 진수, 배송관관경=배송관관경).보통인부",
|
||||
"비목": "노무비"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0010', 지역=지역)",
|
||||
"이름": "트럭탑재형 크레인 10ton",
|
||||
"단위": "시간",
|
||||
"수량": "만약(배송관관경 >= 760, 0, 찾기(소요량:건설품셈:7-4-3 배송관 진수, 배송관관경=배송관관경).크레인)"
|
||||
},
|
||||
{
|
||||
"종류": "로직",
|
||||
"요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0015', 지역=지역)",
|
||||
"이름": "트럭탑재형 크레인 15ton",
|
||||
"단위": "시간",
|
||||
"수량": "만약(배송관관경 >= 760, 찾기(소요량:건설품셈:7-4-3 배송관 진수, 배송관관경=배송관관경).크레인, 0)"
|
||||
}
|
||||
],
|
||||
"덧줄": [],
|
||||
"끝수": null,
|
||||
"비고": "크레인 규격 관경 200∼710 10톤 · 760 이상 15톤(주④ 장비규격 표) · 해상관 1set = 배송관 1본+고무슬리브 1본+띄우개 1본 · 침설관 1set = 배송관 2본+고무슬리브 1본 · 배송관 예인·침설 제외(주①)"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -495,38 +495,38 @@
|
||||
"값칸": {
|
||||
"석공": "인",
|
||||
"보통인부": "인",
|
||||
"굴착기(1.0㎥)": "hr",
|
||||
"크레인(10ton)": "hr"
|
||||
"굴착기_1_0m3": "hr",
|
||||
"크레인_10ton": "hr"
|
||||
},
|
||||
"줄": [
|
||||
{
|
||||
"작업구분": "기초고르기",
|
||||
"석공": 0.7,
|
||||
"보통인부": 0.42,
|
||||
"굴착기(1.0㎥)": 1.72
|
||||
"굴착기_1_0m3": 1.72
|
||||
},
|
||||
{
|
||||
"작업구분": "피복석 고르기",
|
||||
"석공": 0.62,
|
||||
"보통인부": 0.39,
|
||||
"크레인(10ton)": 1.53
|
||||
"크레인_10ton": 1.53
|
||||
},
|
||||
{
|
||||
"작업구분": "피복석 거친고르기",
|
||||
"석공": 0.55,
|
||||
"보통인부": 0.36,
|
||||
"크레인(10ton)": 1.36
|
||||
"크레인_10ton": 1.36
|
||||
},
|
||||
{
|
||||
"작업구분": "내부사석 고르기",
|
||||
"석공": 0.55,
|
||||
"보통인부": 0.36,
|
||||
"굴착기(1.0㎥)": 1.36
|
||||
"굴착기_1_0m3": 1.36
|
||||
},
|
||||
{
|
||||
"작업구분": "필터사석 고르기",
|
||||
"석공": 0.07,
|
||||
"굴착기(1.0㎥)": 0.31
|
||||
"굴착기_1_0m3": 0.31
|
||||
}
|
||||
],
|
||||
"주": []
|
||||
@@ -1498,7 +1498,7 @@
|
||||
"관경": "고르기"
|
||||
},
|
||||
"값칸": {
|
||||
"배관공(수도)": "인",
|
||||
"배관공_수도": "인",
|
||||
"보통인부": "인",
|
||||
"크레인_플랜지접합": "hr",
|
||||
"크레인_고무슬리브접합": "hr"
|
||||
@@ -1506,98 +1506,98 @@
|
||||
"줄": [
|
||||
{
|
||||
"관경": "250이하",
|
||||
"배관공(수도)": 0.03,
|
||||
"배관공_수도": 0.03,
|
||||
"보통인부": 0.02,
|
||||
"크레인_플랜지접합": 0.22,
|
||||
"크레인_고무슬리브접합": 0.18
|
||||
},
|
||||
{
|
||||
"관경": "300",
|
||||
"배관공(수도)": 0.03,
|
||||
"배관공_수도": 0.03,
|
||||
"보통인부": 0.02,
|
||||
"크레인_플랜지접합": 0.24,
|
||||
"크레인_고무슬리브접합": 0.19
|
||||
},
|
||||
{
|
||||
"관경": "350",
|
||||
"배관공(수도)": 0.04,
|
||||
"배관공_수도": 0.04,
|
||||
"보통인부": 0.02,
|
||||
"크레인_플랜지접합": 0.25,
|
||||
"크레인_고무슬리브접합": 0.2
|
||||
},
|
||||
{
|
||||
"관경": "400",
|
||||
"배관공(수도)": 0.04,
|
||||
"배관공_수도": 0.04,
|
||||
"보통인부": 0.03,
|
||||
"크레인_플랜지접합": 0.27,
|
||||
"크레인_고무슬리브접합": 0.22
|
||||
},
|
||||
{
|
||||
"관경": "510",
|
||||
"배관공(수도)": 0.06,
|
||||
"배관공_수도": 0.06,
|
||||
"보통인부": 0.04,
|
||||
"크레인_플랜지접합": 0.33,
|
||||
"크레인_고무슬리브접합": 0.26
|
||||
},
|
||||
{
|
||||
"관경": "560",
|
||||
"배관공(수도)": 0.07,
|
||||
"배관공_수도": 0.07,
|
||||
"보통인부": 0.04,
|
||||
"크레인_플랜지접합": 0.36,
|
||||
"크레인_고무슬리브접합": 0.29
|
||||
},
|
||||
{
|
||||
"관경": "610",
|
||||
"배관공(수도)": 0.08,
|
||||
"배관공_수도": 0.08,
|
||||
"보통인부": 0.04,
|
||||
"크레인_플랜지접합": 0.38,
|
||||
"크레인_고무슬리브접합": 0.3
|
||||
},
|
||||
{
|
||||
"관경": "630",
|
||||
"배관공(수도)": 0.09,
|
||||
"배관공_수도": 0.09,
|
||||
"보통인부": 0.05,
|
||||
"크레인_플랜지접합": 0.39,
|
||||
"크레인_고무슬리브접합": 0.31
|
||||
},
|
||||
{
|
||||
"관경": "660",
|
||||
"배관공(수도)": 0.09,
|
||||
"배관공_수도": 0.09,
|
||||
"보통인부": 0.05,
|
||||
"크레인_플랜지접합": 0.4,
|
||||
"크레인_고무슬리브접합": 0.32
|
||||
},
|
||||
{
|
||||
"관경": "685",
|
||||
"배관공(수도)": 0.1,
|
||||
"배관공_수도": 0.1,
|
||||
"보통인부": 0.05,
|
||||
"크레인_플랜지접합": 0.41,
|
||||
"크레인_고무슬리브접합": 0.33
|
||||
},
|
||||
{
|
||||
"관경": "710",
|
||||
"배관공(수도)": 0.1,
|
||||
"배관공_수도": 0.1,
|
||||
"보통인부": 0.05,
|
||||
"크레인_플랜지접합": 0.42,
|
||||
"크레인_고무슬리브접합": 0.34
|
||||
},
|
||||
{
|
||||
"관경": "760",
|
||||
"배관공(수도)": 0.11,
|
||||
"배관공_수도": 0.11,
|
||||
"보통인부": 0.05,
|
||||
"크레인_플랜지접합": 0.43,
|
||||
"크레인_고무슬리브접합": 0.34
|
||||
},
|
||||
{
|
||||
"관경": "840",
|
||||
"배관공(수도)": 0.12,
|
||||
"배관공_수도": 0.12,
|
||||
"보통인부": 0.06,
|
||||
"크레인_플랜지접합": 0.47,
|
||||
"크레인_고무슬리브접합": 0.38
|
||||
},
|
||||
{
|
||||
"관경": "860",
|
||||
"배관공(수도)": 0.12,
|
||||
"배관공_수도": 0.12,
|
||||
"보통인부": 0.06,
|
||||
"크레인_플랜지접합": 0.48,
|
||||
"크레인_고무슬리브접합": 0.38
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,10 +4,34 @@
|
||||
"판": "2026-09-19",
|
||||
"비고": "건설노임에 없는 직종 — 이름·단위만 · 값은 관리자가 채움 · 다른 직종에 대응시키지 않음",
|
||||
"줄": [
|
||||
{ "열쇠": "중급기술자", "이름": "중급기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 공통 2-9-12 · 2-11-8 · 2-11-9 · 2-12-4 작업편성인원 · 5-1-7 인장 · 건설품셈 유지관리 1-1-2" },
|
||||
{ "열쇠": "중급기술자", "이름": "중급기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 공통 2-9-12 · 2-11-8 · 2-11-9 · 2-12-4 작업편성인원 · 5-1-7 인장 · 건설품셈 유지관리 1-1-2 · 건설품셈 토목 8-1-2 · 건설품셈 토목 8-1-3 · 건설품셈 토목 8-2-1 · 건설품셈 토목 8-2-2 · 건설품셈 토목 8-2-3 · 건설품셈 토목 8-2-4 · 건설품셈 토목 8-2-5 · 건설품셈 토목 8-2-6 · 건설품셈 토목 8-2-7 · 건설품셈 토목 8-3-1 · 건설품셈 토목 8-3-2 · 건설품셈 토목 8-4-1 · 건설품셈 토목 8-4-2 · 건설품셈 토목 8-4-3 · 건설품셈 토목 9-1-1 · 건설품셈 토목 9-1-2 · 건설품셈 토목 9-1-3 · 건설품셈 토목 9-1-4 · 건설품셈 토목 9-1-5 · 건설품셈 토목 9-2-1 · 건설품셈 토목 9-2-2 · 건설품셈 토목 9-2-3 · 건설품셈 토목 9-2-4 · 건설품셈 토목 9-2-5 · 건설품셈 토목 9-2-6 · 건설품셈 토목 9-2-7 · 건설품셈 토목 9-3-1-1 · 건설품셈 토목 9-3-1-2 · 건설품셈 토목 9-3-2 · 건설품셈 토목 9-3-3 · 건설품셈 토목 9-3-4-4 · 건설품셈 토목 9-3-4-5 · 건설품셈 토목 9-3-4-6 · 건설품셈 토목 9-3-4-7 · 건설품셈 토목 9-3-4-8 · 건설품셈 토목 9-3-5 · 건설품셈 토목 9-4-1 · 건설품셈 토목 9-4-2 · 건설품셈 토목 9-4-3-1 · 건설품셈 토목 9-4-3-2 · 건설품셈 토목 9-4-3-3 · 건설품셈 토목 9-4-3-4 · 건설품셈 토목 9-5-1 · 건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-2 · 건설품셈 토목 9-5-3 · 건설품셈 토목 9-5-4-1 · 건설품셈 토목 9-5-4-10 · 건설품셈 토목 9-5-4-11 · 건설품셈 토목 9-5-4-12 · 건설품셈 토목 9-5-4-6 · 건설품셈 토목 9-5-4-7 · 건설품셈 토목 9-5-4-9 · 건설품셈 토목 9-5-6-1가 · 건설품셈 토목 9-5-6-1나 · 건설품셈 토목 9-5-6-2가 · 건설품셈 토목 9-5-6-2나 · 건설품셈 토목 9-5-7-2 · 건설품셈 토목 9-5-9" },
|
||||
{ "열쇠": "절단공", "이름": "절단공", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 공통 6-2-5 · 건설품셈 기계설비 13-6-11 · 건설품셈 기계설비 13-6-13 · 건설품셈 기계설비 13-6-17" },
|
||||
{ "열쇠": "특수비계공", "이름": "특수비계공", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 공통 6-3-6 설치 및 해체(해체) · 건설품셈 기계설비 13-6-8 · 건설품셈 기계설비 13-6-9 · 건설품셈 기계설비 13-6-10 · 건설품셈 기계설비 13-6-11 · 건설품셈 기계설비 13-6-12 · 건설품셈 기계설비 13-6-13 · 건설품셈 기계설비 13-6-14 · 건설품셈 기계설비 13-6-15 · 건설품셈 기계설비 13-6-17 · 건설품셈 기계설비 13-6-16" },
|
||||
{ "열쇠": "초급기술자", "이름": "초급기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 유지관리 2-4-3" },
|
||||
{ "열쇠": "초급기술자", "이름": "초급기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 유지관리 2-4-3 · 건설품셈 토목 8-2-4 · 건설품셈 토목 8-2-5 · 건설품셈 토목 8-2-6 · 건설품셈 토목 9-1-1 · 건설품셈 토목 9-1-2 · 건설품셈 토목 9-1-3 · 건설품셈 토목 9-1-4 · 건설품셈 토목 9-1-5 · 건설품셈 토목 9-2-1 · 건설품셈 토목 9-2-2 · 건설품셈 토목 9-2-3 · 건설품셈 토목 9-2-4 · 건설품셈 토목 9-2-5 · 건설품셈 토목 9-2-6 · 건설품셈 토목 9-2-7 · 건설품셈 토목 9-3-1-1 · 건설품셈 토목 9-3-1-2 · 건설품셈 토목 9-3-2 · 건설품셈 토목 9-3-3 · 건설품셈 토목 9-3-4-4 · 건설품셈 토목 9-3-4-5 · 건설품셈 토목 9-3-4-6 · 건설품셈 토목 9-3-4-7 · 건설품셈 토목 9-3-4-8 · 건설품셈 토목 9-3-5 · 건설품셈 토목 9-4-1 · 건설품셈 토목 9-4-2 · 건설품셈 토목 9-4-3-1 · 건설품셈 토목 9-4-3-2 · 건설품셈 토목 9-4-3-3 · 건설품셈 토목 9-4-3-4 · 건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-4-1 · 건설품셈 토목 9-5-4-11 · 건설품셈 토목 9-5-4-12 · 건설품셈 토목 9-5-4-4 · 건설품셈 토목 9-5-4-5 · 건설품셈 토목 9-5-4-6 · 건설품셈 토목 9-5-4-7 · 건설품셈 토목 9-5-6-1가 · 건설품셈 토목 9-5-6-1나 · 건설품셈 토목 9-5-6-2가 · 건설품셈 토목 9-5-6-2나 · 건설품셈 토목 9-5-7-1 · 건설품셈 토목 9-5-7-2 · 건설품셈 토목 9-5-9" },
|
||||
{ "열쇠": "고급숙련기술자", "이름": "고급숙련기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-2 · 건설품셈 토목 8-2-7" },
|
||||
{ "열쇠": "중급숙련기술자", "이름": "중급숙련기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-2 · 건설품셈 토목 8-2-7 · 건설품셈 토목 8-4-1 · 건설품셈 토목 8-4-2 · 건설품셈 토목 8-4-3" },
|
||||
{ "열쇠": "초급숙련기술자", "이름": "초급숙련기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-2 · 건설품셈 토목 8-2-7" },
|
||||
{ "열쇠": "기술사", "이름": "기술사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-3-1 · 건설품셈 토목 8-3-2" },
|
||||
{ "열쇠": "특급기술자", "이름": "특급기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-3-1 · 건설품셈 토목 8-3-2 · 건설품셈 토목 9-1-1 · 건설품셈 토목 9-1-2 · 건설품셈 토목 9-1-3 · 건설품셈 토목 9-2-1 · 건설품셈 토목 9-2-2 · 건설품셈 토목 9-2-3 · 건설품셈 토목 9-2-4 · 건설품셈 토목 9-2-5 · 건설품셈 토목 9-2-6 · 건설품셈 토목 9-2-7 · 건설품셈 토목 9-3-1-2 · 건설품셈 토목 9-4-3-1 · 건설품셈 토목 9-4-3-2 · 건설품셈 토목 9-4-3-3 · 건설품셈 토목 9-4-3-4 · 건설품셈 토목 9-5-1 · 건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-3 · 건설품셈 토목 9-5-4-1 · 건설품셈 토목 9-5-4-10 · 건설품셈 토목 9-5-4-11 · 건설품셈 토목 9-5-4-12 · 건설품셈 토목 9-5-4-4 · 건설품셈 토목 9-5-4-6 · 건설품셈 토목 9-5-4-9 · 건설품셈 토목 9-5-9" },
|
||||
{ "열쇠": "고급기술자", "이름": "고급기술자", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-3-1 · 건설품셈 토목 8-3-2 · 건설품셈 토목 9-1-1 · 건설품셈 토목 9-1-2 · 건설품셈 토목 9-1-3 · 건설품셈 토목 9-1-4 · 건설품셈 토목 9-1-5 · 건설품셈 토목 9-2-1 · 건설품셈 토목 9-2-2 · 건설품셈 토목 9-2-3 · 건설품셈 토목 9-2-4 · 건설품셈 토목 9-2-5 · 건설품셈 토목 9-2-6 · 건설품셈 토목 9-2-7 · 건설품셈 토목 9-3-1-1 · 건설품셈 토목 9-3-1-2 · 건설품셈 토목 9-3-2 · 건설품셈 토목 9-3-3 · 건설품셈 토목 9-3-4-4 · 건설품셈 토목 9-3-4-5 · 건설품셈 토목 9-3-4-6 · 건설품셈 토목 9-3-4-7 · 건설품셈 토목 9-3-4-8 · 건설품셈 토목 9-3-5 · 건설품셈 토목 9-4-1 · 건설품셈 토목 9-4-2 · 건설품셈 토목 9-4-3-1 · 건설품셈 토목 9-4-3-2 · 건설품셈 토목 9-4-3-3 · 건설품셈 토목 9-4-3-4 · 건설품셈 토목 9-5-1 · 건설품셈 토목 9-5-1-7 · 건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-2 · 건설품셈 토목 9-5-3 · 건설품셈 토목 9-5-4-1 · 건설품셈 토목 9-5-4-10 · 건설품셈 토목 9-5-4-11 · 건설품셈 토목 9-5-4-12 · 건설품셈 토목 9-5-4-2 · 건설품셈 토목 9-5-4-3 · 건설품셈 토목 9-5-4-4 · 건설품셈 토목 9-5-4-5 · 건설품셈 토목 9-5-4-6 · 건설품셈 토목 9-5-4-7 · 건설품셈 토목 9-5-4-8 · 건설품셈 토목 9-5-4-9 · 건설품셈 토목 9-5-7-1 · 건설품셈 토목 9-5-9" },
|
||||
{ "열쇠": "초급기능사(측량)", "이름": "초급기능사(측량)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-1-2 · 건설품셈 토목 9-1-3 · 건설품셈 토목 9-1-4 · 건설품셈 토목 9-1-5 · 건설품셈 토목 9-3-1-1 · 건설품셈 토목 9-3-2 · 건설품셈 토목 9-3-3 · 건설품셈 토목 9-3-4-4 · 건설품셈 토목 9-3-4-5 · 건설품셈 토목 9-3-4-6 · 건설품셈 토목 9-3-4-7 · 건설품셈 토목 9-3-4-8 · 건설품셈 토목 9-3-5 · 건설품셈 토목 9-4-1 · 건설품셈 토목 9-4-2 · 건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-2 · 건설품셈 토목 9-5-4-12 · 건설품셈 토목 9-5-4-7" },
|
||||
{ "열쇠": "지적산업기사", "이름": "지적산업기사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-3-6 · 건설품셈 토목 9-10-1 · 건설품셈 토목 9-10-2 · 건설품셈 토목 9-11-1 · 건설품셈 토목 9-11-2 · 건설품셈 토목 9-12-1 · 건설품셈 토목 9-13-1 · 건설품셈 토목 9-14-1 · 건설품셈 토목 9-14-2 · 건설품셈 토목 9-15-1 · 건설품셈 토목 9-15-2 · 건설품셈 토목 9-15-3 · 건설품셈 토목 9-16-1 · 건설품셈 토목 9-16-2 · 건설품셈 토목 9-17-1 · 건설품셈 토목 9-17-2 · 건설품셈 토목 9-17-3 · 건설품셈 토목 9-17-4 · 건설품셈 토목 9-17-5 · 건설품셈 토목 9-18-1 · 건설품셈 토목 9-18-2 · 건설품셈 토목 9-18-3 · 건설품셈 토목 9-18-4 · 건설품셈 토목 9-18-5 · 건설품셈 토목 9-18-6 · 건설품셈 토목 9-6-1 · 건설품셈 토목 9-6-2 · 건설품셈 토목 9-6-3가 · 건설품셈 토목 9-6-3나 · 건설품셈 토목 9-7-1 · 건설품셈 토목 9-7-2 · 건설품셈 토목 9-7-3 · 건설품셈 토목 9-7-4 · 건설품셈 토목 9-8-1 · 건설품셈 토목 9-8-2 · 건설품셈 토목 9-9-1 · 건설품셈 토목 9-9-2" },
|
||||
{ "열쇠": "지적기사", "이름": "지적기사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-3-6 · 건설품셈 토목 9-10-1 · 건설품셈 토목 9-10-2 · 건설품셈 토목 9-11-1 · 건설품셈 토목 9-11-2 · 건설품셈 토목 9-12-1 · 건설품셈 토목 9-13-1 · 건설품셈 토목 9-14-1 · 건설품셈 토목 9-14-2 · 건설품셈 토목 9-15-1 · 건설품셈 토목 9-15-2 · 건설품셈 토목 9-15-3 · 건설품셈 토목 9-16-1 · 건설품셈 토목 9-16-2 · 건설품셈 토목 9-17-1 · 건설품셈 토목 9-17-2 · 건설품셈 토목 9-17-3 · 건설품셈 토목 9-18-1 · 건설품셈 토목 9-18-2 · 건설품셈 토목 9-18-3 · 건설품셈 토목 9-18-4 · 건설품셈 토목 9-18-5 · 건설품셈 토목 9-18-6 · 건설품셈 토목 9-6-1 · 건설품셈 토목 9-6-2 · 건설품셈 토목 9-6-3가 · 건설품셈 토목 9-6-3나 · 건설품셈 토목 9-7-1 · 건설품셈 토목 9-7-2 · 건설품셈 토목 9-7-3 · 건설품셈 토목 9-7-4 · 건설품셈 토목 9-8-1 · 건설품셈 토목 9-8-2 · 건설품셈 토목 9-9-1 · 건설품셈 토목 9-9-2" },
|
||||
{ "열쇠": "고급기능사", "이름": "고급기능사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-1" },
|
||||
{ "열쇠": "정보처리기사", "이름": "정보처리기사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-1-7 · 건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-4-10 · 건설품셈 토목 9-5-4-11 · 건설품셈 토목 9-5-4-2 · 건설품셈 토목 9-5-4-3 · 건설품셈 토목 9-5-4-4 · 건설품셈 토목 9-5-4-5 · 건설품셈 토목 9-5-4-6 · 건설품셈 토목 9-5-4-7 · 건설품셈 토목 9-5-4-8 · 건설품셈 토목 9-5-9" },
|
||||
{ "열쇠": "중급기능사(항공사진)", "이름": "중급기능사(항공사진)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-1-7" },
|
||||
{ "열쇠": "고급기능사(도화)", "이름": "고급기능사(도화)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-4-1 · 건설품셈 토목 9-5-4-11" },
|
||||
{ "열쇠": "중급기능사(도화)", "이름": "중급기능사(도화)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-4-1 · 건설품셈 토목 9-5-4-10 · 건설품셈 토목 9-5-4-11 · 건설품셈 토목 9-5-4-9" },
|
||||
{ "열쇠": "초급기능사(도화)", "이름": "초급기능사(도화)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-4-1 · 건설품셈 토목 9-5-4-11" },
|
||||
{ "열쇠": "중급기능사(지도제작)", "이름": "중급기능사(지도제작)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-4-12 · 건설품셈 토목 9-5-4-2 · 건설품셈 토목 9-5-4-3 · 건설품셈 토목 9-5-4-4 · 건설품셈 토목 9-5-4-5 · 건설품셈 토목 9-5-4-6 · 건설품셈 토목 9-5-4-7 · 건설품셈 토목 9-5-5 · 건설품셈 토목 9-5-6-1가 · 건설품셈 토목 9-5-6-1나 · 건설품셈 토목 9-5-6-2가 · 건설품셈 토목 9-5-6-2나 · 건설품셈 토목 9-5-7-1 · 건설품셈 토목 9-5-7-2" },
|
||||
{ "열쇠": "중급기능사(측량)", "이름": "중급기능사(측량)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-4-7 · 건설품셈 토목 9-5-4-8" },
|
||||
{ "열쇠": "조종사", "이름": "조종사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-4-9" },
|
||||
{ "열쇠": "정비사", "이름": "정비사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-4-9" },
|
||||
{ "열쇠": "중급기능사(지도)", "이름": "중급기능사(지도)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-10 · 건설품셈 토목 9-5-4-10 · 건설품셈 토목 9-5-4-11 · 건설품셈 토목 9-5-4-12 · 건설품셈 토목 9-5-4-9" },
|
||||
{ "열쇠": "초급기능사(지도제작)", "이름": "초급기능사(지도제작)", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-6-1가 · 건설품셈 토목 9-5-6-2가 · 건설품셈 토목 9-5-7-2" },
|
||||
{ "열쇠": "사진제판공", "이름": "사진제판공", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-6-2가 · 건설품셈 토목 9-5-7-2" },
|
||||
{ "열쇠": "사진식자공", "이름": "사진식자공", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-6-2가 · 건설품셈 토목 9-5-7-2" },
|
||||
{ "열쇠": "옵셋인쇄공", "이름": "옵셋인쇄공", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 토목 9-5-7-2" },
|
||||
{ "열쇠": "함석공", "이름": "함석공", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 13-3-2" },
|
||||
{ "열쇠": "기계산업기사", "이름": "기계산업기사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 13-4-4 · 건설품셈 기계설비 13-5-4 · 건설품셈 기계설비 13-5-5 · 건설품셈 기계설비 13-6-5 · 건설품셈 기계설비 13-6-6 · 건설품셈 기계설비 13-6-7 · 건설품셈 기계설비 13-7-5 · 건설품셈 기계설비 13-7-6 · 건설품셈 기계설비 13-7-7 · 건설품셈 기계설비 13-10-2 · 건설품셈 기계설비 13-10-3 · 건설품셈 기계설비 13-11-1 · 건설품셈 기계설비 13-11-2 · 건설품셈 기계설비 13-11-3" },
|
||||
{ "열쇠": "기계기사", "이름": "기계기사", "규격": "", "단위": "원/일", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 13-5-1 · 건설품셈 기계설비 13-5-2 · 건설품셈 기계설비 13-5-8 · 건설품셈 기계설비 13-5-9 · 건설품셈 기계설비 13-5-10 · 건설품셈 기계설비 13-6-1 · 건설품셈 기계설비 13-6-2 · 건설품셈 기계설비 13-6-3 · 건설품셈 기계설비 13-6-4 · 건설품셈 기계설비 13-6-8 · 건설품셈 기계설비 13-6-9 · 건설품셈 기계설비 13-6-10 · 건설품셈 기계설비 13-6-11 · 건설품셈 기계설비 13-6-12 · 건설품셈 기계설비 13-6-13 · 건설품셈 기계설비 13-6-14 · 건설품셈 기계설비 13-6-15 · 건설품셈 기계설비 13-6-17 · 건설품셈 기계설비 13-6-16 · 건설품셈 기계설비 13-7-1 · 건설품셈 기계설비 13-7-2 · 건설품셈 기계설비 13-7-3 · 건설품셈 기계설비 13-7-4 · 건설품셈 기계설비 13-7-8 · 건설품셈 기계설비 13-7-9 · 건설품셈 기계설비 13-7-10 · 건설품셈 기계설비 13-7-14 · 건설품셈 기계설비 13-7-15 · 건설품셈 기계설비 13-7-18 · 건설품셈 기계설비 13-7-19 · 건설품셈 기계설비 13-7-20 · 건설품셈 기계설비 13-7-21 · 건설품셈 기계설비 13-7-16 · 건설품셈 기계설비 13-7-17 · 건설품셈 기계설비 13-7-22 · 건설품셈 기계설비 13-8-1 · 건설품셈 기계설비 13-8-2 · 건설품셈 기계설비 13-8-4 · 건설품셈 기계설비 13-8-5 · 건설품셈 기계설비 13-8-6 · 건설품셈 기계설비 13-8-7" },
|
||||
|
||||
@@ -6,86 +6,86 @@
|
||||
"줄": [
|
||||
{"열쇠": "레미콘", "이름": "레디믹스트콘크리트", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-9-1 · 12-11-1 · 12-11-2-1 · 12-12 · 12-13 · 12-15 · 12-16 · 12-17-2 · 12-17-3 · 13-4-4 주① · 13-4-5 · 13-5-1 주⑤ · 13-5-2 · 규격(강도·골재·슬럼프)별 값이 다르면 관리자가 줄을 나눔 · 건설품셈 공통 7-3-1 주⑥ 채움콘크리트"},
|
||||
{"열쇠": "시멘트", "이름": "시멘트", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤⑥ · 12-17-1-2 주③ · 건설품셈 공통 6-3-1 주⑤ · 건설품셈 건축 5-4-9 · 건설품셈 건축 9-1-1 · 건설품셈 건축 9-2-3 · 건설품셈 건축 9-3-1"},
|
||||
{ "열쇠": "모래(중량)", "이름": "모래", "규격": "건조상태", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤" },
|
||||
{"열쇠": "모래(중량)", "이름": "모래", "규격": "건조상태", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤"},
|
||||
{"열쇠": "모래", "이름": "모래", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 · 12-17-1-2 주③ · 건설품셈 공통 6-3-1 주⑤ · 건설품셈 건축 9-1-1 · 건설품셈 건축 9-3-1 · 건설품셈 기계설비 13-6-3 · 건설품셈 기계설비 13-6-6"},
|
||||
{ "열쇠": "자갈(중량)", "이름": "자갈 또는 부순돌", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤" },
|
||||
{ "열쇠": "자갈", "이름": "자갈", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-17-1-2 주③" },
|
||||
{ "열쇠": "이형철근", "이름": "이형철근", "규격": "", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-15 · 12-16" },
|
||||
{ "열쇠": "이형철근 SD300 D16", "이름": "이형철근", "규격": "SD300, D16", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-9-1" },
|
||||
{ "열쇠": "이형철근 SD300 D13", "이름": "이형철근", "규격": "SD300, D13", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-12" },
|
||||
{ "열쇠": "원형철근 ∅29㎜", "이름": "원형철근", "규격": "∅29㎜, L=500㎜", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2" },
|
||||
{ "열쇠": "강봉 D32㎜", "이름": "강봉", "규격": "D32㎜, L=1000㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-30-1" },
|
||||
{ "열쇠": "사다리", "이름": "사다리", "규격": "∅19㎜ 아연도금 및 스테인레스", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-16" },
|
||||
{ "열쇠": "고철", "이름": "고철", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 9-8-1 주4 · 12-34-3" },
|
||||
{ "열쇠": "폼타이", "이름": "폼타이(Form Tie)", "규격": "D형 1/2인치", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-4 주⑦ · 건설품셈 공통 6-3-1 주④" },
|
||||
{ "열쇠": "문양 스티로폴", "이름": "문양 스티로폴(자재비 포함)", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-5" },
|
||||
{ "열쇠": "커터 블레이드", "이름": "커터 블레이드", "규격": "320~400㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-7-1 주③" },
|
||||
{ "열쇠": "물", "이름": "물", "규격": "", "단위": "ℓ", "값": null, "출처": "자체", "비고": "산림품셈 12-7-1 주④" },
|
||||
{ "열쇠": "철재 거푸집", "이름": "철재 거푸집(콘크리트 포장)", "규격": "1본 3m", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-8 주①④" },
|
||||
{ "열쇠": "핀폴", "이름": "핀폴", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-8 주①④" },
|
||||
{ "열쇠": "유공관 ∅200㎜", "이름": "유공관", "규격": "∅200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-10" },
|
||||
{ "열쇠": "부직포", "이름": "부직포", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-10 · 12-23 · 건설품셈 공통 2-11-1 재료량 · 건설품셈 공통 5-4-1 재료량" },
|
||||
{ "열쇠": "잡석", "이름": "잡석", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-10 · 13-4-2 · 13-5-2" },
|
||||
{ "열쇠": "VR관 ∅800㎜", "이름": "VR관(소켓식)", "규격": "∅800㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1" },
|
||||
{ "열쇠": "고무링 ∅800㎜", "이름": "고무링(VR관)", "규격": "∅800㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1" },
|
||||
{ "열쇠": "흄관 ∅800㎜", "이름": "흄관", "규격": "∅800㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1" },
|
||||
{ "열쇠": "파형강관 ∅800㎜", "이름": "파형강관", "규격": "∅800㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3" },
|
||||
{ "열쇠": "커플링밴드 ∅800㎜", "이름": "커플링밴드(파형강관)", "규격": "∅800㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 주①" },
|
||||
{ "열쇠": "VR관 ∅1000㎜", "이름": "VR관(소켓식)", "규격": "∅1000㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1" },
|
||||
{ "열쇠": "고무링 ∅1000㎜", "이름": "고무링(VR관)", "규격": "∅1000㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1" },
|
||||
{ "열쇠": "흄관 ∅1000㎜", "이름": "흄관", "규격": "∅1000㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1" },
|
||||
{ "열쇠": "파형강관 ∅1000㎜", "이름": "파형강관", "규격": "∅1000㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3" },
|
||||
{ "열쇠": "커플링밴드 ∅1000㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1000㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 주①" },
|
||||
{ "열쇠": "VR관 ∅1200㎜", "이름": "VR관(소켓식)", "규격": "∅1200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1" },
|
||||
{ "열쇠": "고무링 ∅1200㎜", "이름": "고무링(VR관)", "규격": "∅1200㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1" },
|
||||
{ "열쇠": "흄관 ∅1200㎜", "이름": "흄관", "규격": "∅1200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1" },
|
||||
{ "열쇠": "파형강관 ∅1200㎜", "이름": "파형강관", "규격": "∅1200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3" },
|
||||
{ "열쇠": "커플링밴드 ∅1200㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1200㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 주①" },
|
||||
{ "열쇠": "지수활제", "이름": "지수활제", "규격": "", "단위": "g", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1" },
|
||||
{ "열쇠": "모르타르 1:2", "이름": "접합몰탈", "규격": "1:2", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1 · 건설품셈 건축 2-1-4 · 건설품셈 건축 3-2-2" },
|
||||
{ "열쇠": "스틸그레이팅", "이름": "집수정 뚜껑", "규격": "스틸그레이팅", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-15" },
|
||||
{ "열쇠": "원형거푸집 벽체", "이름": "원형거푸집(PE 10회)", "규격": "벽체", "단위": "조", "값": null, "출처": "자체", "비고": "산림품셈 12-16" },
|
||||
{ "열쇠": "원형거푸집 스라브 및 기초", "이름": "원형거푸집(PE 10회)", "규격": "스라브 및 기초", "단위": "조", "값": null, "출처": "자체", "비고": "산림품셈 12-16" },
|
||||
{ "열쇠": "철물", "이름": "철물(강관비계)", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-19" },
|
||||
{ "열쇠": "강관동바리 내관", "이름": "강관동바리 내관", "규격": "48.6㎜×2.4㎜", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-20" },
|
||||
{ "열쇠": "강관동바리 외관", "이름": "강관동바리 외관", "규격": "60.6㎜×2.3㎜", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-20" },
|
||||
{ "열쇠": "아스팔트 ㏊-500", "이름": "아스팔트", "규격": "㏊-500", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-21" },
|
||||
{ "열쇠": "PVC 파이프 50㎜", "이름": "P.V.C 파이프", "규격": "50㎜", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-22 · 원문 단위 없음" },
|
||||
{ "열쇠": "JOINT FILLER", "이름": "JOINT FILLER", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-27-2 · 12-34-4" },
|
||||
{ "열쇠": "JOINT FILLER 접착제", "이름": "접착제(JOINT FILLER)", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-27-2" },
|
||||
{ "열쇠": "실런트", "이름": "실런트", "규격": "20×25㎜", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-27-3 · 해석: 원문 단위 ㎥ 이나 비고 식 0.02×0.025×1400kg/㎥ = 0.7 — kg" },
|
||||
{ "열쇠": "에폭시 접착제 콘크리트용", "이름": "에폭시 접착제", "규격": "콘크리트용", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-28" },
|
||||
{ "열쇠": "스페이셔 몰탈 블록", "이름": "스페이셔(몰탈 블록)", "규격": "", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-29 · 원문 단위 없음" },
|
||||
{ "열쇠": "PVC 파이프 Ø35㎜", "이름": "P.V.C 파이프", "규격": "Ø35㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-30-1" },
|
||||
{ "열쇠": "탄성고무받침", "이름": "탄성고무받침", "규격": "150×150×15", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2" },
|
||||
{ "열쇠": "스티로폴 T20㎜", "이름": "스티로폴", "규격": "T=20㎜", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2" },
|
||||
{ "열쇠": "TAR PAPER", "이름": "TAR PAPER", "규격": "T=15㎜", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2" },
|
||||
{ "열쇠": "채움재 아스팔트", "이름": "채움재(아스팔트)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2" },
|
||||
{ "열쇠": "다웰바캡", "이름": "다웰바캡", "규격": "D=50㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2" },
|
||||
{ "열쇠": "물끊기 홈 재료", "이름": "물끊기 홈(NOTCH) 재료", "규격": "", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-31 · 원문 재료 이름·단위 없음" },
|
||||
{ "열쇠": "하드너", "이름": "콘크리트 표면 강화재(하드너)", "규격": "", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-35 · 원문 단위 없음" },
|
||||
{ "열쇠": "소재", "이름": "소재(원목)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 10-8-2" },
|
||||
{ "열쇠": "각재·판재", "이름": "각재·판재", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 10-8-2" },
|
||||
{ "열쇠": "목재", "이름": "목재(규준틀)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 11-2 · 11-3 · 해석: 원문 단위 없음 — ㎥ · 건설품셈 공통 2-5-4 · 2-11-1 재료량" },
|
||||
{ "열쇠": "줄눈 모르타르", "이름": "줄눈메꿈 모르타르", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-4-4 주④ · 13-5-1 주③" },
|
||||
{ "열쇠": "틈메우기돌", "이름": "틈메우기돌", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-5-1 주④" },
|
||||
{ "열쇠": "철망태", "이름": "철망태(사각형 돌망태)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-11-4" },
|
||||
{ "열쇠": "돌망태 채움재", "이름": "채움재(돌망태)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-11-4" },
|
||||
{ "열쇠": "농약(Fluroxypyr-meptyl+Triclypyr-TEA 미탁제)", "이름": "농약", "규격": "Fluroxypyr-meptyl+Triclypyr-TEA 미탁제", "단위": "병", "값": null, "출처": "자체", "비고": "산림품셈 2-1-5-1 · 6-4-2" },
|
||||
{ "열쇠": "우드칩", "이름": "우드칩(목재칩)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 6-8" },
|
||||
{ "열쇠": "깃발", "이름": "깃발", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 8-6-1" },
|
||||
{ "열쇠": "폭약", "이름": "폭약", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 3-3-7 · 3-3-9" },
|
||||
{ "열쇠": "뇌관", "이름": "뇌관", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 공통 3-3-7 · 3-3-9" },
|
||||
{ "열쇠": "비트", "이름": "비트(소형브레이커 천공)", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 공통 3-3-7 · 3-3-9" },
|
||||
{ "열쇠": "초류종자", "이름": "종자(초류)", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량" },
|
||||
{ "열쇠": "복합비료", "이름": "비료", "규격": "복합비료", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량" },
|
||||
{ "열쇠": "피복제", "이름": "피복제", "규격": "화이버/펄프류", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량" },
|
||||
{ "열쇠": "침식방지안정제", "이름": "침식방지안정제", "규격": "합성접착제", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량" },
|
||||
{ "열쇠": "착색제", "이름": "색소", "규격": "착색제", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량" },
|
||||
{ "열쇠": "차선도색 프라이머", "이름": "프라이머", "규격": "융착식 도료 차선도색용", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-8-9 융착식 도료 수동식 재료 · 건설품셈 유지관리 2-1-15 4 자재수량" },
|
||||
{ "열쇠": "낙석방지망 철망", "이름": "철망", "규격": "낙석방지망용", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)" },
|
||||
{ "열쇠": "결속선", "이름": "결속선", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)" },
|
||||
{ "열쇠": "에폭시", "이름": "에폭시", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료) · 포켓식만" },
|
||||
{"열쇠": "자갈(중량)", "이름": "자갈 또는 부순돌", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤"},
|
||||
{"열쇠": "자갈", "이름": "자갈", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-17-1-2 주③"},
|
||||
{"열쇠": "이형철근", "이름": "이형철근", "규격": "", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-15 · 12-16"},
|
||||
{"열쇠": "이형철근 SD300 D16", "이름": "이형철근", "규격": "SD300, D16", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-9-1"},
|
||||
{"열쇠": "이형철근 SD300 D13", "이름": "이형철근", "규격": "SD300, D13", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-12"},
|
||||
{"열쇠": "원형철근 ∅29㎜", "이름": "원형철근", "규격": "∅29㎜, L=500㎜", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2"},
|
||||
{"열쇠": "강봉 D32㎜", "이름": "강봉", "규격": "D32㎜, L=1000㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-30-1"},
|
||||
{"열쇠": "사다리", "이름": "사다리", "규격": "∅19㎜ 아연도금 및 스테인레스", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-16"},
|
||||
{"열쇠": "고철", "이름": "고철", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 9-8-1 주4 · 12-34-3"},
|
||||
{"열쇠": "폼타이", "이름": "폼타이(Form Tie)", "규격": "D형 1/2인치", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-4 주⑦ · 건설품셈 공통 6-3-1 주④"},
|
||||
{"열쇠": "문양 스티로폴", "이름": "문양 스티로폴(자재비 포함)", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-5"},
|
||||
{"열쇠": "커터 블레이드", "이름": "커터 블레이드", "규격": "320~400㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-7-1 주③"},
|
||||
{"열쇠": "물", "이름": "물", "규격": "", "단위": "ℓ", "값": null, "출처": "자체", "비고": "산림품셈 12-7-1 주④"},
|
||||
{"열쇠": "철재 거푸집", "이름": "철재 거푸집(콘크리트 포장)", "규격": "1본 3m", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-8 주①④"},
|
||||
{"열쇠": "핀폴", "이름": "핀폴", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-8 주①④"},
|
||||
{"열쇠": "유공관 ∅200㎜", "이름": "유공관", "규격": "∅200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-10"},
|
||||
{"열쇠": "부직포", "이름": "부직포", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-10 · 12-23 · 건설품셈 공통 2-11-1 재료량 · 건설품셈 공통 5-4-1 재료량"},
|
||||
{"열쇠": "잡석", "이름": "잡석", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-10 · 13-4-2 · 13-5-2"},
|
||||
{"열쇠": "VR관 ∅800㎜", "이름": "VR관(소켓식)", "규격": "∅800㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1"},
|
||||
{"열쇠": "고무링 ∅800㎜", "이름": "고무링(VR관)", "규격": "∅800㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1"},
|
||||
{"열쇠": "흄관 ∅800㎜", "이름": "흄관", "규격": "∅800㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1"},
|
||||
{"열쇠": "파형강관 ∅800㎜", "이름": "파형강관", "규격": "∅800㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3"},
|
||||
{"열쇠": "커플링밴드 ∅800㎜", "이름": "커플링밴드(파형강관)", "규격": "∅800㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 주①"},
|
||||
{"열쇠": "VR관 ∅1000㎜", "이름": "VR관(소켓식)", "규격": "∅1000㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1"},
|
||||
{"열쇠": "고무링 ∅1000㎜", "이름": "고무링(VR관)", "규격": "∅1000㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1"},
|
||||
{"열쇠": "흄관 ∅1000㎜", "이름": "흄관", "규격": "∅1000㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1"},
|
||||
{"열쇠": "파형강관 ∅1000㎜", "이름": "파형강관", "규격": "∅1000㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3"},
|
||||
{"열쇠": "커플링밴드 ∅1000㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1000㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 주①"},
|
||||
{"열쇠": "VR관 ∅1200㎜", "이름": "VR관(소켓식)", "규격": "∅1200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1"},
|
||||
{"열쇠": "고무링 ∅1200㎜", "이름": "고무링(VR관)", "규격": "∅1200㎜", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1"},
|
||||
{"열쇠": "흄관 ∅1200㎜", "이름": "흄관", "규격": "∅1200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1"},
|
||||
{"열쇠": "파형강관 ∅1200㎜", "이름": "파형강관", "규격": "∅1200㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3"},
|
||||
{"열쇠": "커플링밴드 ∅1200㎜", "이름": "커플링밴드(파형강관)", "규격": "∅1200㎜", "단위": "EA", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 주①"},
|
||||
{"열쇠": "지수활제", "이름": "지수활제", "규격": "", "단위": "g", "값": null, "출처": "자체", "비고": "산림품셈 12-11-1"},
|
||||
{"열쇠": "모르타르 1:2", "이름": "접합몰탈", "규격": "1:2", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-11-2-1 · 건설품셈 건축 2-1-4 · 건설품셈 건축 3-2-2"},
|
||||
{"열쇠": "스틸그레이팅", "이름": "집수정 뚜껑", "규격": "스틸그레이팅", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-15"},
|
||||
{"열쇠": "원형거푸집 벽체", "이름": "원형거푸집(PE 10회)", "규격": "벽체", "단위": "조", "값": null, "출처": "자체", "비고": "산림품셈 12-16"},
|
||||
{"열쇠": "원형거푸집 스라브 및 기초", "이름": "원형거푸집(PE 10회)", "규격": "스라브 및 기초", "단위": "조", "값": null, "출처": "자체", "비고": "산림품셈 12-16"},
|
||||
{"열쇠": "철물", "이름": "철물(강관비계)", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 12-19"},
|
||||
{"열쇠": "강관동바리 내관", "이름": "강관동바리 내관", "규격": "48.6㎜×2.4㎜", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-20"},
|
||||
{"열쇠": "강관동바리 외관", "이름": "강관동바리 외관", "규격": "60.6㎜×2.3㎜", "단위": "본", "값": null, "출처": "자체", "비고": "산림품셈 12-20"},
|
||||
{"열쇠": "아스팔트 ㏊-500", "이름": "아스팔트", "규격": "㏊-500", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-21"},
|
||||
{"열쇠": "PVC 파이프 50㎜", "이름": "P.V.C 파이프", "규격": "50㎜", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-22 · 원문 단위 없음"},
|
||||
{"열쇠": "JOINT FILLER", "이름": "JOINT FILLER", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-27-2 · 12-34-4"},
|
||||
{"열쇠": "JOINT FILLER 접착제", "이름": "접착제(JOINT FILLER)", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-27-2"},
|
||||
{"열쇠": "실런트", "이름": "실런트", "규격": "20×25㎜", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-27-3 · 해석: 원문 단위 ㎥ 이나 비고 식 0.02×0.025×1400kg/㎥ = 0.7 — kg"},
|
||||
{"열쇠": "에폭시 접착제 콘크리트용", "이름": "에폭시 접착제", "규격": "콘크리트용", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-28"},
|
||||
{"열쇠": "스페이셔 몰탈 블록", "이름": "스페이셔(몰탈 블록)", "규격": "", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-29 · 원문 단위 없음"},
|
||||
{"열쇠": "PVC 파이프 Ø35㎜", "이름": "P.V.C 파이프", "규격": "Ø35㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-30-1"},
|
||||
{"열쇠": "탄성고무받침", "이름": "탄성고무받침", "규격": "150×150×15", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2"},
|
||||
{"열쇠": "스티로폴 T20㎜", "이름": "스티로폴", "규격": "T=20㎜", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2"},
|
||||
{"열쇠": "TAR PAPER", "이름": "TAR PAPER", "규격": "T=15㎜", "단위": "㎡", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2"},
|
||||
{"열쇠": "채움재 아스팔트", "이름": "채움재(아스팔트)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2"},
|
||||
{"열쇠": "다웰바캡", "이름": "다웰바캡", "규격": "D=50㎜", "단위": "m", "값": null, "출처": "자체", "비고": "산림품셈 12-30-2"},
|
||||
{"열쇠": "물끊기 홈 재료", "이름": "물끊기 홈(NOTCH) 재료", "규격": "", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-31 · 원문 재료 이름·단위 없음"},
|
||||
{"열쇠": "하드너", "이름": "콘크리트 표면 강화재(하드너)", "규격": "", "단위": "", "값": null, "출처": "자체", "비고": "산림품셈 12-35 · 원문 단위 없음"},
|
||||
{"열쇠": "소재", "이름": "소재(원목)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 10-8-2"},
|
||||
{"열쇠": "각재·판재", "이름": "각재·판재", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 10-8-2"},
|
||||
{"열쇠": "목재", "이름": "목재(규준틀)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 11-2 · 11-3 · 해석: 원문 단위 없음 — ㎥ · 건설품셈 공통 2-5-4 · 2-11-1 재료량"},
|
||||
{"열쇠": "줄눈 모르타르", "이름": "줄눈메꿈 모르타르", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-4-4 주④ · 13-5-1 주③"},
|
||||
{"열쇠": "틈메우기돌", "이름": "틈메우기돌", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-5-1 주④"},
|
||||
{"열쇠": "철망태", "이름": "철망태(사각형 돌망태)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-11-4"},
|
||||
{"열쇠": "돌망태 채움재", "이름": "채움재(돌망태)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 13-11-4"},
|
||||
{"열쇠": "농약(Fluroxypyr-meptyl+Triclypyr-TEA 미탁제)", "이름": "농약", "규격": "Fluroxypyr-meptyl+Triclypyr-TEA 미탁제", "단위": "병", "값": null, "출처": "자체", "비고": "산림품셈 2-1-5-1 · 6-4-2"},
|
||||
{"열쇠": "우드칩", "이름": "우드칩(목재칩)", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 6-8"},
|
||||
{"열쇠": "깃발", "이름": "깃발", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "산림품셈 8-6-1"},
|
||||
{"열쇠": "폭약", "이름": "폭약", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 3-3-7 · 3-3-9"},
|
||||
{"열쇠": "뇌관", "이름": "뇌관", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 공통 3-3-7 · 3-3-9"},
|
||||
{"열쇠": "비트", "이름": "비트(소형브레이커 천공)", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 공통 3-3-7 · 3-3-9"},
|
||||
{"열쇠": "초류종자", "이름": "종자(초류)", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량"},
|
||||
{"열쇠": "복합비료", "이름": "비료", "규격": "복합비료", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량"},
|
||||
{"열쇠": "피복제", "이름": "피복제", "규격": "화이버/펄프류", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량"},
|
||||
{"열쇠": "침식방지안정제", "이름": "침식방지안정제", "규격": "합성접착제", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량"},
|
||||
{"열쇠": "착색제", "이름": "색소", "규격": "착색제", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 공통 4-1-3 재료량"},
|
||||
{"열쇠": "차선도색 프라이머", "이름": "프라이머", "규격": "융착식 도료 차선도색용", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-8-9 융착식 도료 수동식 재료 · 건설품셈 유지관리 2-1-15 4 자재수량"},
|
||||
{"열쇠": "낙석방지망 철망", "이름": "철망", "규격": "낙석방지망용", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"},
|
||||
{"열쇠": "결속선", "이름": "결속선", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료)"},
|
||||
{"열쇠": "에폭시", "이름": "에폭시", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 토목 1-9-4 낙석방지망 재료(참고자료) · 포켓식만"},
|
||||
{"열쇠": "에폭시 신구콘크리트 접착제", "이름": "Epoxy 신구-콘크리트 접착제", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 공통 6-1-5"},
|
||||
{"열쇠": "에폭시 콘크리트고무 접착제", "이름": "Epoxy-콘크리트 고무 접착제", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 공통 6-1-5"},
|
||||
{"열쇠": "폼타이 9.5㎜", "이름": "폼타이(Form Tie)", "규격": "9.5㎜", "단위": "본", "값": null, "출처": "자체", "비고": "건설품셈 공통 6-3-1 주④"},
|
||||
@@ -134,7 +134,7 @@
|
||||
{"열쇠": "보호망", "이름": "보호망", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 공통 2-8-8 재료량 · 2-8-9 재료량"},
|
||||
{"열쇠": "보호막", "이름": "보호막", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 공통 2-10-1 재료량"},
|
||||
{"열쇠": "방진망", "이름": "방진망", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 공통 2-10-2 재료량"},
|
||||
{ "열쇠": "풀", "이름": "풀(보양지)", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 공통 2-11-1 재료량 · 건설품셈 건축 5-3-7" },
|
||||
{"열쇠": "풀", "이름": "풀(보양지)", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "건설품셈 공통 2-11-1 재료량 · 건설품셈 건축 5-3-7"},
|
||||
{"열쇠": "토목섬유 매트", "이름": "매트(합성수지 토목섬유)", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 공통 5-2-1 매트고정 재료량"},
|
||||
{"열쇠": "PP로프 9㎜", "이름": "P.P로프", "규격": "9㎜", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 공통 5-2-1 매트고정 재료량"},
|
||||
{"열쇠": "모래주머니", "이름": "모래주머니", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 공통 5-2-1 매트고정 재료량"},
|
||||
@@ -229,6 +229,30 @@
|
||||
{"열쇠": "Wire Brush", "이름": "Wire Brush", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1 · 건설품셈 기계설비 13-11-5"},
|
||||
{"열쇠": "스레트실테이프 13㎜", "이름": "스레트실테이프", "규격": "13㎜", "단위": "㎝", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 11-1-3 · 건설품셈 기계설비 11-3-3"},
|
||||
{"열쇠": "컴파운드", "이름": "컴파운드", "규격": "", "단위": "g", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 11-1-3 · 건설품셈 기계설비 11-3-3"},
|
||||
{"열쇠": "싱글코아바렐 보링용", "이름": "싱글코아바렐", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-2"},
|
||||
{"열쇠": "메탈크라운비트 보링용", "이름": "메탈크라운비트", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-2 · 건설품셈 토목 8-1-3"},
|
||||
{"열쇠": "쵸핑비트 보링용", "이름": "쵸핑비트", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-2"},
|
||||
{"열쇠": "드라이브파이프헤드 보링용", "이름": "드라이브파이프헤드", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-2"},
|
||||
{"열쇠": "드라이브파이프슈 보링용", "이름": "드라이브파이프슈", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-2"},
|
||||
{"열쇠": "드라이브파이프 보링용", "이름": "드라이브파이프", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-2"},
|
||||
{"열쇠": "더블코아바렐 보링용", "이름": "더블코아바렐", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-3"},
|
||||
{"열쇠": "다이아몬드비트 보링용", "이름": "다이아몬드비트", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-3"},
|
||||
{"열쇠": "메탈리밍쉘 보링용", "이름": "메탈리밍쉘", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-3"},
|
||||
{"열쇠": "다이아몬드리밍쉘 보링용", "이름": "다이아몬드리밍쉘", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-3"},
|
||||
{"열쇠": "코아리프터 보링용", "이름": "코아리프터", "규격": "보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-1-3"},
|
||||
{"열쇠": "슈 표준관입시험용", "이름": "슈", "규격": "표준관입시험용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-1"},
|
||||
{"열쇠": "샘플러 표준관입시험용", "이름": "샘플러", "규격": "표준관입시험용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-1"},
|
||||
{"열쇠": "신월튜브 자연시료 채취용", "이름": "신월튜브", "규격": "자연시료 채취용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-3"},
|
||||
{"열쇠": "베인 블레이드 대형 75×150×3㎜", "이름": "베인 블레이드", "규격": "대형 75×150×3㎜", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-2"},
|
||||
{"열쇠": "베인 전용로드 ø16×750", "이름": "베인 전용로드", "규격": "ø16×750", "단위": "본", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-2"},
|
||||
{"열쇠": "로드 ø40.5×1m", "이름": "로드", "규격": "ø40.5×1m", "단위": "본", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-2"},
|
||||
{"열쇠": "표준사 평판재하시험용", "이름": "표준사", "규격": "평판재하시험용", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-4"},
|
||||
{"열쇠": "단독콘 정재하시험용", "이름": "단독콘", "규격": "정재하시험용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-2-6"},
|
||||
{"열쇠": "윙비트 대구경 보링용", "이름": "윙비트", "규격": "대구경 보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-4-1 · 건설품셈 토목 8-4-2"},
|
||||
{"열쇠": "벤토나이트 보링 이수용", "이름": "벤토나이트", "규격": "보링 이수용", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-4-1 · 건설품셈 토목 8-4-2"},
|
||||
{"열쇠": "기포제 대구경 보링용", "이름": "기포제", "규격": "대구경 보링용", "단위": "ℓ", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-4-2"},
|
||||
{"열쇠": "에어해머 대구경 보링용", "이름": "에어해머", "규격": "대구경 보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-4-2"},
|
||||
{"열쇠": "버튼비트 대구경 보링용", "이름": "버튼비트", "규격": "대구경 보링용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 8-4-2"},
|
||||
{"열쇠": "전력", "이름": "전력", "규격": "", "단위": "㎾h", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 13-2-4 · 건설품셈 기계설비 13-6-3 · 건설품셈 기계설비 13-6-6"},
|
||||
{"열쇠": "보온 성형물", "이름": "보온 성형물", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 13-3-1"},
|
||||
{"열쇠": "보온용 철선", "이름": "철선", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 13-3-1"},
|
||||
|
||||
@@ -23,6 +23,7 @@ LOGIC_BOOK, LOGIC_KEY = (
|
||||
"건설품셈",
|
||||
"3-3-1 암발파(미진동굴착 TYPE-Ⅰ)",
|
||||
) # 화약취급공 1016 · 보통인부 1002
|
||||
LOGIC_INPUTS = {"지역": "전국평균", "보정작업": "해당 없음"}
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -44,7 +45,8 @@ def _get(client: TestClient, url: str, **params) -> dict:
|
||||
|
||||
def _calc(client: TestClient, **inputs) -> dict:
|
||||
res = client.post(
|
||||
"/api/m01/calc", json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": inputs}
|
||||
"/api/m01/calc",
|
||||
json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": {**LOGIC_INPUTS, **inputs}},
|
||||
)
|
||||
assert res.status_code == 200, res.text
|
||||
return res.json()
|
||||
@@ -175,12 +177,19 @@ def test_단가_자동_요소_찾기_저장전_시험계산(client: TestClient)
|
||||
before = _calc(client)["sums"]["계"]
|
||||
half = {**one["logic"], "호표": one["logic"]["호표"][:1]} # 보통인부 줄 뺌
|
||||
res = client.post(
|
||||
"/api/m01/calc", json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": {}, "row": half}
|
||||
"/api/m01/calc",
|
||||
json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": LOGIC_INPUTS, "row": half},
|
||||
)
|
||||
lines = res.json()["lines"]
|
||||
assert [x["이름"] for x in lines] == ["화약취급공"] and res.json()["sums"]["계"] < before
|
||||
new = {**half, "열쇠": "새 로직"}
|
||||
body = {"book": LOGIC_BOOK, "key": "새 로직", "inputs": {}, "row": new, "file": one["file"]}
|
||||
body = {
|
||||
"book": LOGIC_BOOK,
|
||||
"key": "새 로직",
|
||||
"inputs": LOGIC_INPUTS,
|
||||
"row": new,
|
||||
"file": one["file"],
|
||||
}
|
||||
assert client.post("/api/m01/calc", json=body).json()["ok"] is True
|
||||
assert (store.FOLDER / one["file"]).read_bytes() == raw # 시험 계산은 안 씀
|
||||
|
||||
@@ -193,6 +202,41 @@ def test_쓰기_모양은_읽은_값과_같음() -> None:
|
||||
assert "\r" not in text and text.endswith("}\n")
|
||||
|
||||
|
||||
def test_시험계산_글로_온_수도_받음(client: TestClient) -> None:
|
||||
def calc(**inputs):
|
||||
body = {"book": "산림품셈", "key": "13-4-1 메쌓기", "inputs": inputs}
|
||||
return client.post("/api/m01/calc", json=body).json()
|
||||
|
||||
base = {"돌": "견치돌", "쌓기": "골쌓기", "높이": 1, "초과증가율": 80}
|
||||
assert calc(뒷길이=35, **base)["sums"]["계"] == pytest.approx(203281.2)
|
||||
as_text = calc(**{**base, "뒷길이": "35", "높이": "1"})
|
||||
assert as_text["ok"] is True and as_text["sums"]["계"] == pytest.approx(203281.2)
|
||||
assert "고르기 밖" in calc(뒷길이="36", **base)["reason"]
|
||||
|
||||
|
||||
def test_저장은_고친_줄만_바꿈(client: TestClient) -> None:
|
||||
old = (store.FOLDER / LABOR).read_text(encoding="utf-8").split("\n")
|
||||
row, version = _labor_row(client, "1016")
|
||||
change = {"op": "edit", "key": "1016", "row": {**row, "값": row["값"] + 1}}
|
||||
body = {"files": [{"file": LABOR, "version": version, "changes": [change]}]}
|
||||
assert client.post("/api/m01/save", json=body).status_code == 200
|
||||
new = (store.FOLDER / LABOR).read_text(encoding="utf-8").split("\n")
|
||||
assert len(new) == len(old) and sum(a != b for a, b in zip(old, new)) == 1
|
||||
one = _get(client, "/api/m01/logic", book=LOGIC_BOOK, key=LOGIC_KEY)
|
||||
path = store.FOLDER / one["file"]
|
||||
old = path.read_text(encoding="utf-8")
|
||||
edited = {**one["logic"], "비고": "고침"}
|
||||
change = {"op": "edit", "key": LOGIC_KEY, "row": edited}
|
||||
body = {"files": [{"file": one["file"], "version": one["version"], "changes": [change]}]}
|
||||
assert client.post("/api/m01/save", json=body).status_code == 200
|
||||
new = path.read_text(encoding="utf-8")
|
||||
at = old.index(f'"열쇠": "{LOGIC_KEY}"')
|
||||
head = old[: old.rfind("\n", 0, at)] # 고친 요소 앞은 글자 그대로
|
||||
assert new.startswith(head) and "\r" not in new
|
||||
tail = old[old.index('"열쇠"', at + 1) :] # 다음 요소부터도 그대로
|
||||
assert new.endswith(tail)
|
||||
|
||||
|
||||
def test_main_은_시스템관리자만() -> None:
|
||||
main = (Path(__file__).resolve().parents[2] / "main.py").read_text(encoding="utf-8")
|
||||
assert "app.include_router(m01_master_data_router, dependencies=system_admin_only)" in main
|
||||
|
||||
@@ -25,6 +25,9 @@ SAMPLES = [
|
||||
"로직_건설품셈_토목4장.json",
|
||||
"로직_건설품셈_토목5장.json",
|
||||
"로직_건설품셈_토목6장.json",
|
||||
"로직_건설품셈_토목7장.json",
|
||||
"로직_건설품셈_토목8장.json",
|
||||
"로직_건설품셈_토목9장.json",
|
||||
"로직_산림품셈_03장.json",
|
||||
"로직_산림품셈_04장.json",
|
||||
"로직_산림품셈_05장.json",
|
||||
@@ -334,6 +337,60 @@ def test_토목_강교_제작공수_보정(whole):
|
||||
assert got["줄"][0]["수량"] == want
|
||||
|
||||
|
||||
def test_토목_배송관_철거_크레인_규격(whole):
|
||||
"""토목 7-4-1 — 관경 760 이상은 15톤 크레인 · 철거 감률은 인력·장비 모두."""
|
||||
given = {
|
||||
"관경": "840",
|
||||
"접합방식": "플랜지접합",
|
||||
"작업": "철거",
|
||||
"철거감률": 30,
|
||||
"지역": "전국평균",
|
||||
}
|
||||
got = {x["이름"]: x["수량"] for x in mf.run(whole, "건설품셈:7-4-1 배송관 접합", given)["줄"]}
|
||||
assert got["배관공(수도)"] == Decimal("0.12") * Decimal("0.7")
|
||||
assert got["트럭탑재형 크레인 10ton"] == 0
|
||||
assert got["트럭탑재형 크레인 15ton"] == Decimal("0.47") * Decimal("0.7")
|
||||
|
||||
|
||||
def test_토목_보링_심도_가산():
|
||||
"""토목 8-1-2 — 깊이 35m = 20m 넘는 15m 를 10m 단위 올림 2번 × 5% · 인력만 · 쵸핑비트는 호박돌층만."""
|
||||
files = cm.load()
|
||||
for row in files["인력_자체.json"]["줄"] + files["재료_자체.json"]["줄"]:
|
||||
if row["값"] is None: # 관리자가 채울 값 — 시험용 가짜 값(파일엔 안 씀)
|
||||
row["값"] = Decimal(1000)
|
||||
given = {"층": "점토층", "규격": "BX", "깊이": 35, "심도가산율": 5}
|
||||
got = mf.run(mf.Master(files), "건설품셈:8-1-2 천공(토사·자갈·호박돌층)", given)
|
||||
qty = {x["이름"]: x["수량"] for x in got["줄"]}
|
||||
assert qty["중급기술자"] == Decimal("0.16") * Decimal("1.1")
|
||||
assert qty["싱글코아바렐"] == Decimal("0.01")
|
||||
assert qty["쵸핑비트"] == 0
|
||||
|
||||
|
||||
def test_토목_측량_계산예():
|
||||
"""토목 9-1-2 원문 계산예 — 구하는점 6·주어진점 4·산지 = 인원 × 10/16 × 1.2 × 1.12 · 9-4-3-1 설계예 1km 당 × 연장."""
|
||||
files = cm.load()
|
||||
for row in files["인력_자체.json"]["줄"]:
|
||||
if row["값"] is None: # 관리자가 채울 값 — 시험용 가짜 값(파일엔 안 씀)
|
||||
row["값"] = Decimal(1000)
|
||||
master = mf.Master(files)
|
||||
given = {"구하는점": 6, "주어진점": 4, "지형": "산지"}
|
||||
got = {
|
||||
x["이름"]: x["수량"] for x in mf.run(master, "건설품셈:9-1-2 1급 기준점 측량", given)["줄"]
|
||||
}
|
||||
assert [round(got[w], 2) for w in ("특급기술자", "고급기술자", "중급기술자", "인부")] == [
|
||||
Decimal("2.52"),
|
||||
Decimal("20.58"),
|
||||
Decimal("33.60"),
|
||||
Decimal("8.40"),
|
||||
]
|
||||
given = {"도로연장": 10, "지형": "그 외 지역"}
|
||||
got = {
|
||||
x["이름"]: x["수량"]
|
||||
for x in mf.run(master, "건설품셈:9-4-3-1 MMS측량 자료 이용", given)["줄"]
|
||||
}
|
||||
assert got["특급기술자"] == 17 and got["중급기술자"] == 198
|
||||
|
||||
|
||||
def test_범위_입력은_막음(whole):
|
||||
with pytest.raises(mf.FormulaError):
|
||||
mf.run(
|
||||
|
||||
Reference in New Issue
Block a user