diff --git a/B01_Dashboard/B01_Dashboard_UI_Page.ts b/B01_Dashboard/B01_Dashboard_UI_Page.ts index b526078ff..bf73c045b 100644 --- a/B01_Dashboard/B01_Dashboard_UI_Page.ts +++ b/B01_Dashboard/B01_Dashboard_UI_Page.ts @@ -1,4 +1,5 @@ import { ROUTES } from "@config/config_frontend"; +import { attachCollapsible } from "@ui/ui_template_collapsible"; import { createButton, createTag, @@ -130,39 +131,63 @@ async function loadRoleData(state: DashboardState): Promise { } } -function buildSystemSettingsPanel(): HTMLElement { +/** 설정 카드 공용 양식 — 제목 + 한 줄 설명 · 누르면 이동 */ +function settingCard(title: string, desc: string, go: () => void): HTMLElement { + const card = document.createElement("button"); + card.type = "button"; + card.className = "b01-dashboard__setting-card"; + const head = document.createElement("strong"); + head.className = "b01-dashboard__setting-title"; + head.textContent = title; + const sub = document.createElement("span"); + sub.className = "b01-dashboard__setting-desc"; + sub.textContent = desc; + card.append(head, sub); + card.addEventListener("click", go); + return card; +} + +/** 시스템 설정 — 역할로 카드 숨김 · M02 카드는 `?open=&root=` 로 진입(27-1d) */ +function buildSystemSettingsPanel(user: DashboardUser): HTMLElement { const wrap = document.createElement("div"); - wrap.className = "b01-dashboard__actions"; + wrap.className = "b01-dashboard__setting-grid"; + const m02 = (title: string, open: string, root: string, desc: string): HTMLElement => + settingCard(title, desc, () => navigateTo(ROUTES.M02_MASTER_TEMPLATE, { open, root })); + if (user.role === "SYSTEM_ADMIN") { + const desc = L("B01_Dashboard_PermMasterWrite"); + wrap.append( + settingCard(L("B01_Dashboard_MasterElements"), L("B01_Dashboard_PermSourceRead"), () => + navigateTo(ROUTES.M01_MASTER_DATA), + ), + m02(L("B01_Dashboard_CardUnitCombo"), "일위대가", "master", desc), + m02(L("B01_Dashboard_CardStructCombo"), "구조물조합", "master", desc), + m02(L("B01_Dashboard_CardStructOption"), "옵션", "master", desc), + m02(L("B01_Dashboard_CardDrawing"), "도면", "master", desc), + ); + return wrap; + } + // 회사 수정 = 회사 관리자 · 회사 마스터(M02 accessFor 와 같은 규칙) + const companyAdmin = user.role === "ADMIN" || user.is_master; + const root = companyAdmin ? "company" : "personal"; + const desc = [ + L("B01_Dashboard_PermMasterRead"), + L(companyAdmin ? "B01_Dashboard_PermCompanyWrite" : "B01_Dashboard_PermCompanyRead"), + L("B01_Dashboard_PermPersonalWrite"), + ].join(" · "); wrap.append( - createButton({ - label: L("B01_Dashboard_MasterElements"), - variant: "ghost", - onClick: () => navigateTo(ROUTES.M01_MASTER_DATA), - }), - createButton({ - label: L("B01_Dashboard_MasterTemplate"), - variant: "ghost", - onClick: () => navigateTo(ROUTES.M02_MASTER_TEMPLATE), - }), + m02(L("B01_Dashboard_CardUnitCombo"), "일위대가", root, desc), + m02(L("B01_Dashboard_CardStructCombo"), "구조물조합", root, desc), ); return wrap; } -/** 구조물 관리 카드 — 개인용은 모두 · 회사용은 회사 관리자와 시스템 관리자(21-0) */ -function buildStructurePanel(state: DashboardState): HTMLElement { - const wrap = document.createElement("div"); - wrap.className = "b01-dashboard__actions"; - const go = (layer: "company" | "personal", label: string): HTMLElement => - createButton({ - label, - variant: "ghost", - onClick: () => navigateTo(ROUTES.M02_MASTER_TEMPLATE, { layer }), - }); - if (state.user.role === "ADMIN" || state.user.role === "SYSTEM_ADMIN") { - wrap.append(go("company", L("B01_Dashboard_StructureCompany"))); - } - wrap.append(go("personal", L("B01_Dashboard_StructurePersonal"))); - return wrap; +/** 시스템 설정 컨테이너 — 모든 역할 · 한 줄 통째 · 제목 눌러 통째로 접힘 */ +function buildSystemSettingsSection(user: DashboardUser): HTMLElement { + const card = section(L("B01_Dashboard_SystemSettings"), buildSystemSettingsPanel(user), true); + card.querySelector(".ui-card__body")?.classList.add("ui-collapsible"); + card.querySelector(".b01-dashboard__section-header")?.classList.add("ui-collapsible__title"); + attachCollapsible(card); + return card; } function buildPage(state: DashboardState): HTMLElement { @@ -171,22 +196,16 @@ function buildPage(state: DashboardState): HTMLElement { const grid = document.createElement("div"); grid.className = "b01-dashboard__grid"; + // 시스템 설정은 모든 역할 맨 위 한 줄(27-3a) + grid.append(buildSystemSettingsSection(state.user)); if (state.user.role === "SYSTEM_ADMIN") { - // 리소스 현황 오른쪽에 시스템 설정 — 앞으로 다른 설정 단추도 이 칸에 듦 (2026-09-15 브레인 Z01). - const topRow = document.createElement("div"); - topRow.className = "b01-dashboard__top-row"; - topRow.append( - section(L("B01_Dashboard_Resources"), buildResourcePanel(state.resources)), - section(L("B01_Dashboard_SystemSettings"), buildSystemSettingsPanel()), - ); grid.append( - topRow, + section(L("B01_Dashboard_Resources"), buildResourcePanel(state.resources), true), section(L("B01_Dashboard_Projects"), projectTable(state.allProjects, state.user), true, [ createButton({ label: "+", onClick: () => navigateTo(ROUTES.B02_PROJ_REGISTER) }), ]), buildTempUploadSection(), - section(L("B01_Dashboard_StructureManage"), buildStructurePanel(state)), section(L("B01_Dashboard_Users"), userTable(state.allUsers, state.user), true, [ createButton({ label: "+", onClick: () => openAddMemberModal() }), ]), @@ -201,7 +220,6 @@ function buildPage(state: DashboardState): HTMLElement { createButton({ label: "+", onClick: () => navigateTo(ROUTES.B02_PROJ_REGISTER) }), ]), buildTempUploadSection(), - section(L("B01_Dashboard_StructureManage"), buildStructurePanel(state)), section(L("B01_Dashboard_Members"), memberTable(state.members, state.user), true, [ createButton({ label: "+", onClick: () => openAddMemberModal() }), ]), @@ -216,7 +234,6 @@ function buildPage(state: DashboardState): HTMLElement { // 임시 보관함 — 프로젝트를 만들기 전에 자료를 올려 두는 곳이라 프로젝트 목록 // 바로 아래에 둔다(2026-08-08 사용자 지시). buildTempUploadSection(), - section(L("B01_Dashboard_StructureManage"), buildStructurePanel(state)), section(L("B01_Dashboard_Company"), buildCompanyPanel(state), true), ); } diff --git a/B01_Dashboard/B01_Dashboard_UI_Style.css b/B01_Dashboard/B01_Dashboard_UI_Style.css index ceab81c6c..87d02e706 100644 --- a/B01_Dashboard/B01_Dashboard_UI_Style.css +++ b/B01_Dashboard/B01_Dashboard_UI_Style.css @@ -31,12 +31,41 @@ grid-column: 1 / -1; } -/* 리소스 현황 | 시스템 설정 — 설정 칸은 단추만 들어 좁게. */ -.b01-dashboard__top-row { - grid-column: 1 / -1; +/* 시스템 설정 — 작은 카드(제목 + 한 줄 설명) 한 양식 */ +.b01-dashboard__setting-grid { display: grid; - grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); - gap: var(--spacing-24); + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: var(--spacing-8); +} + +.b01-dashboard__setting-card { + display: flex; + flex-direction: column; + gap: var(--spacing-4); + padding: var(--spacing-8) var(--spacing-16); + border: 1px solid var(--color-border); + border-radius: var(--radius-cards); + background: var(--color-surface); + color: inherit; + font: inherit; + text-align: left; + cursor: pointer; +} + +.b01-dashboard__setting-card:hover, +.b01-dashboard__setting-card:focus-visible { + border-color: var(--color-royal-amethyst); + outline: none; +} + +.b01-dashboard__setting-title { + font-size: var(--text-body); + font-weight: var(--font-weight-medium); +} + +.b01-dashboard__setting-desc { + color: var(--color-text-secondary); + font-size: var(--text-caption); } .b01-dashboard__actions { @@ -288,8 +317,7 @@ @media (max-width: 860px) { .b01-dashboard__header, - .b01-dashboard__grid, - .b01-dashboard__top-row { + .b01-dashboard__grid { display: block; } diff --git a/M02_MasterTemplete/M02_Layer_Access.py b/M02_MasterTemplete/M02_Layer_Access.py new file mode 100644 index 000000000..fe1b71430 --- /dev/null +++ b/M02_MasterTemplete/M02_Layer_Access.py @@ -0,0 +1,107 @@ +"""M02 층 권한 한 벌 — 나무 · 항목(`Router_Items`) · 양식 · 남의 층 목록(`Router_Layers`)이 함께 씀 +(PLAN 27-1c). 화면 쪽 짝 = `M02_MasterTemplete_Layer.ts` 의 `accessFor`. + + system 읽기 = 로그인 누구나 · 수정 = SYSTEM_ADMIN + company {C} 자기 회사 = 읽기 누구나 · 수정 = 회사 관리자(ADMIN · 마스터 · SYSTEM_ADMIN) · + 남의 회사 = SYSTEM_ADMIN 읽기만 + personal {C}/{U} 본인 = 읽기 · 수정 · 같은 회사 남 = 회사 관리자 읽기만 · + 다른 회사 = SYSTEM_ADMIN 읽기만 +owner 글 없음 = 자기 층 · 남의 층은 그 층 폴더가 있을 때만(없으면 404) · +읽기로 남의 층에 뼈대를 안 만듦. +""" + +from __future__ import annotations + +import re +from dataclasses import dataclass +from pathlib import Path +from typing import Any + +from fastapi import HTTPException + +from M02_MasterTemplete import M02_Template_Layers as layers + +NO_COMPANY = "회사부터 등록 — 회사 없이는 회사 · 개인 구조물 집계표를 만들 수 없음" +_SHAPE = {"company": re.compile(r"^\d+$"), "personal": re.compile(r"^\d+/\d+$")} + + +def is_system_admin(session: dict[str, Any]) -> bool: + return session.get("role") == "SYSTEM_ADMIN" + + +def is_company_admin(session: dict[str, Any]) -> bool: + return session.get("role") in ("ADMIN", "SYSTEM_ADMIN") or bool(session.get("is_master")) + + +@dataclass(frozen=True) +class Grant: + """층 한 칸의 권한 — `owner` = 층 주인 글(시스템 None) · `mine` = 자기 층(뼈대 만들어도 됨).""" + + layer: str + owner: str | None + write: bool + mine: bool + + +def own_owner(session: dict[str, Any], layer: str, company: Any = None) -> str | None: + """자기 층 주인 글 — 회사 없으면 None(`company` = 프로젝트 회사로 바꿔 끼울 때).""" + company = session.get("company_id") if company is None else company + if company is None: + return None + return str(company) if layer == "company" else f"{company}/{session.get('user_id')}" + + +def grant(session: dict[str, Any], layer: str, owner: str | None = None) -> Grant: + """읽기 권한이 없으면 403 · 회사 없는 사람의 자기 층은 409 · 모양이 틀리면 400.""" + if layer == "system": + return Grant(layer, None, is_system_admin(session), True) + if layer not in _SHAPE: + raise HTTPException(status_code=404, detail="없는 층입니다.") + own = own_owner(session, layer) + who = own if owner in (None, "") else str(owner) + if who is None: + raise HTTPException(status_code=409, detail=NO_COMPANY) + if not _SHAPE[layer].match(who): + raise HTTPException(status_code=400, detail=f"층 주인 모양이 틀림 「{who}」") + if who == own: + return Grant(layer, who, layer == "personal" or is_company_admin(session), True) + same_company = who.split("/")[0] == str(session.get("company_id")) + colleague = layer == "personal" and same_company and is_company_admin(session) + if not (is_system_admin(session) or colleague): + raise HTTPException( + status_code=403, detail="다른 회사 · 다른 사람의 구조물 집계표는 볼 수 없음" + ) + return Grant(layer, who, False, False) + + +def require( + session: dict[str, Any], layer: str, owner: str | None = None, *, write: bool = False +) -> Grant: + """`grant` + 쓰기 권한까지 — 까닭은 층마다.""" + got = grant(session, layer, owner) + if write and not got.write: + if layer == "system": + detail = "마스터 템플릿은 시스템 관리자만 고침." + elif got.mine: + detail = "회사용은 회사 관리자만 고침 — 개인용으로 복사해서 씀." + else: + detail = "남의 층은 읽기만." + raise HTTPException(status_code=403, detail=detail) + return got + + +def folder(got: Grant) -> Path: + """회사 · 개인 층 폴더 — 남의 층은 그 층 폴더가 있어야 함(부르는 쪽은 자기 층만 뼈대를 만듦).""" + if got.owner is None: + raise HTTPException(status_code=409, detail=NO_COMPANY) + try: + if got.layer == "company": + path = layers.company_dir(got.owner) + else: + company, user = got.owner.split("/", 1) + path = layers.personal_dir(company, user) + except ValueError as error: + raise HTTPException(status_code=400, detail=f"층 주인 모양 — {error}") from error + if not got.mine and not path.is_dir(): + raise HTTPException(status_code=404, detail="그 층은 아직 만든 것이 없음") + return path diff --git a/M02_MasterTemplete/M02_MasterTemplete_Api_Fetch.ts b/M02_MasterTemplete/M02_MasterTemplete_Api_Fetch.ts index 3a3d69190..265fa33b6 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Api_Fetch.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Api_Fetch.ts @@ -53,21 +53,35 @@ function reason(detail: unknown, status: number): string { return lines.filter(Boolean).join(" · ") || `HTTP ${status}`; } -/** 지금 화면의 층 — 시스템 = 옛 길 그대로 · 회사 · 개인 = `/layers/{층}` 아래(구조물집계표 · 조합 길 모두) */ +/** 지금 화면의 층 — 시스템 = 옛 길 그대로 · 회사 · 개인 = `/layers/{층}` 아래(구조물집계표 · 조합 길 모두) · + * `owner` = 남의 층을 볼 때 주인(회사 `{C}` · 개인 `{C}/{U}` · 자기 층 = null · PLAN 27-1c) — + * 지금 층 길에 `?owner=` 로 붙음(M02 화면을 떠나면 페이지가 시스템 · null 로 되돌림) */ let activeLayer: Layer = "system"; -export const setActiveLayer = (layer: Layer): void => { +let activeOwner: string | null = null; +export const setActiveLayer = (layer: Layer, owner: string | null = null): void => { activeLayer = layer; + activeOwner = owner; }; export const getActiveLayer = (): Layer => activeLayer; -const scoped = (path: string, init: RequestInit = {}): Promise => - call(`${activeLayer === "system" ? "" : `/layers/${activeLayer}`}${path}`, init); +export const getActiveOwner = (): string | null => activeOwner; const enc = encodeURIComponent; +/** 지금 층 길이면 `owner` 인자를 붙임 */ +const owned = (layer: Layer, path: string): string => + layer === activeLayer && activeOwner && layer !== "system" && layer !== "project" + ? `${path}${path.includes("?") ? "&" : "?"}owner=${enc(activeOwner)}` + : path; +const scoped = (path: string, init: RequestInit = {}): Promise => + call( + owned(activeLayer, `${activeLayer === "system" ? "" : `/layers/${activeLayer}`}${path}`), + init, + ); + const q = (projectId: string | null): string => (projectId ? `?project_id=${enc(projectId)}` : ""); const head = (layer: Layer): string => layer === "system" ? "/templates" : `/layers/${layer}/templates`; const item = (layer: Layer, kind: Kind, name: string, projectId: string | null): string => - `${head(layer)}/${kind}/${enc(name)}${layer === "system" ? "" : q(projectId)}`; + owned(layer, `${head(layer)}/${kind}/${enc(name)}${layer === "system" ? "" : q(projectId)}`); /** 시스템 길은 배열 · 층 길은 `{층, 양식: [...]}` — 둘 다 목록으로 */ export const listTemplates = async ( @@ -75,7 +89,7 @@ export const listTemplates = async ( projectId: string | null, ): Promise => { const got = await call( - layer === "system" ? head(layer) : `${head(layer)}${q(projectId)}`, + layer === "system" ? head(layer) : owned(layer, `${head(layer)}${q(projectId)}`), ); return Array.isArray(got) ? got : got.양식; }; @@ -108,7 +122,7 @@ export const deleteLayerTemplate = ( name: string, 판: string, ): Promise<{ ok: boolean }> => - call(`/layers/${layer}/templates/${kind}/${enc(name)}?판=${enc(판)}`, { + call(owned(layer, `/layers/${layer}/templates/${kind}/${enc(name)}?판=${enc(판)}`), { method: "DELETE", }); @@ -384,10 +398,10 @@ export interface InputLinks { } const itemPath = (layer: Layer, key: string, tail: string): string => - `/layers/${layer}/items/${enc(key)}/${tail}`; + owned(layer, `/layers/${layer}/items/${enc(key)}/${tail}`); export const fetchItemRows = (layer: Layer): Promise => - call(`/items?layer=${layer}`); + call(owned(layer, `/items?layer=${layer}`)); export const fetchItemInputs = (layer: Layer, key: string): Promise => call(itemPath(layer, key, "inputs")); @@ -404,7 +418,7 @@ export const saveInputLinks = ( ): Promise<{ 판: string }> => call(itemPath(layer, key, "input-links"), { method: "PUT", body: JSON.stringify({ 판, 줄 }) }); -/* --- 항목 나무(PLAN 26-1 · 26-3a) — 폴더 경로 깊이 자유 · 고침은 층 쓰기 권한 --- */ +/* --- 구조물 라이브러리(PLAN 26-1 · 26-3a) — 폴더 경로 깊이 자유 · 고침은 층 쓰기 권한 --- */ export interface TreeItem { key: string; 열: string; @@ -434,8 +448,31 @@ export interface TreeEdit { 단위?: string; } -export const fetchTree = (layer: Layer): Promise => call(`/layers/${layer}/tree`); +/** `owner` = 남의 층(없으면 자기 층) — 지금 층과 따로 받음(나무 부품이 여러 뿌리를 그림) */ +const treePath = (layer: Layer, owner: string | null): string => + `/layers/${layer}/tree${owner ? `?owner=${enc(owner)}` : ""}`; + +export const fetchTree = (layer: Layer, owner: string | null = null): Promise => + call(treePath(layer, owner)); /** 판이 다르면 409(`StaleError`) — 부르는 쪽이 다시 읽음 */ -export const editTree = (layer: Layer, edit: TreeEdit, 판: string): Promise => - call(`/layers/${layer}/tree`, { method: "POST", body: JSON.stringify({ ...edit, 판 }) }); +export const editTree = ( + layer: Layer, + edit: TreeEdit, + 판: string, + owner: string | null = null, +): Promise => + call(treePath(layer, owner), { method: "POST", body: JSON.stringify({ ...edit, 판 }) }); + +/** 남의 층 목록 한 줄(PLAN 27-1c) — 회사 `{C}` · 개인 `{C}/{U}` */ +export interface LayerOwner { + owner: string; + name: string; +} + +/** 회사 = 시스템 관리자만 회사 목록 · 개인 = 그 회사 사람(본인 뺌 · 층 자리 있는 것만) */ +export const fetchOwners = ( + layer: "company" | "personal", + company: string | null = null, +): Promise => + call(`/layers/${layer}/owners${company ? `?company=${enc(company)}` : ""}`); diff --git a/M02_MasterTemplete/M02_MasterTemplete_Layer.ts b/M02_MasterTemplete/M02_MasterTemplete_Layer.ts index 7725b25b6..bb640778f 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Layer.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Layer.ts @@ -1,7 +1,8 @@ /* ============================================================================= * M02_MasterTemplete_Layer.ts - * M02 화면의 층 — 주소 인자(`#/m02-master-template?layer=personal|company` · 없으면 system) · - * 층별 제목 · 고칠 권한(시스템 = SYSTEM_ADMIN · 회사 = role ADMIN 또는 is_master · 개인 = 본인) · + * M02 한 화면의 뿌리 셋(마스터 · 회사 · 개인 · PLAN 27-1) — 진입 해시 + * `#/m02-master-template?open=구조물조합|일위대가|옵션|도면&root=master|company|personal&owner=…` + * (옛 `?layer=` 도 root 로 읽음) · 고칠 권한(`accessFor` — 서버 `M02_Layer_Access` 와 짝 · 27-1c) · * 회사 없음 안내 · 회사용 읽기만일 때 [개인용으로 복사] 막대. * ========================================================================== */ @@ -13,31 +14,63 @@ import type { SessionUser } from "../A06_Login/A06_Login_Api_Fetch"; import { copyItemToPersonal, fetchStructureCombos } from "./M02_MasterTemplete_Api_Fetch"; export type ManageLayer = "system" | "company" | "personal"; +/** 해시 · 화면의 뿌리 이름 — 서버 층 이름은 `layerOfRoot` */ +export type Root = "master" | "company" | "personal"; +export type OpenTarget = "구조물조합" | "일위대가" | "옵션" | "도면"; -/** 주소 인자에서 층 — 모르는 값 · 없음 = 시스템 */ -export function layerFromHash(): ManageLayer { - const value = currentQuery().get("layer"); - return value === "company" || value === "personal" ? value : "system"; +export interface Entry { + root: Root; + /** 남의 층 주인(회사 `{C}` · 개인 `{C}/{U}`) — 자기 층 = null */ + owner: string | null; + open: OpenTarget; } -export const titleOf = (layer: ManageLayer): string => - layer === "company" - ? L("M02_TitleCompany") - : layer === "personal" - ? L("M02_TitlePersonal") - : L("M02_Title"); +const OPENS: OpenTarget[] = ["구조물조합", "일위대가", "옵션", "도면"]; + +export const layerOfRoot = (root: Root): ManageLayer => (root === "master" ? "system" : root); + +/** 주소 인자에서 진입 — 모르는 값 · 없음 = 마스터 · 구조물 조합 */ +export function entryFromHash(): Entry { + const query = currentQuery(); + const raw = query.get("root") ?? query.get("layer"); + const root: Root = raw === "company" || raw === "personal" ? raw : "master"; + const open = OPENS.find((one) => one === query.get("open")) ?? "구조물조합"; + return { root, owner: root === "master" ? null : query.get("owner") || null, open }; +} + +/** 진입 해시 인자 — `navigateTo(ROUTES.M02_MASTER_TEMPLATE, entryQuery(…))` */ +export const entryQuery = (entry: Entry): Record => ({ + open: entry.open, + root: entry.root, + ...(entry.owner ? { owner: entry.owner } : {}), +}); + +/** 자기 층 주인 글 — 회사 없으면 null */ +export const ownOwner = (layer: ManageLayer, user: SessionUser | null): string | null => + !user?.company_id || layer === "system" + ? null + : layer === "company" + ? String(user.company_id) + : `${user.company_id}/${user.id}`; export interface LayerAccess { /** 이 층을 고칠 수 있나 — 서버도 같은 규칙으로 막음 */ canWrite: boolean; - /** 회사 · 개인 층인데 회사가 없음 — 「회사부터 등록」 안내 */ + /** 회사 · 개인 자기 층인데 회사가 없음 — 「회사부터 등록」 안내 */ needCompany: boolean; } -export function accessFor(layer: ManageLayer, user: SessionUser | null): LayerAccess { +/** 서버 `M02_Layer_Access.grant` 와 같은 규칙 — 남의 층(`owner`)은 늘 읽기만(읽을 수 있나는 서버가 가름) */ +export function accessFor( + layer: ManageLayer, + owner: string | null, + user: SessionUser | null, +): LayerAccess { if (layer === "system") return { canWrite: user?.role === "SYSTEM_ADMIN", needCompany: false }; - if (!user?.company_id) return { canWrite: false, needCompany: true }; - const companyAdmin = user.role === "ADMIN" || !!user.is_master; + const own = ownOwner(layer, user); + if (owner && owner !== own) return { canWrite: false, needCompany: false }; + if (!own) return { canWrite: false, needCompany: true }; + const companyAdmin = user?.role === "ADMIN" || user?.role === "SYSTEM_ADMIN" || !!user?.is_master; return { canWrite: layer === "personal" || companyAdmin, needCompany: false }; } diff --git a/M02_MasterTemplete/M02_MasterTemplete_Router_Items.py b/M02_MasterTemplete/M02_MasterTemplete_Router_Items.py index 4399ecced..f9b6fe535 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Router_Items.py +++ b/M02_MasterTemplete/M02_MasterTemplete_Router_Items.py @@ -1,9 +1,7 @@ """M02 층 집계표 API — `/api/m02/layers/{layer}/…` · 항목 목록 · 항목 복사(PLAN 21-1 · 21-2). -⚠ 등록은 `main.py`(로그인만) · 층 권한은 여기서(`Router_Layers._layer_dir` 와 같은 규칙): - system 읽기 = 로그인 누구나(항목 고르기) · 쓰기 = SYSTEM_ADMIN - company 읽기 = 같은 회사 · 쓰기 = 회사 관리자(ADMIN · 마스터 · SYSTEM_ADMIN) - personal 읽기 · 쓰기 = 본인(SYSTEM_ADMIN 은 누구나) · 회사 없음 = 쓰기 409 「회사부터 등록」 +⚠ 등록은 `main.py`(로그인만) · 층 권한은 `M02_Layer_Access`(양식 길 `Router_Layers` 와 한 벌 · +PLAN 27-1c) · `owner` = 회사 `{C}` · 개인 `{C}/{U}`(없으면 자기 층) · 회사 없음 = 409. 옛 길(`/api/m02/structures/…` 등 · `M02_MasterTemplete_Router.py`)은 시스템 층 별칭으로 그대로. 회사 · 개인 층은 처음 부를 때 빈 뼈대를 만듦(`Items.ensure`). 결정(PLAN 21-9): 일위대가(UA) 갈라 내기는 새 UA 가 M01 시스템 마스터에 생기므로 층 길에서도 @@ -19,13 +17,13 @@ from fastapi import APIRouter, Depends, HTTPException, Query from pydantic import BaseModel from common_util.common_util_auth import verify_session +from M02_MasterTemplete import M02_Layer_Access as access from M02_MasterTemplete import M02_MasterTemplete_Branch as branch from M02_MasterTemplete import M02_MasterTemplete_Inputs as inputs_store from M02_MasterTemplete import M02_MasterTemplete_Items as items_store from M02_MasterTemplete import M02_MasterTemplete_Matset as matset from M02_MasterTemplete import M02_MasterTemplete_Store as store from M02_MasterTemplete import M02_MasterTemplete_Tree as tree -from M02_MasterTemplete import M02_Template_Layers as layers from M02_MasterTemplete.M02_MasterTemplete_Router import ( BranchBody, MaterialBranchBody, @@ -37,7 +35,7 @@ router = APIRouter(prefix="/api/m02", tags=["M02 MasterTemplete Items"]) Layer = Literal["system", "company", "personal"] Session = dict[str, Any] -NO_COMPANY = "회사부터 등록 — 회사 없이는 회사 · 개인 구조물 집계표를 만들 수 없음" +NO_COMPANY = access.NO_COMPANY class InputLinksBody(BaseModel): @@ -63,55 +61,16 @@ class CopyItemBody(BaseModel): key: str -def _admin(session: Session) -> bool: - return session.get("role") == "SYSTEM_ADMIN" - - -def _company_admin(session: Session) -> bool: - return session.get("role") in ("ADMIN", "SYSTEM_ADMIN") or bool(session.get("is_master")) - - -def _owner(session: Session, layer: str, owner: str | None) -> str | None: - """층 주인 글 — 회사 `{회사}` · 개인 `{회사}/{사용자}` · 시스템 None · - 남의 것은 SYSTEM_ADMIN 만.""" - if layer == "system": - return None - company, user = session.get("company_id"), session.get("user_id") - mine = str(company) if layer == "company" else f"{company}/{user}" - if owner in (None, "", mine): - return None if company is None else mine - if not _admin(session): - raise HTTPException(status_code=403, detail="다른 회사 · 다른 사람의 구조물 집계표입니다.") - return owner - - -def _folder(layer: str, owner: str | None) -> Path: - if layer == "system": - return store.FOLDER - try: - if layer == "company": - return layers.company_dir(owner) - company, user = str(owner).split("/", 1) - return layers.personal_dir(company, user) - except ValueError as error: - raise HTTPException(status_code=400, detail=f"층 주인 모양 — {error}") from error - - def _root(session: Session, layer: str, owner: str | None = None, write: bool = False) -> Path: - """층 폴더(권한까지) — 회사 · 개인은 없으면 빈 뼈대를 만듦. 회사 없는 사람: 쓰기 409.""" + """층 폴더(권한까지 · `M02_Layer_Access`) — 자기 회사 · 개인 층은 없으면 빈 뼈대를 만듦.""" + got = access.require(session, layer, owner, write=write) if layer == "system": - if write and not _admin(session): - raise HTTPException(status_code=403, detail="마스터 템플릿은 시스템 관리자만 고침.") return store.FOLDER - who = _owner(session, layer, owner) - if who is None: - raise HTTPException(status_code=409, detail=NO_COMPANY) - if write and layer == "company" and not _company_admin(session): - raise HTTPException( - status_code=403, detail="회사용은 회사 관리자만 고침 — 개인용으로 복사해서 씀." - ) - folder = _folder(layer, who) - items_store.ensure(folder) + folder = access.folder(got) + if got.mine: + items_store.ensure(folder) + elif not (folder / "table" / f"{store.STRUCTURE_TABLE}.json").is_file(): + raise HTTPException(status_code=404, detail="그 층은 아직 만든 것이 없음") return folder @@ -127,9 +86,9 @@ def _call(folder: Path, fn, *args): def _listing(session: Session, layer: str, owner: str | None) -> dict[str, Any]: - who = None if layer == "system" else _owner(session, layer, owner) - if layer != "system" and who is None: + if layer != "system" and not owner and access.own_owner(session, layer) is None: return {"layer": layer, "owner": None, "items": []} # 회사 없음 = 빈 그룹 + who = access.grant(session, layer, owner).owner folder = _root(session, layer, who) return {"layer": layer, "owner": who, "items": items_store.items(folder)} @@ -154,9 +113,7 @@ def copy_item(body: CopyItemBody, session: Session = Depends(verify_session)) -> """회사 · 마스터 항목 → 내 개인 층 새 항목(열 · 세 파일 · 자재 조합 줄 · 새 SS 키 · `본뜬`).""" target = _root(session, "personal", None, write=True) source = _root(session, body.from_layer, body.from_owner) - owner = ( - None if body.from_layer == "system" else _owner(session, body.from_layer, body.from_owner) - ) + owner = access.grant(session, body.from_layer, body.from_owner).owner origin = {"layer": body.from_layer, "owner": owner, "key": body.key} try: return items_store.copy_item(source, target, body.key, origin) @@ -285,7 +242,7 @@ def post_combo( ): """일위대가 조합 갈라 내기 — 새 UA 는 M01 시스템 마스터에 생기므로 SYSTEM_ADMIN 만.""" folder = _root(session, layer, owner, write=True) - if not _admin(session): + if not access.is_system_admin(session): raise HTTPException(status_code=403, detail="일위대가 조합은 시스템 관리자만 새로 만듦.") return _call( folder, branch.branch_combo, column, body.본뜬키, body.담은로직, body.이름, body.판 diff --git a/M02_MasterTemplete/M02_MasterTemplete_Router_Layers.py b/M02_MasterTemplete/M02_MasterTemplete_Router_Layers.py index 81a867aae..a9d65b1ab 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Router_Layers.py +++ b/M02_MasterTemplete/M02_MasterTemplete_Router_Layers.py @@ -1,10 +1,9 @@ """M02 양식 층 API — 계약 `tmp/M02_분석/6_계약.md` 「층 (sub4)」. -⚠ 등록은 `main.py`(로그인만) · 층마다 권한은 여기서: - system 읽기 · 쓰기는 시스템 관리자(옛 `/api/m02/templates` 길과 같은 저장소) - company 같은 회사 읽기 · 쓰기는 회사 관리자(ADMIN · 마스터 · 시스템 관리자) - personal 본인 읽기·쓰기 · 같은 회사 사람 것은 읽기만(가져오기) - project 같은 회사 프로젝트 · 작업본 쓰기 · `_initial/` 은 안 씀 +⚠ 등록은 `main.py`(로그인만) · 시스템 · 회사 · 개인 층 권한은 `M02_Layer_Access`(나무 · 항목 길과 +한 벌 · PLAN 27-1c · `owner` = 회사 `{C}` · 개인 `{C}/{U}`) · 남의 층 목록 = `/layers/{층}/owners`: + project 같은 회사 프로젝트 · 작업본 쓰기 · `_initial/` 은 안 씀 · + 가져오기(apply · sources)는 같은 회사 사람 개인 층도 읽음 """ from __future__ import annotations @@ -26,6 +25,7 @@ from common_util import common_util_spreadsheet as spreadsheet from common_util.common_util_auth import verify_session from common_util.common_util_storage import resolve_stored_project_path from config.config_db import get_db_pool, run_with_connection +from M02_MasterTemplete import M02_Layer_Access as access from M02_MasterTemplete import M02_MasterTemplete_Items as items_store from M02_MasterTemplete import M02_MasterTemplete_Store as store from M02_MasterTemplete import M02_Table_Fill as fill @@ -115,6 +115,14 @@ async def _company_projects(company_id: int) -> list[dict[str, Any]]: return [{"project_id": str(row[0]), "name": row[1], "storage_path": row[2]} for row in rows] +async def _companies() -> list[dict[str, Any]]: + pool = get_db_pool() + async with pool.acquire() as connection, connection.cursor() as cursor: + await cursor.execute("SELECT id, name FROM companies WHERE deleted_at IS NULL ORDER BY id") + rows = await cursor.fetchall() + return [{"company_id": row[0], "name": row[1]} for row in rows] + + async def _cross_designs(project_id: str) -> list[dict[str, Any]]: """최신 노선의 B06 횡단 설계 — 못 읽으면 빈 목록(관 연장이 빈칸으로 섬 · 0 아님).""" try: @@ -129,12 +137,8 @@ async def _cross_designs(project_id: str) -> list[dict[str, Any]]: # ── 권한 · 자리 ─────────────────────────────────────── -def _is_system_admin(session: dict[str, Any]) -> bool: - return session.get("role") == "SYSTEM_ADMIN" - - -def _is_company_admin(session: dict[str, Any]) -> bool: - return session.get("role") in ("ADMIN", "SYSTEM_ADMIN") or bool(session.get("is_master")) +_is_system_admin = access.is_system_admin +_is_company_admin = access.is_company_admin async def _project(session: dict[str, Any], project_id: str | None) -> dict[str, Any]: @@ -172,28 +176,23 @@ async def _layer_dir( *, project_id: str | None, user_id: int | None = None, + owner: str | None = None, write: bool = False, ) -> Path: - """층 폴더 — 읽기·쓰기 권한까지 여기서 가름.""" - if layer == "system": - if write and not _is_system_admin(session): - raise HTTPException(status_code=403, detail="시스템 양식은 시스템 관리자만.") - return layers.system_dir() + """층 폴더 — 권한은 `M02_Layer_Access` 한 벌(나무 · 항목 길과 같음 · PLAN 27-1c) · + `owner` 없으면 프로젝트(없으면 세션) 회사의 회사 층 · 개인 층(`user_id` 또는 본인).""" if layer == "project": return layers.project_dir((await _project(session, project_id))["root"]) - project = await _project(session, project_id) if project_id else None - company_id = _company_of(session, project) - if layer == "company": - if write and not _is_company_admin(session): - raise HTTPException(status_code=403, detail="회사 공식 양식은 회사 관리자만.") - return _ensured(layers.company_dir(company_id)) - if layer == "personal": - owner = int(user_id) if user_id is not None else int(session["user_id"]) - if write and owner != session.get("user_id"): - raise HTTPException(status_code=403, detail="개인 양식은 본인만 고칩니다.") - await _same_company_user(session, owner, company_id) - return _ensured(layers.personal_dir(company_id, owner)) - raise HTTPException(status_code=404, detail="없는 층입니다.") + if layer == "system": + access.require(session, layer, write=write) + return layers.system_dir() + if not owner: + project = await _project(session, project_id) if project_id else None + company_id = _company_of(session, project) + who = session["user_id"] if user_id is None else user_id + owner = str(company_id) if layer == "company" else f"{company_id}/{who}" + got = access.require(session, layer, owner, write=write) + return _ensured(access.folder(got)) if got.mine else access.folder(got) def _ensured(folder: Path) -> Path: @@ -209,14 +208,49 @@ def _bad(error: ValueError) -> HTTPException: # ── 층 길 ───────────────────────────────────────────── +@router.get("/layers/{layer}/owners") +async def list_owners( + layer: Literal["company", "personal"], + company: int | None = Query(None), + session: dict[str, Any] = Depends(verify_session), +) -> list[dict[str, Any]]: + """남의 층 목록(PLAN 27-1c · 펼칠 때 부름) — `[{owner, name}]` · 층 자리가 있는 것만(본인 뺌). + 회사 = SYSTEM_ADMIN 만 회사 목록 · 개인 = 그 회사 사람(SYSTEM_ADMIN 은 어느 회사나 · + 회사 관리자는 자기 회사만).""" + if layer == "company": + if not access.is_system_admin(session): + raise HTTPException(status_code=403, detail="회사 목록은 시스템 관리자만 봄.") + rows = [(str(r["company_id"]), r["name"]) for r in await _companies()] + else: + target = session.get("company_id") if company is None else company + if target is None: + raise HTTPException(status_code=409, detail=access.NO_COMPANY) + mine = str(target) == str(session.get("company_id")) + if not (access.is_system_admin(session) or (mine and access.is_company_admin(session))): + raise HTTPException(status_code=403, detail="같은 회사 사람 목록은 회사 관리자만 봄.") + me = session.get("user_id") + users = await _company_users(int(target)) + rows = [(f"{target}/{u['user_id']}", u["name"]) for u in users if u["user_id"] != me] + found = [] + for owner, name in rows: + got = access.Grant(layer, owner, False, owner == access.own_owner(session, layer)) + try: + access.folder(got) + except HTTPException: + continue + found.append({"owner": owner, "name": name}) + return found + + @router.get("/layers/{layer}/templates") async def list_layer( layer: Layer, project_id: str | None = Query(None), user_id: int | None = Query(None), + owner: str | None = Query(None), session: dict[str, Any] = Depends(verify_session), ) -> dict[str, Any]: - folder = await _layer_dir(session, layer, project_id=project_id, user_id=user_id) + folder = await _layer_dir(session, layer, project_id=project_id, user_id=user_id, owner=owner) rows = await asyncio.to_thread(layers.list_templates, folder) manifest = await asyncio.to_thread(layers.read_manifest, folder) for row in rows: @@ -231,9 +265,10 @@ async def read_layer_template( name: str, project_id: str | None = Query(None), user_id: int | None = Query(None), + owner: str | None = Query(None), session: dict[str, Any] = Depends(verify_session), ) -> dict[str, Any]: - folder = await _layer_dir(session, layer, project_id=project_id, user_id=user_id) + folder = await _layer_dir(session, layer, project_id=project_id, user_id=user_id, owner=owner) try: found = await asyncio.to_thread(layers.read_template, folder, kind, name) except ValueError as error: @@ -258,9 +293,13 @@ async def save_layer_template( name: str, body: SaveBody, project_id: str | None = Query(None), + user_id: int | None = Query(None), + owner: str | None = Query(None), session: dict[str, Any] = Depends(verify_session), ) -> dict[str, Any]: - folder = await _layer_dir(session, layer, project_id=project_id, write=True) + folder = await _layer_dir( + session, layer, project_id=project_id, user_id=user_id, owner=owner, write=True + ) document = body.문서 try: layers.check_skeleton(kind, document) # 빈 `{}` · 뼈대 없는 문서는 파일 안 씀 @@ -318,6 +357,7 @@ async def delete_layer_template( name: str, 판: str | None = Query(None), project_id: str | None = Query(None), + owner: str | None = Query(None), session: dict[str, Any] = Depends(verify_session), ) -> dict[str, Any]: """개인 = 본인만 · 회사 = 회사 관리자만 · 시스템 = 시스템 관리자 · 프로젝트 층은 거절 · @@ -326,7 +366,7 @@ async def delete_layer_template( raise HTTPException( status_code=403, detail="개인 · 회사 · 시스템 층 양식만 지울 수 있습니다." ) - folder = await _layer_dir(session, layer, project_id=project_id, write=True) + folder = await _layer_dir(session, layer, project_id=project_id, owner=owner, write=True) if (kind, name) in store.IN_USE: raise HTTPException(status_code=409, detail=f"쓰는 양식이라 못 지움 「{name}」") try: diff --git a/M02_MasterTemplete/M02_MasterTemplete_TreePanel.css b/M02_MasterTemplete/M02_MasterTemplete_TreePanel.css index 7efac9065..47603a996 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_TreePanel.css +++ b/M02_MasterTemplete/M02_MasterTemplete_TreePanel.css @@ -1,4 +1,4 @@ -/* 관리 화면 항목 나무 — 줄 모양은 공용 ui-tree · ui-sidebar-row */ +/* 관리 화면 구조물 라이브러리 — 줄 모양은 공용 ui-tree · ui-sidebar-row */ .m02-tree { padding-top: var(--spacing-8); display: flex; diff --git a/M02_MasterTemplete/M02_MasterTemplete_TreePanel.ts b/M02_MasterTemplete/M02_MasterTemplete_TreePanel.ts index b6a8ccdb2..f6f029511 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_TreePanel.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_TreePanel.ts @@ -1,6 +1,7 @@ /* ============================================================================= * M02_MasterTemplete_TreePanel.ts - * 관리 화면(마스터 · 회사 · 개인 공용) 좌측 「항목 나무」 — 폴더 → … → 항목(깊이 자유) · 찾기. + * 관리 화면(마스터 · 회사 · 개인 공용) 「구조물 라이브러리」 한 층의 나무 — 폴더 → … → 항목(깊이 자유) · 찾기. + * 층 + `owner`(남의 층 · PLAN 27-1c) 한 벌을 그림 — 뿌리 셋 배치는 `_Roots` · 자료 길은 `api` 로 바꿔 끼움. * 항목을 누르면 표에서 그 열이 골라짐(카드 넷은 표가 엶) · 표에서 열을 고르면 `select` 로 나무도 그 항목. * 오른쪽 클릭 · 키보드(F2 · Delete)로 폴더 · 항목 더하기 · 이름 바꾸기 · 옮기기 · 지우기 — * `POST /api/m02/layers/{층}/tree`(PLAN 26-1). 읽기만 층은 메뉴 · 키 없음. 나무 자료는 `_Model`. @@ -44,6 +45,15 @@ import { export interface TreePanelOptions { layer: Layer; + /** 남의 층 주인(회사 `{C}` · 개인 `{C}/{U}`) — 없으면 자기 층 */ + owner?: string | null; + /** 맨 위 줄 글 — 없으면 층 이름 */ + label?: string; + /** 나무 읽기 · 고치기 길 — 없으면 구조물 조합 나무(`/layers/{층}/tree`) */ + api?: { + fetch: (layer: Layer, owner: string | null) => Promise; + edit: (layer: Layer, edit: TreeEdit, 판: string, owner: string | null) => Promise; + }; /** 이 층을 고칠 수 있나 — 아니면 메뉴 · 키 없음 */ canEdit: boolean; /** 항목을 누름 — 표에서 그 열을 고름 */ @@ -67,13 +77,17 @@ const why = (error: unknown): string => (error instanceof Error ? error.message const hint = (text: string): HTMLElement => el("p", { className: "m02-tree__hint", text }); export function createTreePanel(opt: TreePanelOptions): TreePanelHandle { - const layerLabel = L( - opt.layer === "company" - ? "M02_PickerCompany" - : opt.layer === "personal" - ? "M02_PickerPersonal" - : "M02_PickerSystem", - ); + const layerLabel = + opt.label ?? + L( + opt.layer === "company" + ? "M02_PickerCompany" + : opt.layer === "personal" + ? "M02_PickerPersonal" + : "M02_PickerSystem", + ); + const owner = opt.owner ?? null; + const api = opt.api ?? { fetch: fetchTree, edit: editTree }; let view: TreeView | null = null; let text = ""; let activeCol: string | null = null; @@ -175,7 +189,7 @@ export function createTreePanel(opt: TreePanelOptions): TreePanelHandle { async function refresh(): Promise { const mine = ++seq; try { - const got = await fetchTree(opt.layer); + const got = await api.fetch(opt.layer, owner); if (mine !== seq) return; view = got; } catch (error) { @@ -217,7 +231,7 @@ export function createTreePanel(opt: TreePanelOptions): TreePanelHandle { if (!view || busy) return; busy = true; try { - const got = await editTree(opt.layer, body_, view.판); + const got = await api.edit(opt.layer, body_, view.판, owner); view = got; const note: TreeNote | undefined = got.알림; // 새 항목은 그 열을 고름 · 지운 항목이면 고름 풀림 · 나머지는 지금 고른 열 그대로 diff --git a/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Dialogs.ts b/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Dialogs.ts index 2735c7cf1..2eb6969fb 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Dialogs.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Dialogs.ts @@ -1,6 +1,6 @@ /* ============================================================================= * M02_MasterTemplete_TreePanel_Dialogs.ts - * 항목 나무 오른쪽 클릭 메뉴가 띄우는 작은 창 — 글 받기 · 옮길 폴더 고르기 · 저장/버림 물음. + * 구조물 라이브러리 오른쪽 클릭 메뉴가 띄우는 작은 창 — 글 받기 · 옮길 폴더 고르기 · 저장/버림 물음. * 모두 약속(Promise)으로 답함 — 닫기 · Esc · 바깥 누르기 = 취소(null / "cancel"). * ========================================================================== */ diff --git a/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Model.ts b/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Model.ts index 4643cf084..3164a829e 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Model.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Model.ts @@ -1,6 +1,6 @@ /* ============================================================================= * M02_MasterTemplete_TreePanel_Model.ts - * 관리 화면 항목 나무의 자료 쪽(화면 없음) — 서버 나무(`폴더` + `items`)를 폴더 나무로 · 찾기 · + * 관리 화면 구조물 라이브러리의 자료 쪽(화면 없음) — 서버 나무(`폴더` + `items`)를 폴더 나무로 · 찾기 · * 폴더 목록. 항목 경로는 폴더 이름 배열 + 마지막 마디가 항목 이름(PLAN 26-1 · 깊이 자유). * ========================================================================== */ diff --git a/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Roots.ts b/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Roots.ts new file mode 100644 index 000000000..4d78b1ebc --- /dev/null +++ b/M02_MasterTemplete/M02_MasterTemplete_TreePanel_Roots.ts @@ -0,0 +1,141 @@ +/* ============================================================================= + * M02_MasterTemplete_TreePanel_Roots.ts + * 라이브러리 한 화면의 뿌리 셋(마스터 · 회사 · 개인 · PLAN 27-1b · c) — 나무 종류와 무관한 공용 부품 + * (구조물 라이브러리 · 일위대가 라이브러리가 함께 씀). 고른 뿌리(`active`) 아래에 부르는 쪽 나무(`panel`)를 붙임. + * 시스템 관리자 「회사」 → 회사 목록 → (회사 공용 · 그 회사 사람) + * 회사 관리자 「개인」 → (내 것 · 같은 회사 사람) + * 그 밖 마스터 · 회사 · 개인 한 줄씩 + * 목록은 펼칠 때 불러옴(`fetchOwners`) · 다른 뿌리를 누르면 `go`(부르는 쪽이 해시로 다시 엶) · + * 읽기만 뿌리는 줄 끝에 「읽기」(권한 = `accessFor` · 서버 `M02_Layer_Access` 와 짝). + * ========================================================================== */ + +import { el } from "@ui/ui_template_elements"; +import { t as L } from "@ui/ui_template_locale"; +import { createTreeRow } from "@ui/ui_template_tree"; +import type { SessionUser } from "../A06_Login/A06_Login_Api_Fetch"; +import { fetchOwners, type LayerOwner } from "./M02_MasterTemplete_Api_Fetch"; +import { + accessFor, + buildNeedCompany, + layerOfRoot, + ownOwner, + type Root, +} from "./M02_MasterTemplete_Layer"; + +export interface RootsOptions { + user: SessionUser | null; + /** 지금 고른 뿌리 — `owner` null = 자기 층 */ + active: { root: Root; owner: string | null }; + /** 고른 뿌리 아래에 붙일 나무 */ + panel: HTMLElement; + /** 다른 뿌리를 누름 — `owner` null = 자기 층 */ + go: (root: Root, owner: string | null) => void; +} + +const hint = (text: string): HTMLElement => el("p", { className: "m02-tree__hint", text }); +const why = (error: unknown): string => (error instanceof Error ? error.message : ""); + +export function createLibraryRoots(opt: RootsOptions): HTMLElement { + const { user, active } = opt; + const isSystem = user?.role === "SYSTEM_ADMIN"; + const companyAdmin = isSystem || user?.role === "ADMIN" || !!user?.is_master; + const ownCompany = ownOwner("company", user); + const activeCompany = active.owner?.split("/")[0] ?? ownCompany; + + /** 층 하나 — 누르면 그 뿌리로 · 고른 뿌리면 아래에 나무(누르면 접기/펴기) */ + function leaf(label: string, root: Root, owner: string | null, depth: number): HTMLElement[] { + const current = root === active.root && owner === active.owner; + const readOnly = !accessFor(layerOfRoot(root), owner, user).canWrite; + const text = readOnly ? `${label} · ${L("M02_RootReadOnly")}` : label; + const wrap = el("div", { className: "m02-roots__panel", children: current ? [opt.panel] : [] }); + wrap.style.paddingLeft = `calc(${depth + 1} * var(--spacing-16))`; + const row = createTreeRow( + { id: `${root}|${owner}`, label: text, count: null }, + "", + depth, + () => { + if (!current) return opt.go(root, owner); + wrap.hidden = !wrap.hidden; + }, + ); + row.classList.toggle("is-active", current); + return current ? [row, wrap] : [row]; + } + + /** 묶음 — 펼칠 때 한 번 불러옴(`load`) · `open` = 고른 뿌리가 안에 있어 처음부터 펼침 */ + function group( + label: string, + depth: number, + open: boolean, + load: () => Promise, + ): HTMLElement { + const kids = el("div", { className: "ui-tree__kids" }); + kids.hidden = !open; + let loaded = false; + const fill = async (): Promise => { + loaded = true; + kids.replaceChildren(hint(L("M02_PickerLoading"))); + try { + const nodes = await load(); + kids.replaceChildren(...(nodes.length ? nodes : [hint(L("M02_RootNone"))])); + } catch (error) { + loaded = false; + kids.replaceChildren(hint(L("M02_PickerLoadFailed").replace("{value}", why(error)))); + } + }; + const row = createTreeRow({ id: label, label, count: null }, open ? "▾" : "▸", depth, () => { + kids.hidden = !kids.hidden; + const caret = row.querySelector(".ui-tree__caret"); + if (caret) caret.textContent = kids.hidden ? "▸" : "▾"; + if (!kids.hidden && !loaded) void fill(); + }); + if (open) void fill(); + return el("div", { className: "ui-tree__branch", children: [row, kids] }); + } + + /** 목록에 없는 고른 층(해시로 바로 들어옴 · 탈퇴한 사람 등)도 줄을 세움 — 나무를 붙일 자리 */ + const withActive = (list: LayerOwner[], owner: string | null, fits: boolean): LayerOwner[] => + owner && fits && !list.some((one) => one.owner === owner) + ? [...list, { owner, name: owner }] + : list; + + /** 그 회사 사람들의 개인 층(본인 뺌) */ + const people = async (company: string | null, depth: number): Promise => { + const fits = active.root === "personal" && activeCompany === (company ?? ownCompany); + return withActive(await fetchOwners("personal", company), active.owner, fits).flatMap((one) => + leaf(one.name, "personal", one.owner, depth), + ); + }; + + const master = leaf(L("M02_PickerSystem"), "master", null, 0); + if (!ownCompany && !isSystem) { + return el("div", { className: "m02-roots", children: [...master, buildNeedCompany()] }); + } + + // 시스템 관리자 — 회사 목록 → 회사 공용 · 그 회사 사람 + const companies = (): HTMLElement => + group(L("M02_PickerCompany"), 0, active.root === "company" || !!active.owner, async () => + withActive(await fetchOwners("company"), activeCompany, !!active.owner).map((one) => { + const mine = one.owner === ownCompany; + const here = !!active.owner || active.root === "company"; + return group(one.name, 1, here && activeCompany === one.owner, async () => [ + ...leaf(L("M02_RootShared"), "company", mine ? null : one.owner, 2), + ...(await people(one.owner, 2)), + ]); + }), + ); + + const company = isSystem ? [companies()] : leaf(L("M02_PickerCompany"), "company", null, 0); + // 회사 관리자 — 개인 → 내 것 · 같은 회사 사람 · 시스템 관리자는 남의 개인을 회사 아래에서 봄 + const personal = !ownCompany + ? [] + : companyAdmin && !isSystem + ? [ + group(L("M02_PickerPersonal"), 0, active.root === "personal", async () => [ + ...leaf(L("M02_RootMine"), "personal", null, 1), + ...(await people(null, 1)), + ]), + ] + : leaf(L("M02_PickerPersonal"), "personal", null, 0); + return el("div", { className: "m02-roots", children: [...master, ...company, ...personal] }); +} diff --git a/M02_MasterTemplete/M02_MasterTemplete_UI_Main.ts b/M02_MasterTemplete/M02_MasterTemplete_UI_Main.ts index 78b7e7da3..1f1928693 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_UI_Main.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_UI_Main.ts @@ -106,7 +106,7 @@ export function canEdit(layer: Layer, isAdmin: boolean): boolean { } /** 페이지가 끼우는 것 — `top` = 편집 칸 맨 위 막대(회사용 읽기만 안내) · `onColumn` = 집계표에서 고른 열 · - * `aside` = 「구조물 조합」을 열 때만 편집 칸 왼쪽에 보임(항목 나무 · PLAN 26-7c) */ + * `aside` = 「구조물 조합」을 열 때만 편집 칸 왼쪽에 보임(구조물 라이브러리 · PLAN 26-7c) */ export interface MainExtras { top?: HTMLElement; aside?: HTMLElement; diff --git a/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts b/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts index 07afe8f72..a86599a49 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts @@ -1,54 +1,74 @@ /* ============================================================================= * M02_MasterTemplete_UI_Page.ts * 마스터 템플릿 · 구조물 관리 화면 — 좌측 도킹 패널(양식 목록) / 우측 편집 칸(표·도면 부품) · - * 「구조물 조합」을 열면 편집 칸 왼쪽에 항목 나무(주 · 고치는 자리) · 오른쪽 참조표(PLAN 26-7c) + * 「구조물 조합」을 열면 편집 칸 왼쪽에 구조물 라이브러리(뿌리 셋 · 주 · 고치는 자리) · 오른쪽 참조표(PLAN 26-7c) * - * 층 = 주소 인자 `?layer=personal|company`(없으면 시스템) — 같은 화면 한 벌. - * 화면은 로그인만 확인 — 고치기는 층별 권한일 때만 켬(서버도 막음 · `M02_MasterTemplete_Layer.ts`). + * 한 화면에 뿌리 셋(마스터 · 회사 · 개인 · PLAN 27-1) — 고른 뿌리 = 진입 해시 `?open=&root=&owner=` + * (`M02_MasterTemplete_Layer.ts`) · 다른 뿌리를 누르면 해시를 바꿔 이 화면을 다시 세움. + * 화면은 로그인만 확인 — 고치기는 뿌리별 권한일 때만 켬(서버도 막음 · `accessFor`). * ========================================================================== */ import "@ui/ui_template_workflow_layout.css"; +import { ROUTES } from "@config/config_frontend"; import { el } from "@ui/ui_template_elements"; import { t as L } from "@ui/ui_template_locale"; import { createWorkflowOverlays } from "@ui/ui_template_overlay"; +import { navigateTo, type MountedPage } from "../A00_Common/router"; import { fetchSessionUser } from "../A06_Login/A06_Login_Api_Fetch"; import { setActiveLayer } from "./M02_MasterTemplete_Api_Fetch"; import { accessFor, - buildNeedCompany, buildReadOnlyBar, - layerFromHash, - titleOf, + entryFromHash, + entryQuery, + layerOfRoot, + ownOwner, + type Root, } from "./M02_MasterTemplete_Layer"; import { STRUCTURE_TABLE } from "./M02_MasterTemplete_Structure"; import { createTreePanel } from "./M02_MasterTemplete_TreePanel"; +import { createLibraryRoots } from "./M02_MasterTemplete_TreePanel_Roots"; import { canEdit, createMain, type Selection } from "./M02_MasterTemplete_UI_Main"; import { buildSide } from "./M02_MasterTemplete_UI_Side"; import "./M02_MasterTemplete_UI_Style.css"; -export async function renderM02MasterTemplate(root: HTMLElement): Promise { +export async function renderM02MasterTemplate(root: HTMLElement): Promise { const user = await fetchSessionUser().catch(() => null); - const layer = layerFromHash(); - setActiveLayer(layer); - const access = accessFor(layer, user); - if (access.needCompany) { - root.replaceChildren(buildNeedCompany()); - return; + const entry = entryFromHash(); + let layer = layerOfRoot(entry.root); + // 자기 층 주인을 적어도 자기 층 · 회사 없는 사람의 회사 · 개인 뿌리 = 마스터(뿌리 자리에 안내) + let owner = entry.owner && entry.owner !== ownOwner(layer, user) ? entry.owner : null; + if (accessFor(layer, owner, user).needCompany) { + [entry.root, layer, owner] = ["master", "system", null]; } - const isAdmin = access.canWrite; // 이 층을 고칠 수 있나(하위 부품의 「관리자」 = 같은 뜻) - // 회사용을 읽기만 볼 때 — 안내 + [개인용으로 복사] - const readOnlyBar = layer === "company" && !isAdmin ? buildReadOnlyBar(user) : null; - // 항목 나무 — 고르기 모달과 같은 폴더 나무(세 층 공용) · 「구조물 조합」 편집 칸 왼쪽 + setActiveLayer(layer, owner); + const isAdmin = accessFor(layer, owner, user).canWrite; // 이 뿌리를 고칠 수 있나(하위 부품의 「관리자」) + // 자기 회사용을 읽기만 볼 때 — 안내 + [개인용으로 복사] + const readOnlyBar = layer === "company" && !owner && !isAdmin ? buildReadOnlyBar(user) : null; + // 고른 뿌리의 나무 — 고르기 모달과 같은 폴더 나무 · 「구조물 조합」 편집 칸 왼쪽 const tree = createTreePanel({ layer, + owner, + label: L("M02_KindTable"), canEdit: canEdit(layer, isAdmin), onPick: (item) => void main.openTable(layer, item.열), settle: () => main.settle(), onChanged: (colId) => main.openTable(layer, colId, true), }); + const go = async (next: Root, nextOwner: string | null): Promise => { + // 같은 주소 안 이동은 머리 가드가 안 물음 — 저장 안 한 고침은 여기서 + if (!(await main.confirmLeave())) return; + navigateTo(ROUTES.M02_MASTER_TEMPLATE, entryQuery({ ...entry, root: next, owner: nextOwner })); + }; + const roots = createLibraryRoots({ + user, + active: { root: entry.root, owner }, + panel: tree.root, + go: (next, nextOwner) => void go(next, nextOwner), + }); const aside = el("aside", { className: "m02-shell__tree", - children: [el("h3", { className: "m02-shell__title", text: L("M02_TreeTitle") }), tree.root], + children: [el("h3", { className: "m02-shell__title", text: L("M02_TreeTitle") }), roots], }); const main = createMain( isAdmin, @@ -81,7 +101,7 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise const layout = el("div", { className: "ui-workflow-layout m02-master" }); const overlays = createWorkflowOverlays({ - title: titleOf(layer), + title: L("M02_Title"), optionsContent: el("div", { className: "m02-master__side", children: [side.root] }), showProjectName: false, onOptionsOpenChange: (isOpen) => layout.classList.toggle("is-options-open", isOpen), @@ -96,5 +116,10 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise root.innerHTML = ""; root.append(layout); void main.open(home); + // 진입 해시 `open` — 옵션 · 도면 컨테이너는 마스터에만(일위대가는 27-2 컨테이너가 생기면) · + // 옵션 화면이 뒤에 열리면 편집 칸 차례(`seq`)가 늦게 온 집계표를 버림 + if (entry.open === "옵션" || entry.open === "도면") side.reveal(entry.open); void tree.refresh(); + // 이 화면을 떠나면 층 길을 시스템 · 자기 층으로 되돌림(다른 화면의 항목 고르기가 남의 층을 안 부르게) + return { covers: () => false, show: () => {}, dispose: () => setActiveLayer("system") }; } diff --git a/M02_MasterTemplete/M02_MasterTemplete_UI_Side.ts b/M02_MasterTemplete/M02_MasterTemplete_UI_Side.ts index 0fae8baf0..2be9f7847 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_UI_Side.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_UI_Side.ts @@ -6,7 +6,7 @@ * 서버가 미리 만들어 둠(도번 SD · 면적번 SA · 재료번 SM + 같은 8자리) · * 줄 글은 번호가 맨 앞(「SD01010100 돌기슭막이 …」). 「자재 조합」 컨테이너는 `M02_MasterTemplete_Matset.ts`. * 화면 이름 「구조물 조합」(PLAN 26-7a) — 파일 이름 · 양식 키 · API 길은 「구조물집계표」 그대로. - * 항목 나무는 좌측이 아니라 「구조물 조합」 상세 화면 왼쪽(PLAN 26-7c · 페이지가 붙임). + * 구조물 라이브러리는 좌측이 아니라 「구조물 조합」 상세 화면 왼쪽(PLAN 26-7c · 페이지가 붙임). * ========================================================================== */ import { @@ -80,6 +80,8 @@ export interface SideHandle { refresh: () => Promise; /** 고름 표시를 지금 열린 것 한 줄로 — 편집 칸이 무엇을 열든(카드 [도면 수정] 등) 부름 */ paint: () => void; + /** 진입 해시 `open`(PLAN 27-1d) — 그 컨테이너를 펼침(옵션은 열기까지) · 시스템 층에만 있음 */ + reveal: (target: "옵션" | "도면") => void; } /** 서버 이름 규칙과 같게 — 화면에서 먼저 막음 */ @@ -152,18 +154,17 @@ export function buildSide(opt: SideOptions): SideHandle { ); summary.classList.remove("is-collapsed"); summary.classList.add("m02-side__summary"); + // 구조물 옵션 보이기 · 도면 양식은 시스템 층(마스터 템플릿)에만 + const extras = + layer === "system" + ? { + 옵션: section(options.title, options.body), + 도면: section(L("M02_KindDrawing"), bodies.get("drawing")!, ...actionRow("drawing")), + } + : null; const listHost = el("div", { className: "m02-side__lists ui-sidebar-panel", - children: [ - summary, - // 구조물 옵션 보이기 · 도면 양식은 시스템 층(마스터 템플릿)에만 - ...(layer === "system" - ? [ - section(options.title, options.body), - section(L("M02_KindDrawing"), bodies.get("drawing")!, ...actionRow("drawing")), - ] - : []), - ], + children: [summary, ...(extras ? [extras.옵션, extras.도면] : [])], }); attachCollapsible(listHost); @@ -362,6 +363,11 @@ export function buildSide(opt: SideOptions): SideHandle { } } + const reveal = (target: "옵션" | "도면"): void => { + extras?.[target].classList.remove("is-collapsed"); + if (target === "옵션") options.body.querySelector("button")?.click(); + }; + void refresh(); - return { root, refresh, paint }; + return { root, refresh, paint, reveal }; } diff --git a/M02_MasterTemplete/M02_MasterTemplete_UI_Style.css b/M02_MasterTemplete/M02_MasterTemplete_UI_Style.css index a26b107cb..3551963aa 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_UI_Style.css +++ b/M02_MasterTemplete/M02_MasterTemplete_UI_Style.css @@ -216,7 +216,7 @@ font-size: 11px; } -/* 「구조물 조합」(PLAN 26-7c) — 왼쪽 항목 나무(주 · 고치는 자리) · 오른쪽 편집 칸(참조표 · 카드) */ +/* 「구조물 조합」(PLAN 26-7c) — 왼쪽 구조물 라이브러리(주 · 고치는 자리) · 오른쪽 편집 칸(참조표 · 카드) */ .m02-shell { display: flex; align-items: stretch; diff --git a/resources/master_data/_키대장.json b/resources/master_data/_키대장.json index b4e053f7f..1a86176db 100644 --- a/resources/master_data/_키대장.json +++ b/resources/master_data/_키대장.json @@ -1,5 +1,5 @@ { - "다음": {"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": 38}, + "다음": {"LB": 409, "EQ": 655, "RT": 20, "MN": 7000, "MT": 30719, "MO": 74, "MP": 364, "FX": 6, "CF": 159, "QF": 477, "GF": 331, "CC": 341, "GC": 1140, "QC": 2060, "GX": 1, "UA": 38}, "폐기": {"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"}, @@ -2262,6 +2262,42 @@ "GC001101": {"원문번호": "유지관리 2-4-12 CCTV조사", "파일": "로직_건설품셈_02장_토목.json"}, "GC001102": {"원문번호": "유지관리 2-4-13 주철관 철거", "파일": "로직_건설품셈_02장_토목.json"}, "GC001103": {"원문번호": "유지관리 2-4-14 원심력철근콘크리트관 철거", "파일": "로직_건설품셈_02장_토목.json"}, + "GC001104": {"원문번호": "유지관리 3-1-1 콘크리트구조물 헐기(인력)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001105": {"원문번호": "유지관리 3-1-2 콘크리트구조물 헐기(기계)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001106": {"원문번호": "유지관리 3-1-3 철골재 철거(인력)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001107": {"원문번호": "유지관리 3-1-4 철골재 철거(기계)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001108": {"원문번호": "유지관리 3-1-5 석축 헐기(인력)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001109": {"원문번호": "유지관리 3-2-1 금속기와 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001110": {"원문번호": "유지관리 3-2-2 흡음텍스 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001111": {"원문번호": "유지관리 3-2-3 경량천장철골틀 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001112": {"원문번호": "유지관리 3-2-4 조적벽 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001113": {"원문번호": "유지관리 3-2-5 경량벽체철골틀 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001114": {"원문번호": "유지관리 3-2-6 석고판 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001115": {"원문번호": "유지관리 3-2-7 도배 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001116": {"원문번호": "유지관리 3-2-8 PVC계바닥재 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001117": {"원문번호": "유지관리 3-2-9 타일 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001118": {"원문번호": "유지관리 3-2-10 기존방수층 및 보호층 철거", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001119": {"원문번호": "유지관리 3-2-11 기존방수층 제거 및 바탕처리", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001120": {"원문번호": "유지관리 3-2-12 석면건축자재 해체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001121": {"원문번호": "유지관리 3-3-1 재도장 시 바탕처리(콘크리트·모르타르면)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001122": {"원문번호": "유지관리 3-3-2 재도장 시 바탕처리(철재면)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001123": {"원문번호": "유지관리 3-3-3 재도장 시 바탕처리(목재면)", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001124": {"원문번호": "유지관리 3-4-1 지붕 덧씌우기", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001125": {"원문번호": "유지관리 3-4-2 지붕 재설치", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001126": {"원문번호": "유지관리 3-4-3 도배 교체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001127": {"원문번호": "유지관리 3-4-4 PVC계바닥재 교체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001128": {"원문번호": "유지관리 3-4-5 타일 교체", "파일": "로직_건설품셈_03장_건축.json"}, + "GC001129": {"원문번호": "유지관리 4-1-1 배관 해체", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001130": {"원문번호": "유지관리 4-1-2 각형덕트 해체", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001131": {"원문번호": "유지관리 4-1-3 스파이럴덕트 해체", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001132": {"원문번호": "유지관리 4-1-4 배관보온 해체", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001133": {"원문번호": "유지관리 4-1-5 덕트보온 해체", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001134": {"원문번호": "유지관리 4-1-6 펌프 해체", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001135": {"원문번호": "유지관리 4-3-1 유량계 교체", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001136": {"원문번호": "유지관리 4-3-2 관갱생공", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001137": {"원문번호": "유지관리 4-3-3 배관누수 검사", "파일": "로직_건설품셈_04장_기계설비.json"}, + "GC001138": {"원문번호": "공통 7-4-2 석재판 붙임 앵커 긴결공법", "파일": "로직_건설품셈_07장_돌공사.json"}, + "GC001139": {"원문번호": "공통 7-4-3 석재판 붙임 강제트러스 지지공법", "파일": "로직_건설품셈_07장_돌공사.json"}, "GF000001": {"원문번호": "3-1 경계표시", "파일": "로직_산림품셈_03장_작업장_관리.json"}, "GF000002": {"원문번호": "3-3 작업로 설치", "파일": "로직_산림품셈_03장_작업장_관리.json"}, "GF000003": {"원문번호": "3-4-2 임산물 운반로 신설 작업량", "파일": "로직_산림품셈_03장_작업장_관리.json"}, @@ -2513,6 +2549,85 @@ "GF000249": {"원문번호": "9-14-2 다짐", "파일": "로직_산림품셈_09장_토공.json"}, "GF000250": {"원문번호": "9-15-2 표토제거 답외구간", "파일": "로직_산림품셈_09장_토공.json"}, "GF000251": {"원문번호": "9-17-2 비다짐", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000252": {"원문번호": "9-4-1 암파쇄(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000253": {"원문번호": "9-5-2 발파암 깎기 90%(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000254": {"원문번호": "9-5-1 육상 암석 절취(발파 10%)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000255": {"원문번호": "9-6-1 발파암 기계소할(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000256": {"원문번호": "9-7-1 무근콘크리트 깨기(T=30㎝ 미만) 깨기(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000257": {"원문번호": "9-7-2 무근콘크리트 깨기(T=30㎝ 이상) 깨기(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000258": {"원문번호": "9-8-1 철근콘크리트 깨기(T=30㎝ 미만) 깨기(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000259": {"원문번호": "9-8-2 철근콘크리트 깨기(T=30㎝ 이상) 깨기(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000260": {"원문번호": "9-10-1 기존포장 깨기 콘크리트 깨기(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000261": {"원문번호": "9-10-2 기존포장 깨기 아스팔트 깨기(대형브레이커 · 굴착기 0.7㎥)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000262": {"원문번호": "9-11-1 포장절단 콘크리트(기계)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000263": {"원문번호": "9-12-2 측구터파기 암절취", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000264": {"원문번호": "9-12-3 측구터파기 발파암", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000265": {"원문번호": "9-13-7 구조물터파기 육상 암절취(0~1m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000266": {"원문번호": "9-13-8 구조물터파기 육상 암절취(1~2m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000267": {"원문번호": "9-13-9 구조물터파기 육상 암절취(2~3m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000268": {"원문번호": "9-13-10 구조물터파기 용수 암절취(0~1m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000269": {"원문번호": "9-13-11 구조물터파기 용수 암절취(1~2m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000270": {"원문번호": "9-13-12 구조물터파기 용수 암절취(2~3m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000271": {"원문번호": "9-13-13 구조물터파기 육상 발파암(0~1m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000272": {"원문번호": "9-13-14 구조물터파기 육상 발파암(1~2m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000273": {"원문번호": "9-13-15 구조물터파기 육상 발파암(2~3m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000274": {"원문번호": "9-13-16 구조물터파기 용수 발파암(0~1m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000275": {"원문번호": "9-13-17 구조물터파기 용수 발파암(1~2m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000276": {"원문번호": "9-13-18 구조물터파기 용수 발파암(2~3m)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000277": {"원문번호": "9-16-3 노체 살수(물탱크 5,500ℓ)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000278": {"원문번호": "9-19-3 비탈면 고르기(발파암)", "파일": "로직_산림품셈_09장_토공.json"}, + "GF000279": {"원문번호": "10-6-1 인력운반 토사·석재", "파일": "로직_산림품셈_10장_자재․장비_운반.json"}, + "GF000280": {"원문번호": "10-6-2 인력운반 돌(지게)", "파일": "로직_산림품셈_10장_자재․장비_운반.json"}, + "GF000281": {"원문번호": "10-6-3 인력운반 기타 임업자재", "파일": "로직_산림품셈_10장_자재․장비_운반.json"}, + "GF000282": {"원문번호": "10-8-1 케이블 크레인 짐내리기", "파일": "로직_산림품셈_10장_자재․장비_운반.json"}, + "GF000283": {"원문번호": "10-9-1 덤프트럭 자재 운반(1회 표준 운반량)", "파일": "로직_산림품셈_10장_자재․장비_운반.json"}, + "GF000284": {"원문번호": "10-12-1 덤프운반(굴착기 0.7㎥ 적재 · 덤프트럭 15ton)", "파일": "로직_산림품셈_10장_자재․장비_운반.json"}, + "GF000285": {"원문번호": "10-13-2 묘목 인력운반", "파일": "로직_산림품셈_10장_자재․장비_운반.json"}, + "GF000286": {"원문번호": "4-1-1 수확베기 임업용 동력기계톱 벌목", "파일": "로직_산림품셈_04장_나무베기.json"}, + "GF000287": {"원문번호": "4-2-1 단목베기(100본당)", "파일": "로직_산림품셈_04장_나무베기.json"}, + "GF000288": {"원문번호": "4-2-2 단목베기(1,000㎡당 · 굴착기 0.2㎥ + 부착용 집게)", "파일": "로직_산림품셈_04장_나무베기.json"}, + "GF000289": {"원문번호": "4-3 위험목 베기(굴착기 우드그랩 0.2㎥ · 크레인 5톤)", "파일": "로직_산림품셈_04장_나무베기.json"}, + "GF000290": {"원문번호": "5-1-1 관목굴취", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000291": {"원문번호": "5-3-2 관목식재(단식)", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000292": {"원문번호": "5-3-3 관목식재(군식)", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000293": {"원문번호": "5-1-2 교목굴취(나무높이)", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000294": {"원문번호": "5-1-3 교목굴취(근원직경)", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000295": {"원문번호": "5-2 뿌리돌림", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000296": {"원문번호": "5-3-4 교목식재(나무높이)", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000297": {"원문번호": "5-3-5 교목식재(흉고직경)", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000298": {"원문번호": "5-16-1 선떼붙이기 단끊기", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000299": {"원문번호": "5-19-1 표토절취 및 모으기", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000300": {"원문번호": "5-19-2 표토펴기 및 고르기", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000301": {"원문번호": "5-26-1 흙갈이 막갈이", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000302": {"원문번호": "5-26-2 흙갈이 흙부수기", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000303": {"원문번호": "5-28-2 방초매트 및 야자섬유매트 포장", "파일": "로직_산림품셈_05장_식재_및_녹화.json"}, + "GF000304": {"원문번호": "6-4-3 칡덩굴 소금처리", "파일": "로직_산림품셈_06장_생육보조.json"}, + "GF000305": {"원문번호": "6-4-4 칡덩굴 뿌리제거", "파일": "로직_산림품셈_06장_생육보조.json"}, + "GF000306": {"원문번호": "6-7-1 교목 시비(환상시비)", "파일": "로직_산림품셈_06장_생육보조.json"}, + "GF000307": {"원문번호": "7-2 수라집재", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000308": {"원문번호": "7-5-2 트랙터부착형 숲가꾸기·병해충방제(지면끌기)", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000309": {"원문번호": "7-7-2 HAM200 숲가꾸기·병해충방제", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000310": {"원문번호": "7-8-1 타워야더(RME 300T) 가선설치", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000311": {"원문번호": "7-8-2 타워야더(RME 300T) 가선해체", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000312": {"원문번호": "7-9-1 부착형 타워(K-301 · HAM300) 수확 집재", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000313": {"원문번호": "7-9-2 부착형 타워(K-301 · HAM300) 숲가꾸기·재선충병방제 집재", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000314": {"원문번호": "7-10 굴착기 우드그랩 산지집재(병해충방제)", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000315": {"원문번호": "7-12 동력상하차기(우드그래플) 집적", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000316": {"원문번호": "7-13 검척", "파일": "로직_산림품셈_07장_집재_및_운재.json"}, + "GF000317": {"원문번호": "8-1-1 나무주사 약제주입기", "파일": "로직_산림품셈_08장_방제.json"}, + "GF000318": {"원문번호": "8-1-2 나무주사 약제주입병", "파일": "로직_산림품셈_08장_방제.json"}, + "GF000319": {"원문번호": "8-4 끈끈이 롤 트랩 설치·제거", "파일": "로직_산림품셈_08장_방제.json"}, + "GF000320": {"원문번호": "8-6-2 드론방제(무인헬기 · 멀티콥터)", "파일": "로직_산림품셈_08장_방제.json"}, + "GF000321": {"원문번호": "8-6-3 지상방제 차량살포(동력분무기)", "파일": "로직_산림품셈_08장_방제.json"}, + "GF000322": {"원문번호": "8-10 그물망 피복", "파일": "로직_산림품셈_08장_방제.json"}, + "GF000323": {"원문번호": "8-11 이동식 임목 파쇄(93.25KW)", "파일": "로직_산림품셈_08장_방제.json"}, + "GF000324": {"원문번호": "13-4-6 밑돌 및 천단 돌쌓기", "파일": "로직_산림품셈_13장_구조물.json"}, + "GF000325": {"원문번호": "13-10-2 나무 말뚝박기 — 작은 말뚝(6할 박기)", "파일": "로직_산림품셈_13장_구조물.json"}, + "GF000326": {"원문번호": "13-10-2 나무 말뚝박기 — 기초말뚝", "파일": "로직_산림품셈_13장_구조물.json"}, + "GF000327": {"원문번호": "13-10-2 나무 말뚝박기 — 윈치말뚝", "파일": "로직_산림품셈_13장_구조물.json"}, + "GF000328": {"원문번호": "13-11-1 원형 돌망태", "파일": "로직_산림품셈_13장_구조물.json"}, + "GF000329": {"원문번호": "13-11-2 타원형 돌망태", "파일": "로직_산림품셈_13장_구조물.json"}, + "GF000330": {"원문번호": "13-15-1 목재 껍질벗기기", "파일": "로직_산림품셈_13장_구조물.json"}, "LB000001": {"원문번호": "1001", "파일": "인력.json"}, "LB000002": {"원문번호": "1002", "파일": "인력.json"}, "LB000003": {"원문번호": "1003", "파일": "인력.json"}, diff --git a/resources/master_data/계수_산림품셈_07장_집재_및_운재.json b/resources/master_data/계수_산림품셈_07장_집재_및_운재.json index 389d864df..692d4399e 100644 --- a/resources/master_data/계수_산림품셈_07장_집재_및_운재.json +++ b/resources/master_data/계수_산림품셈_07장_집재_및_운재.json @@ -36,7 +36,7 @@ "이름": "수라집재 주 속 수", "기준": "", "출처": "산림품셈 7-2 주①②", - "용도": {"공종": "수라집재", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "수라집재", "대상": ["작업량 조건"], "로직키": ["GF000307"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -95,7 +95,7 @@ "이름": "부착형 타워 수확 주 속 수", "기준": "", "출처": "산림품셈 7-9-1 주②", - "용도": {"공종": "수확", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "수확", "대상": ["작업량 조건"], "로직키": ["GF000312"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -125,7 +125,7 @@ "이름": "굴착기 우드그랩 산지집재 주 속 수", "기준": "", "출처": "산림품셈 7-10 주③⑤", - "용도": {"공종": "굴착기 우드그랩 산지집재-병해충방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "굴착기 우드그랩 산지집재-병해충방제", "대상": ["작업량 조건"], "로직키": ["GF000314"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -170,7 +170,7 @@ "이름": "동력상하차기 집적 주 속 수", "기준": "", "출처": "산림품셈 7-12 주④", - "용도": {"공종": "동력상하차기(우드그래플) 집적", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "동력상하차기(우드그래플) 집적", "대상": ["작업량 조건"], "로직키": ["GF000315"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -183,7 +183,7 @@ "이름": "검척 주 속 수", "기준": "", "출처": "산림품셈 7-13 주①②③⑤", - "용도": {"공종": "검척", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "검척", "대상": ["작업량 조건"], "로직키": ["GF000316"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -199,9 +199,9 @@ "이름": "검척 평균 말구직경 할인·할증", "기준": "", "출처": "산림품셈 7-13 주③", - "용도": {"공종": "검척", "대상": ["작업량 조건", "할증"], "로직키": []}, + "용도": {"공종": "검척", "대상": ["작업량 조건", "할증"], "로직키": ["GF000316"]}, "조건": { "구분": "고르기", "말구직경": "범위" }, - "범위규칙": "미만·이상 · 아래 끝 포함 · 위 끝 미포함", + "범위규칙": "이상·미만 · 미만·이상 · 아래 끝 포함 · 위 끝 미포함", "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ { "구분": "12cm 미만", "적용": 30, "단위": "%", "적용원문": "평균 말구직경이 12cm 미만인 경우 30%", "말구직경": [null, 12] }, diff --git a/resources/master_data/계수_산림품셈_08장_방제.json b/resources/master_data/계수_산림품셈_08장_방제.json index a960b75db..e133864ab 100644 --- a/resources/master_data/계수_산림품셈_08장_방제.json +++ b/resources/master_data/계수_산림품셈_08장_방제.json @@ -162,7 +162,7 @@ "이름": "끈끈이 롤 트랩 주 속 수", "기준": "", "출처": "산림품셈 8-4 주①②", - "용도": {"공종": "끈끈이 롤 트랩", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "끈끈이 롤 트랩", "대상": ["작업량 조건"], "로직키": ["GF000319"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -209,7 +209,7 @@ "이름": "무인 헬리콥터 방제 주 속 수", "기준": "", "출처": "산림품셈 8-6-2 주①②③⑤⑥", - "용도": {"공종": "드론방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "드론방제", "대상": ["작업량 조건"], "로직키": ["GF000320"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -227,7 +227,7 @@ "이름": "무인 멀티콥터 방제 주 속 수", "기준": "", "출처": "산림품셈 8-6-2 주①②③④", - "용도": {"공종": "드론방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "드론방제", "대상": ["작업량 조건"], "로직키": ["GF000320"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -270,7 +270,7 @@ "이름": "그물망 피복 주 속 수", "기준": "", "출처": "산림품셈 8-10 주①②", - "용도": {"공종": "그물망 피복", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "그물망 피복", "대상": ["작업량 조건"], "로직키": ["GF000322"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -284,7 +284,7 @@ "이름": "이동식 임목 파쇄 주 속 수", "기준": "", "출처": "산림품셈 8-11 주①②⑤", - "용도": {"공종": "이동식 임목 파쇄", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "이동식 임목 파쇄", "대상": ["인력", "작업량 조건"], "로직키": ["GF000323"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ diff --git a/resources/master_data/계수_산림품셈_09장_토공.json b/resources/master_data/계수_산림품셈_09장_토공.json index 0085a138e..6756d2aac 100644 --- a/resources/master_data/계수_산림품셈_09장_토공.json +++ b/resources/master_data/계수_산림품셈_09장_토공.json @@ -133,7 +133,7 @@ "이름": "살수", "기준": "", "출처": "산림품셈 9-16-3", - "용도": {"공종": "살수", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "살수", "대상": ["작업량 조건"], "로직키": ["GF000277"]}, "조건": { "구분": "고르기" }, @@ -182,7 +182,7 @@ "이름": "살수 조건", "기준": "", "출처": "산림품셈 9-16-3 주①②", - "용도": {"공종": "살수", "대상": ["기계", "작업량 조건"], "로직키": []}, + "용도": {"공종": "살수", "대상": ["기계", "작업량 조건"], "로직키": ["GF000277"]}, "조건": { "구분": "고르기" }, @@ -252,7 +252,7 @@ "이름": "철근콘크리트 깨기(T=30㎝ 미만) 주 · 고철공제", "기준": "", "출처": "산림품셈 9-8-1 주②③ · 4 고철공제", - "용도": {"공종": "T=30㎝ 미만", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 미만", "대상": ["작업량 조건"], "로직키": ["GF000258"]}, "조건": { "구분": "고르기" }, @@ -309,7 +309,7 @@ "이름": "철근콘크리트 깨기(T=30㎝ 이상) 주 · 고철공제", "기준": "", "출처": "산림품셈 9-8-2 주② · 4 고철공제", - "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": ["GF000259"]}, "조건": { "구분": "고르기" }, @@ -365,7 +365,7 @@ "이름": "발파구간 횡단경사 인건비 가산", "기준": "", "출처": "산림품셈 9-5-3 주③", - "용도": {"공종": "집토", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "집토", "대상": ["작업량 조건"], "로직키": ["GF000254"]}, "조건": { "구분": "고르기" }, @@ -431,7 +431,7 @@ "이름": "무근콘크리트 깨기(T=30㎝ 미만) 주 속 수", "기준": "", "출처": "산림품셈 9-7-1 주②⑤⑧⑨⑩", - "용도": {"공종": "T=30㎝ 미만", "대상": ["기계", "작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 미만", "대상": ["기계", "작업량 조건"], "로직키": ["GF000256"]}, "조건": { "구분": "고르기" }, @@ -488,7 +488,7 @@ "이름": "무근콘크리트 깨기(T=30㎝ 이상) 주 속 수", "기준": "", "출처": "산림품셈 9-7-2 주②", - "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": ["GF000257"]}, "조건": { "구분": "고르기" }, @@ -660,7 +660,7 @@ "이름": "기존포장 깨기 콘크리트 주 속 수", "기준": "", "출처": "산림품셈 9-10-1 주②", - "용도": {"공종": "콘크리트", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "콘크리트", "대상": ["작업량 조건"], "로직키": ["GF000260"]}, "조건": { "구분": "고르기" }, @@ -684,7 +684,7 @@ "이름": "기존포장 깨기 아스팔트 주 속 수", "기준": "", "출처": "산림품셈 9-10-2 주②", - "용도": {"공종": "아스팔트", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "아스팔트", "대상": ["작업량 조건"], "로직키": ["GF000261"]}, "조건": { "구분": "고르기" }, @@ -933,7 +933,7 @@ "이름": "측구터파기 토사 인력·장비 비율", "기준": "", "출처": "산림품셈 9-12-1", - "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": ["GF000098", "GF000099"]}, + "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": ["GF000098", "GF000099", "GF000264"]}, "조건": { "구분": "고르기" }, @@ -967,7 +967,7 @@ "이름": "구조물터파기 육상토사 인력·장비 비율", "기준": "", "출처": "산림품셈 9-13-1", - "용도": {"공종": "육상토사", "대상": ["작업량 조건"], "로직키": ["GF000100", "GF000101", "GF000102", "GF000103", "GF000104", "GF000105"]}, + "용도": {"공종": "육상토사", "대상": ["작업량 조건"], "로직키": ["GF000100", "GF000101", "GF000102", "GF000103", "GF000104", "GF000105", "GF000276"]}, "조건": { "구분": "고르기" }, diff --git a/resources/master_data/계수_산림품셈_13장_구조물.json b/resources/master_data/계수_산림품셈_13장_구조물.json index 0d60edf7e..fbda7f3f3 100644 --- a/resources/master_data/계수_산림품셈_13장_구조물.json +++ b/resources/master_data/계수_산림품셈_13장_구조물.json @@ -100,7 +100,7 @@ "이름": "밑돌 및 천단 돌쌓기 적용 조건", "기준": "", "출처": "산림품셈 13-4-6 주③", - "용도": {"공종": "밑돌 및 천단 돌쌓기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "밑돌 및 천단 돌쌓기", "대상": ["작업량 조건"], "로직키": ["GF000324"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -245,7 +245,7 @@ "이름": "말뚝박기공 할증 · 감 계수", "기준": "", "출처": "산림품셈 13-10-2 머리 글 · 1 주①②③④ · 2 주①②③⑤ · 3 주①②④⑤⑧", - "용도": {"공종": "나무 말뚝박기", "대상": ["작업량 조건", "할증"], "로직키": []}, + "용도": {"공종": "나무 말뚝박기", "대상": ["작업량 조건", "할증"], "로직키": ["GF000325", "GF000326", "GF000327"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -274,7 +274,7 @@ "이름": "원형 돌망태 주 속 수", "기준": "", "출처": "산림품셈 13-11-1 주④⑤", - "용도": {"공종": "원형", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "원형", "대상": ["작업량 조건"], "로직키": ["GF000328"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ @@ -290,7 +290,7 @@ "이름": "타원형 돌망태 주 속 수", "기준": "", "출처": "산림품셈 13-11-2 주④⑤", - "용도": {"공종": "타원형", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "타원형", "대상": ["작업량 조건"], "로직키": ["GF000329"]}, "조건": { "구분": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "단위": "글" }, "줄": [ diff --git a/resources/master_data/로직_건설품셈_01장_도로포장공사.json b/resources/master_data/로직_건설품셈_01장_도로포장공사.json index 9ee10ba48..667764c3b 100644 --- a/resources/master_data/로직_건설품셈_01장_도로포장공사.json +++ b/resources/master_data/로직_건설품셈_01장_도로포장공사.json @@ -1693,7 +1693,14 @@ "비목": "노무비" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비(스크리드 등)", + "식": "((찾기(QC000517, 형식=형식, 두께=두께).포장공 / 시공량) * LB000019 + (찾기(QC000517, 형식=형식, 두께=두께).보통인부 / 시공량) * LB000002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-6-2 주⑥" + } + ], "끝수": null }, { @@ -2176,7 +2183,14 @@ "수량": "찾기(QC000524, 형식=형식).플레이트콤팩터 * 8 / 시공량" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비(절단기 등)", + "식": "((찾기(QC000524, 형식=형식).포장공 / 시공량) * LB000019 + ((찾기(QC000524, 형식=형식).특별인부 - 만약(정밀절단 == '아님', 찾기(QC000583, 구분='블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.').값, 0)) / 시공량) * LB000003 + (찾기(QC000524, 형식=형식).보통인부 / 시공량) * LB000002) * 만약(정밀절단 == '아님', 찾기(QC000583, 구분='공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우').값, 찾기(QC000583, 구분='공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기) 시공').값) / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-7-1 주⑤" + } + ], "끝수": null }, { @@ -2265,7 +2279,14 @@ "수량": "찾기(QC000526, 형식=형식).플레이트콤팩터 * 8 / 시공량" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비(절단기 등)", + "식": "((찾기(QC000526, 형식=형식).포장공 / 시공량) * LB000019 + ((찾기(QC000526, 형식=형식).특별인부 - 만약(정밀절단 == '아님', 찾기(QC000584, 구분='블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.').값, 0)) / 시공량) * LB000003 + (찾기(QC000526, 형식=형식).보통인부 / 시공량) * LB000002) * 만약(정밀절단 == '아님', 찾기(QC000584, 구분='공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우').값, 찾기(QC000584, 구분='공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기) 시공').값) / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-7-2 주⑤" + } + ], "끝수": null }, { @@ -2729,7 +2750,14 @@ "출처": "건설품셈 토목 1-8-2 주④" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비(드릴, 발전기 등)", + "식": "((찾기(QC000532, 형식=형식).특별인부 / 시공량) * LB000003 + (찾기(QC000532, 형식=형식).보통인부 / 시공량) * LB000002 + 만약(추가표지판 == '없음', 0, (찾기(QC000533, 표지판설치규격_개소당=추가표지판).특별인부 * LB000003 + 찾기(QC000533, 표지판설치규격_개소당=추가표지판).보통인부 * LB000002) * 추가개수)) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-8-2 주⑥" + } + ], "끝수": null }, { @@ -3148,8 +3176,21 @@ "소유": "공용", "비고": "표지병 등으로 능률 저하 시 시공량 10%까지 감(비고) — 설계자 입력(아니면 0) · 해석: 감은 시공량에 곱함 · 해석: 프로판가스 = 자재품목 프로판가스(일반용) · 공시에 없는 재료(프라이머) = 재료_자체 · 트럭 4.5ton = 용해기 운반(트럭 작업 표) · 사전 청소 별도 · 페인트·유리알 재료량 별도 · 막힘: 트럭 줄 빠짐 — 기계 요소에 트럭(화물) 없음(덤프트럭만)", "입력": [ - { "이름": "도색", "고르기": ["실선", "파선", "횡단보도, 주차장", "문자, 기호"] }, - { "이름": "표지병감", "단위": "%", "범위": [0, 10], "출처": "건설품셈 토목 1-8-9 비고" } + { + "이름": "도색", + "고르기": ["실선", "파선", "횡단보도, 주차장", "문자, 기호"] + }, + { + "이름": "표지병감", + "단위": "%", + "범위": [0, 10], + "출처": "건설품셈 토목 1-8-9 비고" + }, + { + "이름": "주재료비", + "단위": "원/㎡", + "출처": "건설품셈 토목 1-8-9 주⑥" + } ], "중간": [ { "이름": "시공량", "식": "찾기(QC000544, 도색=도색).시공량 * (1 - 표지병감 / 100)", "출처": "건설품셈 토목 1-8-9 비고" } @@ -3173,7 +3214,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신구접착및방청제 LDS-MP"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "융착식 프라이머"}, "이름": "프라이머(융착식 도료)", "단위": "kg", "수량": "찾기(QC000546).프라이머 / 10", @@ -3190,7 +3231,20 @@ "출처": "건설품셈 토목 1-8-9 재료(10㎡당)" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "((찾기(QC000544, 도색=도색).특별인부 / 시공량) * LB000003 + (찾기(QC000544, 도색=도색).보통인부 / 시공량) * LB000002) * 찾기(QC000601, 구분='공구손료 및 경장비(라인마커, 용해기 등)의 기계경비').값 / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-8-9 주⑤" + }, + { + "이름": "잡재료 및 소모재료", + "식": "주재료비 * 찾기(QC000602, 구분='잡재료 및 소모재료').값 / 100", + "비목": "재료비", + "출처": "건설품셈 토목 1-8-9 주⑥" + } + ], "끝수": null }, { @@ -3578,7 +3632,14 @@ "비목": "노무비" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비(핸드믹서 등)", + "식": "((찾기(QC000553, 형식=형식).도장공 / 시공량) * LB000029 + (찾기(QC000553, 형식=형식).보통인부 / 시공량) * LB000002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-8-13 주⑤" + } + ], "끝수": null }, { @@ -3587,8 +3648,18 @@ "결과단위": "원/개소", "출처": "건설품셈 토목 1-8-14", "소유": "공용", - "비고": "형식 A-Type = 산재 구간 · B-Type = 밀집 구간(적용기준 표) · 요율 표(A-Type 2% · B-Type 4%)는 무엇에 곱하는지 원문 글 없음 — 계산에 안 넣음 · 표시못 재료 원문 표에 없음 · 막힘: 트럭 줄 빠짐 — 기계 요소에 트럭(화물) 없음(덤프트럭만)", - "입력": [{ "이름": "형식", "고르기": ["A-Type", "B-Type"] }], + "비고": "형식 A-Type = 산재 구간 · B-Type = 밀집 구간(적용기준 표) · 요율 표(A-Type 2% · B-Type 4%) = 인력품에 곱함(주⑤) · 잡재료 = 주재료비 2%(주⑥) — 주재료비는 설계자 입력 · 표시못 재료 원문 표에 없음 · 막힘: 트럭 줄 빠짐 — 기계 요소에 트럭(화물) 없음(덤프트럭만)", + "입력": [ + { + "이름": "형식", + "고르기": ["A-Type", "B-Type"] + }, + { + "이름": "주재료비", + "단위": "원/개소", + "출처": "건설품셈 토목 1-8-14 주⑥" + } + ], "중간": [{ "이름": "시공량", "식": "찾기(QC000555, 형식=형식).시공량" }], "호표": [ { @@ -3608,7 +3679,20 @@ "비목": "노무비" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비(전동드릴, 발전기 등)", + "식": "((찾기(QC000555, 형식=형식).특별인부 / 시공량) * LB000003 + (찾기(QC000555, 형식=형식).보통인부 / 시공량) * LB000002) * 찾기(QC000557, 구분=형식).요율 / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-8-14 주⑤" + }, + { + "이름": "잡재료(채움모르타르 등)", + "식": "주재료비 * 2 / 100", + "비목": "재료비", + "출처": "건설품셈 토목 1-8-14 주⑥" + } + ], "끝수": null }, { @@ -3932,7 +4016,14 @@ "수량": "찾기(QC000562, 형식=형식, 규격_아래폭_높이mm=규격_아래폭_높이mm, 구간=구간).굴착기 * 8 / 시공량" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 경장비(절단기 등)", + "식": "((찾기(QC000562, 형식=형식, 규격_아래폭_높이mm=규격_아래폭_높이mm, 구간=구간).특별인부 / 시공량) * LB000003 + (찾기(QC000562, 형식=형식, 규격_아래폭_높이mm=규격_아래폭_높이mm, 구간=구간).보통인부 / 시공량) * LB000002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 토목 1-9-2 주⑥" + } + ], "끝수": null }, { @@ -4287,7 +4378,7 @@ }, { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "철선", "검색어": "보통철선 #8 서울"}, + "요소": {"구분": "철근·강재", "상세구분": "철선", "검색어": "보통철선(결속선) 서울 m/kg"}, "이름": "결속선", "단위": "m", "수량": "찾기(QC000569, 구분='결속선').수량", diff --git a/resources/master_data/로직_건설품셈_01장_배관공사.json b/resources/master_data/로직_건설품셈_01장_배관공사.json index c69f5cc76..82837bed4 100644 --- a/resources/master_data/로직_건설품셈_01장_배관공사.json +++ b/resources/master_data/로직_건설품셈_01장_배관공사.json @@ -116,7 +116,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "FLUX"}, "이름": "플럭스", "단위": "㎏", "수량": "찾기(QC001401, '규격(㎜)'=규격).플럭스 / 1000", @@ -194,7 +194,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 스테인레스강용"}, "이름": "TIG 용접봉", "규격": "스테인리스", "단위": "㎏", @@ -204,7 +204,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "알곤"}, "이름": "아르곤가스", "단위": "ℓ", "수량": "찾기(QC001404, '규격(㎜)'=규격).Argon", diff --git a/resources/master_data/로직_건설품셈_01장_철골공사.json b/resources/master_data/로직_건설품셈_01장_철골공사.json index 2299768dd..a362f023e 100644 --- a/resources/master_data/로직_건설품셈_01장_철골공사.json +++ b/resources/master_data/로직_건설품셈_01장_철골공사.json @@ -86,7 +86,7 @@ }, { "종류": "재료", - "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "세파볼트 D형"}, + "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "육각볼트"}, "이름": "서비스볼트", "단위": "본", "수량": "만약(부재 == 'H형강부재', 찾기(QC001188, 재료='서비스볼트').H형강부재, 찾기(QC001188, 재료='서비스볼트').전용접부재)", @@ -185,7 +185,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 탄산가스용접용"}, "이름": "CO_2 와이어", "단위": "㎏", "수량": "만약(용접방식 == '반자동용접', 환산용접길이 * 찾기(QC001190, 재료='CO_2 와이어').반자동용접, 0)", @@ -194,7 +194,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "탄산가스"}, "이름": "탄산가스", "단위": "㎏", "수량": "만약(용접방식 == '반자동용접', 환산용접길이 * 찾기(QC001190, 재료='탄산가스').반자동용접, 0)", @@ -332,7 +332,7 @@ }, { "종류": "재료", - "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "세파볼트 D형"}, + "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "육각볼트"}, "이름": "보통볼트", "단위": "본", "수량": "찾기(QC001192, 구분='보통볼트', 규격='가조임').수량", @@ -648,7 +648,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 탄산가스용접용"}, "이름": "CO_2 와이어", "단위": "㎏", "수량": "찾기(QC001197, 구분='CO_2 와이어').수량", @@ -657,7 +657,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "탄산가스"}, "이름": "탄산가스", "단위": "㎏", "수량": "찾기(QC001197, 구분='탄산가스').수량", diff --git a/resources/master_data/로직_건설품셈_02장_가설공사.json b/resources/master_data/로직_건설품셈_02장_가설공사.json index f158bc4a6..d3938f990 100644 --- a/resources/master_data/로직_건설품셈_02장_가설공사.json +++ b/resources/master_data/로직_건설품셈_02장_가설공사.json @@ -63,7 +63,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T챤넬(K-SPAN) 4.5×610×2440"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "외부판넬 (벽)"}, "이름": "외부PANEL(벽) 1,200×2,400㎜", "단위": "매", "수량": "찾기(QC000012, 구분='외부PANEL(벽)', 종류=주자재종류).수량 * 손율 / 100", @@ -71,7 +71,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T챤넬(K-SPAN) 4.5×610×2440"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "외부판넬 (창문)"}, "이름": "외부PANEL (창문) 1,200×2,400㎜", "단위": "매", "수량": "찾기(QC000012, 구분='외부PANEL (창문)', 종류=주자재종류).수량 * 손율 / 100", @@ -79,7 +79,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T챤넬(K-SPAN) 4.5×610×2440"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "외부판넬 (철재문)"}, "이름": "외부PANEL (철재문) 1,200×2,400㎜", "단위": "매", "수량": "찾기(QC000012, 구분='외부PANEL (철재문)', 종류=주자재종류).수량 * 손율 / 100", @@ -87,7 +87,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T챤넬(K-SPAN) 4.5×610×2440"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "내부판넬 (벽)"}, "이름": "내부PANEL(벽) 1,200×2,400㎜", "단위": "매", "수량": "만약(종류 == '사무실', 찾기(QC000012, 구분='내부PANEL(벽)', 종류=주자재종류).수량 * 손율 / 100, 0)", @@ -111,7 +111,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T챤넬(K-SPAN) 4.5×610×2440"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "출입구채양 (CANOPY)"}, "이름": "CANOPY(출입구채양) 600×1,200㎜", "단위": "매", "수량": "찾기(QC000012, 구분='CANOPY(출입구채양)', 종류=주자재종류).수량 * 손율 / 100", @@ -119,7 +119,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T챤넬(K-SPAN) 4.5×610×2440"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "박공판넬"}, "이름": "박공PANEL", "단위": "매", "수량": "찾기(QC000012, 구분='박공PANEL', 종류=주자재종류).수량 * 손율 / 100", @@ -143,7 +143,7 @@ }, { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "형강", "검색어": "트러스 (TRUSS) SPAN:L=7.2"}, + "요소": {"구분": "철근·강재", "상세구분": "형강", "검색어": "중도리 (PURLIN)"}, "이름": "중도리(PURIN) 두께:2.0이상", "단위": "개", "수량": "찾기(QC000012, 구분='중도리(PURIN)', 종류=주자재종류).수량 * 손율 / 100", @@ -151,7 +151,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T챤넬(K-SPAN) 4.5×610×2440"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "천정판 (CEILING)"}, "이름": "천장판 미장합판+50㎜ GLASSWOOL", "단위": "매", "수량": "만약(종류 == '사무실', 찾기(QC000012, 구분='천장판', 종류=주자재종류).수량 * 손율 / 100, 0)", @@ -159,7 +159,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "처마후레싱 C/S"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "T-BAR L=1200mm"}, "이름": "T-BAR", "단위": "m", "수량": "만약(종류 == '사무실', 찾기(QC000012, 구분='T-BAR', 종류=주자재종류).수량 * 손율 / 100, 0)", @@ -213,7 +213,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "가설건축물", "검색어": "콘테이너(사무실) 12.0*3.0*2.6m"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "가설건축물", "검색어": "콘테이너(사무실) 3.0*3.0*2.6m"}, "이름": "콘테이너형 가설건축물 3.0x3.0m", "단위": "동", "수량": "만약(규모 == '3.0x3.0m', 손율 / 100, 0)", @@ -221,7 +221,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "가설건축물", "검색어": "콘테이너(사무실) 12.0*3.0*2.6m"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "가설건축물", "검색어": "콘테이너(사무실) 6.0*3.0*2.6m"}, "이름": "콘테이너형 가설건축물 3.0x6.0m", "단위": "동", "수량": "만약(규모 == '3.0x6.0m', 손율 / 100, 0)", @@ -229,7 +229,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "가설건축물", "검색어": "콘테이너(사무실) 12.0*3.0*2.6m"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "가설건축물", "검색어": "콘테이너(사무실) 9.0*3.0*2.6m"}, "이름": "콘테이너형 가설건축물 3.0x9.0m", "단위": "동", "수량": "만약(규모 == '3.0x9.0m', 손율 / 100, 0)", @@ -2047,7 +2047,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "수평틀(조립식틀비계)"}, "이름": "수평띠장 L1829", "단위": "개", "수량": "찾기(QC000063, 구분='수평띠장', 규격='L1829').수량 * 찾기(QC000016, 공기=공기, 재료='강관, 비계기본틀, 비계장선틀, 가새').손율 / 100", @@ -2063,7 +2063,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전난간대(조립식틀비계) W1219"}, "이름": "손잡이 L1219", "단위": "개", "수량": "찾기(QC000063, 구분='손잡이', 규격='L1219').수량 * 찾기(QC000016, 공기=공기, 재료='강관, 비계기본틀, 비계장선틀, 가새').손율 / 100", @@ -2071,7 +2071,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전난간대(조립식틀비계) W1829"}, "이름": "손잡이 L1829", "단위": "개", "수량": "찾기(QC000063, 구분='손잡이', 규격='L1829').수량 * 찾기(QC000016, 공기=공기, 재료='강관, 비계기본틀, 비계장선틀, 가새').손율 / 100", @@ -2079,7 +2079,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "바퀴"}, "이름": "바퀴", "단위": "개", "수량": "찾기(QC000063, 구분='바퀴').수량 * 찾기(QC000016, 공기=공기, 재료='받침철물 조절받침철물 비계안전발판').손율 / 100", @@ -2087,7 +2087,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "쟈키"}, "이름": "자키", "단위": "개", "수량": "찾기(QC000063, 구분='자키').수량 * 찾기(QC000016, 공기=공기, 재료='받침철물 조절받침철물 비계안전발판').손율 / 100", @@ -2372,7 +2372,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "강관비계브라켓"}, "이름": "브라켓", "단위": "개", "수량": "찾기(QC000071, 구분='브라켓').수량 * 찾기(QC000016, 공기=공기, 재료='조임철물 이음철물').손율 / 100", @@ -2396,7 +2396,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "낙하물방지망"}, "이름": "그물망", "단위": "㎡", "수량": "찾기(QC000071, 구분='그물망').수량", @@ -2483,7 +2483,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "강관비계브라켓"}, "이름": "브라켓", "단위": "개", "수량": "찾기(QC000074, 구분='브라켓').수량 * 찾기(QC000016, 공기=공기, 재료='조임철물 이음철물').손율 / 100", @@ -2491,7 +2491,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "강관비계 Φ48.6 서울"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "낙방사다리"}, "이름": "사다리 폭 30㎝×길이 3m 기준", "단위": "m", "수량": "찾기(QC000074, 구분='사다리', 규격='폭 30㎝×길이 3m 기준').수량 * 찾기(QC000016, 공기=공기, 재료='강관, 비계기본틀, 비계장선틀, 가새').손율 / 100", @@ -2515,7 +2515,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "낙하물방지망"}, "이름": "그물망", "단위": "㎡", "수량": "찾기(QC000074, 구분='그물망').수량", @@ -2916,7 +2916,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "안전시설", "상세구분": "낙석방지·휀스", "검색어": "PE안전망"}, "이름": "그물망", "단위": "㎡", "수량": "찾기(QC000085, 구분='그물망').수량 / 10", @@ -2967,7 +2967,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "낙하물방지망"}, "이름": "보호망", "단위": "㎡", "수량": "찾기(QC000088, 구분='보호망').수량", @@ -3002,7 +3002,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "낙하물방지망"}, "이름": "보호망", "단위": "㎡", "수량": "찾기(QC000091, 구분='보호망').수량", @@ -3947,7 +3947,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "PVC천막지 T-210"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "P.E 분진망"}, "이름": "방진망", "단위": "㎡", "수량": "찾기(QC000133, 구분='방진망').수량", @@ -4570,7 +4570,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "부직포", "검색어": "토목용부직포"}, "이름": "부직포", "단위": "㎡", "수량": "만약(작업 == '부직포 깔기', 찾기(QC000144, 구분=작업, 자재='부직포').수량, 0)", @@ -4586,7 +4586,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "그리스(일반범용) CROWN"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "풀"}, "이름": "풀", "단위": "kg", "수량": "만약(작업 == '보양지 붙이기', 찾기(QC000144, 구분=작업, 자재='풀').수량, 0)", diff --git a/resources/master_data/로직_건설품셈_02장_덕트공사.json b/resources/master_data/로직_건설품셈_02장_덕트공사.json index a32b5eba7..d4265d6f2 100644 --- a/resources/master_data/로직_건설품셈_02장_덕트공사.json +++ b/resources/master_data/로직_건설품셈_02장_덕트공사.json @@ -420,40 +420,31 @@ "결과단위": "원/개", "출처": "건설품셈 기계설비 2-2-2", "소유": "공용", - "비고": "후드는 투영면적 ㎡당 — 설계 수량을 ㎡ 로 · 「원문에 없는 조합: 구분=그릴(도어그릴) · 종류=흡입구 장변길이 · 규격=투영면적 ㎡당 / 구분=그릴(도어그릴) · 종류=300㎜×300㎜ 이하 · 규격=1m미만 / 구분=그릴(도어그릴) · 종류=300㎜×300㎜ 이하 · 규격=1m이상 / 구분=그릴(도어그릴) · 종류=300㎜×300㎜ 이하 · 규격=투영면적 ㎡당 / 구분=그릴(도어그릴) · 종류=일반 · 규격=1m미만 외 40」", + "비고": "후드는 투영면적 ㎡당 — 입력 「투영면적」(㎡)을 곱함(후드 외 구분은 1) · 「원문에 없는 조합: 구분=그릴(도어그릴) · 종류=흡입구 장변길이 · 규격=투영면적 ㎡당 / 구분=그릴(도어그릴) · 종류=300㎜×300㎜ 이하 · 규격=1m미만 / 구분=그릴(도어그릴) · 종류=300㎜×300㎜ 이하 · 규격=1m이상 / 구분=그릴(도어그릴) · 종류=300㎜×300㎜ 이하 · 규격=투영면적 ㎡당 / 구분=그릴(도어그릴) · 종류=일반 · 규격=1m미만 외 40」", "입력": [ { "이름": "구분", - "고르기": [ - "그릴(도어그릴)", - "점검구", - "후드" - ] + "고르기": ["그릴(도어그릴)", "점검구", "후드"] }, { "이름": "종류", - "고르기": [ - "흡입구 장변길이", - "300㎜×300㎜ 이하", - "일반", - "2중", - "그리스필터", - "2중 그리스필터" - ] + "고르기": ["흡입구 장변길이", "300㎜×300㎜ 이하", "일반", "2중", "그리스필터", "2중 그리스필터"] }, { "이름": "규격", - "고르기": [ - "1m미만", - "1m이상", - "투영면적 ㎡당" - ] + "고르기": ["1m미만", "1m이상", "투영면적 ㎡당"] + }, + { + "이름": "투영면적", + "단위": "㎡", + "출처": "건설품셈 기계설비 2-2-2 후드 「투영면적 ㎡당」", + "비고": "구분 = 후드일 때만 곱함 — 그 밖의 구분은 1 을 넣음" } ], "중간": [ { "이름": "덕트공", - "식": "찾기(QC001424, 구분=구분, 종류=종류, 규격=규격).덕트공" + "식": "찾기(QC001424, 구분=구분, 종류=종류, 규격=규격).덕트공 * 만약(구분 == '후드', 투영면적, 1)" } ], "호표": [ @@ -666,7 +657,7 @@ }, { "종류": "재료", - "요소": {"구분": "볼트·앵커·철물", "상세구분": "앵커", "검색어": "L형앵커볼트 5/8\""}, + "요소": {"구분": "볼트·앵커·철물", "상세구분": "앵커", "검색어": "셋트앵커 1/2"}, "이름": "앵커", "규격": "1/2〃", "단위": "개", @@ -676,7 +667,7 @@ }, { "종류": "재료", - "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "핀볼트 M12"}, + "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "브라인드리벳"}, "이름": "블라인드리벳", "단위": "개", "수량": "찾기(QC001430, 구분='블라인드리벳').수량", @@ -685,7 +676,7 @@ }, { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "철근", "검색어": "철근부식방지재 MT-3"}, + "요소": {"구분": "철근·강재", "상세구분": "철근", "검색어": "이형철근 D=22mm"}, "이름": "철물", "규격": "D22 철근", "단위": "㎏", diff --git a/resources/master_data/로직_건설품셈_02장_조적공사.json b/resources/master_data/로직_건설품셈_02장_조적공사.json index cdb28e7f6..9680707c8 100644 --- a/resources/master_data/로직_건설품셈_02장_조적공사.json +++ b/resources/master_data/로직_건설품셈_02장_조적공사.json @@ -122,7 +122,7 @@ }, { "종류": "재료", - "요소": {"구분": "콘크리트제품", "상세구분": "경계석·블록", "검색어": "주차라인블록 1000X300X150"}, + "요소": {"구분": "콘크리트제품", "상세구분": "경계석·블록", "검색어": "시멘트벽돌"}, "이름": "시멘트벽돌", "단위": "매", "수량": "찾기(QC001211, 벽두께=벽두께).'벽돌(19×9×5.7㎝)'", diff --git a/resources/master_data/로직_건설품셈_02장_토목.json b/resources/master_data/로직_건설품셈_02장_토목.json index 936044239..04a672a2c 100644 --- a/resources/master_data/로직_건설품셈_02장_토목.json +++ b/resources/master_data/로직_건설품셈_02장_토목.json @@ -2932,7 +2932,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신구접착및방청제 LDS-MP"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "융착식 프라이머"}, "이름": "프라이머", "단위": "kg", "수량": "찾기(QC001944, 구분='프라이머').수량 / 10", @@ -2940,7 +2940,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "프로판가스 일반용"}, "이름": "프로판가스", "단위": "kg", "수량": "찾기(QC001944, 구분='프로판가스').수량 / 10", @@ -3410,6 +3410,16 @@ "이름": "물탱크(살수차) 16,000ℓ", "단위": "시간", "수량": "찾기(QC001949).'살수차(16,000ℓ)' * 8 / 시공량" + }, + { + "종류": "재료", + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "팁(날) 노면파쇄기용"}, + "이름": "팁(날)", + "단위": "개", + "수량": "0.7 / 100", + "비목": "재료비", + "출처": "건설품셈 유지관리 2-1-19 주⑤", + "비고": "원문 100㎡당 0.7개 → ㎡당 0.007개" } ], "덧줄": [], diff --git a/resources/master_data/로직_건설품셈_03장_건축.json b/resources/master_data/로직_건설품셈_03장_건축.json new file mode 100644 index 000000000..35c7a8ee7 --- /dev/null +++ b/resources/master_data/로직_건설품셈_03장_건축.json @@ -0,0 +1,652 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "유지관리", + "차례": 55, + "판": "2026", + "줄": [ + { + "키": "GC001104", + "원문번호": "3-1-1", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "콘크리트구조물 헐기(인력)", + "결과단위": "원/㎥", + "출처": "건설품셈 유지관리 3-1-1", + "소유": "공용", + "비고": "소형브레이커(전기식) 기준(주①) · 헐기·발생재 정리 포함(주②) · 장애물 제거 별도(주③) · 잡재료(치즐 등) = 인력품의 1%(주④) · 막힘: 소형브레이커(전기식) 1.5㎾ — 5220-0015 손료 계수 빈칸 — 줄 뺌 · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "철근유무": "무근" }, + "입력": [{ "이름": "철근유무", "설명": "콘크리트 종류", "고르기": ["무근", "철근"], "출처": "건설품셈 유지관리 3-1-1" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC002018, 철근유무=철근유무).시공량" }], + "호표": [ + { "종류": "인력", "요소": "LB000015", "이름": "착암공", "단위": "인", "수량": "찾기(QC002018, 철근유무=철근유무).착암공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002018, 철근유무=철근유무).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "잡재료(치즐 등)", "식": "노무비 * 1 / 100", "비목": "재료비", "출처": "건설품셈 유지관리 3-1-1" }], + "끝수": null + }, + { + "키": "GC001105", + "원문번호": "3-1-2", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "콘크리트구조물 헐기(기계)", + "결과단위": "원/㎥", + "출처": "건설품셈 유지관리 3-1-2", + "소유": "공용", + "비고": "굴착기+압쇄기 철근콘크리트 해체(주①) · 높이 10m 이하(주③) · 안전시설·폐기물 상차·운반·처리 별도(주④) · 대형브레이커 필요 시 공통 8-2-13 별도(주⑥) · 공구손료·경장비 = 인력품의 4%(주⑦) · 장애물 제거 시 산소 135L · 아세틸렌 0.05㎏/㎥(주⑧) · 해석: 압쇄기 = 굴착기 부수물(8-3-1 (0250) 압쇄기 1.0㎥) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "장애물": "미제거", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "장애물", "설명": "장애물(철근 · 파이프 등) 제거 여부", "고르기": ["미제거", "제거"], "출처": "건설품셈 유지관리 3-1-2" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "시공량", "식": "찾기(QC002019, 장애물=장애물).시공량" }], + "호표": [ + { "종류": "인력", "요소": "LB000012", "이름": "용접공", "단위": "인", "수량": "만약(장애물 == '제거', 찾기(QC002019, 장애물=장애물).용접공 / 시공량, 0)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QC002019, 장애물=장애물).특별인부 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002019, 장애물=장애물).보통인부 / 시공량", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000270, 기계='0201-0100', 집게='0250-0100', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도)+압쇄기 1.0㎥", + "단위": "시간", + "수량": "찾기(QC002019, 장애물=장애물).'굴착기+압쇄기(1.0㎥)' * 8 / 시공량" + }, + { + "종류": "로직", + "요소": "로직(GC000267, 기계='0201-0060', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.6㎥", + "단위": "시간", + "수량": "찾기(QC002019, 장애물=장애물).'굴착기(0.6㎥)' * 8 / 시공량" + }, + { + "종류": "재료", + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "산소 6000ℓ/병" }, + "이름": "산소(대기압상태기준)", + "단위": "ℓ", + "수량": "만약(장애물 == '제거', 찾기(QC002020, 구분='산소(대기압상태기준)').수량, 0)", + "비목": "재료비", + "출처": "건설품셈 유지관리 3-1-2" + }, + { + "종류": "재료", + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "이름": "아세틸렌", + "단위": "kg", + "수량": "만약(장애물 == '제거', 찾기(QC002020, 구분='아세틸렌').수량, 0)", + "비목": "재료비", + "출처": "건설품셈 유지관리 3-1-2" + } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 4 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-1-2" }], + "끝수": null + }, + { + "키": "GC001106", + "원문번호": "3-1-3", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "철골재 철거(인력)", + "결과단위": "원/ton", + "출처": "건설품셈 유지관리 3-1-3", + "소유": "공용", + "비고": "산소용접기 기준(주①) · 철거·발생재 정리 포함(주②) · 안전시설·폐기물 별도(주③) · 재료 ton당 산소 0.7병 · 아세틸렌 2.5㎏ 또는 LPG 2.0㎏ 중 하나(주④ ※) · 해석: 산소는 두 경우 모두 씀 · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "가스": "아세틸렌" }, + "입력": [{ "이름": "가스", "설명": "절단 가스(아세틸렌 또는 LPG 중 하나)", "고르기": ["아세틸렌", "LPG"], "출처": "건설품셈 유지관리 3-1-3" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC002021).시공량" }], + "호표": [ + { "종류": "인력", "요소": "LB000012", "이름": "용접공", "단위": "인", "수량": "찾기(QC002021).용접공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002021).보통인부 / 시공량", "비목": "노무비" }, + { + "종류": "재료", + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "산소 6㎥(40ℓ용기)" }, + "이름": "산소", + "단위": "병", + "수량": "찾기(QC002022, 구분='산소').수량", + "비목": "재료비", + "출처": "건설품셈 유지관리 3-1-3" + }, + { + "종류": "재료", + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "이름": "아세틸렌", + "단위": "kg", + "수량": "만약(가스 == '아세틸렌', 찾기(QC002022, 구분='아세틸렌').수량, 0)", + "비목": "재료비", + "출처": "건설품셈 유지관리 3-1-3" + }, + { + "종류": "재료", + "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "LPG 가스" }, + "이름": "LPG", + "단위": "kg", + "수량": "만약(가스 == 'LPG', 찾기(QC002022, 구분='LPG').수량, 0)", + "비목": "재료비", + "출처": "건설품셈 유지관리 3-1-3" + } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001107", + "원문번호": "3-1-4", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "철골재 철거(기계)", + "결과단위": "원/ton", + "출처": "건설품셈 유지관리 3-1-4", + "소유": "공용", + "비고": "굴착기+빔커터기 철골 해체(주①) · 높이 10m 이하 지상 철거(주③) · 안전시설·폐기물 별도(주④) · 크레인 규격은 작업여건 따라 설계자가 고름(주⑤) · 공구손료·경장비 = 인력품의 4%(주⑦) · 막힘: 빔커터기 기계 요소 없음 — 굴착기+빔커터기 줄은 굴착기(1.0㎥) 경비만 · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "크레인": "2104-0025", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { + "이름": "크레인", + "설명": "크레인 기계 코드(규격 설계자 결정)", + "고르기": [ + "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-0005", + "2105-0010", + "2105-0015", + "2105-0018" + ], + "출처": "건설품셈 유지관리 3-1-4" + }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "시공량", "식": "찾기(QC002023).시공량" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QC002023).특별인부 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002023).보통인부 / 시공량", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000267, 기계='0201-0100', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도)+빔커터기 1.0㎥", + "단위": "시간", + "수량": "찾기(QC002023).'굴착기+빔커터기(1.0㎥)' * 8 / 시공량" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0100', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 1.0㎥", "단위": "시간", "수량": "찾기(QC002023).'굴착기(1.0㎥)' * 8 / 시공량" }, + { "종류": "로직", "요소": "로직(GC000268, 기계=크레인, 지역=지역)", "이름": "크레인", "단위": "시간", "수량": "찾기(QC002023).크레인 * 8 / 시공량" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 4 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-1-4" }], + "끝수": null + }, + { + "키": "GC001108", + "원문번호": "3-1-5", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "석축 헐기(인력)", + "결과단위": "원/㎡(절석 쌓기는 원/㎥)", + "출처": "건설품셈 유지관리 3-1-5", + "소유": "공용", + "비고": "기준높이 3.6m(주①) · 재사용·제자리 고르기 별도(주②) · 장애물 제거·공구손료 포함(주③) · 잡재료 = 인력품의 5% 이내(주④ — 설계자 입력) · 절석(마름돌) 쌓기만 ㎥당 · 할석공도 절석 쌓기만", + "시험입력": { "공종": "메쌓기 뒷길이 45∼60㎝", "잡재료율": 5 }, + "입력": [ + { "이름": "공종", "설명": "석축 종류", "고르기": ["메쌓기 뒷길이 45∼60㎝", "메쌓기 뒷길이 60∼90㎝", "찰쌓기", "절석(마름돌) 쌓기"], "출처": "건설품셈 유지관리 3-1-5" }, + { "이름": "잡재료율", "설명": "잡재료(인력품 대비 · 5% 이내)", "단위": "%", "범위": [0, 5], "출처": "건설품셈 유지관리 3-1-5" } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "만약(공종 == '절석(마름돌) 쌓기', 찾기(QC002024, 공종=공종).할석공, 0)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002024, 공종=공종).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "잡재료", "식": "노무비 * 잡재료율 / 100", "비목": "재료비", "출처": "건설품셈 유지관리 3-1-5" }], + "끝수": null + }, + { + "키": "GC001109", + "원문번호": "3-2-1", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "금속기와 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-1", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 지붕재·후레싱 포함 · 공구손료·경장비 = 인력품의 3%", + "시험입력": {}, + "입력": [], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000036", "이름": "지붕잇기공", "단위": "인", "수량": "찾기(QC002025).지붕잇기공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002025).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 3 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-2-1" }], + "끝수": null + }, + { + "키": "GC001110", + "원문번호": "3-2-2", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "흡음텍스 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-2", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도", + "시험입력": {}, + "입력": [], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000030", "이름": "내장공", "단위": "인", "수량": "찾기(QC002026).내장공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002026).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001111", + "원문번호": "3-2-3", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "경량천장철골틀 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-3", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 천장틀·달대·행거 포함 · 공구손료·경장비 = 인력품의 2%", + "시험입력": {}, + "입력": [], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000030", "이름": "내장공", "단위": "인", "수량": "찾기(QC002027).내장공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002027).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-2-3" }], + "끝수": null + }, + { + "키": "GC001112", + "원문번호": "3-2-4", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "조적벽 해체", + "결과단위": "원/㎥", + "출처": "건설품셈 유지관리 3-2-4", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 높이 3.6m 이하 · 고정철물 포함 · 공구손료·경장비 = 인력품의 2%", + "시험입력": {}, + "입력": [], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000021", "이름": "조적공", "단위": "인", "수량": "찾기(QC002028).조적공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002028).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-2-4" }], + "끝수": null + }, + { + "키": "GC001113", + "원문번호": "3-2-5", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "경량벽체철골틀 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-5", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 러너·스터드 포함 · 공구손료·경장비 = 인력품의 2%", + "시험입력": {}, + "입력": [], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000030", "이름": "내장공", "단위": "인", "수량": "찾기(QC002029).내장공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002029).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-2-5" }], + "끝수": null + }, + { + "키": "GC001114", + "원문번호": "3-2-6", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "석고판 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-6", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 공구손료·경장비 = 인력품의 2%", + "시험입력": { "부위": "벽" }, + "입력": [{ "이름": "부위", "설명": "해체 부위", "고르기": ["벽", "천장"], "출처": "건설품셈 유지관리 3-2-6" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000030", "이름": "내장공", "단위": "인", "수량": "찾기(QC002030, 부위=부위).내장공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002030, 부위=부위).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-2-6" }], + "끝수": null + }, + { + "키": "GC001115", + "원문번호": "3-2-7", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "도배 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-7", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 정배지·초배지 포함", + "시험입력": { "부위": "벽" }, + "입력": [{ "이름": "부위", "설명": "해체 부위", "고르기": ["벽", "천장"], "출처": "건설품셈 유지관리 3-2-7" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000031", "이름": "도배공", "단위": "인", "수량": "찾기(QC002031, 부위=부위).도배공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002031, 부위=부위).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001116", + "원문번호": "3-2-8", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "PVC계바닥재 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-8", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 바닥재(시트)", + "시험입력": {}, + "입력": [], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000030", "이름": "내장공", "단위": "인", "수량": "찾기(QC002032).내장공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002032).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001117", + "원문번호": "3-2-9", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "타일 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-9", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 타일·접착제 깨기 포함 · 공구손료·경장비 = 인력품의 6%", + "시험입력": { "공법": "떠붙이기" }, + "입력": [{ "이름": "공법", "설명": "타일 붙임 공법", "고르기": ["떠붙이기", "압착붙이기,접착붙이기"], "출처": "건설품셈 유지관리 3-2-9" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000028", "이름": "타일공", "단위": "인", "수량": "찾기(QC002033, 공법=공법).타일공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002033, 공법=공법).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 6 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-2-9" }], + "끝수": null + }, + { + "키": "GC001118", + "원문번호": "3-2-10", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "기존방수층 및 보호층 철거", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-10", + "소유": "공용", + "비고": "아스팔트 8층 방수 보수용 · 누름 콘크리트 파쇄·방수층 철거·소운반·정리 포함(주①) · 누름 콘크리트 두께 8㎝ 기준(주③) · 소규모(개소당 40㎡ 미만)는 장비 사용기간·품을 40% 범위 안에서 가산(주② — 설계자 입력)", + "시험입력": { "소규모가산": 0, "지역": "전국평균" }, + "입력": [ + { "이름": "소규모가산", "설명": "소규모공사 가산(개소당 40㎡ 미만 · 0 ~ 40)", "단위": "%", "범위": [0, 40], "출처": "건설품셈 유지관리 3-2-10" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000015", "이름": "착암공", "단위": "인", "수량": "찾기(QC002034).착암공 * (1 + 소규모가산 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002034).보통인부 * (1 + 소규모가산 / 100)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000273, 기계='5210-0013')", + "이름": "소형브레이커(공압식) 1.3㎥/min", + "단위": "시간", + "수량": "찾기(QC002034).'소형브레이커(1.3㎥/min)' * (1 + 소규모가산 / 100)" + }, + { + "종류": "로직", + "요소": "로직(GC000268, 기계='5205-0035', 지역=지역)", + "이름": "공기압축기(이동식) 3.5㎥/min", + "단위": "시간", + "수량": "찾기(QC002034).'공기압축기(3.5㎥/min)' * (1 + 소규모가산 / 100)" + } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001119", + "원문번호": "3-2-11", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "기존방수층 제거 및 바탕처리", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-11", + "소유": "공용", + "비고": "재방수용 도막방수층 제거·바탕처리(주①) · 제거·홈메우기·청소·퍼티 포함(주②) · 공구손료·경장비 = 인력품의 6%(주③) · 퍼티·방수테이프 등 재료 별도(주④)", + "시험입력": { "부위": "바닥" }, + "입력": [{ "이름": "부위", "설명": "시공 부위", "고르기": ["바닥", "수직부"], "출처": "건설품셈 유지관리 3-2-11" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000026", "이름": "방수공", "단위": "인", "수량": "찾기(QC002035, 부위=부위).방수공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002035, 부위=부위).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 6 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-2-11" }], + "끝수": null + }, + { + "키": "GC001120", + "원문번호": "3-2-12", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "석면건축자재 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-2-12", + "소유": "공용", + "비고": "내장재 = 천장재·내벽체·간막이 · 외장재 = 슬레이트 지붕 · 뿜칠재 = 철골 내화피복·철재 천장면(주①) · 콘크리트면 뿜칠재는 20% 할증(주②) · 비닐보양·오염제거구역 포함 · 보양막(외장재) 제외(주③) · 1일 6시간 기준(주④) · 기기경비·재료·소모품·가설재 별도(주⑤⑥) · 뿜칠재는 보통인부 없음", + "시험입력": { "부위": "내장재", "뿜칠면": "철골·철재면" }, + "입력": [ + { "이름": "부위", "설명": "석면 자재 구분", "고르기": ["내장재", "외장재", "뿜칠재"], "출처": "건설품셈 유지관리 3-2-12" }, + { "이름": "뿜칠면", "설명": "뿜칠재 부착면(콘크리트면 20% 할증 · 뿜칠재만)", "고르기": ["철골·철재면", "콘크리트면"], "출처": "건설품셈 유지관리 3-2-12" } + ], + "중간": [{ "이름": "할증", "식": "만약(부위 == '뿜칠재' 그리고 뿜칠면 == '콘크리트면', 1.2, 1)", "출처": "건설품셈 유지관리 3-2-12 주②" }], + "호표": [ + { "종류": "인력", "요소": "LB000091", "이름": "석면해체공", "단위": "인", "수량": "찾기(QC002036, 부위=부위).석면해체공 * 할증", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "만약(부위 == '뿜칠재', 0, 찾기(QC002036, 부위=부위).보통인부)", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001121", + "원문번호": "3-3-1", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "재도장 시 바탕처리(콘크리트·모르타르면)", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-3-1", + "소유": "공용", + "비고": "기존 도장면을 제거하지 않고 오염·균열 부위만 퍼티·연마(주②) · 공구손료·잡재료비(연마지 등) = 인력품의 3%(주③) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": {}, + "입력": [], + "중간": [{ "이름": "시공량", "식": "찾기(QC002037).시공량", "출처": "건설품셈 유지관리 3-3-1" }], + "호표": [ + { "종류": "인력", "요소": "LB000029", "이름": "도장공", "단위": "인", "수량": "찾기(QC002037).도장공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002037).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 잡재료비", "식": "노무비 * 3 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-3-1" }], + "끝수": null + }, + { + "키": "GC001122", + "원문번호": "3-3-2", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "재도장 시 바탕처리(철재면)", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-3-2", + "소유": "공용", + "비고": "A급 = 탈락·부식 심해 약품으로 완전 제거 · B급 = 녹 제거·와이어 브러쉬 청소(주③ · QC002039) · 공구손료·잡재료비 = 인력품의 3%(주④) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "등급": "A급" }, + "입력": [{ "이름": "등급", "설명": "대상면 상태 등급", "고르기": ["A급", "B급"], "출처": "건설품셈 유지관리 3-3-2" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC002038, 등급=등급).시공량", "출처": "건설품셈 유지관리 3-3-2" }], + "호표": [ + { "종류": "인력", "요소": "LB000029", "이름": "도장공", "단위": "인", "수량": "찾기(QC002038, 등급=등급).도장공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002038, 등급=등급).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 잡재료비", "식": "노무비 * 3 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-3-2" }], + "끝수": null + }, + { + "키": "GC001123", + "원문번호": "3-3-3", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "재도장 시 바탕처리(목재면)", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-3-3", + "소유": "공용", + "비고": "A급 = 손상 심해 충진·평탄 연마 · B급 = 손상 거의 없음·부분 퍼티(주③ · QC002041) · 공구손료·잡재료비 = 인력품의 3%(주④) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "등급": "A급" }, + "입력": [{ "이름": "등급", "설명": "대상면 상태 등급", "고르기": ["A급", "B급"], "출처": "건설품셈 유지관리 3-3-3" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC002040, 등급=등급).시공량", "출처": "건설품셈 유지관리 3-3-3" }], + "호표": [ + { "종류": "인력", "요소": "LB000029", "이름": "도장공", "단위": "인", "수량": "찾기(QC002040, 등급=등급).도장공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002040, 등급=등급).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 잡재료비", "식": "노무비 * 3 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-3-3" }], + "끝수": null + }, + { + "키": "GC001124", + "원문번호": "3-4-1", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "지붕 덧씌우기", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-4-1", + "소유": "공용", + "비고": "기존 지붕 위 신규 금속기와 덧씌우기(주①②) · 홈통은 건축 7-2(주③) · 비계·안전시설 별도(주④) · 공구손료·경장비 = 인력품의 2%(주⑤) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "지붕형태": "일반" }, + "입력": [{ "이름": "지붕형태", "설명": "맞배지붕(경사 지붕면 2개소)은 시공량 20% 가산", "고르기": ["일반", "맞배지붕"], "출처": "건설품셈 유지관리 3-4-1" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC002042).시공량 * 만약(지붕형태 == '맞배지붕', 1.2, 1)", "출처": "건설품셈 유지관리 3-4-1" }], + "호표": [ + { "종류": "인력", "요소": "LB000036", "이름": "지붕잇기공", "단위": "인", "수량": "찾기(QC002042).지붕잇기공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002042).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-4-1" }], + "끝수": null + }, + { + "키": "GC001125", + "원문번호": "3-4-2", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "지붕 재설치", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-4-2", + "소유": "공용", + "비고": "기존 지붕재 철거된 상태에서 재설치(주①②) · 지붕재 철거 별도(주④) · 비계·안전시설 별도(주⑤) · 공구손료·경장비 = 인력품의 2%(주⑥) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "지붕형태": "일반" }, + "입력": [{ "이름": "지붕형태", "설명": "맞배지붕(경사 지붕면 2개소)은 시공량 20% 가산", "고르기": ["일반", "맞배지붕"], "출처": "건설품셈 유지관리 3-4-2" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC002043).시공량 * 만약(지붕형태 == '맞배지붕', 1.2, 1)", "출처": "건설품셈 유지관리 3-4-2" }], + "호표": [ + { "종류": "인력", "요소": "LB000036", "이름": "지붕잇기공", "단위": "인", "수량": "찾기(QC002043).지붕잇기공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002043).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 3-4-2" }], + "끝수": null + }, + { + "키": "GC001126", + "원문번호": "3-4-3", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "도배 교체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-4-3", + "소유": "공용", + "비고": "도배지 해체·바탕정리·풀먹임·초배·정배(주①②) · 지장물 운반 별도(주③) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "부위": "벽", "지장물": "없음" }, + "입력": [ + { "이름": "부위", "설명": "시공 부위", "고르기": ["벽", "천장"], "출처": "건설품셈 유지관리 3-4-3" }, + { "이름": "지장물", "설명": "사용 중 세대의 가구 등 지장물(있으면 시공량 15% 감)", "고르기": ["없음", "있음"], "출처": "건설품셈 유지관리 3-4-3" } + ], + "중간": [{ "이름": "시공량", "식": "찾기(QC002044, 부위=부위).시공량 * 만약(지장물 == '있음', 0.85, 1)", "출처": "건설품셈 유지관리 3-4-3" }], + "호표": [{ "종류": "인력", "요소": "LB000030", "이름": "내장공", "단위": "인", "수량": "찾기(QC002044, 부위=부위).내장공 / 시공량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001127", + "원문번호": "3-4-4", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "PVC계바닥재 교체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-4-4", + "소유": "공용", + "비고": "바닥재 해체·바탕정리·접착제(부분접합)·설치(주①②) · 지장물 운반 별도(주③) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "지장물": "없음" }, + "입력": [{ "이름": "지장물", "설명": "사용 중 세대의 가구 등 지장물(있으면 시공량 15% 감)", "고르기": ["없음", "있음"], "출처": "건설품셈 유지관리 3-4-4" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC002045).시공량 * 만약(지장물 == '있음', 0.85, 1)", "출처": "건설품셈 유지관리 3-4-4" }], + "호표": [{ "종류": "인력", "요소": "LB000030", "이름": "내장공", "단위": "인", "수량": "찾기(QC002045).내장공 / 시공량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001128", + "원문번호": "3-4-5", + "구분": "건설품셈 유지관리", + "상세구분": "03장 건축", + "이름": "타일 교체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 3-4-5", + "소유": "공용", + "비고": "타일 해체·바탕정리·붙임·줄눈·마무리(주①②) · 방수·지장물 운반 별도(주③④) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "공법": "떠붙이기(벽)", "지장물": "없음" }, + "입력": [ + { "이름": "공법", "설명": "붙임 공법(부위)", "고르기": ["떠붙이기(벽)", "압착붙이기(바닥)"], "출처": "건설품셈 유지관리 3-4-5" }, + { "이름": "지장물", "설명": "사용 중 세대의 가구 등 지장물(있으면 시공량 15% 감)", "고르기": ["없음", "있음"], "출처": "건설품셈 유지관리 3-4-5" } + ], + "중간": [{ "이름": "시공량", "식": "찾기(QC002046, 공법=공법).시공량 * 만약(지장물 == '있음', 0.85, 1)", "출처": "건설품셈 유지관리 3-4-5" }], + "호표": [{ "종류": "인력", "요소": "LB000028", "이름": "타일공", "단위": "인", "수량": "찾기(QC002046, 공법=공법).타일공 / 시공량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + } + ] +} diff --git a/resources/master_data/로직_건설품셈_03장_토공사.json b/resources/master_data/로직_건설품셈_03장_토공사.json index 395f28ac5..717c28a25 100644 --- a/resources/master_data/로직_건설품셈_03장_토공사.json +++ b/resources/master_data/로직_건설품셈_03장_토공사.json @@ -527,7 +527,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-1 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 · 대형브레이커(2차파쇄) 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24% · 대형브레이커 5%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -555,7 +555,16 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000189).유압식크롤러드릴)" + }, + { + "이름": "브레이커경비", + "식": "로직(GC000271, 기계='0201-0100', 브레이커='0230-0010', 지역=지역, 보정작업=보정작업).계 * (찾기(QC000189).굴착기_대형브레이커)" + } + ], "호표": [ { "종류": "인력", @@ -588,7 +597,20 @@ "수량": "찾기(QC000189).굴착기_대형브레이커" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + }, + { + "이름": "소모자재(대형브레이커)", + "식": "브레이커경비 * 찾기(QC000196, 장비='굴착기+대형브레이커').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -597,7 +619,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-2 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 · 대형브레이커(2차파쇄) 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24% · 대형브레이커 5%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -625,7 +647,16 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000190).유압식크롤러드릴)" + }, + { + "이름": "브레이커경비", + "식": "로직(GC000271, 기계='0201-0100', 브레이커='0230-0010', 지역=지역, 보정작업=보정작업).계 * (찾기(QC000190).굴착기_대형브레이커)" + } + ], "호표": [ { "종류": "인력", @@ -658,7 +689,20 @@ "수량": "찾기(QC000190).굴착기_대형브레이커" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + }, + { + "이름": "소모자재(대형브레이커)", + "식": "브레이커경비 * 찾기(QC000196, 장비='굴착기+대형브레이커').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -667,7 +711,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-3 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -695,7 +739,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000191).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -728,7 +777,14 @@ "수량": "찾기(QC000191).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -737,7 +793,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-4 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -765,7 +821,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000192).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -798,7 +859,14 @@ "수량": "찾기(QC000192).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -807,7 +875,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-5 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -835,7 +903,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000193).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -868,7 +941,14 @@ "수량": "찾기(QC000193).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -877,7 +957,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-6 · 3-3-6 주", "소유": "공용", - "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴·브레이커 소모자재 요율(3-3-6 주⑨)은 그 기계 줄이 막혀 못 넣음 · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", + "비고": "폭약·뇌관은 「도로공사노천발파설계·시공지침」 따라 별도 · 잡재료(재료비 5%)도 그 재료비에(3-3-6 주⑦) · 크롤러드릴 소모자재 = 기계경비 × 요율(3-3-6 주⑨ · 크롤러드릴 24%) · 암 작업은 보정작업 「암석작업」 고름(건설품셈 공통 8-1-7)", "입력": [ { "이름": "지역", @@ -905,7 +985,12 @@ }, { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], - "중간": [], + "중간": [ + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000194).유압식크롤러드릴)" + } + ], "호표": [ { "종류": "인력", @@ -938,7 +1023,14 @@ "수량": "찾기(QC000194).굴착기" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "소모자재(크롤러드릴)", + "식": "드릴경비 * 찾기(QC000196, 장비='유압식 크롤러드릴').요율 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-6 주⑨" + } + ], "끝수": null }, { @@ -1163,7 +1255,7 @@ "결과단위": "원/㎥", "출처": "건설품셈 공통 3-3-8", "소유": "공용", - "비고": "할암봉 소모자재 별도(주⑤) · 대형브레이커 소모자재 2%(주④)는 그 줄이 막혀 못 넣음 · 유압식할암기는 손료만", + "비고": "할암봉 소모자재 별도(주⑤) · 대형브레이커 소모자재 = 기계경비 × 2%(주④) · 유압식할암기는 손료만", "입력": [ { "이름": "지역", @@ -1192,7 +1284,14 @@ { "이름": "보정작업", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } ], "중간": [ - { "이름": "드릴경비", "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000201).유압식크롤러드릴)" } + { + "이름": "드릴경비", + "식": "로직(GC000268, 기계='5405-0110', 지역=지역).계 * (찾기(QC000201).유압식크롤러드릴)" + }, + { + "이름": "브레이커경비", + "식": "로직(GC000271, 기계='0201-0100', 브레이커='0230-0010', 지역=지역, 보정작업=보정작업).계 * (찾기(QC000201).굴착기_대형브레이커)" + } ], "호표": [ { @@ -1246,6 +1345,12 @@ "식": "드릴경비 * 찾기(QC000202, 장비='유압식 크롤러드릴').기계경비의 / 100", "비목": "재료비", "출처": "건설품셈 공통 3-3-8 주④" + }, + { + "이름": "소모자재(대형브레이커)", + "식": "브레이커경비 * 찾기(QC000202, 장비='굴착기+대형브레이커').기계경비의 / 100", + "비목": "재료비", + "출처": "건설품셈 공통 3-3-8 주④" } ], "끝수": null diff --git a/resources/master_data/로직_건설품셈_04장_궤도공사.json b/resources/master_data/로직_건설품셈_04장_궤도공사.json index d075ca0c6..59fe15899 100644 --- a/resources/master_data/로직_건설품셈_04장_궤도공사.json +++ b/resources/master_data/로직_건설품셈_04장_궤도공사.json @@ -802,7 +802,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "빗자루 도로청소용"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "바퀴숫돌 단면용"}, "이름": "바퀴숫돌 단면용 A36m B11호 A150×8×22 KSL 6501", "단위": "개", "수량": "찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='단면용 A36m B11호 A150×8×22 KSL 6501').수량", @@ -811,7 +811,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "빗자루 도로청소용"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "바퀴숫돌 측면용"}, "이름": "바퀴숫돌 측면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "수량": "찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='측면용 A24 QWV1호 A205×25×25 KSL 6501').수량", @@ -820,7 +820,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "빗자루 도로청소용"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "바퀴숫돌 평면용"}, "이름": "바퀴숫돌 평면용 A24 QWV1호 A205×25×25 KSL 6501", "단위": "개", "수량": "찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='평면용 A24 QWV1호 A205×25×25 KSL 6501').수량", @@ -829,7 +829,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "빗자루 도로청소용"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "바퀴숫돌 최종용"}, "이름": "바퀴숫돌 최종용 A24 QWV 5호 A205×22×22", "단위": "개", "수량": "찾기(QC000648, 품명='바퀴숫돌', 레일규격=레일규격, 규격='최종용 A24 QWV 5호 A205×22×22').수량", diff --git a/resources/master_data/로직_건설품셈_04장_기계설비.json b/resources/master_data/로직_건설품셈_04장_기계설비.json new file mode 100644 index 000000000..6d5f23bf8 --- /dev/null +++ b/resources/master_data/로직_건설품셈_04장_기계설비.json @@ -0,0 +1,247 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "유지관리", + "차례": 56, + "판": "2026", + "줄": [ + { + "키": "GC001129", + "원문번호": "4-1-1", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "배관 해체", + "결과단위": "원/m", + "출처": "건설품셈 유지관리 4-1-1", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 지지철물 포함 · 공구손료·경장비 = 인력품의 2% · 동관은 250㎜ 까지", + "시험입력": { "관종": "강관", "규격": "50" }, + "입력": [ + { "이름": "관종", "설명": "배관 재질", "고르기": ["강관", "동관"], "출처": "건설품셈 유지관리 4-1-1" }, + { + "이름": "규격", + "설명": "배관 호칭 지름(㎜)", + "고르기": ["ø15이하", "20", "25", "32", "40", "50", "65", "80", "100", "125", "150", "200", "250", "300", "350", "400"], + "출처": "건설품셈 유지관리 4-1-1" + } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000039", "이름": "배관공", "단위": "인", "수량": "찾기(QC002047, 관종=관종, '규격(㎜)'=규격).배관공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002047, 관종=관종, '규격(㎜)'=규격).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 4-1-1" }], + "끝수": null + }, + { + "키": "GC001130", + "원문번호": "4-1-2", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "각형덕트 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 4-1-2", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 아연도금강판·스테인리스 · 지지철물·절단 포함 · 공구손료·경장비 = 인력품의 2%", + "시험입력": { "호칭두께": "0.5" }, + "입력": [{ "이름": "호칭두께", "설명": "덕트 호칭 두께(mm)", "고르기": ["0.5", "0.6", "0.8", "1.0", "1.2", "1.6"], "출처": "건설품셈 유지관리 4-1-2" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000043", "이름": "덕트공", "단위": "인", "수량": "찾기(QC002048, '호칭두께(mm)'=호칭두께).덕트공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002048, '호칭두께(mm)'=호칭두께).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 4-1-2" }], + "끝수": null + }, + { + "키": "GC001131", + "원문번호": "4-1-3", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "스파이럴덕트 해체", + "결과단위": "원/m", + "출처": "건설품셈 유지관리 4-1-3", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 아연도금강판 · 철판두께는 규격 따라 정해짐(200 이하 0.5㎜ · 225 이상 0.6㎜) · 공구손료·경장비 = 인력품의 2%", + "시험입력": { "규격": "ø150이하" }, + "입력": [ + { + "이름": "규격", + "설명": "스파이럴덕트 지름(㎜)", + "고르기": ["ø150이하", "160", "180", "200", "225", "250", "275", "300", "350", "400", "450", "500", "550", "600"], + "출처": "건설품셈 유지관리 4-1-3" + } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000043", "이름": "덕트공", "단위": "인", "수량": "찾기(QC002049, '규격(㎜)'=규격).덕트공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002049, '규격(㎜)'=규격).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 4-1-3" }], + "끝수": null + }, + { + "키": "GC001132", + "원문번호": "4-1-4", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "배관보온 해체", + "결과단위": "원/m", + "출처": "건설품셈 유지관리 4-1-4", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 보온두께 50mm 이하", + "시험입력": { "보온재": "고무발포보온재", "규격": "50" }, + "입력": [ + { "이름": "보온재", "설명": "보온재 종류", "고르기": ["고무발포보온재", "발포폴리에틸렌보온재", "유리면보온재(글라스울)"], "출처": "건설품셈 유지관리 4-1-4" }, + { + "이름": "규격", + "설명": "배관 호칭 지름(㎜)", + "고르기": ["ø15", "20", "25", "32", "40", "50", "65", "80", "100", "125", "150", "200", "250", "300"], + "출처": "건설품셈 유지관리 4-1-4" + } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000044", "이름": "보온공", "단위": "인", "수량": "찾기(QC002050, 보온재종류=보온재, '규격(㎜)'=규격).보온공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002050, 보온재종류=보온재, '규격(㎜)'=규격).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001133", + "원문번호": "4-1-5", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "덕트보온 해체", + "결과단위": "원/㎡", + "출처": "건설품셈 유지관리 4-1-5", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도", + "시험입력": { "보온재": "고무발포보온재·발포폴리에틸렌보온재" }, + "입력": [{ "이름": "보온재", "설명": "보온재 종류", "고르기": ["고무발포보온재·발포폴리에틸렌보온재", "유리면보온재(글라스울)"], "출처": "건설품셈 유지관리 4-1-5" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000044", "이름": "보온공", "단위": "인", "수량": "찾기(QC002051, 보온재종류=보온재).보온공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002051, 보온재종류=보온재).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001134", + "원문번호": "4-1-6", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "펌프 해체", + "결과단위": "원/대", + "출처": "건설품셈 유지관리 4-1-6", + "소유": "공용", + "비고": "재사용하지 않는 해체 · 비산방지·안전시설·폐기물 처리 별도 · 일반펌프(급수·소방) · 방진가대·절단 포함 · 공구손료·경장비 = 인력품의 2%", + "시험입력": { "규격": "0.75 이하" }, + "입력": [ + { + "이름": "규격", + "설명": "펌프 출력(kW)", + "고르기": ["0.75 이하", "1.5 이하", "2.2 이하", "3.7 이하", "5.5 이하", "7.5 이하", "11 이하", "15 이하", "22 이하", "37 이하", "55 이하", "75 이하"], + "출처": "건설품셈 유지관리 4-1-6" + } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000051", "이름": "기계설비공", "단위": "인", "수량": "찾기(QC002052, '규격(kW)'=규격).기계설비공", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002052, '규격(kW)'=규격).보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 2 / 100", "비목": "경비", "출처": "건설품셈 유지관리 4-1-6" }], + "끝수": null + }, + { + "키": "GC001135", + "원문번호": "4-3-1", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "유량계 교체", + "결과단위": "원/개", + "출처": "건설품셈 유지관리 4-3-1", + "소유": "공용", + "비고": "수도미터·온수미터 옥내배관 해체 후 재부착(주①) · 보호통·뚜껑 철거·재설치가 필요하면 보호통 시공량(주② · ø65 이상은 보호통 칸 없음) · 해체·재부착·작동시험·마무리 포함(주③) · 같은 장소 수도·온수미터 병행 교체 시 유량계 시공량 30% 감(비고) · 공구손료·경장비 = 인력품의 1%(주④) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": { "규격": "ø13~15", "대상": "유량계", "병행교체": "아니오" }, + "입력": [ + { "이름": "규격", "설명": "유량계 규격(mm)", "고르기": ["ø13~15", "ø20~32", "ø40~50", "ø65~80", "ø100~150", "ø200~300"], "출처": "건설품셈 유지관리 4-3-1" }, + { "이름": "대상", "설명": "보호통·뚜껑 철거·재설치 필요 여부(필요 = 보호통)", "고르기": ["유량계", "보호통"], "출처": "건설품셈 유지관리 4-3-1" }, + { "이름": "병행교체", "설명": "같은 장소 수도미터·온수미터 병행 교체(유량계 시공량 30% 감)", "고르기": ["아니오", "예"], "출처": "건설품셈 유지관리 4-3-1" } + ], + "중간": [{ "이름": "시공량", "식": "만약(대상 == '보호통', 찾기(QC002056, '규격(mm)'=규격).'시공량(보호통)', 찾기(QC002056, '규격(mm)'=규격).'시공량(유량계)' * 만약(병행교체 == '예', 0.7, 1))" }], + "호표": [ + { "종류": "인력", "요소": "LB000039", "이름": "배관공", "단위": "인", "수량": "찾기(QC002056, '규격(mm)'=규격).배관공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC002056, '규격(mm)'=규격).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 1 / 100", "비목": "경비", "출처": "건설품셈 유지관리 4-3-1" }], + "끝수": null + }, + { + "키": "GC001136", + "원문번호": "4-3-2", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "관갱생공", + "결과단위": "원/m", + "출처": "건설품셈 유지관리 4-3-2", + "소유": "공용", + "비고": "에어샌드공법 · 도장두께 0.3∼1㎜(주①②) · 관내부 세척·열풍건조·피복코팅·소운반 포함(주③) · 입상관은 품 30% 가산(주④) · 검사구·밸브·보온 복구·가설배관·폐기물 처리 별도(주⑤⑥) · 공기압축기 25.5㎥/min × 장비조합 대수(QC002058 · 주⑧) · 라이닝기 경비 별도(주⑦) · 해석: 표 장비사용시간 = 대당 시간 · 막힘: 규사(㎏) · 에폭시도료(㎏) 자재품목에 같은 단위 품목 없음(규사 = 마대 · 에폭시계 도료 = ℓ) — 줄 뺌", + "시험입력": { "규격": "50", "입상관": "아니오", "지역": "전국평균" }, + "입력": [ + { + "이름": "규격", + "설명": "배관 호칭 지름(㎜)", + "고르기": ["ø15", "20", "25", "32", "40", "50", "65", "80", "100", "125", "150", "200", "250", "300"], + "출처": "건설품셈 유지관리 4-3-2" + }, + { "이름": "입상관", "설명": "입상관(품 30% 가산)", "고르기": ["아니오", "예"], "출처": "건설품셈 유지관리 4-3-2" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "대수", + "식": "찾기(QC002058, '규격(㎜)범위'=만약(규격 == 'ø15' 또는 규격 == '20' 또는 규격 == '25' 또는 규격 == '32' 또는 규격 == '40' 또는 규격 == '50', 'ø15∼50', 만약(규격 == '65' 또는 규격 == '80' 또는 규격 == '100', 'ø65∼100', 만약(규격 == '125' 또는 규격 == '150' 또는 규격 == '200', 'ø125∼200', 'ø250∼300')))).공기압축기", + "출처": "건설품셈 유지관리 4-3-2 주⑧" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000039", "이름": "배관공", "단위": "인", "수량": "찾기(QC002057, '규격(㎜)'=규격).배관공 * (1 + 만약(입상관 == '예', 30, 0) / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QC002057, '규격(㎜)'=규격).특별인부 * (1 + 만약(입상관 == '예', 30, 0) / 100)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000268, 기계='5205-0255', 지역=지역)", + "이름": "공기압축기(이동식) 25.5㎥/min", + "단위": "시간", + "수량": "찾기(QC002057, '규격(㎜)'=규격).장비사용시간 * 대수 * (1 + 만약(입상관 == '예', 30, 0) / 100)" + } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GC001137", + "원문번호": "4-3-3", + "구분": "건설품셈 유지관리", + "상세구분": "04장 기계설비", + "이름": "배관누수 검사", + "결과단위": "원/회", + "출처": "건설품셈 유지관리 4-3-3", + "소유": "공용", + "비고": "급수·급탕·난방 옥내배관(ø50mm 이하) 누수 검사(주①) · 준비·검침·미터기 해체 재설치·공기압시험·누수탐지 포함(주②) · 해체·복구·교체 별도(주③) · 공구손료·경장비 = 인력품의 3%(주④) · 해석: 일당 인원 ÷ 일당 시공량 = 단위당 인 · 기계 대수 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간", + "시험입력": {}, + "입력": [], + "중간": [{ "이름": "시공량", "식": "찾기(QC002059).시공량", "출처": "건설품셈 유지관리 4-3-3" }], + "호표": [{ "종류": "인력", "요소": "LB000039", "이름": "배관공", "단위": "인", "수량": "찾기(QC002059).배관공 / 시공량", "비목": "노무비" }], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 3 / 100", "비목": "경비", "출처": "건설품셈 유지관리 4-3-3" }], + "끝수": null + } + ] +} diff --git a/resources/master_data/로직_건설품셈_05장_강구조공사.json b/resources/master_data/로직_건설품셈_05장_강구조공사.json index 6414cbf31..6cb412ce7 100644 --- a/resources/master_data/로직_건설품셈_05장_강구조공사.json +++ b/resources/master_data/로직_건설품셈_05장_강구조공사.json @@ -94,7 +94,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 전기"}, "이름": "용접봉(강교 제작)", "단위": "㎏", "수량": "찾기(QC000664, 품명='용접봉').수량", diff --git a/resources/master_data/로직_건설품셈_05장_기초공사.json b/resources/master_data/로직_건설품셈_05장_기초공사.json index e85c4c03e..dd1c3db60 100644 --- a/resources/master_data/로직_건설품셈_05장_기초공사.json +++ b/resources/master_data/로직_건설품셈_05장_기초공사.json @@ -3057,7 +3057,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "고무바 2.2cm"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "드레인보드(PBD)"}, "이름": "드레인 보드", "단위": "m", "수량": "1 + 찾기(QC000356, 항목='5-2-3 재료량(주②)', 구분='드레인 보드 재료할증').비율 / 100", @@ -5331,7 +5331,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "부직포", "검색어": "토목용부직포"}, "이름": "부직포", "단위": "㎡", "수량": "만약(재료 == '부직포', 찾기(QC000399, 구분='부직포').수량, 0)", @@ -5347,7 +5347,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "매트", "검색어": "PET 매트 10T/m"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "매트", "검색어": "벤토나이트 매트"}, "이름": "벤토나이트매트", "단위": "㎡", "수량": "만약(재료 == '벤토나이트매트', 찾기(QC000399, 구분='벤토나이트매트').수량, 0)", diff --git a/resources/master_data/로직_건설품셈_05장_수장공사.json b/resources/master_data/로직_건설품셈_05장_수장공사.json index edbdabe3b..b9ab9dc3c 100644 --- a/resources/master_data/로직_건설품셈_05장_수장공사.json +++ b/resources/master_data/로직_건설품셈_05장_수장공사.json @@ -131,7 +131,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "불연천장재(마이톤) 12mm"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "카페트"}, "이름": "카페트", "단위": "㎡", "수량": "찾기(QC001251, 구분='카페트').수량", @@ -140,7 +140,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "폴리에스터 펠트"}, "이름": "펠트", "단위": "㎡", "수량": "찾기(QC001251, 구분='펠트').수량", @@ -149,7 +149,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "석고본드"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "접착제 일반용"}, "이름": "접착제", "단위": "㎏", "수량": "찾기(QC001251, 구분='접착제').수량", @@ -1124,7 +1124,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "그리스(일반범용) CROWN"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "풀 벽지용"}, "이름": "풀", "단위": "kg", "수량": "찾기(QC001269, 바탕면=바탕면).풀", @@ -1770,7 +1770,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "PVC천막지 T-210"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "PE필름"}, "이름": "방습필름", "단위": "㎡", "수량": "찾기(QC001285, 구분=구분).방습필름", diff --git a/resources/master_data/로직_건설품셈_06장_관부설_및_접합공사.json b/resources/master_data/로직_건설품셈_06장_관부설_및_접합공사.json index 313fd3fe9..462bc92c1 100644 --- a/resources/master_data/로직_건설품셈_06장_관부설_및_접합공사.json +++ b/resources/master_data/로직_건설품셈_06장_관부설_및_접합공사.json @@ -1545,7 +1545,14 @@ "수량": "찾기(QC000697, 관경=관경).크레인 * 요율" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 잡재료", + "식": "((찾기(QC000697, 관경=관경).배관공_수도 * 요율) * LB000040 + (찾기(QC000697, 관경=관경).보통인부 * 요율) * LB000002) * 1 / 100", + "비목": "경비", + "출처": "건설품셈 토목 6-7-1 주④" + } + ], "끝수": null }, { @@ -1780,7 +1787,14 @@ "수량": "만약((관경 == 150 그리고 관종류 == '비압력관') 또는 (관경 == 150 그리고 관종류 == '압력관') 또는 (관경 == 200 그리고 관종류 == '비압력관') 또는 (관경 == 200 그리고 관종류 == '압력관'), 0, 찾기(QC000700, 관경=관경, 관종류=관종류).크레인 * 요율)" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 잡재료", + "식": "((찾기(QC000700, 관경=관경, 관종류=관종류).배관공_수도 * 요율) * LB000040 + (찾기(QC000700, 관경=관경, 관종류=관종류).보통인부 * 요율) * LB000002) * 1 / 100", + "비목": "경비", + "출처": "건설품셈 토목 6-7-3 주④" + } + ], "끝수": null }, { @@ -2078,7 +2092,7 @@ }, { "이름": "잡재료", - "식": "(찾기(QC000707).IV전선 * MT030714 + 찾기(QC000707).백열등 * MT008751) * 2 / 100", + "식": "(찾기(QC000707).IV전선 * MT030714 + 찾기(QC000707).백열등 * MT008750) * 2 / 100", "비목": "재료비", "출처": "건설품셈 토목 6-7-5 주⑤" } @@ -2185,7 +2199,14 @@ "수량": "찾기(QC000708, 관경=관경).크레인 * 요율" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 잡재료", + "식": "((찾기(QC000708, 관경=관경).배관공_수도 * 요율) * LB000040 + (찾기(QC000708, 관경=관경).보통인부 * 요율) * LB000002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 토목 6-8-1 주⑤" + } + ], "끝수": null }, { @@ -2224,7 +2245,14 @@ "비목": "노무비" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 잡재료", + "식": "((찾기(QC000709, 관경=관경, 구분='인력').배관공_수도 * 요율) * LB000040 + (찾기(QC000709, 관경=관경, 구분='인력').보통인부 * 요율) * LB000002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 토목 6-8-1 주⑤" + } + ], "끝수": null }, { @@ -2324,7 +2352,14 @@ "수량": "찾기(QC000711, 관경=관경).크레인 * 요율" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 잡재료", + "식": "((찾기(QC000711, 관경=관경).배관공_수도 * 요율) * LB000040 + (찾기(QC000711, 관경=관경).보통인부 * 요율) * LB000002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 토목 6-8-2 주⑤" + } + ], "끝수": null }, { @@ -2460,7 +2495,7 @@ "결과단위": "원/개소", "출처": "건설품셈 토목 6-8-4", "소유": "공용", - "비고": "해석: 크레인·양중장비 종류·규격 설계자 고름 · 시공조건 B·C 요율(6-1-1 8) — 일당 표는 시공량에 · 단위당 표는 품에 곱함(해석: 인력·장비 품 모두) · 관경 = 본관(주②) · 크레인 원문 5톤급 트럭탑재형(80~900) · 크레인은 150㎜ 이상만(원문 표) · 천공·터파기·되메우기·잔토처리·물푸기 제외(주③) · 누수방지대에도 적용(주④) · 할정자관 중량표는 참고 · 막힘: 공구손료 및 잡재료 인력품 2%(주⑥) 빠짐 — 소요량에 계수 표 없음", + "비고": "해석: 크레인·양중장비 종류·규격 설계자 고름 · 시공조건 B·C 요율(6-1-1 8) — 일당 표는 시공량에 · 단위당 표는 품에 곱함(해석: 인력·장비 품 모두) · 관경 = 본관(주②) · 크레인 원문 5톤급 트럭탑재형(80~900) · 크레인은 150㎜ 이상만(원문 표) · 천공·터파기·되메우기·잔토처리·물푸기 제외(주③) · 누수방지대에도 적용(주④) · 할정자관 중량표는 참고 · 공구손료 및 잡재료 = 인력품 2%(주⑥)", "입력": [ { "이름": "관경", "고르기": [80, 100, 150, 200, 250, 300, 350, 400, 450, 500, 600, 700, 800, 900] }, { "이름": "시공조건", "고르기": ["시공조건 A", "시공조건 B", "시공조건 C"], "출처": "건설품셈 토목 6-1-1 8" }, @@ -2551,7 +2586,14 @@ "수량": "만약(관경 == 80 또는 관경 == 100, 0, 찾기(QC000715, 관경=관경).크레인 * 요율)" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "공구손료 및 잡재료", + "식": "((찾기(QC000715, 관경=관경).배관공_수도 * 요율) * LB000040 + (찾기(QC000715, 관경=관경).보통인부 * 요율) * LB000002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 토목 6-8-4 주⑥" + } + ], "끝수": null }, { diff --git a/resources/master_data/로직_건설품셈_06장_방수공사.json b/resources/master_data/로직_건설품셈_06장_방수공사.json index 3f865e96f..136c52b11 100644 --- a/resources/master_data/로직_건설품셈_06장_방수공사.json +++ b/resources/master_data/로직_건설품셈_06장_방수공사.json @@ -406,7 +406,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "방수석고보드 12.5t"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "시트방수재"}, "이름": "방수시트", "단위": "㎡", "수량": "찾기(QC001300, 구분='시트').수량", @@ -469,7 +469,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "방수석고보드 12.5t"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "시트방수재"}, "이름": "방수시트", "단위": "㎡", "수량": "찾기(QC001300, 구분='시트').수량", @@ -532,7 +532,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "방수석고보드 12.5t"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "시트방수재"}, "이름": "방수시트", "단위": "㎡", "수량": "찾기(QC001300, 구분='시트').수량", @@ -949,7 +949,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "방수석고보드 12.5t"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "매트", "검색어": "벤토나이트 매트"}, "이름": "벤토나이트방수재", "단위": "㎡", "수량": "만약(종류 == '벤토나이트 매트', 찾기(QC001307, 구분='벤토나이트방수재', 종류='매트', 부위=부위).수량, 0)", @@ -967,7 +967,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "KL-지수재 급결"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "벤토나이트 매스틱"}, "이름": "벤토나이트씰재", "단위": "L", "수량": "찾기(QC001307, 구분='벤토나이트씰재', 종류=만약(종류 == '벤토나이트 매트', '매트', '시트'), 부위=부위).수량", @@ -985,7 +985,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "PVC천막지 T-210"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "PE필름"}, "이름": "PE필름 0.04㎜", "단위": "㎡", "수량": "찾기(QC001307, 구분='PE필름', 종류=만약(종류 == '벤토나이트 매트', '매트', '시트'), 부위=부위).수량", @@ -1012,7 +1012,7 @@ }, { "종류": "재료", - "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "핀볼트 M12"}, + "요소": {"구분": "볼트·앵커·철물", "상세구분": "볼트·너트", "검색어": "평와셔"}, "이름": "와셔", "단위": "개", "수량": "찾기(QC001307, 구분='와셔', 종류=만약(종류 == '벤토나이트 매트', '매트', '시트'), 부위=부위).수량", diff --git a/resources/master_data/로직_건설품셈_06장_철근콘크리트공사.json b/resources/master_data/로직_건설품셈_06장_철근콘크리트공사.json index 877cf8ceb..ff88092d9 100644 --- a/resources/master_data/로직_건설품셈_06장_철근콘크리트공사.json +++ b/resources/master_data/로직_건설품셈_06장_철근콘크리트공사.json @@ -498,7 +498,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "석고본드"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "에폭시 접착제"}, "이름": "에폭시 신구콘크리트 접착제", "단위": "kg", "수량": "만약(용도 == '신구-콘크리트 접착제바르기', 접착제량, 0)", @@ -506,7 +506,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "석고본드"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "에폭시 접착제"}, "이름": "에폭시 콘크리트고무 접착제", "단위": "kg", "수량": "만약(용도 == '콘크리트 및 고무 기타 접착제바르기', 접착제량, 0)", @@ -514,7 +514,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "에폭시계 신너"}, "이름": "시너", "단위": "ℓ", "수량": "찾기(QC000412, 용도=용도, 재료명='시너').수량", diff --git a/resources/master_data/로직_건설품셈_07장_돌공사.json b/resources/master_data/로직_건설품셈_07장_돌공사.json index 9b950e198..d6ee4efbd 100644 --- a/resources/master_data/로직_건설품셈_07장_돌공사.json +++ b/resources/master_data/로직_건설품셈_07장_돌공사.json @@ -483,6 +483,50 @@ } ], "끝수": null + }, + { + "키": "GC001138", + "원문번호": "7-4-2", + "구분": "건설품셈 공통", + "상세구분": "07장 돌공사", + "이름": "석재판 붙임 앵커 긴결공법", + "결과단위": "원/㎡", + "출처": "건설품셈 공통 7-4-2", + "소유": "공용", + "비고": "구조물 벽체에 앵커로 석재판(비구조요소) 고정(주①) · 앵커 구멍·지지철물·절단·설치·줄눈(코킹) 포함(주②) · 해석: 일당 인원 ÷ 일당 시공량 = ㎡당 인 · 해석: 인력품 = 인력 호표 줄 금액 합 · 해석: 주③ 3% 는 원문 주 글에만 있어(계수 표 없음) 식에 수로 적음 · 석재판·앵커·지지철물 재료 원문 표에 없음", + "시험입력": { "면적": 0.3 }, + "입력": [{ "이름": "면적", "설명": "석재판 1장 면적(0.8㎡ 이하 · 0.3㎡ 이하 / 0.3㎡ 초과 두 구간)", "단위": "㎡", "범위": [0, 0.8], "출처": "건설품셈 공통 7-4-2" }], + "중간": [{ "이름": "시공량", "식": "찾기(QC000495, 면적=면적).시공량" }], + "호표": [ + { "종류": "인력", "요소": "LB000033", "이름": "석공", "단위": "인", "수량": "찾기(QC000495, 면적=면적).석공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000034", "이름": "줄눈공", "단위": "인", "수량": "찾기(QC000495, 면적=면적).줄눈공 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC000495, 면적=면적).보통인부 / 시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 3 / 100", "비목": "경비", "출처": "건설품셈 공통 7-4-2 주③" }], + "끝수": null + }, + { + "키": "GC001139", + "원문번호": "7-4-3", + "구분": "건설품셈 공통", + "상세구분": "07장 돌공사", + "이름": "석재판 붙임 강제트러스 지지공법", + "결과단위": "원/㎡", + "출처": "건설품셈 공통 7-4-3", + "소유": "공용", + "비고": "구조물 벽체에 하지철물(각관·앵글 등)과 석재판(비구조요소) 설치(주①) · 앵커 구멍·지지철물·트러스 절단·용접·석재판 설치·줄눈(코킹) 포함(주②) · 하지철물 설치 + 석재판 붙임 두 공정을 각 시공량으로 나눠 더함 · 해석: 일당 인원 ÷ 일당 시공량 = ㎡당 인 · 해석: 인력품 = 인력 호표 줄 금액 합 · 해석: 주③ 3% 는 원문 주 글에만 있어(계수 표 없음) 식에 수로 적음 · 석재판·앵커·지지철물 재료 원문 표에 없음", + "시험입력": { "면적": 0.5 }, + "입력": [{ "이름": "면적", "설명": "석재판 1장 면적(0.8㎡ 이하 · 0.3㎡ 이하 / 0.3㎡ 초과 두 구간)", "단위": "㎡", "범위": [0, 0.8], "출처": "건설품셈 공통 7-4-3" }], + "중간": [{ "이름": "하지시공량", "식": "찾기(QC000496, 공정='하지철물 설치', 면적=면적).시공량" }, { "이름": "붙임시공량", "식": "찾기(QC000496, 공정='석재판 붙임', 면적=면적).시공량" }], + "호표": [ + { "종류": "인력", "요소": "LB000012", "이름": "용접공", "단위": "인", "수량": "찾기(QC000496, 공정='하지철물 설치', 면적=면적).용접공 / 하지시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000009", "이름": "철공", "단위": "인", "수량": "찾기(QC000496, 공정='하지철물 설치', 면적=면적).철공 / 하지시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000033", "이름": "석공", "단위": "인", "수량": "찾기(QC000496, 공정='석재판 붙임', 면적=면적).석공 / 붙임시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000034", "이름": "줄눈공", "단위": "인", "수량": "찾기(QC000496, 공정='석재판 붙임', 면적=면적).줄눈공 / 붙임시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QC000496, 공정='석재판 붙임', 면적=면적).보통인부 / 붙임시공량", "비목": "노무비" } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 3 / 100", "비목": "경비", "출처": "건설품셈 공통 7-4-3 주③" }], + "끝수": null } ] } diff --git a/resources/master_data/로직_건설품셈_07장_지붕_및_홈통공사.json b/resources/master_data/로직_건설품셈_07장_지붕_및_홈통공사.json index d1f64084a..0d2e592c9 100644 --- a/resources/master_data/로직_건설품셈_07장_지붕_및_홈통공사.json +++ b/resources/master_data/로직_건설품셈_07장_지붕_및_홈통공사.json @@ -407,7 +407,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "불연천장재(마이톤) 12mm"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "폴리카보네이트"}, "이름": "폴리카보네이트", "단위": "㎡", "수량": "찾기(QC001319, 구분='폴리카보네이트').수량", diff --git a/resources/master_data/로직_건설품셈_08장_금속공사.json b/resources/master_data/로직_건설품셈_08장_금속공사.json index b208ad083..ce0d40087 100644 --- a/resources/master_data/로직_건설품셈_08장_금속공사.json +++ b/resources/master_data/로직_건설품셈_08장_금속공사.json @@ -117,7 +117,7 @@ }, { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "철망·와이어메쉬", "검색어": "메쉬스크린 H=0.9m"}, + "요소": {"구분": "철근·강재", "상세구분": "철망·와이어메쉬", "검색어": "와이어메쉬 용접철망"}, "이름": "와이어메시", "단위": "매", "수량": "찾기(QC001331, 구분='와이어메시', 규격='1,800×1,800㎜').수량", @@ -169,7 +169,7 @@ }, { "종류": "재료", - "요소": {"구분": "볼트·앵커·철물", "상세구분": "앵커", "검색어": "L형앵커볼트 5/8\""}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "인서트"}, "이름": "인서트", "단위": "개", "수량": "찾기(QC001333, 구분='인서트').수량", @@ -221,7 +221,7 @@ }, { "종류": "재료", - "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "처마후레싱 C/S"}, + "요소": {"구분": "건축마감", "상세구분": "천장·바닥·마감재", "검색어": "몰딩 AL"}, "이름": "조이너 및 몰딩", "단위": "m", "수량": "찾기(QC001335, 구분='조이너 및 몰딩').수량", diff --git a/resources/master_data/로직_건설품셈_08장_지반조사.json b/resources/master_data/로직_건설품셈_08장_지반조사.json index f3d24a90e..99d23cb61 100644 --- a/resources/master_data/로직_건설품셈_08장_지반조사.json +++ b/resources/master_data/로직_건설품셈_08장_지반조사.json @@ -99,7 +99,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "싱글코아바렐 {규격}"}, "이름": "싱글코아바렐", "단위": "개", "수량": "찾기(QC000776, 층=층, 종별='싱글코아바렐').수량", @@ -108,7 +108,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "메탈크라운비트 {규격}"}, "이름": "메탈크라운비트", "단위": "개", "수량": "찾기(QC000776, 층=층, 종별='메탈크라운비트').수량", @@ -117,7 +117,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "쵸핑비트 {규격}"}, "이름": "쵸핑비트", "단위": "개", "수량": "만약(층 == '호박돌층', 찾기(QC000776, 층=층, 종별='쵸핑비트').수량, 0)", @@ -126,7 +126,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "드라이브파이프헤드 {규격}"}, "이름": "드라이브파이프헤드", "단위": "개", "수량": "찾기(QC000776, 층=층, 종별='드라이브파이프헤드').수량", @@ -135,7 +135,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "드라이브파이프슈 {규격}"}, "이름": "드라이브파이프슈", "단위": "개", "수량": "찾기(QC000776, 층=층, 종별='드라이브파이프슈').수량", @@ -211,7 +211,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "더블코아바렐 {규격}"}, "이름": "더블코아바렐", "단위": "개", "수량": "찾기(QC000777, 층=층, 종별='더블코아바렐').수량", @@ -220,7 +220,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "메탈크라운비트 {규격}"}, "이름": "메탈크라운비트", "단위": "개", "수량": "만약(층 == '풍화암' 또는 층 == '연암' 또는 층 == '보통암', 찾기(QC000777, 층=층, 종별='메탈크라운비트').수량, 0)", @@ -229,7 +229,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "다이아몬드비트 {규격}"}, "이름": "다이아몬드비트", "단위": "개", "수량": "만약(층 == '경암' 또는 층 == '극경암', 찾기(QC000777, 층=층, 종별='다이아몬드비트').수량, 0)", @@ -238,7 +238,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "메탈리밍쉘 {규격}"}, "이름": "메탈리밍쉘", "단위": "개", "수량": "만약(층 == '풍화암' 또는 층 == '연암' 또는 층 == '보통암', 찾기(QC000777, 층=층, 종별='메탈리밍쉘').수량, 0)", @@ -247,7 +247,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "다이아몬드리밍쉘 {규격}"}, "이름": "다이아몬드리밍쉘", "단위": "개", "수량": "만약(층 == '경암' 또는 층 == '극경암', 찾기(QC000777, 층=층, 종별='다이아몬드리밍쉘').수량, 0)", @@ -256,7 +256,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "코어리프터 {규격}"}, "이름": "코아리프터", "단위": "개", "수량": "찾기(QC000777, 층=층, 종별='코아리프터').수량", @@ -445,7 +445,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "신월튜브"}, "이름": "신월튜브", "단위": "개", "수량": "찾기(QC000781, 종별='신월튜브').수량", @@ -980,7 +980,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "쉬트파일수팽창지수재 DPS-500"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "벤토나이트 그라우팅용(일반)"}, "이름": "벤토나이트", "단위": "㎏", "수량": "찾기(QC000789, 규격=규격, 종별='벤토나이트').수량", @@ -1093,7 +1093,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "쉬트파일수팽창지수재 DPS-500"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "벤토나이트 그라우팅용(일반)"}, "이름": "벤토나이트", "단위": "㎏", "수량": "찾기(QC000790, 규격=규격, 종별='벤토나이트').수량", @@ -1206,7 +1206,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "쉬트파일수팽창지수재 DPS-500"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "벤토나이트 그라우팅용(일반)"}, "이름": "벤토나이트", "단위": "㎏", "수량": "찾기(QC000791, 규격=규격, 종별='벤토나이트').수량", @@ -1319,7 +1319,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "쉬트파일수팽창지수재 DPS-500"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "벤토나이트 그라우팅용(일반)"}, "이름": "벤토나이트", "단위": "㎏", "수량": "찾기(QC000792, 규격=규격, 종별='벤토나이트').수량", @@ -1432,7 +1432,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "쉬트파일수팽창지수재 DPS-500"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "방수·실링", "검색어": "벤토나이트 그라우팅용(일반)"}, "이름": "벤토나이트", "단위": "㎏", "수량": "찾기(QC000793, 규격=규격, 종별='벤토나이트').수량", diff --git a/resources/master_data/로직_건설품셈_09장_미장공사.json b/resources/master_data/로직_건설품셈_09장_미장공사.json index 39b1558af..6f0c574b7 100644 --- a/resources/master_data/로직_건설품셈_09장_미장공사.json +++ b/resources/master_data/로직_건설품셈_09장_미장공사.json @@ -637,7 +637,7 @@ }, { "종류": "재료", - "요소": {"구분": "시멘트·골재", "상세구분": "모르타르", "검색어": "단면복구용몰탈 LDS-Mortar"}, + "요소": {"구분": "시멘트·골재", "상세구분": "모르타르", "검색어": "무수축 그라우트"}, "이름": "무수축모르타르", "단위": "㎏", "수량": "찾기(QC001361, '규격(㎜)'=규격).무수축모르타르", diff --git a/resources/master_data/로직_건설품셈_13장_플랜트설비공사.json b/resources/master_data/로직_건설품셈_13장_플랜트설비공사.json index 498b67913..7fcc100fc 100644 --- a/resources/master_data/로직_건설품셈_13장_플랜트설비공사.json +++ b/resources/master_data/로직_건설품셈_13장_플랜트설비공사.json @@ -2799,7 +2799,7 @@ }, { "종류": "재료", - "요소": {"구분": "단열·보온", "상세구분": "단열재", "검색어": "단열바 STS 프레임(120mm ⓐ120"}, + "요소": {"구분": "단열·보온", "상세구분": "단열재", "검색어": "보온재 강관용"}, "이름": "보온 성형물", "단위": "m", "수량": "만약(보온두께 == '30mm이하', 찾기(QC001650, 'Pipe Size mm'=관경, 구분='직관의물량').성형물, 만약(보온두께 == '31mm∼40mm', 찾기(QC001651, 'Pipe Size mm'=관경, 구분='직관의물량').성형물, 만약(보온두께 == '41mm∼60mm', 찾기(QC001652, 'Pipe Size mm'=관경, 구분='직관의물량').성형물, 만약(보온두께 == '61mm∼75mm', 찾기(QC001653, 'Pipe Size mm'=관경, 구분='직관의물량').성형물, 찾기(QC001654, 'Pipe Size mm'=관경, 구분='직관의물량').성형물)))) * 만약(부위 == '관(m당)', 1, 0)", @@ -2829,7 +2829,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "빗자루 도로청소용"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "Screw 메탈"}, "이름": "Sheet Metal Screw", "단위": "개", "수량": "만약(보온두께 == '30mm이하', 찾기(QC001650, 'Pipe Size mm'=관경, 구분='직관의물량').'Sheet Metal Screw', 만약(보온두께 == '31mm∼40mm', 찾기(QC001651, 'Pipe Size mm'=관경, 구분='직관의물량').'Sheet Metal Screw', 만약(보온두께 == '41mm∼60mm', 찾기(QC001652, 'Pipe Size mm'=관경, 구분='직관의물량').'Sheet Metal Screw', 만약(보온두께 == '61mm∼75mm', 찾기(QC001653, 'Pipe Size mm'=관경, 구분='직관의물량').'Sheet Metal Screw', 찾기(QC001654, 'Pipe Size mm'=관경, 구분='직관의물량').'Sheet Metal Screw')))) * 만약(부위 == '관(m당)', 1, 0)", @@ -4179,7 +4179,7 @@ "결과단위": "원/대", "출처": "건설품셈 기계설비 13-5-2", "소유": "공용", - "비고": "구분 = 드럼 중량(ton) · 공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 막힘: 사용장비 중 기계 목록에 없는 것 — TRUCK 4 ton — 그 줄 빠짐", + "비고": "구분 = 드럼 중량(ton) · 공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 막힘: 사용장비 중 기계 목록에 없는 것 — TRUCK 4 ton — 그 줄 빠짐 · 해석: drum internal 6직종 모두 internal 무게 ton당 — 입력 drum3 하나로 받음", "입력": [ { "이름": "구분", @@ -4277,12 +4277,6 @@ "출처": "건설품셈 기계설비 13-5-2", "비고": "공정 「drum internal조양 및 조립설치(internal 무게 ton당)」 물량" }, - { - "이름": "drum4", - "단위": "식", - "출처": "건설품셈 기계설비 13-5-2", - "비고": "공정 「drum internal조양 및 조립설치(internal 무게 ton당)」 물량" - }, { "이름": "장비일수", "단위": "일", @@ -4365,7 +4359,7 @@ }, { "이름": "비계공", - "식": "작업토의 * 만약(구분 == '50이하', 0.05, 만약(구분 == '100', 0.05, 만약(구분 == '150', 0.05, 만약(구분 == '200', 0.05, 만약(구분 == '250', 0.05, 만약(구분 == '300(ton)', 0.05, 0)))))) + 보조윈치 * 만약(구분 == '50이하', 2.4, 만약(구분 == '100', 2.4, 만약(구분 == '150', 2.4, 만약(구분 == '200', 2.4, 만약(구분 == '250', 2.4, 만약(구분 == '300(ton)', 2.4, 0)))))) + 주윈치설치 * 만약(구분 == '50이하', 26, 만약(구분 == '100', 26, 만약(구분 == '150', 26, 만약(구분 == '200', 26, 만약(구분 == '250', 26, 만약(구분 == '300(ton)', 26, 0)))))) + 소운반 * 만약(구분 == '50이하', 0.445, 만약(구분 == '100', 0.445, 만약(구분 == '150', 0.445, 만약(구분 == '200', 0.445, 만약(구분 == '250', 0.445, 만약(구분 == '300(ton)', 0.445, 0)))))) + drum * 만약(구분 == '50이하', 38.5, 만약(구분 == '100', 61.6, 만약(구분 == '150', 84.7, 만약(구분 == '200', 107.2, 만약(구분 == '250', 127.2, 만약(구분 == '300(ton)', 145.3, 0)))))) + hanger * 만약(구분 == '50이하', 0.5, 만약(구분 == '100', 0.8, 만약(구분 == '150', 1.1, 만약(구분 == '200', 1.3, 만약(구분 == '250', 1.6, 만약(구분 == '300(ton)', 1.9, 0)))))) + 조양 * 만약(구분 == '50이하', 5.7, 만약(구분 == '100', 8.7, 만약(구분 == '150', 11.9, 만약(구분 == '200', 14.9, 만약(구분 == '250', 17.7, 만약(구분 == '300(ton)', 20.3, 0)))))) + scaffolder설치 * 만약(구분 == '50이하', 0.0083, 만약(구분 == '100', 0.0083, 만약(구분 == '150', 0.0083, 만약(구분 == '200', 0.0083, 만약(구분 == '250', 0.0083, 만약(구분 == '300(ton)', 0.0083, 0)))))) + Chain * 만약(구분 == '50이하', 0.028, 만약(구분 == '100', 0.028, 만약(구분 == '150', 0.028, 만약(구분 == '200', 0.028, 만약(구분 == '250', 0.028, 만약(구분 == '300(ton)', 0.028, 0)))))) + drum2 * 만약(구분 == '50이하', 1.9, 만약(구분 == '100', 3.1, 만약(구분 == '150', 4.3, 만약(구분 == '200', 5.3, 만약(구분 == '250', 6.3, 만약(구분 == '300(ton)', 7.2, 0)))))) + drum4 * 만약(구분 == '50이하', 1.6, 만약(구분 == '100', 1.6, 만약(구분 == '150', 1.6, 만약(구분 == '200', 1.6, 만약(구분 == '250', 1.6, 만약(구분 == '300(ton)', 1.6, 0))))))", + "식": "작업토의 * 만약(구분 == '50이하', 0.05, 만약(구분 == '100', 0.05, 만약(구분 == '150', 0.05, 만약(구분 == '200', 0.05, 만약(구분 == '250', 0.05, 만약(구분 == '300(ton)', 0.05, 0)))))) + 보조윈치 * 만약(구분 == '50이하', 2.4, 만약(구분 == '100', 2.4, 만약(구분 == '150', 2.4, 만약(구분 == '200', 2.4, 만약(구분 == '250', 2.4, 만약(구분 == '300(ton)', 2.4, 0)))))) + 주윈치설치 * 만약(구분 == '50이하', 26, 만약(구분 == '100', 26, 만약(구분 == '150', 26, 만약(구분 == '200', 26, 만약(구분 == '250', 26, 만약(구분 == '300(ton)', 26, 0)))))) + 소운반 * 만약(구분 == '50이하', 0.445, 만약(구분 == '100', 0.445, 만약(구분 == '150', 0.445, 만약(구분 == '200', 0.445, 만약(구분 == '250', 0.445, 만약(구분 == '300(ton)', 0.445, 0)))))) + drum * 만약(구분 == '50이하', 38.5, 만약(구분 == '100', 61.6, 만약(구분 == '150', 84.7, 만약(구분 == '200', 107.2, 만약(구분 == '250', 127.2, 만약(구분 == '300(ton)', 145.3, 0)))))) + hanger * 만약(구분 == '50이하', 0.5, 만약(구분 == '100', 0.8, 만약(구분 == '150', 1.1, 만약(구분 == '200', 1.3, 만약(구분 == '250', 1.6, 만약(구분 == '300(ton)', 1.9, 0)))))) + 조양 * 만약(구분 == '50이하', 5.7, 만약(구분 == '100', 8.7, 만약(구분 == '150', 11.9, 만약(구분 == '200', 14.9, 만약(구분 == '250', 17.7, 만약(구분 == '300(ton)', 20.3, 0)))))) + scaffolder설치 * 만약(구분 == '50이하', 0.0083, 만약(구분 == '100', 0.0083, 만약(구분 == '150', 0.0083, 만약(구분 == '200', 0.0083, 만약(구분 == '250', 0.0083, 만약(구분 == '300(ton)', 0.0083, 0)))))) + Chain * 만약(구분 == '50이하', 0.028, 만약(구분 == '100', 0.028, 만약(구분 == '150', 0.028, 만약(구분 == '200', 0.028, 만약(구분 == '250', 0.028, 만약(구분 == '300(ton)', 0.028, 0)))))) + drum2 * 만약(구분 == '50이하', 1.9, 만약(구분 == '100', 3.1, 만약(구분 == '150', 4.3, 만약(구분 == '200', 5.3, 만약(구분 == '250', 6.3, 만약(구분 == '300(ton)', 7.2, 0)))))) + drum3 * 만약(구분 == '50이하', 1.6, 만약(구분 == '100', 1.6, 만약(구분 == '150', 1.6, 만약(구분 == '200', 1.6, 만약(구분 == '250', 1.6, 만약(구분 == '300(ton)', 1.6, 0))))))", "출처": "건설품셈 기계설비 13-5-2" }, { @@ -4395,7 +4389,7 @@ }, { "이름": "일반기계운전사", - "식": "hanger * 만약(구분 == '50이하', 0.5, 만약(구분 == '100', 0.8, 만약(구분 == '150', 1.1, 만약(구분 == '200', 1.3, 만약(구분 == '250', 1.6, 만약(구분 == '300(ton)', 1.9, 0)))))) + 조양 * 만약(구분 == '50이하', 4.3, 만약(구분 == '100', 6.9, 만약(구분 == '150', 9.4, 만약(구분 == '200', 12, 만약(구분 == '250', 14.2, 만약(구분 == '300(ton)', 16.2, 0)))))) + scaffolder설치 * 만약(구분 == '50이하', 0.0083, 만약(구분 == '100', 0.0083, 만약(구분 == '150', 0.0083, 만약(구분 == '200', 0.0083, 만약(구분 == '250', 0.0083, 만약(구분 == '300(ton)', 0.0083, 0)))))) + Chain * 만약(구분 == '50이하', 0.028, 만약(구분 == '100', 0.028, 만약(구분 == '150', 0.028, 만약(구분 == '200', 0.028, 만약(구분 == '250', 0.028, 만약(구분 == '300(ton)', 0.028, 0)))))) + drum2 * 만약(구분 == '50이하', 4.8, 만약(구분 == '100', 7.7, 만약(구분 == '150', 10.5, 만약(구분 == '200', 13.4, 만약(구분 == '250', 15.4, 만약(구분 == '300(ton)', 18.1, 0)))))) + drum4 * 만약(구분 == '50이하', 0.8, 만약(구분 == '100', 0.8, 만약(구분 == '150', 0.8, 만약(구분 == '200', 0.8, 만약(구분 == '250', 0.8, 만약(구분 == '300(ton)', 0.8, 0))))))", + "식": "hanger * 만약(구분 == '50이하', 0.5, 만약(구분 == '100', 0.8, 만약(구분 == '150', 1.1, 만약(구분 == '200', 1.3, 만약(구분 == '250', 1.6, 만약(구분 == '300(ton)', 1.9, 0)))))) + 조양 * 만약(구분 == '50이하', 4.3, 만약(구분 == '100', 6.9, 만약(구분 == '150', 9.4, 만약(구분 == '200', 12, 만약(구분 == '250', 14.2, 만약(구분 == '300(ton)', 16.2, 0)))))) + scaffolder설치 * 만약(구분 == '50이하', 0.0083, 만약(구분 == '100', 0.0083, 만약(구분 == '150', 0.0083, 만약(구분 == '200', 0.0083, 만약(구분 == '250', 0.0083, 만약(구분 == '300(ton)', 0.0083, 0)))))) + Chain * 만약(구분 == '50이하', 0.028, 만약(구분 == '100', 0.028, 만약(구분 == '150', 0.028, 만약(구분 == '200', 0.028, 만약(구분 == '250', 0.028, 만약(구분 == '300(ton)', 0.028, 0)))))) + drum2 * 만약(구분 == '50이하', 4.8, 만약(구분 == '100', 7.7, 만약(구분 == '150', 10.5, 만약(구분 == '200', 13.4, 만약(구분 == '250', 15.4, 만약(구분 == '300(ton)', 18.1, 0)))))) + drum3 * 만약(구분 == '50이하', 0.8, 만약(구분 == '100', 0.8, 만약(구분 == '150', 0.8, 만약(구분 == '200', 0.8, 만약(구분 == '250', 0.8, 만약(구분 == '300(ton)', 0.8, 0))))))", "출처": "건설품셈 기계설비 13-5-2" }, { @@ -4405,7 +4399,7 @@ }, { "이름": "도장공", - "식": "drum4 * 만약(구분 == '50이하', 1.2, 만약(구분 == '100', 1.2, 만약(구분 == '150', 1.2, 만약(구분 == '200', 1.2, 만약(구분 == '250', 1.2, 만약(구분 == '300(ton)', 1.2, 0))))))", + "식": "drum3 * 만약(구분 == '50이하', 1.2, 만약(구분 == '100', 1.2, 만약(구분 == '150', 1.2, 만약(구분 == '200', 1.2, 만약(구분 == '250', 1.2, 만약(구분 == '300(ton)', 1.2, 0))))))", "출처": "건설품셈 기계설비 13-5-2" } ], @@ -5363,7 +5357,7 @@ { "이름": "Foundation", "단위": "㎡", "출처": "건설품셈 기계설비 13-5-8", "비고": "공정 「Foundation Chipping 양질의 Con- crete 표면이 나올 때까지 2두께 정도 까냄.」 물량" }, { "이름": "Foundation2", - "단위": "Shaf t", + "단위": "Shaft", "출처": "건설품셈 기계설비 13-5-8", "비고": "공정 「Foundation Marking Anchor bolt 위치 Sole Plate 위치를 결정 표시함. (Turbine shaft 토막당)」 물량" }, @@ -5533,7 +5527,7 @@ }, { "이름": "Lifting2", - "단위": "대인", + "단위": "대", "출처": "건설품셈 기계설비 13-5-9", "비고": "공정 「Lifting device 설치 Generator 조양설치를 위해 설치하고 완료후 철거함.」 물량" }, @@ -6893,12 +6887,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.242", + "단위": "L", + "수량": "0.242 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-1" + "출처": "건설품셈 기계설비 13-6-1", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -6969,35 +6964,19 @@ "출처": "건설품셈 기계설비 13-6-1" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "PVC코팅철선 #8" }, "이름": "비닐세트", "단위": "m", "수량": "1", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-1" }, - { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "PVC코팅철선 #8" }, "이름": "소창직", "단위": "m", "수량": "0.86", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-1" }, + { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "소창직" }, "이름": "소창직", "단위": "m", "수량": "0.86", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-1" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "보일유" }, "이름": "보일유", "단위": "ℓ", "수량": "0.008", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-1" }, { "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, + "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신너 조합페인트용" }, "이름": "시너", "단위": "ℓ", "수량": "0.012", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-1" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "광명단", - "단위": "ℓ", - "수량": "0.062", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-1" - }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "조합페인트", - "단위": "ℓ", - "수량": "0.062", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-1" - } + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "ℓ", "수량": "0.062", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-1" }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "조합페인트" }, "이름": "조합페인트", "단위": "ℓ", "수량": "0.062", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-1" } ], "덧줄": [], "끝수": null @@ -7130,15 +7109,7 @@ "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "대표": "MT030646" }, "이름": "Grease", "단위": "㎏", "수량": "0.175", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "시너", - "단위": "ℓ", - "수량": "0.138", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-2" - }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "에나멜신너" }, "이름": "시너", "단위": "ℓ", "수량": "0.138", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "철근·강재", "상세구분": "철선", "검색어": "Galvanized wire #8∼#16" }, @@ -7195,15 +7166,7 @@ "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "코크스" }, "이름": "코크스", "단위": "㎏", "수량": "0.328", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, - { - "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "그리스(일반범용) CROWN" }, - "이름": "목탄", - "단위": "㎏", - "수량": "0.82", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-2" - }, + { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "목탄" }, "이름": "목탄", "단위": "㎏", "수량": "0.82", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "산소 6000ℓ/병" }, @@ -7216,12 +7179,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.084", + "단위": "L", + "수량": "0.084 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-2" + "출처": "건설품셈 기계설비 13-6-2", + "비고": "원문 표 규격 칸이 한 줄 밀려 「4ø∼5ø」로 찍힘 — 해석: 13-6-1 참고표와 같이 4,500ℓ입 병 · 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -7233,15 +7197,7 @@ "출처": "건설품셈 기계설비 13-6-2", "비고": "원문 규격 3.2ø" }, - { - "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%" }, - "이름": "가스용접봉", - "단위": "㎏", - "수량": "0.146", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-2" - }, + { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 산소" }, "이름": "가스용접봉", "단위": "㎏", "수량": "0.146", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%" }, @@ -7261,7 +7217,7 @@ "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "광목" }, "이름": "광목", "단위": "m", "수량": "0.402", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, - { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "PVC코팅철선 #8" }, "이름": "소창직", "단위": "m", "수량": "0.134", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, + { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "소창직" }, "이름": "소창직", "단위": "m", "수량": "0.134", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "그리스(일반범용) CROWN" }, @@ -7280,15 +7236,7 @@ "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "방청페인트", - "단위": "ℓ", - "수량": "0.069", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-2" - }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "방청페인트" }, "이름": "방청페인트", "단위": "ℓ", "수량": "0.069", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-2" }, { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, @@ -7446,12 +7394,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "3.23", + "단위": "L", + "수량": "3.23 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-3" + "출처": "건설품셈 기계설비 13-6-3", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -7474,15 +7423,7 @@ }, { "종류": "재료", "요소": { "이름": "모래", "규격": "", "지역": "입력" }, "이름": "모래", "단위": "㎥", "수량": "0.262", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" }, { "종류": "재료", "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "Nozzle" }, "이름": "Nozzle", "단위": "개", "수량": "0.5", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "광명단", - "단위": "ℓ", - "수량": "2.5", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-3" - }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "ℓ", "수량": "2.5", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" }, { "종류": "재료", "요소": { "이름": "전력량요금", "계약종별": "입력" }, "이름": "전력", "단위": "㎾h", "수량": "370", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" } ], "덧줄": [], @@ -7596,12 +7537,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "2.58", + "단위": "L", + "수량": "2.58 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-3" + "출처": "건설품셈 기계설비 13-6-3", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -7624,15 +7566,7 @@ }, { "종류": "재료", "요소": { "이름": "모래", "규격": "", "지역": "입력" }, "이름": "모래", "단위": "㎥", "수량": "0.242", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" }, { "종류": "재료", "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "Nozzle" }, "이름": "Nozzle", "단위": "개", "수량": "0.5", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "광명단", - "단위": "ℓ", - "수량": "2.2", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-3" - }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "ℓ", "수량": "2.2", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" }, { "종류": "재료", "요소": { "이름": "전력량요금", "계약종별": "입력" }, "이름": "전력", "단위": "㎾h", "수량": "310", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-3" }, { "종류": "로직", @@ -7731,12 +7665,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.45", + "단위": "L", + "수량": "0.45 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-4" + "출처": "건설품셈 기계설비 13-6-4", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -7748,24 +7683,8 @@ "출처": "건설품셈 기계설비 13-6-4", "비고": "원문 규격 4ø×350ℓ" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "광명단", - "단위": "ℓ", - "수량": "2.5", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-4" - }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "페인트", - "단위": "ℓ", - "수량": "5", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-4" - } + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "ℓ", "수량": "2.5", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-4" }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "에나멜페인트" }, "이름": "페인트", "단위": "ℓ", "수량": "5", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-4" } ], "덧줄": [], "끝수": null @@ -7858,12 +7777,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.39", + "단위": "L", + "수량": "0.39 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-4" + "출처": "건설품셈 기계설비 13-6-4", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -7876,24 +7796,8 @@ "비고": "원문 규격 4ø×350ℓ" }, { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "소모품", "검색어": "코크스" }, "이름": "코크스", "단위": "㎏", "수량": "27", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-4" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "광명단", - "단위": "ℓ", - "수량": "2.2", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-4" - }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "페인트", - "단위": "ℓ", - "수량": "4.4", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-4" - } + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "ℓ", "수량": "2.2", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-4" }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "에나멜페인트" }, "이름": "페인트", "단위": "ℓ", "수량": "4.4", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-4" } ], "덧줄": [], "끝수": null @@ -8002,12 +7906,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.33", + "단위": "L", + "수량": "0.33 * 4000", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-5" + "출처": "건설품셈 기계설비 13-6-5", + "비고": "원문 병(4,000ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,000ℓ 환산" }, { "종류": "재료", @@ -8019,24 +7924,8 @@ "출처": "건설품셈 기계설비 13-6-5", "비고": "원문 규격 4ø×350ℓ" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신구접착및방청제 LDS-MP" }, - "이름": "광명단", - "단위": "㎏", - "수량": "2.2", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-5" - }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신구접착및방청제 LDS-MP" }, - "이름": "페인트", - "단위": "㎏", - "수량": "4.4", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-5" - } + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "㎏", "수량": "2.2", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-5" }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "에나멜페인트" }, "이름": "페인트", "단위": "㎏", "수량": "4.4", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-5" } ], "덧줄": [], "끝수": null @@ -8129,12 +8018,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "1.98", + "단위": "L", + "수량": "1.98 * 4000", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-6" + "출처": "건설품셈 기계설비 13-6-6", + "비고": "원문 병(4,000ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,000ℓ 환산" }, { "종류": "재료", @@ -8157,15 +8047,7 @@ }, { "종류": "재료", "요소": { "이름": "모래", "규격": "", "지역": "입력" }, "이름": "모래", "단위": "㎥", "수량": "0.242", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-6" }, { "종류": "재료", "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "Nozzle" }, "이름": "Nozzle", "단위": "개", "수량": "0.5", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-6" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "광명단", - "단위": "ℓ", - "수량": "2.2", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-6" - }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "ℓ", "수량": "2.2", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-6" }, { "종류": "재료", "요소": { "이름": "전력량요금", "계약종별": "입력" }, "이름": "전력", "단위": "㎾h", "수량": "306", "비목": "재료비", "출처": "건설품셈 기계설비 13-6-6" } ], "덧줄": [], @@ -8177,7 +8059,7 @@ "결과단위": "원/ton", "출처": "건설품셈 기계설비 13-6-7", "소유": "공용", - "비고": "공정별 품의 합(ton당) · 검사 · 교정은 기술관리, 시운전, 조작을 뺀 품의 10%(원문 줄) — 각 직종에 더함 · 해석: 원문 「〃」 · 「수량」 칸 = 앞 직종(플랜트제관공) · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 막힘: 장비 중 기계 목록에 없는 것 — Gas Cutting machine 중형 · Portable Drill 1.12㎾ · Portable Grinder 0.37㎾ · Guy Derrick 10 ton · Truck 5 ton — 그 줄 빠짐", + "비고": "공정별 품의 합(ton당) · 검사 · 교정은 기술관리, 시운전, 조작을 뺀 품의 10%(원문 줄) — 각 직종에 더함 · 해석: 원문 「〃」 · 「수량」 칸 = 앞 직종(플랜트제관공) · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 막힘: 장비 중 기계 목록에 없는 것 — Gas Cutting machine 중형 · Portable Drill 1.12㎾ · Portable Grinder 0.37㎾ · Guy Derrick 10 ton · Truck 5 ton — 그 줄 빠짐 · 해석: 소모자재 「기타 10%」 = 소모자재 재료비(산소·아세틸렌·용접봉·세유)의 10%(원문에 기준 항목 글 없음)", "입력": [ { "이름": "장비일수", @@ -8377,12 +8259,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.33", + "단위": "L", + "수량": "0.33 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-7" + "출처": "건설품셈 기계설비 13-6-7", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -8404,7 +8287,14 @@ "출처": "건설품셈 기계설비 13-6-7" } ], - "덧줄": [], + "덧줄": [ + { + "이름": "기타 소모자재", + "식": "재료비 * 10 / 100", + "비목": "재료비", + "출처": "건설품셈 기계설비 13-6-7 소모자재 「기타 10%」" + } + ], "끝수": null }, { @@ -8671,12 +8561,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.32", + "단위": "L", + "수량": "0.32 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-8" + "출처": "건설품셈 기계설비 13-6-8", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -8890,12 +8781,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.57", + "단위": "L", + "수량": "0.57 * 2500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-9" + "출처": "건설품셈 기계설비 13-6-9", + "비고": "원문 병(2,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,500ℓ 환산" }, { "종류": "재료", @@ -8953,7 +8845,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신너"}, "이름": "시너", "단위": "ℓ", "수량": "0.055", @@ -8971,7 +8863,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신너"}, "이름": "시너", "단위": "ℓ", "수량": "0.45", @@ -9181,12 +9073,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.39", + "단위": "L", + "수량": "0.39 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-10" + "출처": "건설품셈 기계설비 13-6-10", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -9448,12 +9341,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "1.6", + "단위": "L", + "수량": "1.6 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-11" + "출처": "건설품셈 기계설비 13-6-11", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -9725,12 +9619,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.2", + "단위": "L", + "수량": "0.2 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-12" + "출처": "건설품셈 기계설비 13-6-12", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -9948,12 +9843,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "1.6", + "단위": "L", + "수량": "1.6 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-13" + "출처": "건설품셈 기계설비 13-6-13", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -9966,7 +9862,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 전기"}, "이름": "전기용접봉", "단위": "㎏", "수량": "22.5", @@ -10172,12 +10068,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.05", + "단위": "L", + "수량": "0.05 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-14" + "출처": "건설품셈 기계설비 13-6-14", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -10361,12 +10258,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "1.275", + "단위": "L", + "수량": "1.275 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-15" + "출처": "건설품셈 기계설비 13-6-15", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -10388,7 +10286,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "빗자루 도로청소용"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "그라인더돌 12\"ø"}, "이름": "연마석", "단위": "개", "수량": "1.55", @@ -10651,12 +10549,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "1.5", + "단위": "L", + "수량": "1.5 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-17" + "출처": "건설품셈 기계설비 13-6-17", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -10889,12 +10788,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.8", + "단위": "L", + "수량": "0.8 * 3500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-9" + "출처": "건설품셈 기계설비 13-6-9", + "비고": "원문 병(3,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×3,500ℓ 환산" }, { "종류": "재료", @@ -11099,12 +10999,13 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.012", + "단위": "L", + "수량": "0.012 * 2100", "비목": "재료비", - "출처": "건설품셈 기계설비 13-6-16" + "출처": "건설품셈 기계설비 13-6-16", + "비고": "원문 병(2,100ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×2,100ℓ 환산" }, { "종류": "재료", @@ -11126,7 +11027,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신너"}, "이름": "시너", "단위": "ℓ", "수량": "1.58", @@ -12515,7 +12416,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-7-18", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사및교정: 기술관리를 제외한 본 품의 10% — 기술관리(기계기사) 외 모든 직종 × 1.1", "입력": [ { "이름": "기술관리", @@ -12544,22 +12445,22 @@ }, { "이름": "특별인부", - "식": "표면손질 * 0.1 + 조립설치 * 1.803", + "식": "(표면손질 * 0.1 + 조립설치 * 1.803) * 1.1", "출처": "건설품셈 기계설비 13-7-18" }, { "이름": "플랜트기계설치공", - "식": "조립설치 * 3.245", + "식": "조립설치 * 3.245 * 1.1", "출처": "건설품셈 기계설비 13-7-18" }, { "이름": "비계공", - "식": "조립설치 * 1.622", + "식": "조립설치 * 1.622 * 1.1", "출처": "건설품셈 기계설비 13-7-18" }, { "이름": "플랜트용접공", - "식": "조립설치 * 0.541", + "식": "조립설치 * 0.541 * 1.1", "출처": "건설품셈 기계설비 13-7-18" } ], @@ -12615,7 +12516,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-7-19", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사및교정: 기술관리를 제외한 본 품의 10% — 기술관리(기계기사) 외 모든 직종 × 1.1", "입력": [ { "이름": "기술관리", @@ -12650,22 +12551,22 @@ }, { "이름": "특별인부", - "식": "표면손질 * 0.1 + 가조립및해체 * 0.324 + 조립설치 * 1.803", + "식": "(표면손질 * 0.1 + 가조립및해체 * 0.324 + 조립설치 * 1.803) * 1.1", "출처": "건설품셈 기계설비 13-7-19" }, { "이름": "플랜트기계설치공", - "식": "가조립및해체 * 0.9 + 조립설치 * 3.245", + "식": "(가조립및해체 * 0.9 + 조립설치 * 3.245) * 1.1", "출처": "건설품셈 기계설비 13-7-19" }, { "이름": "비계공", - "식": "조립설치 * 1.622", + "식": "조립설치 * 1.622 * 1.1", "출처": "건설품셈 기계설비 13-7-19" }, { "이름": "플랜트용접공", - "식": "조립설치 * 0.541", + "식": "조립설치 * 0.541 * 1.1", "출처": "건설품셈 기계설비 13-7-19" } ], @@ -12721,7 +12622,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-7-20", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사및교정: 기술관리를 제외한 본 품의 10% — 기술관리(기계기사) 외 모든 직종 × 1.1", "입력": [ { "이름": "기술관리", @@ -12756,17 +12657,17 @@ }, { "이름": "특별인부", - "식": "표면손질 * 0.1 + 가조립및해체 * 0.263 + 조립설치 * 1.17", + "식": "(표면손질 * 0.1 + 가조립및해체 * 0.263 + 조립설치 * 1.17) * 1.1", "출처": "건설품셈 기계설비 13-7-20" }, { "이름": "플랜트기계설치공", - "식": "가조립및해체 * 0.79 + 조립설치 * 2.47", + "식": "(가조립및해체 * 0.79 + 조립설치 * 2.47) * 1.1", "출처": "건설품셈 기계설비 13-7-20" }, { "이름": "비계공", - "식": "조립설치 * 1.05", + "식": "조립설치 * 1.05 * 1.1", "출처": "건설품셈 기계설비 13-7-20" } ], @@ -12814,7 +12715,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-7-21", "소유": "공용", - "비고": "장비 및 공구손료 별도(원문 요율 없음) · 양극 plate 2.25 × 14m 기준 · Duct · 전기공사 별도 · 공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "장비 및 공구손료 별도(원문 요율 없음) · 양극 plate 2.25 × 14m 기준 · Duct · 전기공사 별도 · 공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사및교정: 기술관리를 제외한 본 품의 10% — 기술관리(기계기사) 외 모든 직종 × 1.1", "입력": [ { "이름": "기술관리공사기간중", @@ -12921,32 +12822,32 @@ }, { "이름": "특별인부", - "식": "표면손질 * 0.16 + 조립설치 * 3.12 + Setting함 * 0.0646 + 조립조양 * 0.0794", + "식": "(표면손질 * 0.16 + 조립설치 * 3.12 + Setting함 * 0.0646 + 조립조양 * 0.0794) * 1.1", "출처": "건설품셈 기계설비 13-7-21" }, { "이름": "철골공", - "식": "본체 * 4.98", + "식": "본체 * 4.98 * 1.1", "출처": "건설품셈 기계설비 13-7-21" }, { "이름": "비계공", - "식": "Shell * 3.27 + Conveyor * 2.29 + Leveling * 0.0198 + 지상교정2 * 0.0315", + "식": "(Shell * 3.27 + Conveyor * 2.29 + Leveling * 0.0198 + 지상교정2 * 0.0315) * 1.1", "출처": "건설품셈 기계설비 13-7-21" }, { "이름": "기계설비공", - "식": "Hand * 0.82 + 구동기기 * 5.79", + "식": "(Hand * 0.82 + 구동기기 * 5.79) * 1.1", "출처": "건설품셈 기계설비 13-7-21" }, { "이름": "용접공", - "식": "Stair의 * 0.8 + Lapping * 0.76 + Setting함 * 0.0101 + 조립조양 * 0.0045", + "식": "(Stair의 * 0.8 + Lapping * 0.76 + Setting함 * 0.0101 + 조립조양 * 0.0045) * 1.1", "출처": "건설품셈 기계설비 13-7-21" }, { "이름": "플랜트제관공", - "식": "지상교정 * 0.0479 + 음극 * 0.0618", + "식": "(지상교정 * 0.0479 + 음극 * 0.0618) * 1.1", "출처": "건설품셈 기계설비 13-7-21" } ], @@ -13018,7 +12919,7 @@ "결과단위": "원/기", "출처": "건설품셈 기계설비 13-7-16", "소유": "공용", - "비고": "지하 10m 설치 기준(원문 비고) · 기술관리는 일수 · 조립설치는 ton · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "지하 10m 설치 기준(원문 비고) · 기술관리는 일수 · 조립설치는 ton · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사및교정: 기술관리를 제외한 본 품의 10% — 기술관리(기계기사) 외 모든 직종 × 1.1", "입력": [ { "이름": "기술관리", @@ -13041,22 +12942,22 @@ }, { "이름": "플랜트기계설치공", - "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').플랜트기계설치공", + "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').플랜트기계설치공 * 1.1", "출처": "건설품셈 기계설비 13-7-16" }, { "이름": "철골공", - "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').철골공", + "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').철골공 * 1.1", "출처": "건설품셈 기계설비 13-7-16" }, { "이름": "비계공", - "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').비계공", + "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').비계공 * 1.1", "출처": "건설품셈 기계설비 13-7-16" }, { "이름": "특별인부", - "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').특별인부", + "식": "중량 * 찾기(QC001770, 작업구분='조립설치', 구분='수량').특별인부 * 1.1", "출처": "건설품셈 기계설비 13-7-16" } ], @@ -13112,7 +13013,7 @@ "결과단위": "원/기", "출처": "건설품셈 기계설비 13-7-17", "소유": "공용", - "비고": "지하 5m 설치 기준(원문 비고) · 기술관리는 일수 · 조립설치는 ton · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "지하 5m 설치 기준(원문 비고) · 기술관리는 일수 · 조립설치는 ton · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사및교정: 기술관리를 제외한 본 품의 10% — 기술관리(기계기사) 외 모든 직종 × 1.1", "입력": [ { "이름": "기술관리", @@ -13135,22 +13036,22 @@ }, { "이름": "플랜트기계설치공", - "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').플랜트기계설치공", + "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').플랜트기계설치공 * 1.1", "출처": "건설품셈 기계설비 13-7-17" }, { "이름": "철골공", - "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').철골공", + "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').철골공 * 1.1", "출처": "건설품셈 기계설비 13-7-17" }, { "이름": "비계공", - "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').비계공", + "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').비계공 * 1.1", "출처": "건설품셈 기계설비 13-7-17" }, { "이름": "특별인부", - "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').특별인부", + "식": "중량 * 찾기(QC001771, 작업구분='조립설치', 구분='수량').특별인부 * 1.1", "출처": "건설품셈 기계설비 13-7-17" } ], @@ -13256,7 +13157,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-8-1", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사 및 교정: 기술관리 · 포장해체를 제외한 공량의 10% — 그 외 직종 × 1.1(포장해체 몫은 그대로)", "입력": [ { "이름": "기술관리", @@ -13373,52 +13274,52 @@ }, { "이름": "건축목공", - "식": "포장해체 * 0.07 + 내화물 * 0.32", + "식": "내화물 * 0.32 * 1.1 + 포장해체 * 0.07", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "특별인부", - "식": "포장해체 * 0.33 + 표면손질 * 0.15 + 급진기Fuel * 3.73 + 소각로 * 3.12 + 화격자Fire * 2.39 + 내화물 * 1.71 + 재 * 3.37 + 원치 * 4.95", + "식": "(표면손질 * 0.15 + 급진기Fuel * 3.73 + 소각로 * 3.12 + 화격자Fire * 2.39 + 내화물 * 1.71 + 재 * 3.37 + 원치 * 4.95) * 1.1 + 포장해체 * 0.33", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "플랜트기계설치공", - "식": "급진기Fuel * 4.45 + 소각로 * 3.61 + 화격자Fire * 4.81 + 재 * 5.47", + "식": "(급진기Fuel * 4.45 + 소각로 * 3.61 + 화격자Fire * 4.81 + 재 * 5.47) * 1.1", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "비계공", - "식": "급진기Fuel * 3.35 + 소각로 * 3.05 + 화격자Fire * 3.1 + 내화물 * 0.17 + 재 * 4.36 + 원치 * 11", + "식": "(급진기Fuel * 3.35 + 소각로 * 3.05 + 화격자Fire * 3.1 + 내화물 * 0.17 + 재 * 4.36 + 원치 * 11) * 1.1", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "플랜트제관공", - "식": "급진기Fuel * 4.75 + 소각로 * 4.7 + 화격자Fire * 2.16 + 재 * 3.44", + "식": "(급진기Fuel * 4.75 + 소각로 * 4.7 + 화격자Fire * 2.16 + 재 * 3.44) * 1.1", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "플랜트용접공", - "식": "급진기Fuel * 2.96 + 소각로 * 2.38 + 화격자Fire * 1.16", + "식": "(급진기Fuel * 2.96 + 소각로 * 2.38 + 화격자Fire * 1.16) * 1.1", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "제철축로공", - "식": "내화물 * 2.67", + "식": "내화물 * 2.67 * 1.1", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "보통인부", - "식": "내화물 * 2.56", + "식": "내화물 * 2.56 * 1.1", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "기계설비공", - "식": "원치 * 3.3", + "식": "원치 * 3.3 * 1.1", "출처": "건설품셈 기계설비 13-8-1" }, { "이름": "용접공", - "식": "원치 * 3.3", + "식": "원치 * 3.3 * 1.1", "출처": "건설품셈 기계설비 13-8-1" } ], @@ -13586,7 +13487,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-8-2", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사 및 교정: 기술관리 · 포장해체를 제외한 공량의 10% — 그 외 직종 × 1.1(포장해체 몫은 그대로)", "입력": [ { "이름": "기술관리", @@ -13714,37 +13615,37 @@ }, { "이름": "특별인부", - "식": "포장해체 * 0.18 + 표면손질 * 0.15 + 용접손질 * 0.04 + 보일러 * 1.21 + Tube * 1.18 + Buckstay * 2.47 + 본 * 0.95 + Sealing * 2.63 + 원치 * 4.95", + "식": "(표면손질 * 0.15 + 용접손질 * 0.04 + 보일러 * 1.21 + Tube * 1.18 + Buckstay * 2.47 + 본 * 0.95 + Sealing * 2.63 + 원치 * 4.95) * 1.1 + 포장해체 * 0.18", "출처": "건설품셈 기계설비 13-8-2" }, { "이름": "플랜트기계설치공", - "식": "보일러 * 1.86 + Tube * 2.08 + Buckstay * 3.01", + "식": "(보일러 * 1.86 + Tube * 2.08 + Buckstay * 3.01) * 1.1", "출처": "건설품셈 기계설비 13-8-2" }, { "이름": "비계공", - "식": "보일러 * 0.92 + Tube * 1.26 + Buckstay * 1.7 + 원치 * 11", + "식": "(보일러 * 0.92 + Tube * 1.26 + Buckstay * 1.7 + 원치 * 11) * 1.1", "출처": "건설품셈 기계설비 13-8-2" }, { "이름": "플랜트용접공", - "식": "보일러 * 1.55 + Tube * 0.89 + Buckstay * 1.39 + 본 * 9.36 + Sealing * 4.86", + "식": "(보일러 * 1.55 + Tube * 0.89 + Buckstay * 1.39 + 본 * 9.36 + Sealing * 4.86) * 1.1", "출처": "건설품셈 기계설비 13-8-2" }, { "이름": "플랜트제관공", - "식": "Tube * 1.49 + 본 * 8.35 + Sealing * 9.73", + "식": "(Tube * 1.49 + 본 * 8.35 + Sealing * 9.73) * 1.1", "출처": "건설품셈 기계설비 13-8-2" }, { "이름": "기계설비공", - "식": "원치 * 3.3", + "식": "원치 * 3.3 * 1.1", "출처": "건설품셈 기계설비 13-8-2" }, { "이름": "용접공", - "식": "원치 * 3.3", + "식": "원치 * 3.3 * 1.1", "출처": "건설품셈 기계설비 13-8-2" } ], @@ -13888,7 +13789,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-8-4", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사 및 교정: 기술관리 · 포장해체를 제외한 공량의 10% — 그 외 직종 × 1.1(포장해체 몫은 그대로)", "입력": [ { "이름": "기술관리", @@ -13999,32 +13900,32 @@ }, { "이름": "특별인부", - "식": "포장해체 * 0.12 + 표면손질 * 0.39 + 현장교정 * 0.29 + 기초작업 * 0.04 + 소운반 * 0.62 + 본체조립 * 1.01 + Inner * 2.16 + 본체 * 1.53", + "식": "(표면손질 * 0.39 + 현장교정 * 0.29 + 기초작업 * 0.04 + 소운반 * 0.62 + 본체조립 * 1.01 + Inner * 2.16 + 본체 * 1.53) * 1.1 + 포장해체 * 0.12", "출처": "건설품셈 기계설비 13-8-4" }, { "이름": "플랜트제관공", - "식": "현장교정 * 0.64 + 본체조립 * 0.94 + Inner * 1.49 + 본체 * 0.54", + "식": "(현장교정 * 0.64 + 본체조립 * 0.94 + Inner * 1.49 + 본체 * 0.54) * 1.1", "출처": "건설품셈 기계설비 13-8-4" }, { "이름": "플랜트기계설치공", - "식": "기초작업 * 0.03 + 본체 * 1.78", + "식": "(기초작업 * 0.03 + 본체 * 1.78) * 1.1", "출처": "건설품셈 기계설비 13-8-4" }, { "이름": "건설기계운전사", - "식": "소운반 * 0.2 + 본체조립 * 1.13 + 본체 * 0.48", + "식": "(소운반 * 0.2 + 본체조립 * 1.13 + 본체 * 0.48) * 1.1", "출처": "건설품셈 기계설비 13-8-4" }, { "이름": "플랜트용접공", - "식": "본체조립 * 1.25 + Inner * 2.18 + 본체 * 0.92", + "식": "(본체조립 * 1.25 + Inner * 2.18 + 본체 * 0.92) * 1.1", "출처": "건설품셈 기계설비 13-8-4" }, { "이름": "비계공", - "식": "본체 * 1.85", + "식": "본체 * 1.85 * 1.1", "출처": "건설품셈 기계설비 13-8-4" } ], @@ -14136,7 +14037,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-8-5", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사 및 교정: 기술관리 · 포장해체를 제외한 공량의 10% — 그 외 직종 × 1.1(포장해체 몫은 그대로)", "입력": [ { "이름": "기술관리", @@ -14259,32 +14160,32 @@ }, { "이름": "특별인부", - "식": "포장해체 * 0.14 + 표면손질 * 0.24 + 소운반 * 0.66 + 기초작업 * 0.01 + 현장교정 * 2.07 + 본체조립 * 3.93 + Inner * 3.37 + 용접손질 * 0.07 + 본체 * 2.28 + Sealing * 1.07", + "식": "(표면손질 * 0.24 + 소운반 * 0.66 + 기초작업 * 0.01 + 현장교정 * 2.07 + 본체조립 * 3.93 + Inner * 3.37 + 용접손질 * 0.07 + 본체 * 2.28 + Sealing * 1.07) * 1.1 + 포장해체 * 0.14", "출처": "건설품셈 기계설비 13-8-5" }, { "이름": "건설기계운전사", - "식": "소운반 * 0.21 + 본체조립 * 1.32 + 본체 * 4.07", + "식": "(소운반 * 0.21 + 본체조립 * 1.32 + 본체 * 4.07) * 1.1", "출처": "건설품셈 기계설비 13-8-5" }, { "이름": "플랜트기계설치공", - "식": "기초작업 * 0.01 + 현장교정 * 0.04 + 본체 * 4.28", + "식": "(기초작업 * 0.01 + 현장교정 * 0.04 + 본체 * 4.28) * 1.1", "출처": "건설품셈 기계설비 13-8-5" }, { "이름": "플랜트제관공", - "식": "본체조립 * 1.91 + Inner * 1.14 + 용접손질 * 2.19 + 본체 * 0.54 + Sealing * 4.99", + "식": "(본체조립 * 1.91 + Inner * 1.14 + 용접손질 * 2.19 + 본체 * 0.54 + Sealing * 4.99) * 1.1", "출처": "건설품셈 기계설비 13-8-5" }, { "이름": "플랜트용접공", - "식": "본체조립 * 2.04 + Inner * 3.36 + 본체 * 3.97 + Sealing * 14.74", + "식": "(본체조립 * 2.04 + Inner * 3.36 + 본체 * 3.97 + Sealing * 14.74) * 1.1", "출처": "건설품셈 기계설비 13-8-5" }, { "이름": "비계공", - "식": "본체 * 1.66", + "식": "본체 * 1.66 * 1.1", "출처": "건설품셈 기계설비 13-8-5" } ], @@ -14388,7 +14289,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-8-6", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사 및 교정: 기술관리 · 포장해체를 제외한 공량의 10% — 그 외 직종 × 1.1(포장해체 몫은 그대로)", "입력": [ { "이름": "기술관리", @@ -14481,37 +14382,37 @@ }, { "이름": "특별인부", - "식": "포장해체 * 0.12 + 기초작업 * 0.37 + 본체조립설치 * 4.02 + 비산재 * 3.34 + 휠터백 * 0.08", + "식": "(기초작업 * 0.37 + 본체조립설치 * 4.02 + 비산재 * 3.34 + 휠터백 * 0.08) * 1.1 + 포장해체 * 0.12", "출처": "건설품셈 기계설비 13-8-6" }, { "이름": "플랜트기계설치공", - "식": "기초작업 * 0.12 + 본체조립설치 * 3.28 + 비산재 * 4.61", + "식": "(기초작업 * 0.12 + 본체조립설치 * 3.28 + 비산재 * 4.61) * 1.1", "출처": "건설품셈 기계설비 13-8-6" }, { "이름": "철골공", - "식": "본체조립설치 * 3.39", + "식": "본체조립설치 * 3.39 * 1.1", "출처": "건설품셈 기계설비 13-8-6" }, { "이름": "비계공", - "식": "본체조립설치 * 1.89 + 비산재 * 1.95 + 휠터백 * 0.06", + "식": "(본체조립설치 * 1.89 + 비산재 * 1.95 + 휠터백 * 0.06) * 1.1", "출처": "건설품셈 기계설비 13-8-6" }, { "이름": "플랜트용접공", - "식": "본체조립설치 * 2.43 + 비산재 * 1.66 + 휠터백 * 0.01", + "식": "(본체조립설치 * 2.43 + 비산재 * 1.66 + 휠터백 * 0.01) * 1.1", "출처": "건설품셈 기계설비 13-8-6" }, { "이름": "건설기계운전사", - "식": "본체조립설치 * 0.81", + "식": "본체조립설치 * 0.81 * 1.1", "출처": "건설품셈 기계설비 13-8-6" }, { "이름": "플랜트제관공", - "식": "휠터백 * 0.05", + "식": "휠터백 * 0.05 * 1.1", "출처": "건설품셈 기계설비 13-8-6" } ], @@ -14647,7 +14548,7 @@ "결과단위": "원/식", "출처": "건설품셈 기계설비 13-8-7", "소유": "공용", - "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사 및 교정: 기술관리 · 포장해체를 제외한 공량의 10% — 그 외 직종 × 1.1(포장해체 몫은 그대로)", "입력": [ { "이름": "기술관리", @@ -14740,32 +14641,32 @@ }, { "이름": "특별인부", - "식": "포장해체 * 0.12 + 기초작업 * 0.39 + 반응조제 * 1.93 + 소석회 * 2.6 + 혼합기 * 1.16", + "식": "(기초작업 * 0.39 + 반응조제 * 1.93 + 소석회 * 2.6 + 혼합기 * 1.16) * 1.1 + 포장해체 * 0.12", "출처": "건설품셈 기계설비 13-8-7" }, { "이름": "플랜트기계설치공", - "식": "기초작업 * 0.19 + 반응조제 * 0.96 + 소석회 * 3.47 + 혼합기 * 2.31", + "식": "(기초작업 * 0.19 + 반응조제 * 0.96 + 소석회 * 3.47 + 혼합기 * 2.31) * 1.1", "출처": "건설품셈 기계설비 13-8-7" }, { "이름": "플랜트제관공", - "식": "반응조제 * 1.93", + "식": "반응조제 * 1.93 * 1.1", "출처": "건설품셈 기계설비 13-8-7" }, { "이름": "플랜트용접공", - "식": "반응조제 * 1.93 + 소석회 * 1.74 + 혼합기 * 0.57", + "식": "(반응조제 * 1.93 + 소석회 * 1.74 + 혼합기 * 0.57) * 1.1", "출처": "건설품셈 기계설비 13-8-7" }, { "이름": "비계공", - "식": "반응조제 * 0.96 + 소석회 * 1.74 + 혼합기 * 0.57", + "식": "(반응조제 * 0.96 + 소석회 * 1.74 + 혼합기 * 0.57) * 1.1", "출처": "건설품셈 기계설비 13-8-7" }, { "이름": "건설기계운전사", - "식": "반응조제 * 0.96 + 소석회 * 0.96", + "식": "(반응조제 * 0.96 + 소석회 * 0.96) * 1.1", "출처": "건설품셈 기계설비 13-8-7" } ], @@ -15746,12 +15647,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.13", + "단위": "L", + "수량": "0.13 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-10-2" + "출처": "건설품셈 기계설비 13-10-2", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -15865,12 +15767,13 @@ }, { "종류": "재료", - "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)" }, + "요소": { "구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)" }, "이름": "아세틸렌", - "단위": "kg", - "수량": "0.58", + "단위": "L", + "수량": "0.58 * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-10-3" + "출처": "건설품셈 기계설비 13-10-3", + "비고": "원문 병(4,500ℓ입) 수량 — 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", @@ -15882,24 +15785,8 @@ "출처": "건설품셈 기계설비 13-10-3", "비고": "원문 규격 ø4㎜×ℓ350" }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "광명단", - "단위": "ℓ", - "수량": "2.2", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-10-3" - }, - { - "종류": "재료", - "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인" }, - "이름": "페인트", - "단위": "ℓ", - "수량": "4.4", - "비목": "재료비", - "출처": "건설품셈 기계설비 13-10-3" - } + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "광명단" }, "이름": "광명단", "단위": "ℓ", "수량": "2.2", "비목": "재료비", "출처": "건설품셈 기계설비 13-10-3" }, + { "종류": "재료", "요소": { "구분": "도료·방수·접착", "상세구분": "도료", "검색어": "조합페인트" }, "이름": "페인트", "단위": "ℓ", "수량": "4.4", "비목": "재료비", "출처": "건설품셈 기계설비 13-10-3" } ], "덧줄": [], "끝수": null @@ -16066,7 +15953,7 @@ "결과단위": "원/기", "출처": "건설품셈 기계설비 13-11-2", "소유": "공용", - "비고": "기초 Tank 위 조립설치 · Drift-Eliminator 가공품 제외 · 공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움)", + "비고": "기초 Tank 위 조립설치 · Drift-Eliminator 가공품 제외 · 공정마다 물량을 넣음(쓰지 않는 공정은 0) · 해석: 공정 × 직종 품을 표에서 옮겨 식에 씀 · 같은 공정 · 직종 줄이 둘이면 합 · 해석: 목공 = 건축목공 · 「건설기계운전조 · Crane운전조」 = 건설기계운전사 · 「윈치운전조」 = 일반기계운전사(조 = 1인) · 건설노임에 없는 직종(기계기사 · 측량사 · 마킹공 등)은 인력_자체(값은 관리자가 채움) · 검사 및 교정: 기술관리를 제외한 전 품의 10% — 그 외 직종 × 1.1", "입력": [ { "이름": "기술관리", @@ -16119,37 +16006,37 @@ }, { "이름": "기계설비공", - "식": "기초 * 0.41", + "식": "기초 * 0.41 * 1.1", "출처": "건설품셈 기계설비 13-11-2" }, { "이름": "특별인부", - "식": "기초 * 0.595 + 표면손질 * 0.2 + 본체설치 * 0.3", + "식": "(기초 * 0.595 + 표면손질 * 0.2 + 본체설치 * 0.3) * 1.1", "출처": "건설품셈 기계설비 13-11-2" }, { "이름": "철골공", - "식": "본체설치 * 4.18", + "식": "본체설치 * 4.18 * 1.1", "출처": "건설품셈 기계설비 13-11-2" }, { "이름": "비계공", - "식": "본체설치 * 3", + "식": "본체설치 * 3 * 1.1", "출처": "건설품셈 기계설비 13-11-2" }, { "이름": "건축목공", - "식": "Drift * 3.1", + "식": "Drift * 3.1 * 1.1", "출처": "건설품셈 기계설비 13-11-2" }, { "이름": "보통인부", - "식": "Drift * 0.698 + 스레이트 * 0.04 + 충전물충전 * 0.6", + "식": "(Drift * 0.698 + 스레이트 * 0.04 + 충전물충전 * 0.6) * 1.1", "출처": "건설품셈 기계설비 13-11-2" }, { "이름": "스레이트공", - "식": "스레이트 * 0.05", + "식": "스레이트 * 0.05 * 1.1", "출처": "건설품셈 기계설비 13-11-2" } ], @@ -16452,16 +16339,17 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (용접용)"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98% (1kg=853ℓ)"}, "이름": "아세틸렌", - "단위": "kg", - "수량": "(만약(공사 == '기기', 0.084, 만약(공사 == '철골', 1.25, 만약(공사 == '배관', 3.7, 만약(공사 == 'Belt & Conveyor', 1.25, 만약(공사 == 'Heater & Tank', 0.08, 만약(공사 == 'Pump & Fan', 0.08, 만약(공사 == 'Crane 류', 0.355, 0))))))))", + "단위": "L", + "수량": "(만약(공사 == '기기', 0.084, 만약(공사 == '철골', 1.25, 만약(공사 == '배관', 3.7, 만약(공사 == 'Belt & Conveyor', 1.25, 만약(공사 == 'Heater & Tank', 0.08, 만약(공사 == 'Pump & Fan', 0.08, 만약(공사 == 'Crane 류', 0.355, 0)))))))) * 4500", "비목": "재료비", - "출처": "건설품셈 기계설비 13-11-5" + "출처": "건설품셈 기계설비 13-11-5", + "비고": "원문 병 수량(ℓ입 표기 없음) — 해석: 13-11-3 참고표 4,500ℓ입 병 · 산소 6,000ℓ입과 같은 짝 · 아세틸렌 ℓ 품목(1kg=853ℓ)으로 병×4,500ℓ 환산" }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 전기"}, "이름": "용접봉(전기)", "단위": "㎏", "수량": "(만약(공사 == '기기', 0.365, 만약(공사 == '철골', 2.25, 만약(공사 == '배관', 30, 만약(공사 == 'Belt & Conveyor', 2.25, 만약(공사 == 'Heater & Tank', 0.36, 만약(공사 == 'Pump & Fan', 0.36, 만약(공사 == 'Crane 류', 0.85, 0))))))))", @@ -16470,7 +16358,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "아세틸렌 98%"}, + "요소": {"구분": "잡재료", "상세구분": "용접·가스", "검색어": "용접봉 산소"}, "이름": "용접봉(산소)", "단위": "㎏", "수량": "(만약(공사 == '기기', 0.146, 만약(공사 == '철골', 0.22, 만약(공사 == '배관', 3, 만약(공사 == 'Belt & Conveyor', 0.22, 만약(공사 == 'Heater & Tank', 0.15, 만약(공사 == 'Pump & Fan', 0.14, 만약(공사 == 'Crane 류', 0.15, 0))))))))", @@ -16533,7 +16421,7 @@ }, { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "철선", "검색어": "보통철선 #8 서울"}, + "요소": {"구분": "철근·강재", "상세구분": "철선", "검색어": "아연도철선"}, "이름": "아연도철선", "단위": "㎏", "수량": "(만약(공사 == '기기', 0.73, 만약(공사 == '철골', 0.73, 만약(공사 == '배관', 0.4, 만약(공사 == 'Belt & Conveyor', 0.2, 만약(공사 == 'Heater & Tank', 0.2, 만약(공사 == 'Pump & Fan', 0.73, 만약(공사 == 'Crane 류', 0.2, 0))))))))", @@ -16560,7 +16448,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "복사용지(A4)"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "연마지"}, "이름": "사포", "단위": "매", "수량": "(만약(공사 == '기기', 0.11, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.01, 만약(공사 == 'Pump & Fan', 0.11, 만약(공사 == 'Crane 류', 0.05, 0))))))))", @@ -16587,7 +16475,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "신너"}, "이름": "시너", "단위": "ℓ", "수량": "(만약(공사 == '기기', 0.138, 만약(공사 == '철골', 0.1, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.38, 만약(공사 == 'Crane 류', 0.05, 0))))))))", @@ -16794,7 +16682,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "빗자루 도로청소용"}, + "요소": {"구분": "잡재료", "상세구분": "소모품", "검색어": "페인트 붓"}, "이름": "페인트붓(표기용)", "단위": "개", "수량": "(만약(공사 == '기기', 0.05, 만약(공사 == '철골', 0.05, 만약(공사 == '배관', 0.05, 만약(공사 == 'Belt & Conveyor', 0.05, 만약(공사 == 'Heater & Tank', 0.05, 만약(공사 == 'Pump & Fan', 0.05, 만약(공사 == 'Crane 류', 0.05, 0))))))))", diff --git a/resources/master_data/로직_산림품셈_04장_나무베기.json b/resources/master_data/로직_산림품셈_04장_나무베기.json index c99be6153..652671990 100644 --- a/resources/master_data/로직_산림품셈_04장_나무베기.json +++ b/resources/master_data/로직_산림품셈_04장_나무베기.json @@ -4,6 +4,34 @@ "차례": 2, "판": "2026-01-01", "줄": [ + { + "키": "GF000286", + "원문번호": "4-1-1", + "구분": "산림품셈", + "상세구분": "04장 나무베기", + "이름": "수확베기 임업용 동력기계톱 벌목", + "결과단위": "원/㎥", + "출처": "산림품셈 4-1-1", + "소유": "공용", + "비고": "해석: 벌목부 = 1인 ÷ 1일 벌목량 · 할증은 경급 할증과 산불피해목 할증을 더해 곱함 · 박피품 별도(3) · 할인·할증(집단화정도 1-4-3 · 경사도 1-4-5 · 장애물 1-4-8 등)은 이웃 로직과 같이 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘", + "시험입력": { "벌도목": "단목", "평균경급": 25, "산불피해목": "아님" }, + "입력": [ + { "이름": "벌도목", "설명": "생산재 갈래(단목 · 전간목 · 전목)", "고르기": ["단목", "전간목", "전목"], "출처": "산림품셈 4-1-1" }, + { "이름": "평균경급", "설명": "벌도목 평균 지름", "단위": "㎝", "출처": "산림품셈 4-1-1 주①" }, + { "이름": "산불피해목", "설명": "산불피해지의 산불피해목 벌목 여부", "고르기": ["아님", "산불피해목"], "출처": "산림품셈 4-1-1 주②" } + ], + "중간": [ + { + "이름": "경급할증", + "식": "만약(평균경급 > 30, 0, 찾기(QF000042, 구분=만약(평균경급 < 20, '벌도목 평균경급 20cm 미만', '벌도목 평균경급 20~30cm'), '평균경급(cm)'=평균경급).할증률)", + "출처": "산림품셈 4-1-1 주①" + }, + { "이름": "산불할증", "식": "만약(산불피해목 == '산불피해목', 찾기(QF000042, 구분='산불피해지 산불피해목').할증률, 0)", "출처": "산림품셈 4-1-1 주②" } + ], + "호표": [{ "종류": "인력", "요소": "LB000037", "이름": "벌목부", "단위": "인", "수량": "1 / 찾기(QF000041, '벌도목 구분'=벌도목).벌목량 * (1 + (경급할증 + 산불할증) / 100)", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000011", "원문번호": "4-1-2", "구분": "산림품셈", "상세구분": "04장 나무베기", "이름": "하베스터 벌도ㆍ조재", @@ -134,6 +162,123 @@ ], "끝수": null }, + { + "키": "GF000287", + "원문번호": "4-2-1", + "구분": "산림품셈", + "상세구분": "04장 나무베기", + "이름": "단목베기(100본당)", + "결과단위": "원/100본", + "출처": "산림품셈 4-2-1", + "소유": "공용", + "비고": "주② — 전목 = 벌목 · 전간목 = 벌목+가지제거 · 단목 = 벌목+가지제거+토막내기(벌목부) · 작업보조 보통인부 0.6 · 관목류 제거 보통인부 30% 할증(주⑤) · 규격재 조재 20% 할증(주⑥) — 해석: 전체 품에 곱함 · 표의 흉고직경은 짝수 구간(10 이하 · 12~14 …) · 할인·할증(집단화정도 1-4-3 · 경사도 1-4-5 · 장애물 1-4-8 등)은 이웃 로직과 같이 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘", + "시험입력": { "흉고직경": 14, "생산재": "단목", "관목류": "아님", "규격재조재": "아님" }, + "입력": [ + { "이름": "흉고직경", "설명": "제거 대상목 가슴높이 지름(표 구간 안 값)", "단위": "㎝", "출처": "산림품셈 4-2-1" }, + { "이름": "생산재", "설명": "베어서 남기는 모양(전목 · 전간목 · 단목)", "고르기": ["전목", "전간목", "단목"], "출처": "산림품셈 4-2-1 주②" }, + { "이름": "관목류", "설명": "관목류 제거 여부", "고르기": ["아님", "관목류 제거"], "출처": "산림품셈 4-2-1 주⑤" }, + { "이름": "규격재조재", "설명": "규격재 생산 조재 포함 여부", "고르기": ["아님", "포함"], "출처": "산림품셈 4-2-1 주⑥" } + ], + "중간": [ + { "이름": "벌목", "식": "찾기(QF000045, 구분='벌목·가지제거·토막내기', '제거 대상목 흉고직경(㎝)'=흉고직경).벌목" }, + { "이름": "가지", "식": "만약(생산재 == '전목', 0, 찾기(QF000045, 구분='벌목·가지제거·토막내기', '제거 대상목 흉고직경(㎝)'=흉고직경).가지제거)" }, + { "이름": "토막", "식": "만약(생산재 == '단목', 찾기(QF000045, 구분='벌목·가지제거·토막내기', '제거 대상목 흉고직경(㎝)'=흉고직경).토막내기, 0)" }, + { "이름": "조재할증", "식": "만약(규격재조재 == '포함', 찾기(QF000046, 구분='규격재 생산을 위한 조재 포함 시 할증').값, 0)", "출처": "산림품셈 4-2-1 주⑥" }, + { "이름": "관목할증", "식": "만약(관목류 == '관목류 제거', 찾기(QF000046, 구분='관목류 제거 시 보통인부 할증').값, 0)", "출처": "산림품셈 4-2-1 주⑤" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000037", "이름": "벌목부(체인톱)", "단위": "인", "수량": "(벌목 + 가지 + 토막) * (1 + 조재할증 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부(작업보조)", "단위": "인", "수량": "찾기(QF000045, 구분='작업보조').작업보조 * (1 + (관목할증 + 조재할증) / 100)", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000288", + "원문번호": "4-2-2", + "구분": "산림품셈", + "상세구분": "04장 나무베기", + "이름": "단목베기(1,000㎡당 · 굴착기 0.2㎥ + 부착용 집게)", + "결과단위": "원/1,000㎡", + "출처": "산림품셈 4-2-2", + "소유": "공용", + "비고": "집재거리 100m 초과 매 100m 마다 인력품 30% 가산(비고) — 해석: 초과분 100m 단위 올림 · 공구손료 및 경장비 10%(주⑤) — 해석: 인력품(노무비)의 10% · 장비 규격 변경·위험지역 장비 추가는 설계자 판단(주③④) · 할인·할증(집단화정도 1-4-3 · 경사도 1-4-5 · 장애물 1-4-8 등)은 이웃 로직과 같이 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘", + "시험입력": { "나무높이": 6, "집재거리": 100, "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "나무높이", "설명": "베는 나무의 평균 높이", "단위": "m", "출처": "산림품셈 4-2-2 주①" }, + { "이름": "집재거리", "설명": "벤 나무를 모으는 거리", "단위": "m", "출처": "산림품셈 4-2-2 비고" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { + "이름": "가산", + "식": "만약(집재거리 > 찾기(QF000048).'집재거리 기준', 올림((집재거리 - 찾기(QF000048).'집재거리 기준') / 찾기(QF000048).가산단위, 0) * 찾기(QF000048).가산할증, 0)", + "출처": "산림품셈 4-2-2 비고" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000037", "이름": "벌목부", "단위": "인", "수량": "찾기(QF000047, 구분='벌목부', '나무높이(m)'=나무높이).소요 * (1 + 가산 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000047, 구분='보통인부', '나무높이(m)'=나무높이).소요 * (1 + 가산 / 100)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000270, 기계='0201-0020', 집게='7206-0020', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.2㎥ + 부착용 집게", + "단위": "시간", + "수량": "찾기(QF000047, 구분='굴착기+부착용집게', '나무높이(m)'=나무높이).소요" + } + ], + "덧줄": [{ "이름": "공구손료 및 경장비", "식": "노무비 * 찾기(QF000049).값 / 100", "비목": "경비", "출처": "산림품셈 4-2-2 주⑤" }], + "끝수": null + }, + { + "키": "GF000289", + "원문번호": "4-3", + "구분": "산림품셈", + "상세구분": "04장 나무베기", + "이름": "위험목 베기(굴착기 우드그랩 0.2㎥ · 크레인 5톤)", + "결과단위": "원/본", + "출처": "산림품셈 4-3", + "소유": "공용", + "비고": "가슴높이지름 16㎝ 이상(주② · 미만은 솎아베기 품) · 숲가꾸기 위험목 또는 인력작업 = 벌목부 100% 가산(주④) · 병해충 발생지 장비 없이 인력만 = 보통인부 100% 가산(주⑥) — 해석: 인력만이면 장비 줄 0 · 장비 = 굴착기 0.2㎥ + 부착용 집게 0.2㎥(우드그랩) · 트럭탑재형 크레인 5톤(주⑤) · 50m 이내 집재 포함(주③)", + "시험입력": { "가슴높이지름": 25, "작업": "장비 사용", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "가슴높이지름", "설명": "위험목 가슴높이 지름(표 구간 안 값)", "단위": "㎝", "범위": [16, 999], "출처": "산림품셈 4-3" }, + { "이름": "작업", "설명": "작업 갈래", "고르기": ["장비 사용", "숲가꾸기 위험목 또는 인력작업", "병해충 발생지 인력만"], "출처": "산림품셈 4-3 주④⑥" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "벌목가산", "식": "만약(작업 == '숲가꾸기 위험목 또는 인력작업', 찾기(QF000051, 구분='숲가꾸기 위험목 제거 또는 인력작업 시 벌목부 가산').값, 0)" }, + { "이름": "보통가산", "식": "만약(작업 == '병해충 발생지 인력만', 찾기(QF000051, 구분='산림병해충·소나무재선충병 발생지역 인력만 제거 시 보통인부 가산').값, 0)" }, + { "이름": "장비", "식": "만약(작업 == '병해충 발생지 인력만', 0, 1)" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000050, '가슴높이지름(cm)'=가슴높이지름).특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000037", "이름": "벌목부", "단위": "인", "수량": "찾기(QF000050, '가슴높이지름(cm)'=가슴높이지름).벌목부 * (1 + 벌목가산 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000050, '가슴높이지름(cm)'=가슴높이지름).보통인부 * (1 + 보통가산 / 100)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000270, 기계='0201-0020', 집게='7206-0020', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기 0.2㎥ + 부착용 집게(우드그랩)", + "단위": "시간", + "수량": "찾기(QF000050, '가슴높이지름(cm)'=가슴높이지름).'굴삭기 우드그랩' * 장비" + }, + { "종류": "로직", "요소": "로직(GC000268, 기계='2105-0005', 지역=지역)", "이름": "트럭탑재형 크레인 5톤", "단위": "시간", "수량": "찾기(QF000050, '가슴높이지름(cm)'=가슴높이지름).크레인 * 장비" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000013", "원문번호": "4-4", "구분": "산림품셈", "상세구분": "04장 나무베기", "이름": "가지정리", diff --git a/resources/master_data/로직_산림품셈_05장_식재_및_녹화.json b/resources/master_data/로직_산림품셈_05장_식재_및_녹화.json index 5bb970a96..c679cbeae 100644 --- a/resources/master_data/로직_산림품셈_05장_식재_및_녹화.json +++ b/resources/master_data/로직_산림품셈_05장_식재_및_녹화.json @@ -4,6 +4,99 @@ "차례": 3, "판": "2026-01-01", "줄": [ + { + "키": "GF000290", + "원문번호": "5-1-1", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "관목굴취", + "결과단위": "원/10본", + "출처": "산림품셈 5-1-1", + "소유": "공용", + "비고": "원문 0.3m 는 「0.3∼0.7m 이하」 줄(「0.3m 미만」 은 위 끝 제외) — 표 규칙(양 끝 포함 · 겹치면 위 끝 작은 줄) 때문에 0.3 은 0.31 로 찾음 · 1.5m 초과는 나무높이 비례 할증 가능(설계자 판단) · 수관폭이 더 크면 수관폭을 나무높이로(주④) · 분 보호 안 함 기준(주②) · 녹화마대 등으로 분 보호 시 5-1-2 교목굴취(나무높이) 적용(주⑥)", + "시험입력": { "수고": 0.5 }, + "입력": [{ "이름": "수고", "설명": "관목 나무높이(표 구간 안 값)", "단위": "m", "출처": "산림품셈 5-1-1" }], + "중간": [{ "이름": "찾을수고", "식": "만약(수고 == 0.3, 0.31, 수고)" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000058, '수고(m)'=찾을수고).특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000058, '수고(m)'=찾을수고).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000293", + "원문번호": "5-1-2", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "교목굴취(나무높이)", + "결과단위": "원/본", + "출처": "산림품셈 5-1-2", + "소유": "공용", + "비고": "분이 없으면 굴취품 20% 감(비고) · 분 = 근원직경 4∼5배(주②) · 분뜨기 재료 별도(주④) · 기계 필요 시 별도(주⑥)", + "시험입력": { "나무높이": 2.0, "분": "있음" }, + "입력": [{ "이름": "나무높이", "설명": "교목 나무높이(표 구간 안 값)", "단위": "m", "출처": "산림품셈 5-1-2" }, { "이름": "분", "설명": "뿌리분을 뜨는지", "고르기": ["있음", "없음"], "출처": "산림품셈 5-1-2 비고" }], + "중간": [{ "이름": "감", "식": "만약(분 == '없음', 찾기(QF000061, 구분='분이 없는 경우 굴취품 감').값, 0)" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000060, '나무높이(m)'=나무높이).특별인부 * (1 - 감 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000060, '나무높이(m)'=나무높이).보통인부 * (1 - 감 / 100)", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000294", + "원문번호": "5-1-3", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "교목굴취(근원직경)", + "결과단위": "원/본", + "출처": "산림품셈 5-1-3", + "소유": "공용", + "비고": "근원직경으로 찾음(괄호 흉고직경만 알면 원문 짝으로 근원직경을 넣음) · 분이 없으면 굴취품 20% 감(비고) — 해석: 인력·장비 모두 · 장비 규격 = 주⑧ 표(10∼19㎝ 굴착기 0.4㎥ · 20㎝ 이상 0.6㎥ · 크레인 규격표) · 굴착기는 표에서 굴착기 칸이 있는 10㎝ 이상 · 크레인은 20㎝ 이상 · 타이어 크레인(40∼60㎝ 25∼50ton)은 설계자 고름", + "시험입력": { "근원직경": 25, "분": "있음", "타이어크레인": "2104-0025", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "근원직경", "설명": "교목 근원(뿌리목) 지름(표 구간 안 값)", "단위": "㎝", "출처": "산림품셈 5-1-3" }, + { "이름": "분", "설명": "뿌리분을 뜨는지", "고르기": ["있음", "없음"], "출처": "산림품셈 5-1-3 비고" }, + { + "이름": "타이어크레인", + "설명": "근원직경 40㎝ 이상일 때 쓰는 타이어 크레인(25∼50ton)", + "고르기": ["2104-0025", "2104-0030", "2104-0035", "2104-0040", "2104-0045", "2104-0050"], + "출처": "산림품셈 5-1-3 주⑧" + }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "감", "식": "만약(분 == '없음', 찾기(QF000064, 구분='분이 없는 경우 굴취품 감').값, 0)" }, + { "이름": "굴착기", "식": "만약(근원직경 < 10, '0201-0040', 만약(찾기(QF000063, '근원직경(cm)'=근원직경).굴착기 == 0.4, '0201-0040', '0201-0060'))", "출처": "산림품셈 5-1-3 주⑧" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000062, '근원직경(㎝)'=근원직경).특별인부 * (1 - 감 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000062, '근원직경(㎝)'=근원직경).보통인부 * (1 - 감 / 100)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000267, 기계=굴착기, 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(주⑧ 규격표)", + "단위": "시간", + "수량": "만약(근원직경 < 10, 0, 찾기(QF000062, '근원직경(㎝)'=근원직경).굴착기 * (1 - 감 / 100))" + }, + { + "종류": "로직", + "요소": "로직(GC000268, 기계=만약(찾기(QF000063, '근원직경(cm)'=근원직경).크레인 == '트럭탑재형 크레인 10ton', '2105-0010', 만약(찾기(QF000063, '근원직경(cm)'=근원직경).크레인 == '크레인(타이어) 25 ∼ 50ton', 타이어크레인, '2105-0015')), 지역=지역)", + "이름": "크레인(주⑧ 규격표)", + "단위": "시간", + "수량": "만약(근원직경 < 20, 0, 찾기(QF000062, '근원직경(㎝)'=근원직경).크레인 * (1 - 감 / 100))" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000016", "원문번호": "5-1-4", "구분": "산림품셈", "상세구분": "05장 식재 및 녹화", "이름": "떼채취", @@ -26,6 +119,34 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000295", + "원문번호": "5-2", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "뿌리돌림", + "결과단위": "원/본", + "출처": "산림품셈 5-2", + "소유": "공용", + "비고": "분 = 근원직경 4∼5배(주②) · 절단 부위 보호 재료 별도(주③)", + "시험입력": { "근원직경": 9 }, + "입력": [ + { + "이름": "근원직경", + "설명": "근원 지름(표의 값 중)", + "단위": "㎝", + "고르기": [3, 5, 7, 9, 11, 13, 15, 18, 21, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 100], + "출처": "산림품셈 5-2" + } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000068, '근원직경(㎝)'=근원직경).특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000068, '근원직경(㎝)'=근원직경).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000017", "원문번호": "5-3-1", "구분": "산림품셈", "상세구분": "05장 식재 및 녹화", "이름": "나무식재", @@ -70,6 +191,157 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000291", + "원문번호": "5-3-2", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "관목식재(단식)", + "결과단위": "원/10본", + "출처": "산림품셈 5-3-2", + "소유": "공용", + "비고": "원문 0.3m 는 「0.3∼0.7m 이하」 줄(「0.3m 미만」 은 위 끝 제외) — 표 규칙(양 끝 포함 · 겹치면 위 끝 작은 줄) 때문에 0.3 은 0.31 로 찾음 · 1.5m 초과는 나무높이 비례 할증 가능(설계자 판단) · 수관폭이 더 크면 수관폭을 나무높이로(주④) · 1회 물주기 포함(주⑤) · 살수차 등 장비 별도(주⑥)", + "시험입력": { "수고": 0.5 }, + "입력": [{ "이름": "수고", "설명": "관목 나무높이(표 구간 안 값)", "단위": "m", "출처": "산림품셈 5-3-2" }], + "중간": [{ "이름": "찾을수고", "식": "만약(수고 == 0.3, 0.31, 수고)" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000074, '수고(m)'=찾을수고).특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000074, '수고(m)'=찾을수고).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000292", + "원문번호": "5-3-3", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "관목식재(군식)", + "결과단위": "원/10본", + "출처": "산림품셈 5-3-3", + "소유": "공용", + "비고": "원문 0.3m 는 「0.3∼0.7m 이하」 줄(「0.3m 미만」 은 위 끝 제외) — 표 규칙(양 끝 포함 · 겹치면 위 끝 작은 줄) 때문에 0.3 은 0.31 로 찾음 · 1.5m 초과는 나무높이 비례 할증 가능(설계자 판단) · 수관폭이 더 크면 수관폭을 나무높이로(주④) · 1회 물주기 포함(주⑤) · 군식 식재밀도 표는 원문에 없음(주⑧)", + "시험입력": { "수고": 0.5 }, + "입력": [{ "이름": "수고", "설명": "관목 나무높이(표 구간 안 값)", "단위": "m", "출처": "산림품셈 5-3-3" }], + "중간": [{ "이름": "찾을수고", "식": "만약(수고 == 0.3, 0.31, 수고)" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000076, '수고(m)'=찾을수고).특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000076, '수고(m)'=찾을수고).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000296", + "원문번호": "5-3-4", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "교목식재(나무높이)", + "결과단위": "원/본", + "출처": "산림품셈 5-3-4", + "소유": "공용", + "비고": "지주목을 세우지 않으면 인력품 감 — 인력시공 10% · 기계시공 20%(비고) · 기계시공은 2.1m 이상만(표 「-」) · 굴착기 0.4㎥(주⑦) · 1회 물주기 포함(주③)", + "시험입력": { "나무높이": 3.0, "시공": "기계시공", "지주목": "세움", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "나무높이", "설명": "교목 나무높이(표 구간 안 값)", "단위": "m", "출처": "산림품셈 5-3-4" }, + { "이름": "시공", "설명": "시공 방법", "고르기": ["인력시공", "기계시공"], "출처": "산림품셈 5-3-4" }, + { "이름": "지주목", "설명": "지주목을 세우는지", "고르기": ["세움", "안 세움"], "출처": "산림품셈 5-3-4 비고" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { + "이름": "감", + "식": "만약(지주목 == '세움', 0, 만약(시공 == '인력시공', 찾기(QF000079, 구분='지주목을 세우지 않을 때 인력시공시 인력품 감').값, 찾기(QF000079, 구분='지주목을 세우지 않을 때 기계시공시 인력품 감').값))" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "LB000003", + "이름": "특별인부", + "단위": "인", + "수량": "만약(시공 == '인력시공', 찾기(QF000078, '나무높이(m)'=나무높이).'인력시공 특별인부', 찾기(QF000078, '나무높이(m)'=나무높이).'기계시공 특별인부') * (1 - 감 / 100)", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "LB000002", + "이름": "보통인부", + "단위": "인", + "수량": "만약(시공 == '인력시공', 찾기(QF000078, '나무높이(m)'=나무높이).'인력시공 보통인부', 찾기(QF000078, '나무높이(m)'=나무높이).'기계시공 보통인부') * (1 - 감 / 100)", + "비목": "노무비" + }, + { + "종류": "로직", + "요소": "로직(GC000267, 기계='0201-0040', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기 0.4㎥", + "단위": "시간", + "수량": "만약(시공 == '인력시공', 0, 찾기(QF000078, '나무높이(m)'=나무높이).'기계시공 굴착기')" + } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000297", + "원문번호": "5-3-5", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "교목식재(흉고직경)", + "결과단위": "원/본", + "출처": "산림품셈 5-3-5", + "소유": "공용", + "비고": "흉고직경(지표 1.2m 높이 지름 · 주⑤)으로 찾음 · 지주목 안 세우면 인력품 감 — 해석: 굴착기 칸이 있는 8㎝ 이상 = 기계시공 20% · 그 아래 인력시공 10% · 장비 규격 = 주⑧ 표(8∼17㎝ 굴착기 0.4㎥ · 18㎝ 이상 0.6㎥ · 크레인 규격표) · 타이어 크레인(35∼50㎝ 25∼50ton)은 설계자 고름", + "시험입력": { "흉고직경": 20, "지주목": "세움", "타이어크레인": "2104-0025", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "흉고직경", "설명": "가슴높이(1.2m) 지름(표 구간 안 값)", "단위": "㎝", "출처": "산림품셈 5-3-5" }, + { "이름": "지주목", "설명": "지주목을 세우는지", "고르기": ["세움", "안 세움"], "출처": "산림품셈 5-3-5 비고" }, + { + "이름": "타이어크레인", + "설명": "흉고직경 35㎝ 이상일 때 쓰는 타이어 크레인(25∼50ton)", + "고르기": ["2104-0025", "2104-0030", "2104-0035", "2104-0040", "2104-0045", "2104-0050"], + "출처": "산림품셈 5-3-5 주⑧" + }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "기계", "식": "만약(흉고직경 < 8, 0, 1)" }, + { "이름": "감", "식": "만약(지주목 == '세움', 0, 만약(기계 == 0, 찾기(QF000082, 구분='지주목을 세우지 않을 때 인력시공시 인력품 감').값, 찾기(QF000082, 구분='지주목을 세우지 않을 때 기계시공시 인력품 감').값))" }, + { "이름": "굴착기", "식": "만약(기계 == 0, '0201-0040', 만약(찾기(QF000081, '흉고직경(cm)'=흉고직경).굴착기 == 0.4, '0201-0040', '0201-0060'))", "출처": "산림품셈 5-3-5 주⑧" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000080, '흉고직경(㎝)'=흉고직경).특별인부 * (1 - 감 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000080, '흉고직경(㎝)'=흉고직경).보통인부 * (1 - 감 / 100)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000267, 기계=굴착기, 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(주⑧ 규격표)", + "단위": "시간", + "수량": "만약(기계 == 0, 0, 찾기(QF000080, '흉고직경(㎝)'=흉고직경).굴착기)" + }, + { + "종류": "로직", + "요소": "로직(GC000268, 기계=만약(찾기(QF000081, '흉고직경(cm)'=흉고직경).크레인 == '트럭탑재형 크레인 10ton', '2105-0010', 만약(찾기(QF000081, '흉고직경(cm)'=흉고직경).크레인 == '크레인(타이어) 25 ∼ 50ton', 타이어크레인, '2105-0015')), 지역=지역)", + "이름": "크레인(주⑧ 규격표)", + "단위": "시간", + "수량": "만약(흉고직경 < 18, 0, 찾기(QF000080, '흉고직경(㎝)'=흉고직경).크레인)" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000018", "원문번호": "5-4", "구분": "산림품셈", "상세구분": "05장 식재 및 녹화", "이름": "파종조림", @@ -373,6 +645,43 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000298", + "원문번호": "5-16-1", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "선떼붙이기 단끊기", + "결과단위": "원/100m", + "출처": "산림품셈 5-16-1", + "소유": "공용", + "비고": "해석: 절취 품은 절취량으로 나눔(주③ 「절취량을 산출하여 본품에 나누어」) — 100m 절취량 = 0.15㎥/m × 100m = 15㎥ · 절취 ÷ 15 + 나머지 세 공정 = 표 합계줄(2.03 · 2.09 · 2.23)과 맞음 · 특수현장은 100m당 절취량을 넣음(0 = 원문 15㎥) · 작업반장 1인/보통인부 20인(주⑤) · 단끊기 연장은 주② 식으로 설계자가 셈", + "시험입력": { "토질": "보통토사", "절취량": 0 }, + "입력": [ + { "이름": "토질", "설명": "단을 끊는 흙 갈래", "고르기": ["보통토사", "경질ㆍ고사점토 및 자갈섞인 점토", "호박돌 섞인 토사"], "출처": "산림품셈 5-16-1" }, + { "이름": "절취량", "설명": "100m당 절취량(0 = 원문 기준 15㎥)", "단위": "㎥/100m", "출처": "산림품셈 5-16-1 주③" } + ], + "중간": [ + { "이름": "기준절취량", "식": "만약(절취량 > 0, 절취량, 찾기(QF000107, 구분='절취량 기준').값 * 100)", "출처": "산림품셈 5-16-1 주③" }, + { + "이름": "인부", + "식": "만약(토질 == '보통토사', 찾기(QF000106, 공정별='절취').보통토사, 만약(토질 == '호박돌 섞인 토사', 찾기(QF000106, 공정별='절취').'호박돌 섞인 토사', 찾기(QF000106, 공정별='절취').'경질ㆍ고사점토 및 자갈섞인 점토'))/ 기준절취량 + 만약(토질 == '보통토사', 찾기(QF000106, 공정별='수평잡기 및 단정리').보통토사, 만약(토질 == '호박돌 섞인 토사', 찾기(QF000106, 공정별='수평잡기 및 단정리').'호박돌 섞인 토사', 찾기(QF000106, 공정별='수평잡기 및 단정리').'경질ㆍ고사점토 및 자갈섞인 점토')) + 만약(토질 == '보통토사', 찾기(QF000106, 공정별='잡석 및 뿌리 정리').보통토사, 만약(토질 == '호박돌 섞인 토사', 찾기(QF000106, 공정별='잡석 및 뿌리 정리').'호박돌 섞인 토사', 찾기(QF000106, 공정별='잡석 및 뿌리 정리').'경질ㆍ고사점토 및 자갈섞인 점토')) + 만약(토질 == '보통토사', 찾기(QF000106, 공정별='절·성토면 고르기').보통토사, 만약(토질 == '호박돌 섞인 토사', 찾기(QF000106, 공정별='절·성토면 고르기').'호박돌 섞인 토사', 찾기(QF000106, 공정별='절·성토면 고르기').'경질ㆍ고사점토 및 자갈섞인 점토'))" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "인부", "비목": "노무비" }, + { + "종류": "인력", + "요소": "LB000001", + "이름": "작업반장", + "단위": "인", + "수량": "인부 * 찾기(QF000107, 구분='기준 인원당 작업반장').값 / 찾기(QF000107, 구분='작업반장 배치 기준 보통인부').값", + "비목": "노무비", + "출처": "산림품셈 5-16-1 주⑤" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000029", "원문번호": "5-18", "구분": "산림품셈", "상세구분": "05장 식재 및 녹화", "이름": "씨뿌리기(줄)", @@ -403,6 +712,43 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000299", + "원문번호": "5-19-1", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "표토절취 및 모으기", + "결과단위": "원/㎡", + "출처": "산림품셈 5-19-1", + "소유": "공용", + "비고": "사질양토 기준(주①) · 잡관목·그루터기 제거 별도(주③)", + "시험입력": { "취급심도": 12 }, + "입력": [{ "이름": "취급심도", "설명": "표토를 걷는 깊이(표의 값 중)", "단위": "㎝", "고르기": [6, 9, 12, 15, 18], "출처": "산림품셈 5-19-1" }], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000116, 구분='표토절취', '취급심도(㎝)'=취급심도).수량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000300", + "원문번호": "5-19-2", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "표토펴기 및 고르기", + "결과단위": "원/㎥ 또는 원/100㎡", + "출처": "산림품셈 5-19-2", + "소유": "공용", + "비고": "결과 단위는 고른 기준 — ㎥당 또는 100㎡당(원문 두 줄) · 식재면 고르기 포함", + "시험입력": { "기준": "㎥ 당", "표토두께": 15 }, + "입력": [ + { "이름": "기준", "설명": "결과 단위(㎥당 · 100㎡당)", "고르기": ["㎥ 당", "100㎡"], "출처": "산림품셈 5-19-2" }, + { "이름": "표토두께", "설명": "펴는 표토 두께(표의 값 중)", "단위": "㎝", "고르기": [15, 30], "출처": "산림품셈 5-19-2" } + ], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000117, 구분=기준, '표토두께(㎝)'=표토두께).수량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000030", "원문번호": "5-20", "구분": "산림품셈", "상세구분": "05장 식재 및 녹화", "이름": "표토관리", @@ -828,6 +1174,46 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000301", + "원문번호": "5-26-1", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "흙갈이 막갈이", + "결과단위": "원/992㎡", + "출처": "산림품셈 5-26-1", + "소유": "공용", + "비고": "원문 기준 992㎡(300평)당 · 면고르기 불포함(주②)", + "시험입력": { "토성": "양토", "막갈이깊이": 15 }, + "입력": [ + { "이름": "토성", "설명": "흙의 성질", "고르기": ["사토", "양토", "식토"], "출처": "산림품셈 5-26-1" }, + { "이름": "막갈이깊이", "설명": "가는 깊이(표의 값 중)", "단위": "cm", "고르기": [9, 12, 15, 18, 21], "출처": "산림품셈 5-26-1" } + ], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000139, 토성=토성, '막갈이깊이(cm)'=막갈이깊이).수량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000302", + "원문번호": "5-26-2", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "흙갈이 흙부수기", + "결과단위": "원/992㎡", + "출처": "산림품셈 5-26-2", + "소유": "공용", + "비고": "원문 기준 992㎡(300평)당 · 고르기 포함", + "시험입력": { "토성": "양토", "막갈이깊이": 15 }, + "입력": [ + { "이름": "토성", "설명": "흙의 성질", "고르기": ["사토", "양토", "식토"], "출처": "산림품셈 5-26-2" }, + { "이름": "막갈이깊이", "설명": "가는 깊이(표의 값 중)", "단위": "cm", "고르기": [9, 12, 15, 18, 21], "출처": "산림품셈 5-26-2" } + ], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000140, 토성=토성, '막갈이깊이(cm)'=막갈이깊이).수량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000040", "원문번호": "5-27", "구분": "산림품셈", "상세구분": "05장 식재 및 녹화", "이름": "식재면 관리", @@ -887,6 +1273,26 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000303", + "원문번호": "5-28-2", + "구분": "산림품셈", + "상세구분": "05장 식재 및 녹화", + "이름": "방초매트 및 야자섬유매트 포장", + "결과단위": "원/㎡", + "출처": "산림품셈 5-28-2", + "소유": "공용", + "비고": "해석: 일당 인원 ÷ 일 시공량 · 토공 별도(주③) · 매트·고정핀 재료 원문 표에 없음", + "시험입력": { "폭": 1.5 }, + "입력": [{ "이름": "폭", "설명": "매트 포장 폭(2.0m 이하)", "단위": "m", "범위": [0, 2.0], "출처": "산림품셈 5-28-2" }], + "중간": [{ "이름": "시공량", "식": "찾기(QF000144, 구분='조경공', '폭(m)'=폭).'시공량(㎡)'" }], + "호표": [ + { "종류": "인력", "요소": "LB000038", "이름": "조경공", "단위": "인", "수량": "찾기(QF000144, 구분='조경공', '폭(m)'=폭).수량 / 시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000144, 구분='보통인부').수량 / 시공량", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000042", "원문번호": "5-29", "구분": "산림품셈", "상세구분": "05장 식재 및 녹화", "이름": "복사이식 굴착기 시간당 작업량(Q1)", diff --git a/resources/master_data/로직_산림품셈_06장_생육보조.json b/resources/master_data/로직_산림품셈_06장_생육보조.json index 8b5413b71..5ed9f9d87 100644 --- a/resources/master_data/로직_산림품셈_06장_생육보조.json +++ b/resources/master_data/로직_산림품셈_06장_생육보조.json @@ -306,6 +306,57 @@ ], "끝수": null }, + { + "키": "GF000304", + "원문번호": "6-4-3", + "구분": "산림품셈", + "상세구분": "06장 생육보조", + "이름": "칡덩굴 소금처리", + "결과단위": "원/100본", + "출처": "산림품셈 6-4-3", + "소유": "공용", + "비고": "유형1·2 칡덩굴 분포지만(주①) · 주두부 찾기·자르기·소금처리·뒷정리 + 덩굴 제거지점 표시 포함(주②) — 해석: 표시 0.05인을 더함 · 소금·나무젓가락 재료 원문 표에 없음 · 할인·할증(작업시기 1-4-1 · 집단화 1-4-3 · 경사도 1-4-5 · 하층식생 1-4-7 …)은 이웃 로직과 같이 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘", + "시험입력": { "주두부직경": 3 }, + "입력": [{ "이름": "주두부직경", "설명": "칡덩굴 주두부 지름", "단위": "㎝", "출처": "산림품셈 6-4-3" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부(소금처리)", "단위": "인", "수량": "찾기(QF000167, 구분='소금 처리', 주두부직경=주두부직경).소요인력", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부(덩굴 제거지점 표시)", "단위": "인", "수량": "찾기(QF000167, 구분='덩굴 제거지점 표시').소요인력", "비목": "노무비", "출처": "산림품셈 6-4-3 주②③" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000305", + "원문번호": "6-4-4", + "구분": "산림품셈", + "상세구분": "06장 생육보조", + "이름": "칡덩굴 뿌리제거", + "결과단위": "원/100본", + "출처": "산림품셈 6-4-4", + "소유": "공용", + "비고": "주두부 지름은 원문 세 구간으로 고름(1㎝ 미만 · 1~4㎝ · 4㎝ 초과 — 구간 가운데 값으로 찾음) · 덩굴 제거지점 표시는 면봉·비닐랩 처리만(주⑧) · 당해연도 발생 칡덩굴은 1㎝ 미만(주⑥) · 수량은 주두부 기준(주⑤) · 유형3·4 는 피복도 → 본/ha 환산표(QF000169)로 수량을 셈 · 글리포세이트·비닐랩 재료 원문 표에 없음 · 할인·할증(작업시기 1-4-1 · 집단화 1-4-3 · 경사도 1-4-5 · 하층식생 1-4-7 …)은 이웃 로직과 같이 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘", + "시험입력": { "주두부직경": "1~4㎝", "처리방법": "글리포세이트 면봉처리" }, + "입력": [ + { "이름": "주두부직경", "설명": "칡덩굴 주두부 지름 구간", "고르기": ["1㎝ 미만", "1~4㎝", "4㎝ 초과"], "출처": "산림품셈 6-4-4" }, + { "이름": "처리방법", "설명": "뿌리 처리 방법", "고르기": ["뿌리굴취", "글리포세이트 면봉처리", "비닐랩 밀봉처리"], "출처": "산림품셈 6-4-4 주①⑧" } + ], + "중간": [{ "이름": "지름", "식": "만약(주두부직경 == '1㎝ 미만', 0.5, 만약(주두부직경 == '1~4㎝', 2, 5))" }], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부(뿌리 고살)", "단위": "인", "수량": "찾기(QF000168, 구분='뿌리 고살', 주두부직경=지름).소요인력", "비목": "노무비" }, + { + "종류": "인력", + "요소": "LB000002", + "이름": "보통인부(덩굴 제거지점 표시)", + "단위": "인", + "수량": "만약(처리방법 == '뿌리굴취', 0, 찾기(QF000168, 구분='덩굴 제거지점 표시').소요인력)", + "비목": "노무비", + "출처": "산림품셈 6-4-4 주⑦⑧" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000056", "원문번호": "6-5", "구분": "산림품셈", "상세구분": "06장 생육보조", "이름": "어린나무 가꾸기", @@ -418,6 +469,26 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000306", + "원문번호": "6-7-1", + "구분": "산림품셈", + "상세구분": "06장 생육보조", + "이름": "교목 시비(환상시비)", + "결과단위": "원/10주", + "출처": "산림품셈 6-7-1", + "소유": "공용", + "비고": "환상시비 기준(주①) · 터파기·비료포설·되메우기 포함(주②) · 비료 종류·수량은 설계자 결정(주③) — 비료 재료 원문 표에 없음", + "시험입력": { "근원직경": 15 }, + "입력": [{ "이름": "근원직경", "설명": "교목 근원 지름(51㎝ 미만)", "단위": "㎝", "범위": [0, 51], "출처": "산림품셈 6-7-1" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000173, 인력구분='특별인부', 근원직경=근원직경).소요인력", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000173, 인력구분='보통인부', 근원직경=근원직경).소요인력", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000058", "원문번호": "6-7-2", "구분": "산림품셈", "상세구분": "06장 생육보조", "이름": "관목 시비", @@ -490,7 +561,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "목재", "상세구분": "각재·판재", "검색어": "미송각재 30×30×3600mm 서울"}, + "요소": {"구분": "목재", "상세구분": "각재·판재", "검색어": "우드칩 72ℓ/포"}, "이름": "우드칩", "단위": "㎥", "수량": "찾기(QF000177, 구분='우드칩').수량", diff --git a/resources/master_data/로직_산림품셈_07장_집재_및_운재.json b/resources/master_data/로직_산림품셈_07장_집재_및_운재.json index 34e87b70c..04f9ec553 100644 --- a/resources/master_data/로직_산림품셈_07장_집재_및_운재.json +++ b/resources/master_data/로직_산림품셈_07장_집재_및_운재.json @@ -39,6 +39,30 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000307", + "원문번호": "7-2", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "수라집재", + "결과단위": "원/㎥", + "출처": "산림품셈 7-2", + "소유": "공용", + "비고": "표 값 = 특별인부 1인 1일 수집량(㎥) · 설치·해체 포함 · 산지경사 20~65%(주①) · 병해충·재선충 방제 산물은 수집량 34% 가산(주②) · 재적 50㎥ 는 「41~50」 줄(표 규칙상 49.5 로 찾음) · 할인·할증 못 넣음 — 1-4-5 경사도(값 칸 「할인·할증률」) · 1-4-15 횡단운반거리(범위규칙이 글) — 칸 이름 · 범위규칙 문법(이웃 로직과 같음)", + "시험입력": { "집재거리": 150, "집재재적": 25, "작업": "일반" }, + "입력": [ + { "이름": "집재거리", "설명": "집재 거리(250m 이하)", "단위": "m", "범위": [0, 250], "출처": "산림품셈 7-2" }, + { "이름": "집재재적", "설명": "ha당 집재 재적", "단위": "㎥/ha", "출처": "산림품셈 7-2" }, + { "이름": "작업", "설명": "작업 갈래", "고르기": ["일반", "병해충·소나무재선충병 방제"], "출처": "산림품셈 7-2 주②" } + ], + "중간": [ + { "이름": "찾을재적", "식": "만약(집재재적 == 50, 49.5, 집재재적)" }, + { "이름": "Q", "식": "찾기(QF000182, 집재거리=집재거리, ha당집재재적=찾을재적).수량 * (1 + 만약(작업 == '일반', 0, 찾기(CF000062, 구분='방제 산물 수집량 가산').적용) / 100)" } + ], + "호표": [{ "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "1 / Q", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000062", "원문번호": "7-3", "구분": "산림품셈", "상세구분": "07장 집재 및 운재", "이름": "아키야윈치 집재", @@ -311,6 +335,49 @@ ], "끝수": null }, + { + "키": "GF000308", + "원문번호": "7-5-2", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "트랙터부착형 숲가꾸기·병해충방제(지면끌기)", + "결과단위": "원/㎥", + "출처": "산림품셈 7-5-2", + "소유": "공용", + "비고": "해석: 건설기계조종원·운전기사 = 건설노임 건설기계운전사(1048) · 3인 1조 · 7-5-1(GF000065) 과 같은 꼴 · 집재거리 = 최대거리 · 본당평균재적 = 총 집재량 ÷ 총본수(주②③) · 재선충병 방제 산물은 수집량 2% 가산(주④) · 1-4-14 못 넣음 — 트랙터부착형 갈래 없음 · 할인·할증 못 넣음 — 1-4-5 경사도(값 칸 「할인·할증률」) · 1-4-15 횡단운반거리(범위규칙이 글) — 칸 이름 · 범위규칙 문법(이웃 로직과 같음)", + "시험입력": { "집재거리": 70, "본당재적": 0.3, "작업": "숲가꾸기", "지역": "전국평균" }, + "입력": [ + { "이름": "집재거리", "설명": "최대 집재 거리(120m 이하)", "단위": "m", "범위": [0, 120], "출처": "산림품셈 7-5-2 주②" }, + { "이름": "본당재적", "설명": "본당 평균 재적(0.1∼0.2 · 0.3∼0.4 · 0.5 이상)", "단위": "㎥", "출처": "산림품셈 7-5-2 주③" }, + { "이름": "작업", "설명": "작업 갈래", "고르기": ["숲가꾸기", "병해충방제", "소나무재선충병방제"], "출처": "산림품셈 7-5-2 주④" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "Q", + "식": "찾기(QF000187, 집재거리=집재거리, 본당평균재적=본당재적).수집량 * (1 + 만약(작업 == '소나무재선충병방제', 2, 0) / 100)", + "출처": "산림품셈 7-5-2 주④", + "비고": "2% 는 주④ 글(계수 표 없음)" + }, + { "이름": "일수", "식": "1 / Q" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "건설기계운전사", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "재료", "요소": "MO:경유:{지역}", "이름": "경유(임업용동력집재기)", "단위": "ℓ", "수량": "찾기(QF000002, 기계명='임업용동력집재기').주연료 * 일수", "비목": "재료비", "출처": "산림품셈 2-1-2" } + ], + "덧줄": [ + { "이름": "잡품", "식": "재료비 * 찾기(QF000002, 기계명='임업용동력집재기').잡품 / 100", "비목": "재료비", "출처": "산림품셈 2-1-2 주「잡품」" }, + { "이름": "기계손료", "식": "EQ000632.손료계수 * EQ000632.장비가격 * 1000 * 일수", "비목": "경비", "출처": "산림품셈 2-2-3" } + ], + "끝수": null + }, { "키": "GF000066", "원문번호": "7-6", "구분": "산림품셈", "상세구분": "07장 집재 및 운재", "이름": "스윙야더 집재", @@ -444,6 +511,91 @@ ], "끝수": null }, + { + "키": "GF000309", + "원문번호": "7-7-2", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "HAM200 숲가꾸기·병해충방제", + "결과단위": "원/㎥", + "출처": "산림품셈 7-7-2", + "소유": "공용", + "비고": "해석: 건설기계조종원·운전기사 = 건설노임 건설기계운전사(1048) · 3인 1조 · 7-7-1(GF000067) 과 같은 꼴 · 해석: 할증을 인력 · 연료 · 손료(가동일)에 함께 곱함 · 가선설치·해체 · 측방집재 포함(주②) · 재선충병 방제 산물 27% 가산(주⑥) · 연료 = 2-1-2 트랙터 부착 기계 · 기계손료 = 2-2-3 HAM200, 춘천집재기, 스마트집재기(EQ000633) · 할인·할증 못 넣음 — 1-4-5 경사도(값 칸 「할인·할증률」) · 1-4-15 횡단운반거리(범위규칙이 글) — 칸 이름 · 범위규칙 문법(이웃 로직과 같음)", + "시험입력": { "집재재적": 50, "집재거리": 150, "집재방향": "상향집재", "작업": "숲가꾸기", "지역": "전국평균" }, + "입력": [ + { "이름": "집재재적", "설명": "소반별 ha당 평균 집재 재적(100 이하)", "단위": "㎥/ha", "범위": [0, 100], "출처": "산림품셈 7-7-2 주③" }, + { "이름": "집재거리", "설명": "최대 집재 거리(200m 이하)", "단위": "m", "범위": [0, 200], "출처": "산림품셈 7-7-2 주④" }, + { "이름": "집재방향", "설명": "집재 방향", "고르기": ["상향집재", "하향집재"], "출처": "산림품셈 1-4-14" }, + { "이름": "작업", "설명": "작업 갈래", "고르기": ["숲가꾸기", "병해충방제", "소나무재선충병방제"], "출처": "산림품셈 7-7-2 주⑥" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "Q", + "식": "찾기(QF000190, 집재재적=집재재적, 집재거리=집재거리).수집량 * (1 + 만약(작업 == '소나무재선충병방제', 27, 0) / 100)", + "출처": "산림품셈 7-7-2 주⑥", + "비고": "27% 는 주⑥ 글(계수 표 없음)" + }, + { "이름": "할증", "식": "찾기(CF000043, 구분='가선을 이용한 기계장비의 원목․생산재 집재', 집재방향=집재방향).할증률", "출처": "산림품셈 1-4-14" }, + { "이름": "일수", "식": "(1 / Q) * (1 + 할증 / 100)" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "건설기계운전사", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "재료", "요소": "MO:경유:{지역}", "이름": "경유(트랙터 부착 기계)", "단위": "ℓ", "수량": "찾기(QF000002, 기계명='트랙터 부착 기계').주연료 * 일수", "비목": "재료비", "출처": "산림품셈 2-1-2" } + ], + "덧줄": [ + { "이름": "잡품", "식": "재료비 * 찾기(QF000002, 기계명='트랙터 부착 기계').잡품 / 100", "비목": "재료비", "출처": "산림품셈 2-1-2 주「잡품」" }, + { "이름": "기계손료", "식": "EQ000633.손료계수 * EQ000633.장비가격 * 1000 * 일수", "비목": "경비", "출처": "산림품셈 2-2-3" } + ], + "끝수": null + }, + { + "키": "GF000310", + "원문번호": "7-8-1", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "타워야더(RME 300T) 가선설치", + "결과단위": "원/회", + "출처": "산림품셈 7-8-1", + "소유": "공용", + "비고": "표 값 = 가선 1회당 소요 조 수 · 1조 = 특별인부 2명 + 보통인부 1명(표 인력구분) · 집재는 7-8-3(GF000068)", + "시험입력": { "집재방식": "상향집재", "작업로길이": 200 }, + "입력": [{ "이름": "집재방식", "설명": "집재 방향", "고르기": ["상향집재", "하향집재"], "출처": "산림품셈 7-8-1" }, { "이름": "작업로길이", "설명": "가선(작업로) 길이", "단위": "m", "출처": "산림품셈 7-8-1" }], + "중간": [{ "이름": "조", "식": "찾기(QF000191, 집재방식=집재방식, 작업로길이=작업로길이).소요량" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "2 * 조", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 * 조", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000311", + "원문번호": "7-8-2", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "타워야더(RME 300T) 가선해체", + "결과단위": "원/회", + "출처": "산림품셈 7-8-2", + "소유": "공용", + "비고": "표 값 = 가선 1회당 소요 조 수 · 1조 = 특별인부 2명 + 보통인부 1명(표 인력구분) · 집재는 7-8-3(GF000068)", + "시험입력": { "집재방식": "상향집재", "작업로길이": 200 }, + "입력": [{ "이름": "집재방식", "설명": "집재 방향", "고르기": ["상향집재", "하향집재"], "출처": "산림품셈 7-8-2" }, { "이름": "작업로길이", "설명": "가선(작업로) 길이", "단위": "m", "출처": "산림품셈 7-8-2" }], + "중간": [{ "이름": "조", "식": "찾기(QF000192, 집재방식=집재방식, 작업로길이=작업로길이).소요량" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "2 * 조", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 * 조", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000068", "원문번호": "7-8-3", "구분": "산림품셈", "상세구분": "07장 집재 및 운재", "이름": "타워야더 집재", @@ -519,6 +671,152 @@ ], "끝수": null }, + { + "키": "GF000312", + "원문번호": "7-9-1", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "부착형 타워(K-301 · HAM300) 수확 집재", + "결과단위": "원/㎥", + "출처": "산림품셈 7-9-1", + "소유": "공용", + "비고": "해석: 건설기계조종원·운전기사 = 건설노임 건설기계운전사(1048) · 4인 1조(운전기사 1 · 특별인부 2 · 보통인부 1) · 해석: 할증을 인력 · 연료 · 손료(가동일)에 함께 곱함 · 1일 8시간 · 1회 집재재적 0.48㎥ 기준(주②) · 가선설치·해체 포함(주①) · 연료·손료 = 2-1-2 · 2-2-3 의 콜라타워야더(K-301) · HAM300 · 할인·할증 못 넣음 — 1-4-5 경사도(값 칸 「할인·할증률」) · 1-4-15 횡단운반거리(범위규칙이 글) — 칸 이름 · 범위규칙 문법(이웃 로직과 같음)", + "시험입력": { "집재재적": 50, "집재거리": 150, "기종": "K-301", "집재방향": "상향집재", "지역": "전국평균" }, + "입력": [ + { "이름": "집재재적", "설명": "ha당 집재 재적(100 이하)", "단위": "㎥/ha", "범위": [0, 100], "출처": "산림품셈 7-9-1" }, + { "이름": "집재거리", "설명": "최대 집재 거리(250m 이하)", "단위": "m", "범위": [0, 250], "출처": "산림품셈 7-9-1" }, + { "이름": "기종", "설명": "부착형 타워 기종", "고르기": ["K-301", "HAM300"], "출처": "산림품셈 7-9-1" }, + { "이름": "집재방향", "설명": "집재 방향", "고르기": ["상향집재", "하향집재"], "출처": "산림품셈 1-4-14" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { "이름": "Q0", "식": "찾기(QF000194, 집재재적=집재재적, 집재거리=집재거리).수집량" }, + { "이름": "Q", "식": "Q0" }, + { "이름": "할증", "식": "찾기(CF000043, 구분='가선을 이용한 기계장비의 원목․생산재 집재', 집재방향=집재방향).할증률", "출처": "산림품셈 1-4-14" }, + { "이름": "일수", "식": "(1 / Q) * (1 + 할증 / 100)" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "건설기계운전사", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "2 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { + "종류": "재료", + "요소": "MO:경유:{지역}", + "이름": "경유(부착형 타워)", + "단위": "ℓ", + "수량": "만약(기종 == 'K-301', 찾기(QF000002, 기계명='콜라타워야더(K-301)').주연료, 찾기(QF000002, 기계명='HAM300(임업용 트랙터 포함)').주연료) * 일수", + "비목": "재료비", + "출처": "산림품셈 2-1-2" + } + ], + "덧줄": [ + { + "이름": "잡품", + "식": "재료비 * 만약(기종 == 'K-301', 찾기(QF000002, 기계명='콜라타워야더(K-301)').잡품, 찾기(QF000002, 기계명='HAM300(임업용 트랙터 포함)').잡품) / 100", + "비목": "재료비", + "출처": "산림품셈 2-1-2 주「잡품」" + }, + { "이름": "기계손료", "식": "만약(기종 == 'K-301', EQ000630.손료계수 * EQ000630.장비가격, EQ000629.손료계수 * EQ000629.장비가격) * 1000 * 일수", "비목": "경비", "출처": "산림품셈 2-2-3" } + ], + "끝수": null + }, + { + "키": "GF000313", + "원문번호": "7-9-2", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "부착형 타워(K-301 · HAM300) 숲가꾸기·재선충병방제 집재", + "결과단위": "원/㎥", + "출처": "산림품셈 7-9-2", + "소유": "공용", + "비고": "해석: 건설기계조종원·운전기사 = 건설노임 건설기계운전사(1048) · 4인 1조(운전기사 1 · 특별인부 2 · 보통인부 1) · 해석: 할증을 인력 · 연료 · 손료(가동일)에 함께 곱함 · 재선충병 방제 산물은 수집량 가산표(QF000196)대로 가산(주④) · 작업면적 1.0ha 이상(주③) · 연료·손료 = 2-1-2 · 2-2-3 의 콜라타워야더(K-301) · HAM300 · 할인·할증 못 넣음 — 1-4-5 경사도(값 칸 「할인·할증률」) · 1-4-15 횡단운반거리(범위규칙이 글) — 칸 이름 · 범위규칙 문법(이웃 로직과 같음)", + "시험입력": { "집재재적": 50, "집재거리": 150, "기종": "K-301", "집재방향": "상향집재", "지역": "전국평균", "작업": "소나무재선충병방제" }, + "입력": [ + { "이름": "집재재적", "설명": "ha당 집재 재적(100 이하)", "단위": "㎥/ha", "범위": [0, 100], "출처": "산림품셈 7-9-2" }, + { "이름": "집재거리", "설명": "최대 집재 거리(250m 이하)", "단위": "m", "범위": [0, 250], "출처": "산림품셈 7-9-2" }, + { "이름": "기종", "설명": "부착형 타워 기종", "고르기": ["K-301", "HAM300"], "출처": "산림품셈 7-9-2" }, + { "이름": "집재방향", "설명": "집재 방향", "고르기": ["상향집재", "하향집재"], "출처": "산림품셈 1-4-14" }, + { "이름": "작업", "설명": "작업 갈래", "고르기": ["숲가꾸기", "소나무재선충병방제"], "출처": "산림품셈 7-9-2 주④" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { "이름": "Q0", "식": "찾기(QF000195, 집재재적=집재재적, 집재거리=집재거리).수집량" }, + { "이름": "가산", "식": "만약(작업 == '소나무재선충병방제', 찾기(QF000196, 노선별집재재적=집재재적, 집재거리=집재거리).가산율, 0)", "출처": "산림품셈 7-9-2 주④" }, + { "이름": "Q", "식": "Q0 * (1 + 가산 / 100)" }, + { "이름": "할증", "식": "찾기(CF000043, 구분='가선을 이용한 기계장비의 원목․생산재 집재', 집재방향=집재방향).할증률", "출처": "산림품셈 1-4-14" }, + { "이름": "일수", "식": "(1 / Q) * (1 + 할증 / 100)" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "건설기계운전사", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "2 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { + "종류": "재료", + "요소": "MO:경유:{지역}", + "이름": "경유(부착형 타워)", + "단위": "ℓ", + "수량": "만약(기종 == 'K-301', 찾기(QF000002, 기계명='콜라타워야더(K-301)').주연료, 찾기(QF000002, 기계명='HAM300(임업용 트랙터 포함)').주연료) * 일수", + "비목": "재료비", + "출처": "산림품셈 2-1-2" + } + ], + "덧줄": [ + { + "이름": "잡품", + "식": "재료비 * 만약(기종 == 'K-301', 찾기(QF000002, 기계명='콜라타워야더(K-301)').잡품, 찾기(QF000002, 기계명='HAM300(임업용 트랙터 포함)').잡품) / 100", + "비목": "재료비", + "출처": "산림품셈 2-1-2 주「잡품」" + }, + { "이름": "기계손료", "식": "만약(기종 == 'K-301', EQ000630.손료계수 * EQ000630.장비가격, EQ000629.손료계수 * EQ000629.장비가격) * 1000 * 일수", "비목": "경비", "출처": "산림품셈 2-2-3" } + ], + "끝수": null + }, + { + "키": "GF000314", + "원문번호": "7-10", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "굴착기 우드그랩 산지집재(병해충방제)", + "결과단위": "원/㎥", + "출처": "산림품셈 7-10", + "소유": "공용", + "비고": "해석: 건설기계조종원·운전기사 = 건설노임 건설기계운전사(1048) · 1일 작업량(㎥) · 운전기사 1 + 보통인부 1(작업방해물 제거 · 주④) · ha당 평균 작업량은 원문 세 구간으로 고름 · 집재거리 40m 기준 · 횡단경사 40% 이하 · 굴착기 이동 50m 이하(주③⑤) · 연료 = 2-1-2 우드그래플 · 손료 = 2-2-3 동력상하차기, 임업용 굴착기(우드그래플) · 할인·할증 못 넣음 — 1-4-5 경사도(값 칸 「할인·할증률」) · 1-4-15 횡단운반거리(범위규칙이 글) — 칸 이름 · 범위규칙 문법(이웃 로직과 같음)", + "시험입력": { "평균작업량": "20∼40㎥", "지역": "전국평균" }, + "입력": [ + { "이름": "평균작업량", "설명": "ha당 평균 작업량 구간", "고르기": ["20㎥ 미만", "20∼40㎥", "40㎥ 초과"], "출처": "산림품셈 7-10" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { "이름": "작업량값", "식": "만약(평균작업량 == '20㎥ 미만', 10, 만약(평균작업량 == '20∼40㎥', 30, 50))", "비고": "구간 가운데 값으로 찾음" }, + { "이름": "Q", "식": "찾기(QF000197, 구분='작업량', ha당평균작업량=작업량값).작업량" }, + { "이름": "일수", "식": "1 / Q" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "건설기계운전사", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "재료", "요소": "MO:경유:{지역}", "이름": "경유(우드그래플)", "단위": "ℓ", "수량": "찾기(QF000002, 기계명='우드그래플').주연료 * 일수", "비목": "재료비", "출처": "산림품셈 2-1-2" } + ], + "덧줄": [ + { "이름": "잡품", "식": "재료비 * 찾기(QF000002, 기계명='우드그래플').잡품 / 100", "비목": "재료비", "출처": "산림품셈 2-1-2 주「잡품」" }, + { "이름": "기계손료", "식": "EQ000636.손료계수 * EQ000636.장비가격 * 1000 * 일수", "비목": "경비", "출처": "산림품셈 2-2-3" } + ], + "끝수": null + }, { "키": "GF000069", "원문번호": "7-11", "구분": "산림품셈", "상세구분": "07장 집재 및 운재", "이름": "동력상하차기(우드그래플) 집재", @@ -654,6 +952,67 @@ ], "끝수": null }, + { + "키": "GF000315", + "원문번호": "7-12", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "동력상하차기(우드그래플) 집적", + "결과단위": "원/㎥", + "출처": "산림품셈 7-12", + "소유": "공용", + "비고": "해석: 건설기계조종원·운전기사 = 건설노임 건설기계운전사(1048) · 1인 1조 · 원목 길이 1.8 · 2.1 · 2.7 · 3.6m(장재는 응용 · 주②) · 검척 안 한 원목은 생산재 평균직경(주③) · 재선충병 방제 산물 77% 가산(주④) · 직경 30㎝ 는 「26∼30」 줄(표 규칙상 29.5 로 찾음) · 연료 = 2-1-2 우드그래플 · 손료 = 2-2-3 동력상하차기(EQ000636)", + "시험입력": { "원목길이": 2.7, "원목직경": 28, "작업": "일반", "지역": "전국평균" }, + "입력": [ + { "이름": "원목길이", "설명": "원목(생산재) 길이", "단위": "m", "고르기": [1.8, 2.1, 2.7, 3.6], "출처": "산림품셈 7-12" }, + { "이름": "원목직경", "설명": "말구 평균 지름", "단위": "㎝", "출처": "산림품셈 7-12" }, + { "이름": "작업", "설명": "작업 갈래", "고르기": ["일반", "소나무재선충병방제"], "출처": "산림품셈 7-12 주④" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { "이름": "찾을직경", "식": "만약(원목직경 == 30, 29.5, 원목직경)" }, + { "이름": "Q", "식": "찾기(QF000201, 원목길이=원목길이, 원목직경=찾을직경).수량 * (1 + 만약(작업 == '일반', 0, 찾기(CF000071, 구분='소나무재선충병방제 산물 집적량 가산').적용) / 100)" }, + { "이름": "일수", "식": "1 / Q" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "건설기계운전사", "단위": "인", "수량": "1 * 일수", "비목": "노무비" }, + { "종류": "재료", "요소": "MO:경유:{지역}", "이름": "경유(우드그래플)", "단위": "ℓ", "수량": "찾기(QF000002, 기계명='우드그래플').주연료 * 일수", "비목": "재료비", "출처": "산림품셈 2-1-2" } + ], + "덧줄": [ + { "이름": "잡품", "식": "재료비 * 찾기(QF000002, 기계명='우드그래플').잡품 / 100", "비목": "재료비", "출처": "산림품셈 2-1-2 주「잡품」" }, + { "이름": "기계손료", "식": "EQ000636.손료계수 * EQ000636.장비가격 * 1000 * 일수", "비목": "경비", "출처": "산림품셈 2-2-3" } + ], + "끝수": null + }, + { + "키": "GF000316", + "원문번호": "7-13", + "구분": "산림품셈", + "상세구분": "07장 집재 및 운재", + "이름": "검척", + "결과단위": "원/100㎥", + "출처": "산림품셈 7-13", + "소유": "공용", + "비고": "초급기술자 0.67인/100㎥(2인 1조 · 1일 300㎥ · 주①) · 원문에 기술자 갈래 없음 — 설계자 고름 · 평균 말구직경 할인·할증(주③ · 16∼24㎝ 는 0) · 층적 측정은 검척 품의 10%(주⑤) · 1ha당 150㎥ 기준 뒤 정산(주②) · 중량매각은 생략 가능", + "시험입력": { "직종": "초급기술자(건설)", "말구직경": 15.51, "측정": "검척" }, + "입력": [ + { "이름": "직종", "설명": "검척하는 초급기술자의 노임 직종", "고르기": ["초급기술자(건설)", "초급기술자(기타)", "측량초급기술자"], "출처": "산림품셈 7-13" }, + { "이름": "말구직경", "설명": "평균 말구 지름(가중 평균 · 주④)", "단위": "㎝", "출처": "산림품셈 7-13 주③④" }, + { "이름": "측정", "설명": "생산량 산출 방법", "고르기": ["검척", "층적 측정"], "출처": "산림품셈 7-13 주⑤" } + ], + "중간": [ + { "이름": "할증", "식": "만약(말구직경 >= 16 그리고 말구직경 < 24, 0, 찾기(CF000073, 말구직경=말구직경).적용)", "출처": "산림품셈 7-13 주③" }, + { "이름": "층적", "식": "만약(측정 == '층적 측정', 찾기(CF000072, 구분='층적 측정 시 검척 품 적용').적용 / 100, 1)", "출처": "산림품셈 7-13 주⑤" } + ], + "호표": [{ "종류": "인력", "요소": "LB:{직종}", "이름": "초급기술자", "단위": "인", "수량": "찾기(QF000202, 구분='생산목 검척').소요인력 * (1 + 할증 / 100) * 층적", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000071", "원문번호": "7-15-1", "구분": "산림품셈", "상세구분": "07장 집재 및 운재", "이름": "초소형 포워더 운재(수확)", diff --git a/resources/master_data/로직_산림품셈_08장_방제.json b/resources/master_data/로직_산림품셈_08장_방제.json index e2c436282..b11e1447c 100644 --- a/resources/master_data/로직_산림품셈_08장_방제.json +++ b/resources/master_data/로직_산림품셈_08장_방제.json @@ -4,6 +4,46 @@ "차례": 6, "판": "2026-01-01", "줄": [ + { + "키": "GF000317", + "원문번호": "8-1-1", + "구분": "산림품셈", + "상세구분": "08장 방제", + "이름": "나무주사 약제주입기", + "결과단위": "원/ha", + "출처": "산림품셈 8-1-1", + "소유": "공용", + "비고": "천공 = 특별인부 · 자재운반·흉고검측·약제주입 = 보통인부(주②) · 약제량은 전수·표준지 조사로 산정(주①) · 둘레베기 필요 시 6-2-1(주③) · 약제 재료 원문 표에 없음 · 할인·할증 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘(이웃 로직과 같음)", + "시험입력": { "천공수": 1000 }, + "입력": [{ "이름": "천공수", "설명": "나무주사 천공 개수", "단위": "개", "출처": "산림품셈 8-1-1" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부(천공)", "단위": "인", "수량": "찾기(QF000210, 천공수=천공수).특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000210, 천공수=천공수).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000318", + "원문번호": "8-1-2", + "구분": "산림품셈", + "상세구분": "08장 방제", + "이름": "나무주사 약제주입병", + "결과단위": "원(원문 밑수 「인」 — 천공수 구간당)", + "출처": "산림품셈 8-1-2", + "소유": "공용", + "비고": "원문 밑수 「(인)」 뿐 — 면적 기준 없음(8-1-1 은 ha당) · 주입병 60㎖ 기준(주②) · 특별인부 천공 · 보통인부 운반·측정·주입·수거·구멍막기(주①) · 약제 재료 원문 표에 없음 · 할인·할증 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘(이웃 로직과 같음)", + "시험입력": { "천공수": 1000 }, + "입력": [{ "이름": "천공수", "설명": "나무주사 천공 개수", "단위": "개", "출처": "산림품셈 8-1-2" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부(천공)", "단위": "인", "수량": "찾기(QF000211, 천공수=천공수).특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000211, 천공수=천공수).보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000076", "원문번호": "8-3", "구분": "산림품셈", "상세구분": "08장 방제", "이름": "방제 벌목조재", @@ -200,6 +240,26 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000319", + "원문번호": "8-4", + "구분": "산림품셈", + "상세구분": "08장 방제", + "이름": "끈끈이 롤 트랩 설치·제거", + "결과단위": "원/ha", + "출처": "산림품셈 8-4", + "소유": "공용", + "비고": "해석: 표 작업량 = 보통인부 인/ha(밑수 100본/ha · 롤 사용량이 많을수록 품이 큼) · 설치·제거 따로 고름 · 롤트랩 수량은 주② 식(Q = 2πrL(1+R)/W) 으로 설계자가 셈 — 재료 별도 · 막힘: 임업용 테이프(4.0m/본 · 주③) 자재품목에 없음 — 줄 뺌 · 할인·할증 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘(이웃 로직과 같음)", + "시험입력": { "작업": "롤트랩 설치", "롤트랩사용량": 9 }, + "입력": [ + { "이름": "작업", "설명": "설치 또는 제거", "고르기": ["롤트랩 설치", "롤트랩 제거"], "출처": "산림품셈 8-4" }, + { "이름": "롤트랩사용량", "설명": "롤트랩 사용량(8롤 미만 · 8∼11 미만 · 11 이상)", "단위": "롤", "출처": "산림품셈 8-4" } + ], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000232, 구분=작업, 롤트랩사용량=롤트랩사용량).작업량", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000080", "원문번호": "8-5", "구분": "산림품셈", "상세구분": "08장 방제", "이름": "페르몬 유인트랩", @@ -306,6 +366,89 @@ ], "끝수": null }, + { + "키": "GF000320", + "원문번호": "8-6-2", + "구분": "산림품셈", + "상세구분": "08장 방제", + "이름": "드론방제(무인헬기 · 멀티콥터)", + "결과단위": "원/ha", + "출처": "산림품셈 8-6-2", + "소유": "공용", + "비고": "해석: 드론조종자·부조종자(건설기계조종원) = 건설노임 건설기계운전사(1048) · 인력 = 표 「계」 줄 · 손료 = 1일 손료계수 × 취득가액 ÷ 1일 방제면적(시간당 면적 × 4시간 · 2-2-7 주④ · 2-2-8) · 멀티콥터는 배터리 손료도 더함 · 약제비·연료 원문 표에 없음 · 할인·할증 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘(이웃 로직과 같음)", + "시험입력": { "기종": "무인헬기" }, + "입력": [{ "이름": "기종", "설명": "드론 종류", "고르기": ["무인헬기", "멀티콥터"], "출처": "산림품셈 8-6-2" }], + "중간": [ + { + "이름": "일방제면적", + "식": "만약(기종 == '무인헬기', 찾기(CF000091, 구분='시간당 방제가능 면적').적용 * 찾기(CF000091, 구분='1일 작업시간').적용, 찾기(CF000092, 구분='시간당 방제가능 면적').적용 * 찾기(CF000092, 구분='1일 작업시간').적용)", + "출처": "산림품셈 8-6-2 주① · 2-2-7 주④" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "LB000048", + "이름": "드론조종자(건설기계운전사)", + "단위": "인", + "수량": "만약(기종 == '무인헬기', 찾기(QF000237, 항목='계').'드론조종자 (건설기계 조종원)', 찾기(QF000238, 항목='계').'드론조종자 (건설기계 조종원)')", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "LB000048", + "이름": "부조종자(건설기계운전사)", + "단위": "인", + "수량": "만약(기종 == '무인헬기', 찾기(QF000237, 항목='계').'부조종자 (건설기계 조종원)', 찾기(QF000238, 항목='계').'부조종자 (건설기계 조종원)')", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "LB000003", + "이름": "특별인부(신호수)", + "단위": "인", + "수량": "만약(기종 == '무인헬기', 찾기(QF000237, 항목='계').'특별인부 (신호수)', 찾기(QF000238, 항목='계').'특별인부 (신호수)')", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "LB000002", + "이름": "보통인부", + "단위": "인", + "수량": "만약(기종 == '무인헬기', 찾기(QF000237, 항목='계').'보통인부', 찾기(QF000238, 항목='계').'보통인부')", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "드론 손료", + "식": "만약(기종 == '무인헬기', EQ000645.손료계수 * EQ000645.취득가액, EQ000646.손료계수 * EQ000646.취득가액 + EQ000647.손료계수 * EQ000647.취득가액) / 일방제면적", + "비목": "경비", + "출처": "산림품셈 2-2-7 · 2-2-8" + } + ], + "끝수": null + }, + { + "키": "GF000321", + "원문번호": "8-6-3", + "구분": "산림품셈", + "상세구분": "08장 방제", + "이름": "지상방제 차량살포(동력분무기)", + "결과단위": "원/일", + "출처": "산림품셈 8-6-3", + "소유": "공용", + "비고": "해석: 표 「계」 줄 = 1일 인원(운전 1인 · 사전조사 0.05인 · 물주입·살포 2인) · 동력분무기 손료 = 1일 손료계수 0.0084 × 취득가격(2-2-9 · 가격은 조달·물가 따라 설계자 입력) · 방제차량(1톤)은 건설품셈 적산기준(2-2-9) — 1톤 트럭 기계 요소 없어 줄 뺌 · 약제량은 희석배수표(QF000240)로 설계자가 셈", + "시험입력": { "동력분무기가격": 5000000 }, + "입력": [{ "이름": "동력분무기가격", "설명": "동력분무기(45HP) 취득가격", "단위": "원", "출처": "산림품셈 2-2-9" }], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000239, 항목='계').특별인부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000239, 항목='계').보통인부", "비목": "노무비" } + ], + "덧줄": [{ "이름": "동력분무기 손료", "식": "EQ000649.손료계수 * 동력분무기가격", "비목": "경비", "출처": "산림품셈 2-2-9" }], + "끝수": null + }, { "키": "GF000082", "원문번호": "8-7", "구분": "산림품셈", "상세구분": "08장 방제", "이름": "방제 실행 등록", @@ -439,6 +582,58 @@ ], "덧줄": [], "끝수": null + }, + { + "키": "GF000322", + "원문번호": "8-10", + "구분": "산림품셈", + "상세구분": "08장 방제", + "이름": "그물망 피복", + "결과단위": "원/㎥", + "출처": "산림품셈 8-10", + "소유": "공용", + "비고": "입목재적 ㎥당 — 원문 1㎥ · 2㎥ 줄은 같은 ㎥당 품(2㎥ = 1㎥ × 2) · 소운반 30m 이내(주①) · 그물망 층적부피 = 입목재적 × 1.81(주② · 재료 별도) · 할인·할증 못 넣음 — 1-4 표 칸 이름·범위규칙 막힘(이웃 로직과 같음)", + "시험입력": {}, + "입력": [], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000037", "이름": "벌목부(벌목조재)", "단위": "인", "수량": "찾기(QF000245, 입목재적=1, 항목='계').벌목부", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부(피복작업)", "단위": "인", "수량": "찾기(QF000245, 입목재적=1, 항목='계').보통인부", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000323", + "원문번호": "8-11", + "구분": "산림품셈", + "상세구분": "08장 방제", + "이름": "이동식 임목 파쇄(93.25KW)", + "결과단위": "원/㎥", + "출처": "산림품셈 8-11", + "소유": "공용", + "비고": "Q 3.5㎥/hr · 1일 8시간 · 운전원 1 + 보통인부 2(주①②) — 해석: 시간당 인원 = 1일 인원 ÷ 8 · 해석: 운전원 = 건설노임 건설기계운전사(1048) · 해석: 연료 13.5ℓ/hr(디젤) 는 주⑤ 글(「10.8 + 16.3ℓ / 2 = 13.5ℓ」)이라 식에 수로 적음 · 잡재료 = 주연료비 16% · 손료 = 시간당 손료계수 3,349×10^-7 × 장비가격(2-2-10 · 시중가격 설계자 입력) · 막힘: 파쇄기날 0.00125개/hr 자재품목에 없음 — 줄 뺌 · 장비 운반비 별도(주③)", + "시험입력": { "파쇄기가격": 150000000, "지역": "전국평균" }, + "입력": [ + { "이름": "파쇄기가격", "설명": "이동식 임목 파쇄기 시중가격", "단위": "원", "출처": "산림품셈 2-2-10" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [{ "이름": "Q", "식": "찾기(QF000246, 구분='이동식 임목 파쇄기').작업량" }, { "이름": "시간", "식": "1 / Q" }, { "이름": "일시간", "식": "찾기(CF000096, 구분='1일 작업시간').적용" }], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "운전원(건설기계운전사)", "단위": "인", "수량": "찾기(CF000096, 구분='기계운전자').적용 / 일시간 * 시간", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(CF000096, 구분='보통인부').적용 / 일시간 * 시간", "비목": "노무비" }, + { "종류": "재료", "요소": "MO:경유:{지역}", "이름": "경유(파쇄기)", "단위": "ℓ", "수량": "13.5 * 시간", "비목": "재료비", "출처": "산림품셈 8-11 주⑤" } + ], + "덧줄": [ + { "이름": "잡재료", "식": "재료비 * 찾기(CF000096, 구분='잡재료').적용 / 100", "비목": "재료비", "출처": "산림품셈 8-11 비고" }, + { "이름": "파쇄기 손료", "식": "EQ000650.시간당손료계수 / 10000000 * 파쇄기가격 * 시간", "비목": "경비", "출처": "산림품셈 2-2-10" } + ], + "끝수": null } ] } diff --git a/resources/master_data/로직_산림품셈_09장_토공.json b/resources/master_data/로직_산림품셈_09장_토공.json index 8abe6be13..e3b3e7569 100644 --- a/resources/master_data/로직_산림품셈_09장_토공.json +++ b/resources/master_data/로직_산림품셈_09장_토공.json @@ -110,6 +110,59 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000252", + "원문번호": "9-4-1", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "암파쇄(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-4-1", + "소유": "공용", + "비고": "주① Q = 연암·보통암·경암 평균 · 주② 비율은 현장여건 따라 달리 함 · 해석: 기계 1시간 ÷ 작업능력 Q = ㎥당 시간 · 치즐은 본/hr ÷ Q · 집토는 따로(9-4-2 로직)", + "시험입력": { "암의종류": "평균", "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "암의종류", "설명": "깨는 암의 종류(평균 = 세 암 평균)", "고르기": ["평균", "연암", "보통암", "경암"], "출처": "산림품셈 9-4-1" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { + "이름": "작업능력", + "식": "만약(암의종류 == '평균', (찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'='연암').작업능력 + 찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'='보통암').작업능력 + 찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'='경암').작업능력) / 3, 찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'=암의종류).작업능력)" + }, + { + "이름": "치즐소모량", + "식": "만약(암의종류 == '평균', (찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'='연암').치즐소모량 + 찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'='보통암').치즐소모량 + 찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'='경암').치즐소모량) / 3, 찾기(QF000250, 적용기계='대형브레이커+유압식백호우(무한궤도,0.7㎥)', '암의 종류'=암의종류).치즐소모량)" + } + ], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / 작업능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "치즐소모량 / 작업능력", + "비목": "재료비", + "출처": "산림품셈 9-4-1", + "비고": "원문 단위 「본」" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000090", "원문번호": "9-4-2", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "암절취 집토(굴착기 0.7㎥) 시간당 작업량", @@ -173,6 +226,94 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000254", + "원문번호": "9-5-1", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "육상 암석 절취(발파 10%)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-5-1", + "소유": "공용", + "비고": "해석: 착암기 2.7㎥/min = 기계 요소 소형브레이커(공압식) 2.7㎥/min(5210-0027 · 같은 공기소비량) · 해석: 잡재료비 「주재료의 5%」 는 표 비고 글이라 식에 수로 적음 · 횡단경사 80% 이상 발파 인건비 20% 가산(9-5-3 주③ · CF000106) · 폭약·뇌관·비트 규격은 원문에 없음 — 검색어 첫 후보", + "시험입력": { "횡단경사": "80% 미만", "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "횡단경사", "설명": "발파 구간 평균 횡단경사", "고르기": ["80% 미만", "80% 이상"], "출처": "산림품셈 9-5-3 주③" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "인건비가산", "식": "만약(횡단경사 == '80% 이상', 찾기(CF000106, 구분='인건비 가산').적용, 0)", "출처": "산림품셈 9-5-3 주③" }], + "호표": [ + { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "화약", "검색어": "폭약" }, "이름": "폭약", "단위": "kg", "수량": "찾기(QF000252, 이름='폭약').수량", "비목": "재료비" }, + { "종류": "재료", "요소": { "구분": "잡재료", "상세구분": "화약", "검색어": "전기뇌관" }, "이름": "뇌관", "단위": "개", "수량": "찾기(QF000252, 이름='뇌관').수량", "비목": "재료비" }, + { "종류": "재료", "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "착암기비트" }, "이름": "비트", "단위": "개", "수량": "찾기(QF000252, 이름='비트').수량", "비목": "재료비" }, + { "종류": "인력", "요소": "LB000016", "이름": "화약공(화약취급공)", "단위": "인", "수량": "찾기(QF000252, 이름='화약공').수량 * (1 + 인건비가산 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000015", "이름": "착암공", "단위": "인", "수량": "찾기(QF000252, 이름='착암공').수량 * (1 + 인건비가산 / 100)", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000252, 이름='보통인부').수량 * (1 + 인건비가산 / 100)", "비목": "노무비" }, + { "종류": "로직", "요소": "로직(GC000273, 기계='5210-0027')", "이름": "착암기 2.7㎥/min", "단위": "시간", "수량": "찾기(QF000252, 이름='착암기').수량" }, + { "종류": "로직", "요소": "로직(GC000268, 기계='5205-0103', 지역=지역)", "이름": "공기압축기 10.3㎥/min", "단위": "시간", "수량": "찾기(QF000252, 이름='공기압축기').수량" } + ], + "덧줄": [{ "이름": "잡재료비", "식": "재료비 * 5 / 100", "비목": "재료비", "출처": "산림품셈 9-5-1 비고" }], + "끝수": null + }, + { + "키": "GF000253", + "원문번호": "9-5-2", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "발파암 깎기 90%(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-5-2", + "소유": "공용", + "비고": "원문 주 「대형브레이커와 무한궤도 굴착기(0.7㎥)」 · 평균은 9-4-1 주① 과 같은 꼴 · 해석: 기계 1시간 ÷ 작업능력 Q = ㎥당 시간 · 치즐은 본/hr ÷ Q · 집토는 따로(9-5-3 로직)", + "시험입력": { "암의종류": "평균", "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "암의종류", "설명": "깨는 암의 종류(평균 = 세 암 평균)", "고르기": ["평균", "연암", "보통암", "경암"], "출처": "산림품셈 9-5-2" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { + "이름": "작업능력", + "식": "만약(암의종류 == '평균', (찾기(QF000253, '암의 종류'='연암').작업능력 + 찾기(QF000253, '암의 종류'='보통암').작업능력 + 찾기(QF000253, '암의 종류'='경암').작업능력) / 3, 찾기(QF000253, '암의 종류'=암의종류).작업능력)" + }, + { + "이름": "치즐소모량", + "식": "만약(암의종류 == '평균', (찾기(QF000253, '암의 종류'='연암').치즐소모량 + 찾기(QF000253, '암의 종류'='보통암').치즐소모량 + 찾기(QF000253, '암의 종류'='경암').치즐소모량) / 3, 찾기(QF000253, '암의 종류'=암의종류).치즐소모량)" + } + ], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / 작업능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "치즐소모량 / 작업능력", + "비목": "재료비", + "출처": "산림품셈 9-5-2", + "비고": "원문 단위 「본」" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000092", "원문번호": "9-5-3", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "발파암 집토(굴착기 0.7㎥) 시간당 작업량", @@ -237,6 +378,49 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000255", + "원문번호": "9-6-1", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "발파암 기계소할(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-6-1", + "소유": "공용", + "비고": "결과는 소할하는 물량 ㎥당 — 소할 물량은 발파암 물량의 15% 범위(주③ · Q1=10×0.15 주②)로 설계자가 셈 · 해석: 기계 1시간 ÷ Q = ㎥당 시간", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "작업능력", "식": "찾기(QF000255).작업능력" }], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / 작업능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "찾기(QF000255).치즐소모량 / 작업능력", + "비목": "재료비", + "출처": "산림품셈 9-6-1", + "비고": "원문 단위 「본」" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000094", "원문번호": "9-7-1", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "콘크리트 깨기 집토(굴착기 0.7㎥) 시간당 작업량", @@ -300,6 +484,96 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000256", + "원문번호": "9-7-1", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "무근콘크리트 깨기(T=30㎝ 미만) 깨기(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-7-1", + "소유": "공용", + "비고": "해석: 기계 1시간 ÷ Q = ㎥당 시간 · 해석: 표 비고 칸 글 「대형브레이커치즐 0.01본/hr · 보통인부 1인/일」 을 식에 수로 적음 — 보통인부 = 1인 ÷ (Q × 8시간) · 집토는 GF000095", + "시험입력": { "작업능력": 0, "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "작업능력", "설명": "대형브레이커 시간당 깨기량(0 = 원문 평균)", "단위": "㎥/hr", "범위": [0, 5.9], "출처": "산림품셈 9-7-1", "비고": "원문 범위 3.3∼5.9 · 0 이면 주② 평균" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "Q", "식": "만약(작업능력 > 0, 작업능력, 찾기(CF000108, 구분='Q 평균').적용)", "출처": "산림품셈 9-7-1 주②" }], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / Q" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "0.01 / Q", + "비목": "재료비", + "출처": "산림품셈 9-7-1 비고", + "비고": "원문 단위 「본」" + }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 / (Q * 8)", "비목": "노무비", "출처": "산림품셈 9-7-1 비고" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000257", + "원문번호": "9-7-2", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "무근콘크리트 깨기(T=30㎝ 이상) 깨기(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-7-2", + "소유": "공용", + "비고": "해석: 기계 1시간 ÷ Q = ㎥당 시간 · 해석: 표 비고 칸 글 「대형브레이커치즐 0.01본/hr · 보통인부 1인/일」 을 식에 수로 적음 — 보통인부 = 1인 ÷ (Q × 8시간) · 집토는 GF000095", + "시험입력": { "작업능력": 0, "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "작업능력", "설명": "대형브레이커 시간당 깨기량(0 = 원문 평균)", "단위": "㎥/hr", "범위": [0, 4.6], "출처": "산림품셈 9-7-2", "비고": "원문 범위 2.6∼4.6 · 0 이면 주② 평균" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "Q", "식": "만약(작업능력 > 0, 작업능력, 찾기(CF000109, 구분='Q 평균').적용)", "출처": "산림품셈 9-7-2 주②" }], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / Q" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "0.01 / Q", + "비목": "재료비", + "출처": "산림품셈 9-7-2 비고", + "비고": "원문 단위 「본」" + }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 / (Q * 8)", "비목": "노무비", "출처": "산림품셈 9-7-2 비고" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000096", "원문번호": "9-8-1", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "철근콘크리트 깨기 철근절단", @@ -356,6 +630,96 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000258", + "원문번호": "9-8-1", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "철근콘크리트 깨기(T=30㎝ 미만) 깨기(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-8-1", + "소유": "공용", + "비고": "해석: 기계 1시간 ÷ Q = ㎥당 시간 · 해석: 표 비고 칸 글 「대형브레이커치즐 0.01본/hr · 보통인부 1인/일」 을 식에 수로 적음 — 보통인부 = 1인 ÷ (Q × 8시간) · 집토는 GF000095 · 철근절단(GF000096) · 고철공제는 GF000096 몫", + "시험입력": { "작업능력": 0, "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "작업능력", "설명": "대형브레이커 시간당 깨기량(0 = 원문 평균)", "단위": "㎥/hr", "범위": [0, 3.3], "출처": "산림품셈 9-8-1", "비고": "원문 범위 1.6∼3.3 · 0 이면 주② 평균" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "Q", "식": "만약(작업능력 > 0, 작업능력, 찾기(CF000104, 구분='Q 평균').적용)", "출처": "산림품셈 9-8-1 주②" }], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / Q" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "0.01 / Q", + "비목": "재료비", + "출처": "산림품셈 9-8-1 비고", + "비고": "원문 단위 「본」" + }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 / (Q * 8)", "비목": "노무비", "출처": "산림품셈 9-8-1 비고" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000259", + "원문번호": "9-8-2", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "철근콘크리트 깨기(T=30㎝ 이상) 깨기(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-8-2", + "소유": "공용", + "비고": "해석: 기계 1시간 ÷ Q = ㎥당 시간 · 해석: 표 비고 칸 글 「대형브레이커치즐 0.01본/hr · 보통인부 1인/일」 을 식에 수로 적음 — 보통인부 = 1인 ÷ (Q × 8시간) · 집토는 GF000095 · 철근절단은 9-8-1 품(GF000096)", + "시험입력": { "작업능력": 0, "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "작업능력", "설명": "대형브레이커 시간당 깨기량(0 = 원문 평균)", "단위": "㎥/hr", "범위": [0, 2.7], "출처": "산림품셈 9-8-2", "비고": "원문 범위 1.4∼2.7 · 0 이면 주② 평균" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "Q", "식": "만약(작업능력 > 0, 작업능력, 찾기(CF000105, 구분='Q 평균').적용)", "출처": "산림품셈 9-8-2 주②" }], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / Q" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "0.01 / Q", + "비목": "재료비", + "출처": "산림품셈 9-8-2 비고", + "비고": "원문 단위 「본」" + }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 / (Q * 8)", "비목": "노무비", "출처": "산림품셈 9-8-2 비고" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000097", "원문번호": "9-9", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "석축헐기(인력)", @@ -379,6 +743,131 @@ "덧줄": [{ "이름": "잡재료비", "식": "노무비 * 5 / 100", "비목": "재료비", "출처": "산림품셈 9-9 주②" }], "끝수": null }, + { + "키": "GF000260", + "원문번호": "9-10-1", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "기존포장 깨기 콘크리트 깨기(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-10-1", + "소유": "공용", + "비고": "해석: 기계 1시간 ÷ Q = ㎥당 시간 · 해석: 표 비고 칸 글 「대형브레이커치즐 0.01본/hr · 보통인부 1인/일」 을 식에 수로 적음 — 보통인부 = 1인 ÷ (Q × 8시간) · 집토는 GF000095", + "시험입력": { "작업능력": 0, "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { "이름": "작업능력", "설명": "대형브레이커 시간당 깨기량(0 = 원문 평균)", "단위": "㎥/hr", "범위": [0, 5.9], "출처": "산림품셈 9-10-1", "비고": "원문 범위 3.3∼5.9 · 0 이면 주② 평균" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "Q", "식": "만약(작업능력 > 0, 작업능력, 찾기(CF000115, 구분='Q 평균').적용)", "출처": "산림품셈 9-10-1 주②" }], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / Q" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "0.01 / Q", + "비목": "재료비", + "출처": "산림품셈 9-10-1 비고", + "비고": "원문 단위 「본」" + }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 / (Q * 8)", "비목": "노무비", "출처": "산림품셈 9-10-1 비고" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000261", + "원문번호": "9-10-2", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "기존포장 깨기 아스팔트 깨기(대형브레이커 · 굴착기 0.7㎥)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-10-2", + "소유": "공용", + "비고": "해석: 기계 1시간 ÷ Q = ㎥당 시간 · 해석: 표 비고 칸 글 「대형브레이커치즐 0.01본/hr · 보통인부 1인/일」 을 식에 수로 적음 — 보통인부 = 1인 ÷ (Q × 8시간) · 집토는 GF000095", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [{ "이름": "Q", "식": "찾기(CF000116, 구분='Q').적용", "출처": "산림품셈 9-10-2 주②" }], + "호표": [ + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "1 / Q" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "0.01 / Q", + "비목": "재료비", + "출처": "산림품셈 9-10-2 비고", + "비고": "원문 단위 「본」" + }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "1 / (Q * 8)", "비목": "노무비", "출처": "산림품셈 9-10-2 비고" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000262", + "원문번호": "9-11-1", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "포장절단 콘크리트(기계)", + "결과단위": "원/m", + "출처": "산림품셈 9-11-1", + "소유": "공용", + "비고": "해석: 일당 인력 ÷ 일당 절단 350m · 콘크리트커트 1대 × 8시간 ÷ 350m · 잡자재 = 인건비의 5%(표) · 물운반(30ℓ/m)은 운반방법별이라 원문 값 없음 — 별도 · 해석: 콘크리트커트 = 기계 요소 커터 320∼400㎜(4430-0400 · 조종원 없는 경비)", + "시험입력": { "지역": "전국평균" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [{ "이름": "일시공량", "식": "찾기(QF000265, 이름='콘크리트커트').적용" }], + "호표": [ + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000265, 이름='특별인부').적용 / 일시공량", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000265, 이름='보통인부').적용 / 일시공량", "비목": "노무비" }, + { "종류": "로직", "요소": "로직(GC000272, 기계='4430-0400', 지역=지역)", "이름": "콘크리트커트 320∼400㎜", "단위": "시간", "수량": "8 / 일시공량" }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "블레이드 14\"×3.2mm" }, + "이름": "브레이드(320∼400㎜ · 14인치)", + "단위": "개", + "수량": "찾기(QF000265, 이름='브레이드').적용 / 일시공량", + "비목": "재료비" + } + ], + "덧줄": [{ "이름": "잡자재", "식": "노무비 * 찾기(QF000265, 이름='잡자재').적용 / 100", "비목": "재료비", "출처": "산림품셈 9-11-1" }], + "끝수": null + }, { "키": "GF000098", "원문번호": "9-12-1", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "측구터파기 토사 굴착기 시간당 작업량", @@ -454,6 +943,116 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000263", + "원문번호": "9-12-2", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "측구터파기 암절취", + "결과단위": "원/㎥", + "출처": "산림품셈 9-12-2", + "소유": "공용", + "비고": "해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000126, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000126, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000268, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000126, 구분='굴착기 버킷').적용 * 찾기(QF000268, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000268, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000268, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000268, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000268, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000268, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000268, 이름='치즐소모').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-12-2", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000264", + "원문번호": "9-12-3", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "측구터파기 발파암", + "결과단위": "원/㎥", + "출처": "산림품셈 9-12-3", + "소유": "공용", + "비고": "해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000126, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000126, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000269, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000126, 구분='굴착기 버킷').적용 * 찾기(QF000269, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000269, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000269, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000269, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000269, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000269, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000269, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-12-3", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000100", "원문번호": "9-13-1", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "구조물터파기 육상토사(0~1m) 굴착기 시간당 작업량", @@ -904,6 +1503,663 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000265", + "원문번호": "9-13-7", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 육상 암절취(0~1m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-7", + "소유": "공용", + "비고": "해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000276, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000276, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000276, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000276, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-7", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000266", + "원문번호": "9-13-8", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 육상 암절취(1~2m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-8", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「육상 암절취(0~1m)와 동일」 — QF000276 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000277, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000277, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000277, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000277, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-8", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000267", + "원문번호": "9-13-9", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 육상 암절취(2~3m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-9", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「육상 암절취(0~1m)와 동일」 — QF000276 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000278, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000276, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000278, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000278, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000278, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-9", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000268", + "원문번호": "9-13-10", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 용수 암절취(0~1m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-10", + "소유": "공용", + "비고": "해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000279, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000279, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000279, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-10", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000269", + "원문번호": "9-13-11", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 용수 암절취(1~2m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-11", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「용수 암절취(0~1m)와 동일」 — QF000279 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000280, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000280, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000280, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-11", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000270", + "원문번호": "9-13-12", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 용수 암절취(2~3m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-12", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「용수 암절취(0~1m)와 동일」 — QF000279 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000281, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000279, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000281, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000281, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-12", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000271", + "원문번호": "9-13-13", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 육상 발파암(0~1m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-13", + "소유": "공용", + "비고": "해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000282, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000282, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000282, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000282, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-13", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000272", + "원문번호": "9-13-14", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 육상 발파암(1~2m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-14", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「육상 발파암(1~2m)와 동일」 — QF000282 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000283, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000283, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000283, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000283, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-14", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000273", + "원문번호": "9-13-15", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 육상 발파암(2~3m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-15", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「육상 발파암(1~2m)와 동일」 — QF000282 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000284, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000282, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000284, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000284, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000284, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-15", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000274", + "원문번호": "9-13-16", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 용수 발파암(0~1m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-16", + "소유": "공용", + "비고": "해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000285, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000285, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000285, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000285, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-16", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000275", + "원문번호": "9-13-17", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 용수 발파암(1~2m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-17", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「용수 발파암(0~1m)와 동일」 — QF000285 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000286, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000286, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000286, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000286, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-17", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000276", + "원문번호": "9-13-18", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "구조물터파기 용수 발파암(2~3m)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-13-18", + "소유": "공용", + "비고": "들어내기 굴착기 값은 원문 「용수 발파암(0~1m)와 동일」 — QF000285 · 해석: 전량 인력 품 × 인력비율 · 장비 = 깨기(대형브레이커 1시간 ÷ Q) + 들어내기(굴착기 Q = 3600·q·K·f·E/Cm) 각각 × 장비비율 — 9-12-1·9-13-1 토사 로직과 같은 꼴 · q = 0.7㎥(표 이름 「무한궤도,0.7㎥」)", + "시험입력": { "지역": "전국평균", "보정작업": "암석작업(연암・보통암・경암)" }, + "입력": [ + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "인력비율", "식": "찾기(CF000127, 구분='인력').적용" }, + { "이름": "기계비율", "식": "찾기(CF000127, 구분='장비').적용" }, + { "이름": "깨기능력", "식": "찾기(QF000287, 이름='대형브레이커').적용" }, + { + "이름": "들어내기량", + "식": "반올림(3600 * 찾기(CF000127, 구분='굴착기 버킷').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='k').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='f').적용 * 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='E').적용 / 찾기(QF000285, 이름='유압식백호우(무한궤도,0.7㎥)', 항목='㎝(sec)').적용, 3)", + "출처": "건설품셈 공통 8-1-4 주①" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000017", "이름": "할석공", "단위": "인", "수량": "찾기(QF000287, 이름='할석공').적용 * 인력비율 / 100", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000287, 이름='보통인부').적용 * 인력비율 / 100", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000271, 기계='0201-0070', 브레이커='0230-0007', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 0.7㎥ + 대형브레이커 0.7㎥", + "단위": "시간", + "수량": "기계비율 / 100 / 깨기능력" + }, + { + "종류": "재료", + "요소": { "구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐 0.7㎥" }, + "이름": "대형브레이커 치즐(0.7㎥)", + "단위": "개", + "수량": "기계비율 / 100 * 찾기(QF000287, 이름='치즐소모량').적용 / 깨기능력", + "비목": "재료비", + "출처": "산림품셈 9-13-18", + "비고": "원문 단위 「본」" + }, + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(들어내기)", "단위": "시간", "수량": "기계비율 / 100 / 들어내기량" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000112", "원문번호": "9-14-1", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "되메우기 굴착기 시간당 작업량", @@ -1255,6 +2511,44 @@ "결과": { "식": "반올림(1000 * V * W * E * D * f / N, 3)", "출처": "건설품셈 공통 8-1-4 주①" }, "끝수": "소수 3자리 사사오입(건설품셈 공통 8-1-4 주①)" }, + { + "키": "GF000277", + "원문번호": "9-16-3", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "노체 살수(물탱크 5,500ℓ)", + "결과단위": "원/㎥", + "출처": "산림품셈 9-16-3", + "소유": "공용", + "비고": "주③ 식 그대로 — Cm = t1 + L/V×2×60 + t3 + t4 + t5 · Q1 = 60 × 5500 × E / Cm(ℓ/시간) · Ws = 흙 단위중량 × 100 / (100 + OMC) · W = Ws × (OMC − NMC)/100(㎏/㎥) · Q5 = Q1 / W(㎥/시간) · 원문 예 L 1.0㎞ · OMC 13% · NMC 8% · 단위중량 1,600㎏/㎥ → W 70.80", + "시험입력": { "운반거리": 1.0, "최적함수비": 13, "자연함수비": 8, "흙단위중량": 1600, "지역": "전국평균" }, + "입력": [ + { "이름": "운반거리", "설명": "급수지에서 살수 현장까지 편도 거리(L)", "단위": "㎞", "출처": "산림품셈 9-16-3 주②", "비고": "원문 예 1.0㎞" }, + { "이름": "최적함수비", "설명": "노체 흙의 최적함수비(O.M.C)", "단위": "%", "출처": "산림품셈 9-16-3 주②", "비고": "원문 예 13%" }, + { "이름": "자연함수비", "설명": "노체 흙의 자연함수비(N.M.C)", "단위": "%", "출처": "산림품셈 9-16-3 주②", "비고": "원문 예 8%" }, + { "이름": "흙단위중량", "설명": "노체 흙 1㎥ 무게", "단위": "㎏/㎥", "출처": "산림품셈 9-16-3 주③", "비고": "원문 예 1,600㎏/㎥" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "Cm", + "식": "찾기(CF000101, 구분='흡입준비(t1)').적용 + 운반거리 / 찾기(CF000102, 구분='V').적용 * 2 * 60 + 찾기(CF000101, 구분='흡입(t3)').적용 + 찾기(CF000101, 구분='대기((t4)').적용 + 찾기(CF000101, 구분='살수(t5)').적용", + "출처": "산림품셈 9-16-3 주③" + }, + { "이름": "Q1", "식": "60 * 찾기(CF000102, 구분='물탱크').적용 * 찾기(CF000102, 구분='E').적용 / Cm", "출처": "산림품셈 9-16-3 주③" }, + { "이름": "Ws", "식": "흙단위중량 * 100 / (100 + 최적함수비)", "출처": "산림품셈 9-16-3 주③" }, + { "이름": "W", "식": "Ws * (최적함수비 - 자연함수비) / 100", "출처": "산림품셈 9-16-3 주③" }, + { "이름": "Q5", "식": "Q1 / W", "출처": "산림품셈 9-16-3 주③" } + ], + "호표": [{ "종류": "로직", "요소": "로직(GC000268, 기계='7204-0055', 지역=지역)", "이름": "물탱크(살수차) 5,500ℓ", "단위": "시간", "수량": "1 / Q5" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000121", "원문번호": "9-17-2", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "비다짐(정지 · 불도저 19ton) 시간당 작업량", @@ -1560,6 +2854,35 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000278", + "원문번호": "9-19-3", + "구분": "산림품셈", + "상세구분": "09장 토공", + "이름": "비탈면 고르기(발파암)", + "결과단위": "원/㎡", + "출처": "산림품셈 9-19-3", + "소유": "공용", + "비고": "원문 소형브레이커 규격 없음 — 설계자 고름 · 막힘: 에어호스(3/4인치) 0.14hr 줄 빠짐 — 기계 요소 없음", + "시험입력": { "소형브레이커": "5210-0013", "지역": "전국평균" }, + "입력": [ + { "이름": "소형브레이커", "설명": "쓰는 소형브레이커(공압식) 규격", "고르기": ["5210-0010", "5210-0013", "5210-0019", "5210-0027"], "출처": "산림품셈 9-19-3" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000297, 이름='보통인부').수량", "비목": "노무비" }, + { "종류": "로직", "요소": "로직(GC000268, 기계='5205-0035', 지역=지역)", "이름": "공기압축기 3.5㎥/min", "단위": "시간", "수량": "찾기(QF000297, 이름='공기압축기(3.5㎥/min)').수량" }, + { "종류": "로직", "요소": "로직(GC000273, 기계=소형브레이커)", "이름": "소형브레이커(공압식)", "단위": "시간", "수량": "찾기(QF000297, 이름='소형브레이커').수량" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000128", "원문번호": "9-20-1", "구분": "산림품셈", "상세구분": "09장 토공", "이름": "뿌리다듬기", diff --git a/resources/master_data/로직_산림품셈_10장_자재․장비_운반.json b/resources/master_data/로직_산림품셈_10장_자재․장비_운반.json index d114b79d6..c44c1e9ae 100644 --- a/resources/master_data/로직_산림품셈_10장_자재․장비_운반.json +++ b/resources/master_data/로직_산림품셈_10장_자재․장비_운반.json @@ -220,6 +220,85 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000279", + "원문번호": "10-6-1", + "구분": "산림품셈", + "상세구분": "10장 자재․장비 운반", + "이름": "인력운반 토사·석재", + "결과단위": "원/㎥", + "출처": "산림품셈 10-6-1", + "소유": "공용", + "비고": "100m 이상은 다른 품(주②) · 석재 = 자갈·부순돌·조약돌(주③) · 1회 25㎏(주④)", + "시험입력": { "재료": "토사", "거리": 20 }, + "입력": [ + { "이름": "재료", "설명": "나르는 재료", "고르기": ["토사", "석재"], "출처": "산림품셈 10-6-1" }, + { "이름": "거리", "설명": "운반 거리(표의 거리 중)", "단위": "m", "고르기": [20, 30, 40, 50, 60, 70, 80, 90], "출처": "산림품셈 10-6-1" } + ], + "중간": [], + "호표": [ + { + "종류": "인력", + "요소": "LB000002", + "이름": "보통인부", + "단위": "인", + "수량": "만약(재료 == '토사', 찾기(QF000308, '거리(m)'=거리).'보통인부 토사', 찾기(QF000308, '거리(m)'=거리).'보통인부 석재')", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000280", + "원문번호": "10-6-2", + "구분": "산림품셈", + "상세구분": "10장 자재․장비 운반", + "이름": "인력운반 돌(지게)", + "결과단위": "원/㎥", + "출처": "산림품셈 10-6-2", + "소유": "공용", + "비고": "1,000m 이상은 다른 품(주②) · 깬돌 25㎏ 기준 · 75㎏ 정도는 품 50% 할증 가능 · 100㎏ 이상 적용 불가(주③)", + "시험입력": { "거리": 50, "돌무게": "25㎏ 기준" }, + "입력": [ + { "이름": "거리", "설명": "운반 거리(표의 거리 중)", "단위": "m", "고르기": [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000], "출처": "산림품셈 10-6-2" }, + { "이름": "돌무게", "설명": "한 번에 지는 돌 무게", "고르기": ["25㎏ 기준", "75㎏ 정도"], "출처": "산림품셈 10-6-2 주③" } + ], + "중간": [{ "이름": "할증", "식": "만약(돌무게 == '75㎏ 정도', 찾기(QF000312, 구분='75kg 정도').할증, 0)", "출처": "산림품셈 10-6-2 주③" }], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000309, '거리(m)'=거리).보통인부 * (1 + 할증 / 100)", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000281", + "원문번호": "10-6-3", + "구분": "산림품셈", + "상세구분": "10장 자재․장비 운반", + "이름": "인력운반 기타 임업자재", + "결과단위": "원/자재 단위", + "출처": "산림품셈 10-6-3", + "소유": "공용", + "비고": "결과 단위는 고른 자재의 표 단위 — 목재 ㎥ · 볏짚·섶단·나뭇가지단 100속 · 자른 떼 100매 · 식생낭 100개 · 말뚝 100본 · 볏짚멍석 1,000㎡ · 비료 톤 · 200m 이내(주②) · 지게·망태기 비용 포함(주③)", + "시험입력": { "자재": "목재 소재(조재목)", "거리": 20 }, + "입력": [ + { + "이름": "자재", + "설명": "나르는 자재(결과 단위가 자재마다 다름)", + "고르기": ["목재 소재(조재목)", "목재 제재", "볏짚", "섶단·새", "나뭇가지단", "자른 떼(20㎝×20㎝)", "식생낭(혼토입)", "편책용 말뚝(목재,파이프)", "볏짚멍석(종비포함)", "비료"], + "출처": "산림품셈 10-6-3" + }, + { "이름": "거리", "설명": "운반 거리(표의 거리 중)", "단위": "m", "고르기": [20, 40, 60, 80, 100, 120, 140, 160, 180, 200], "출처": "산림품셈 10-6-3" } + ], + "중간": [ + { + "이름": "인원", + "식": "만약(자재 == '목재 소재(조재목)', 찾기(QF000310, '거리(m)'=거리).'목재 소재(조재목)', 만약(자재 == '목재 제재', 찾기(QF000310, '거리(m)'=거리).'목재 제재', 만약(자재 == '볏짚', 찾기(QF000310, '거리(m)'=거리).'볏짚', 만약(자재 == '섶단·새', 찾기(QF000310, '거리(m)'=거리).'섶단·새', 만약(자재 == '나뭇가지단', 찾기(QF000310, '거리(m)'=거리).'나뭇가지단', 만약(자재 == '자른 떼(20㎝×20㎝)', 찾기(QF000310, '거리(m)'=거리).'자른 떼(20㎝×20㎝)', 만약(자재 == '식생낭(혼토입)', 찾기(QF000310, '거리(m)'=거리).'식생낭(혼토입)', 만약(자재 == '편책용 말뚝(목재,파이프)', 찾기(QF000310, '거리(m)'=거리).'편책용 말뚝(목재,파이프)', 만약(자재 == '볏짚멍석(종비포함)', 찾기(QF000310, '거리(m)'=거리).'볏짚멍석(종비포함)', 만약(자재 == '비료', 찾기(QF000310, '거리(m)'=거리).'비료', 0))))))))))" + } + ], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "인원", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000138", "원문번호": "10-7-1", "구분": "산림품셈", "상세구분": "10장 자재․장비 운반", "이름": "모노레일 노선선정", @@ -432,6 +511,39 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000282", + "원문번호": "10-8-1", + "구분": "산림품셈", + "상세구분": "10장 자재․장비 운반", + "이름": "케이블 크레인 짐내리기", + "결과단위": "원/일", + "출처": "산림품셈 10-8-1", + "소유": "공용", + "비고": "신호수는 짐내리기도 같이 함(주①) · 2단 크레인은 보통인부 2.0인 추가(주②) · 협소지 모아 쌓기 추가 인부는 설계자 판단(주③)", + "시험입력": { "짐": "콘크리트(버켓)", "크레인단수": "1단" }, + "입력": [ + { "이름": "짐", "설명": "내리는 짐 갈래", "고르기": ["콘크리트(버켓)", "제 자재(버켓 · 골재 등)", "제 자재(망태기 · 중량 큰 것)", "제 자재(망태기 · 중량 적은 것)"], "출처": "산림품셈 10-8-1" }, + { "이름": "크레인단수", "설명": "케이블 크레인 단수", "고르기": ["1단", "2단"], "출처": "산림품셈 10-8-1 주②" } + ], + "중간": [ + { + "이름": "인부", + "식": "만약(짐 == '콘크리트(버켓)', 찾기(QF000322, 구분='콘크리트').'보통인부 짐내리는 인부', 만약(짐 == '제 자재(버켓 · 골재 등)', 찾기(QF000322, 구분='제 자재', 운반기구='버켓').'보통인부 짐내리는 인부', 만약(짐 == '제 자재(망태기 · 중량 큰 것)', 찾기(QF000322, 비고='토사, 자갈, 시멘트, 블록, 강재, 목재 등으로 중량이 큰 것').'보통인부 짐내리는 인부', 찾기(QF000322, 비고='떼, 억새띠, 잡목묶음 등 중량이 적은 것').'보통인부 짐내리는 인부')))" + }, + { + "이름": "신호수", + "식": "만약(짐 == '콘크리트(버켓)', 찾기(QF000322, 구분='콘크리트').'보통인부 신호수', 만약(짐 == '제 자재(버켓 · 골재 등)', 찾기(QF000322, 구분='제 자재', 운반기구='버켓').'보통인부 신호수', 만약(짐 == '제 자재(망태기 · 중량 큰 것)', 찾기(QF000322, 비고='토사, 자갈, 시멘트, 블록, 강재, 목재 등으로 중량이 큰 것').'보통인부 신호수', 찾기(QF000322, 비고='떼, 억새띠, 잡목묶음 등 중량이 적은 것').'보통인부 신호수')))" + }, + { "이름": "추가", "식": "만약(크레인단수 == '2단', 찾기(QF000326, 구분='2단 크레인').'보통인부 추가', 0)", "출처": "산림품셈 10-8-1 주②" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부(짐내리는 인부)", "단위": "인", "수량": "인부 + 추가", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부(신호수)", "단위": "인", "수량": "신호수", "비목": "노무비" } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000143", "원문번호": "10-8-2", "구분": "산림품셈", "상세구분": "10장 자재․장비 운반", "이름": "케이블 크레인 운반대 설치", @@ -452,7 +564,7 @@ }, { "종류": "재료", - "요소": {"구분": "목재", "상세구분": "각재·판재", "검색어": "미송각재 30×30×3600mm 서울"}, + "요소": {"구분": "목재", "상세구분": "각재·판재", "검색어": "원목 경목"}, "이름": "소재(원목)", "단위": "㎥", "수량": "찾기(QF000323, 구분='운반대').소재", @@ -570,6 +682,43 @@ ], "끝수": "손료 원 미만 버림(건설품셈 공통 8-1-5 12) · 합계 원문 규정 없음" }, + { + "키": "GF000283", + "원문번호": "10-9-1", + "구분": "산림품셈", + "상세구분": "10장 자재․장비 운반", + "이름": "덤프트럭 자재 운반(1회 표준 운반량)", + "결과단위": "원/ton", + "출처": "산림품셈 10-9-1", + "소유": "공용", + "비고": "원문 머리 「작업량은 건설품셈을 적용」 — 1회 사이클시간(적재·운반·적하)은 설계자가 건설품셈 덤프트럭 식으로 셈 · 해석: 운반비 = 덤프트럭 시간당 경비 × 사이클시간/60 ÷ 1회 운반량(ton) · 개·㎡·㎥ 당은 표 환산량으로 바꿈(콘크리트블록 개 · 형틀 ㎡ · 토사·자갈·통나무 ㎥) · 1톤 4륜구동은 GF000145 · 주② 제잡비 비율은 원문 표에 없음", + "시험입력": { "자재": "토사", "규격": "1t이상 2t미만", "덤프트럭": "0602-0025", "사이클시간": 30, "지역": "전국평균" }, + "입력": [ + { "이름": "자재", "설명": "나르는 자재", "고르기": ["콘크리트 블록", "목제형틀", "철제형틀", "토사", "자갈", "강재", "통나무"], "출처": "산림품셈 10-9-1" }, + { "이름": "규격", "설명": "덤프트럭 적재 규격", "고르기": ["1t미만", "1t이상 2t미만", "2t이상 3t미만", "3t이상 4t미만", "4t이상 5t미만"], "출처": "산림품셈 10-9-1" }, + { "이름": "덤프트럭", "설명": "쓰는 덤프트럭(1톤 4륜구동 = 10-9 머리)", "고르기": ["1톤 4륜구동", "0602-0025", "0602-0045"], "출처": "산림품셈 10-9" }, + { "이름": "사이클시간", "설명": "덤프트럭 1회 운반 사이클시간(건설품셈 덤프트럭 식)", "단위": "분", "출처": "산림품셈 10-9 머리" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [{ "이름": "운반량", "식": "찾기(QF000329, 구분=자재, 규격=규격).중량 / 1000", "비고": "㎏ → ton" }], + "호표": [ + { "종류": "로직", "요소": "로직(GF000145, 지역=지역)", "이름": "덤프트럭 1톤(4륜구동)", "단위": "시간", "수량": "만약(덤프트럭 == '1톤 4륜구동', 사이클시간 / 60 / 운반량, 0)" }, + { + "종류": "로직", + "요소": "로직(GC000268, 기계=만약(덤프트럭 == '1톤 4륜구동', '0602-0025', 덤프트럭), 지역=지역)", + "이름": "덤프트럭", + "단위": "시간", + "수량": "만약(덤프트럭 == '1톤 4륜구동', 0, 사이클시간 / 60 / 운반량)" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000146", "원문번호": "10-10-1", "구분": "산림품셈", "상세구분": "10장 자재․장비 운반", "이름": "헬리콥터 콘크리트 및 골재운반 지상작업", @@ -676,6 +825,71 @@ "호표": [{ "종류": "로직", "요소": "로직(GC000269, 기계=기계, 지역=지역, 보정작업=보정작업)", "이름": "불도저(무한궤도)", "단위": "시간", "수량": "1 / 작업량" }], "덧줄": [], "끝수": null + }, + { + "키": "GF000284", + "원문번호": "10-12-1", + "구분": "산림품셈", + "상세구분": "10장 자재․장비 운반", + "이름": "덤프운반(굴착기 0.7㎥ 적재 · 덤프트럭 15ton)", + "결과단위": "원/㎥", + "출처": "산림품셈 10-12-1", + "소유": "공용", + "비고": "적재 Q1 = 3600·q0·K·f·E0/Cm · 운반 q = T/γt × L · n = q/(q0·K) · t1 = Cms·n/(60·Es) · t2 = (L/5 + L/6)×60 · Cmt = t1+…+t5 · Q = 60·q·f·E/Cmt(원문 식) · 해석: 원문 식 줄의 수 q0 0.7 · T 15ton · E 0.9 · Cms 20초 · Es 0.85 는 표가 없어 식에 수로 적음 · 해석: K·E0 는 주⑤ 표 「임도」 값(토사 0.9·0.60 · 파쇄암 0.55·0.35) — 식 줄의 E0 0.75 와 다름(사람 확인 목록) · f = 1/L(재료별 토량환산계수)", + "시험입력": { "재료": "토사", "운반거리": 1.0, "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "재료", "설명": "나르는 흙·암 갈래", "고르기": ["토사", "암절취", "발파암"], "출처": "산림품셈 10-12-1 주②③" }, + { "이름": "운반거리", "설명": "편도 운반 거리(L)", "단위": "㎞", "출처": "산림품셈 10-12-1" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [ + { "이름": "암", "식": "만약(재료 == '토사', 0, 1)" }, + { "이름": "K", "식": "만약(암 == 0, 찾기(QF000336, 구분='K').값, 찾기(QF000336, 구분='K').괄호값)", "출처": "산림품셈 10-12-1 주⑤" }, + { "이름": "E0", "식": "만약(암 == 0, 찾기(QF000336, 구분='E0', 세부='토사').값, 찾기(QF000336, 구분='E0', 세부='파쇄암').값)", "출처": "산림품셈 10-12-1 주⑤" }, + { "이름": "L", "식": "찾기(QF000339, 재료=재료).'토량환산계수(L)'", "출처": "산림품셈 10-12-1 주③" }, + { "이름": "감마", "식": "만약(암 == 0, 찾기(QF000338, 재료='토사').단위중량, 찾기(QF000338, 재료='암절취 및 발파암').단위중량)", "출처": "산림품셈 10-12-1 주②" }, + { "이름": "Q1", "식": "반올림(3600 * 0.7 * K * (1 / L) * E0 / 찾기(QF000336, 구분='㎝(초)').값, 3)", "출처": "산림품셈 10-12-1 1. 적재" }, + { "이름": "q", "식": "15 / 감마 * L", "출처": "산림품셈 10-12-1 2. 운반" }, + { "이름": "n", "식": "q / (0.7 * K)", "출처": "산림품셈 10-12-1 2. 운반" }, + { + "이름": "Cmt", + "식": "20 * n / (60 * 0.85) + (운반거리 / 찾기(QF000337, 구분='t2', 세부='V1(적재)').값 + 운반거리 / 찾기(QF000337, 구분='t2', 세부='V2(공차)').값) * 60 + 찾기(QF000337, 구분='적하(t3)').값 + 찾기(QF000337, 구분='대기(t4)').값 + 찾기(QF000337, 구분='덮개(t5)').값", + "출처": "산림품셈 10-12-1 2. 운반" + }, + { "이름": "Q", "식": "반올림(60 * q * (1 / L) * 0.9 / Cmt, 3)", "출처": "산림품셈 10-12-1 2. 운반" } + ], + "호표": [ + { "종류": "로직", "요소": "로직(GC000267, 기계='0201-0070', 지역=지역, 보정작업=보정작업)", "이름": "굴착기(무한궤도) 0.7㎥(적재)", "단위": "시간", "수량": "1 / Q1" }, + { "종류": "로직", "요소": "로직(GC000269, 기계='0602-0150', 지역=지역, 보정작업=보정작업)", "이름": "덤프트럭 15ton(운반)", "단위": "시간", "수량": "1 / Q" } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000285", + "원문번호": "10-13-2", + "구분": "산림품셈", + "상세구분": "10장 자재․장비 운반", + "이름": "묘목 인력운반", + "결과단위": "원/1,000본", + "출처": "산림품셈 10-13-2", + "소유": "공용", + "비고": "표 인원은 묘목 1,000본당(10-13 머리 산식과 같은 기준) · 원문에 직종 없음 — 설계자 고름(보통인부 1002 · 인력운반공 1045)", + "시험입력": { "수평거리": 100, "직종": "1002" }, + "입력": [ + { "이름": "수평거리", "설명": "이륙지점~하륙지점 수평거리(100m 단위)", "단위": "m", "고르기": [100, 200, 300, 400, 500, 600], "출처": "산림품셈 10-13-2" }, + { "이름": "직종", "설명": "운반 인력의 노임 직종(원문 번호)", "고르기": ["1002", "1045"], "출처": "산림품셈 10-13-2", "비고": "1002 보통인부 · 1045 인력운반공" } + ], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB:{직종}", "이름": "운반 인력", "단위": "인", "수량": "찾기(QF000341, '수평거리(m)'=수평거리).인원", "비목": "노무비" }], + "덧줄": [], + "끝수": null } ] } diff --git a/resources/master_data/로직_산림품셈_12장_철근콘크리트.json b/resources/master_data/로직_산림품셈_12장_철근콘크리트.json index 1470a2f38..92c0259d7 100644 --- a/resources/master_data/로직_산림품셈_12장_철근콘크리트.json +++ b/resources/master_data/로직_산림품셈_12장_철근콘크리트.json @@ -638,7 +638,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "단열·보온", "상세구분": "단열재", "검색어": "샌드위치판넬(그라스울) T50"}, + "요소": {"구분": "거푸집·가설재", "상세구분": "거푸집", "검색어": "문양거푸집 스티로폼"}, "이름": "문양 스티로폴(자재비 포함)", "단위": "㎡", "수량": "찾기(QF000359, 구분='문양 스티로폴(자재비 포함)').적용", @@ -844,7 +844,7 @@ }, { "종류": "재료", - "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "치즐(0.2㎥)"}, + "요소": {"구분": "기계·설비", "상세구분": "기계류", "검색어": "블레이드 14\""}, "이름": "커터 블레이드", "단위": "개", "수량": "0.31 / 100", @@ -1661,7 +1661,7 @@ }, { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "부직포", "검색어": "토목용부직포"}, "이름": "부직포", "단위": "㎡", "수량": "부직포면적", @@ -1670,7 +1670,7 @@ }, { "종류": "재료", - "요소": {"구분": "시멘트·골재", "상세구분": "골재", "검색어": "모래 강모래"}, + "요소": {"구분": "시멘트·골재", "상세구분": "골재", "검색어": "잡석"}, "이름": "잡석 구입", "단위": "㎥", "수량": "잡석량", @@ -2969,7 +2969,7 @@ }, { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "철근", "검색어": "에폭시피복철근(가공비) D25mm"}, + "요소": {"구분": "철근·강재", "상세구분": "철근", "검색어": "이형철근 전국"}, "이름": "철근", "단위": "ton", "수량": "철근량", @@ -2984,7 +2984,7 @@ }, { "종류": "재료", - "요소": {"구분": "맨홀·수로·그레이팅", "상세구분": "맨홀", "검색어": "PE빗물받이스틸뚜껑 495×395×50T"}, + "요소": {"구분": "맨홀·수로·그레이팅", "상세구분": "맨홀", "검색어": "집수정 뚜껑"}, "이름": "집수정 뚜껑(스틸그레이팅)", "단위": "개", "수량": "뚜껑수", @@ -3260,7 +3260,7 @@ }, { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "철근", "검색어": "에폭시피복철근(가공비) D25mm"}, + "요소": {"구분": "철근·강재", "상세구분": "철근", "검색어": "이형철근 전국"}, "이름": "철근", "단위": "ton", "수량": "철근량", @@ -3908,7 +3908,7 @@ }, { "종류": "재료", - "요소": {"구분": "거푸집·가설재", "상세구분": "동바리·비계", "검색어": "안전발판(PSP대용) 250×3000"}, + "요소": {"구분": "볼트·앵커·철물", "상세구분": "와이어로프·클램프", "검색어": "철물 앵커용"}, "이름": "철물", "단위": "개", "수량": "찾기(QF000390, 구분='자재 - 철물').적용", @@ -4035,7 +4035,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "부직포·토목섬유", "검색어": "직포 옥상방수용직포"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "부직포", "검색어": "토목용부직포"}, "이름": "부직포", "단위": "㎡", "수량": "찾기(QF000394, 구분='자재 - 부직포').적용", @@ -4406,7 +4406,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "석고본드"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "접착제 일반용"}, "이름": "접착제", "단위": "kg", "수량": "찾기(QF000400, 구분='자재 - 접착제').적용", @@ -4467,7 +4467,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "석고본드"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "접착·혼화", "검색어": "에폭시 접착제"}, "이름": "에폭시 접착제(콘크리트용)", "단위": "kg", "수량": "찾기(QF000402, 구분='자재 - 에폭시 접착제').적용", @@ -4475,7 +4475,7 @@ }, { "종류": "재료", - "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "목재전용도료 오일스테인"}, + "요소": {"구분": "도료·방수·접착", "상세구분": "도료", "검색어": "에폭시계신너"}, "이름": "시너", "단위": "ℓ", "수량": "찾기(QF000402, 구분='자재 - 시너').적용", @@ -4562,7 +4562,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "철근·강재", "상세구분": "형강", "검색어": "트러스 (TRUSS) SPAN:L=7.2"}, + "요소": {"구분": "교량·구조부속", "상세구분": "보강재·정착", "검색어": "다웰바 Φ32*1000"}, "이름": "강봉(D32㎜, L=1000㎜)", "단위": "EA", "수량": "강봉수", @@ -4571,7 +4571,7 @@ }, { "종류": "재료", - "요소": {"구분": "관·이음관", "상세구분": "PVC관", "검색어": "PVC파이프(일반관) D=30mm(VG1) 서울"}, + "요소": {"구분": "관·이음관", "상세구분": "PVC관", "검색어": "PVC파이프(일반관) D=35mm 서울"}, "이름": "P.V.C 파이프(Ø35㎜)", "단위": "m", "수량": "파이프길이", @@ -4895,7 +4895,7 @@ }, { "종류": "재료", - "요소": {"구분": "잡재료", "상세구분": "고철·기타금속", "검색어": "봉땜납 Sn"}, + "요소": {"구분": "잡재료", "상세구분": "고철·기타금속", "검색어": "고철"}, "이름": "고철대(감)", "단위": "kg", "수량": "-1000 * 찾기(QF000411, 구분='인력 - 고철대(감)').적용 / 100", diff --git a/resources/master_data/로직_산림품셈_13장_구조물.json b/resources/master_data/로직_산림품셈_13장_구조물.json index d0b904405..695568472 100644 --- a/resources/master_data/로직_산림품셈_13장_구조물.json +++ b/resources/master_data/로직_산림품셈_13장_구조물.json @@ -403,7 +403,7 @@ }, { "종류": "재료", - "요소": {"구분": "시멘트·골재", "상세구분": "골재", "검색어": "모래 강모래"}, + "요소": {"구분": "시멘트·골재", "상세구분": "골재", "검색어": "잡석"}, "이름": "잡석(채움재)", "단위": "㎥", "수량": "잡석량", @@ -671,6 +671,23 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000324", + "원문번호": "13-4-6", + "구분": "산림품셈", + "상세구분": "13장 구조물", + "이름": "밑돌 및 천단 돌쌓기", + "결과단위": "원/m", + "출처": "산림품셈 13-4-6", + "소유": "공용", + "비고": "돌쌓기 기초·천단에서 돌을 다듬어 면을 맞추어 쌓을 때 석공품 가산(주①②) · 높이 3m 이하(주③) · 돌쌓기 본품(13-4-1~5)에 더해 씀", + "시험입력": { "뒷길이": 30 }, + "입력": [{ "이름": "뒷길이", "설명": "돌의 뒷길이(25 · 30 · 35 중)", "단위": "㎝", "출처": "산림품셈 13-4-6" }], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB000033", "이름": "석공", "단위": "인", "수량": "찾기(QF000439, '돌의 뒷길이'=뒷길이).석공", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000223", "원문번호": "13-5-1", "구분": "산림품셈", "상세구분": "13장 구조물", "이름": "돌붙임(인력)", @@ -890,7 +907,7 @@ }, { "종류": "재료", - "요소": {"구분": "시멘트·골재", "상세구분": "골재", "검색어": "모래 강모래"}, + "요소": {"구분": "시멘트·골재", "상세구분": "골재", "검색어": "잡석"}, "이름": "잡석(채움재)", "단위": "㎥", "수량": "잡석량", @@ -1551,6 +1568,233 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000325", + "원문번호": "13-10-2", + "구분": "산림품셈", + "상세구분": "13장 구조물", + "이름": "나무 말뚝박기 — 작은 말뚝(6할 박기)", + "결과단위": "원/개", + "출처": "산림품셈 13-10-2 1", + "소유": "공용", + "비고": "인력박기 · 보통 토사질 기준 · 해석: 할증·감(산지 비탈면 30% · 연토 −20% · 자갈 +30% · 9할박기 +30%)은 더해 한 번에 곱함 · 말뚝빼기는 그 품의 70%(주④) · 머리 자르기는 본당 0.02인 더함(주②) · 소운반 별도 · 말뚝 재료 별도", + "시험입력": { "말구": 9, "길이": 1.8, "지질": "보통 토사질", "박기": "6할박기", "작업": "박기", "머리자르기": "안 함", "산지비탈면": "아니오" }, + "입력": [ + { "이름": "말구", "설명": "말뚝 말구 지름(6 · 7.5 · 9 · 10.5 중)", "단위": "㎝", "출처": "산림품셈 13-10-2 1" }, + { "이름": "길이", "설명": "말뚝 길이(0.9 ~ 4.5 원문 칸 중 · 빈칸 조합 없음)", "단위": "m", "출처": "산림품셈 13-10-2 1" }, + { "이름": "지질", "설명": "지질 상태", "고르기": ["보통 토사질", "연토", "자갈층"], "출처": "산림품셈 13-10-2 1 주①" }, + { "이름": "박기", "설명": "관입 정도", "고르기": ["6할박기", "9할박기"], "출처": "산림품셈 13-10-2 1 주③" }, + { "이름": "작업", "설명": "박기 또는 빼기", "고르기": ["박기", "빼기"], "출처": "산림품셈 13-10-2 1 주④" }, + { "이름": "머리자르기", "설명": "말뚝머리 자르기", "고르기": ["안 함", "함"], "출처": "산림품셈 13-10-2 1 주②" }, + { "이름": "산지비탈면", "설명": "산지 비탈면 시공(품 30% 할증)", "고르기": ["아니오", "예"], "출처": "산림품셈 13-10-2" } + ], + "중간": [ + { + "이름": "할증", + "식": "1 + 만약(산지비탈면 == '예', 찾기(CF000149, 구분='산지 비탈면 시공 할증').적용, 0) / 100 - 만약(지질 == '연토', 찾기(CF000149, 구분='작은 말뚝 연토 지질 감').적용, 0) / 100 + 만약(지질 == '자갈층', 찾기(CF000149, 구분='작은 말뚝 자갈층 할증').적용, 0) / 100 + 만약(박기 == '9할박기', 찾기(CF000149, 구분='작은 말뚝 9할박기 할증').적용, 0) / 100" + }, + { "이름": "빼기계수", "식": "만약(작업 == '빼기', 찾기(CF000149, 구분='작은 말뚝 말뚝빼기').적용 / 100, 1)" } + ], + "호표": [ + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000451, '말구(㎝)'=말구, '길이(m)'=길이).보통인부 * 할증 * 빼기계수", "비목": "노무비" }, + { + "종류": "인력", + "요소": "LB000002", + "이름": "보통인부(말뚝머리 자르기)", + "단위": "인", + "수량": "만약(머리자르기 == '함', 찾기(CF000149, 구분='작은 말뚝 말뚝머리 자르기 보통인부 할증').적용, 0)", + "비목": "노무비", + "출처": "산림품셈 13-10-2 1 주②" + } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000326", + "원문번호": "13-10-2", + "구분": "산림품셈", + "상세구분": "13장 구조물", + "이름": "나무 말뚝박기 — 기초말뚝", + "결과단위": "원/개", + "출처": "산림품셈 13-10-2 2", + "소유": "공용", + "비고": "인력박기(주⑦) · 보통 토사질 · 9할 박기 미만 기준 · 관입률 0 = 계수 안 곱함, 0.3~0.8 = 관입률 계수(QF000453) 곱함(주⑥) · 해석: 가산·감(산지 비탈면 30% · 사항 +15% · 연토사질 −20% · 자갈질 +30% · 철근콘크리트 −30%)은 더해 한 번에 곱함 · 말뚝빼기 70%(주②) · 크기 불일치 비례 가감(주④)은 설계자 몫 · 말뚝 제작 별도", + "시험입력": { "말구": 15, "길이": 3, "관입률": 0, "지질": "보통 토사질", "사항박기": "아니오", "말뚝재료": "나무", "작업": "박기", "산지비탈면": "아니오" }, + "입력": [ + { "이름": "말구", "설명": "말뚝 말구 지름(12 ~ 30 · 3㎝ 간격)", "단위": "㎝", "출처": "산림품셈 13-10-2 2" }, + { "이름": "길이", "설명": "말뚝 길이(1.5 ~ 12 원문 칸 중 · 빈칸 조합 없음)", "단위": "m", "출처": "산림품셈 13-10-2 2" }, + { "이름": "관입률", "설명": "말뚝관입길이 ÷ 말뚝길이(0 = 계수 없음 · 0.3 ~ 0.8 · 0.1 간격)", "단위": "비", "출처": "산림품셈 13-10-2 2 주⑥" }, + { "이름": "지질", "설명": "지질 상태", "고르기": ["보통 토사질", "연토사질", "자갈질"], "출처": "산림품셈 13-10-2 2 주③" }, + { "이름": "사항박기", "설명": "사항(斜抗)박기", "고르기": ["아니오", "예"], "출처": "산림품셈 13-10-2 2 주①" }, + { "이름": "말뚝재료", "설명": "말뚝 재료", "고르기": ["나무", "철근 콘크리트"], "출처": "산림품셈 13-10-2 2 주⑤" }, + { "이름": "작업", "설명": "박기 또는 빼기", "고르기": ["박기", "빼기"], "출처": "산림품셈 13-10-2 2 주②" }, + { "이름": "산지비탈면", "설명": "산지 비탈면 시공(품 30% 할증)", "고르기": ["아니오", "예"], "출처": "산림품셈 13-10-2" } + ], + "중간": [ + { + "이름": "할증", + "식": "1 + 만약(산지비탈면 == '예', 찾기(CF000149, 구분='산지 비탈면 시공 할증').적용, 0) / 100 + 만약(사항박기 == '예', 찾기(CF000149, 구분='기초말뚝 사항박기 가산').적용, 0) / 100 - 만약(지질 == '연토사질', 찾기(CF000149, 구분='기초말뚝 연토사질 감').적용, 0) / 100 + 만약(지질 == '자갈질', 찾기(CF000149, 구분='기초말뚝 자갈질 가산').적용, 0) / 100 - 만약(말뚝재료 == '철근 콘크리트', 찾기(CF000149, 구분='기초말뚝 철근 콘크리트 말뚝박기 감').적용, 0) / 100" + }, + { "이름": "빼기계수", "식": "만약(작업 == '빼기', 찾기(CF000149, 구분='기초말뚝 말뚝빼기').적용 / 100, 1)" }, + { "이름": "관입계수", "식": "만약(관입률 == 0, 1, 찾기(QF000453, 관입률=관입률).계수)" } + ], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000452, '말구(㎝)'=말구, '길이(m)'=길이).보통인부 * 할증 * 빼기계수 * 관입계수", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000327", + "원문번호": "13-10-2", + "구분": "산림품셈", + "상세구분": "13장 구조물", + "이름": "나무 말뚝박기 — 윈치말뚝", + "결과단위": "원/개", + "출처": "산림품셈 13-10-2 3", + "소유": "공용", + "비고": "표는 1일당 — 개당 = 1일 품 ÷ 1일 시공개수 · 보통 토사질 · 관입 6~8할 기준 · 3~5할 박기 · 콘크리트 말뚝은 시공개수 20% 가산(주①④) · 계항은 품 50% 가산(주⑧) · 지질 가감 ±30% 이내 설계자 입력(주②) · 인부품에 말뚝머리 자르기 포함(주③) · 잡재료 = 경유비의 11%(주⑨) · 해석: 기계운전원(발동기) = 건설노임 건설기계운전사(1048) · 윈치·발동기 손료 별도(주⑦) · 전력 원동기(주⑤) · 항타시설 조립·해체(주⑥) 별도", + "시험입력": { "말구": 15, "길이": 5, "관입": "6~8할", "말뚝재료": "나무", "계항": "아니오", "지질가감": 0, "산지비탈면": "아니오", "지역": "전국평균" }, + "입력": [ + { "이름": "말구", "설명": "말뚝 말구 지름(8 · 9 · 12 · 15 · 18 · 21 · 24 · 27 중)", "단위": "㎝", "출처": "산림품셈 13-10-2 3" }, + { "이름": "길이", "설명": "말뚝 길이(원문 말구별 칸 중)", "단위": "m", "출처": "산림품셈 13-10-2 3" }, + { "이름": "관입", "설명": "관입 길이", "고르기": ["6~8할", "3~5할"], "출처": "산림품셈 13-10-2 3 주①" }, + { "이름": "말뚝재료", "설명": "말뚝 재료", "고르기": ["나무", "콘크리트"], "출처": "산림품셈 13-10-2 3 주④" }, + { "이름": "계항", "설명": "계항(선타항 길이 기준 품 50% 가산)", "고르기": ["아니오", "예"], "출처": "산림품셈 13-10-2 3 주⑧" }, + { "이름": "지질가감", "설명": "지질 경연에 따른 가감(−30 ~ 30)", "단위": "%", "범위": [-30, 30], "출처": "산림품셈 13-10-2 3 주②" }, + { "이름": "산지비탈면", "설명": "산지 비탈면 시공(품 30% 할증)", "고르기": ["아니오", "예"], "출처": "산림품셈 13-10-2" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "개수", + "식": "찾기(QF000454, '말구(㎝)'=말구, '길이(m)'=길이).일기당개박수 * (1 + 만약(관입 == '3~5할', 찾기(CF000149, 구분='윈치 3~5할 박기 개수 가산').적용, 0) / 100 + 만약(말뚝재료 == '콘크리트', 찾기(CF000149, 구분='윈치 콘크리트 말뚝 시공개수 가산').적용, 0) / 100)" + }, + { + "이름": "품계수", + "식": "(1 + 만약(계항 == '예', 찾기(CF000149, 구분='윈치 계항 선타항 길이 품 가산').적용, 0) / 100 + 지질가감 / 100 + 만약(산지비탈면 == '예', 찾기(CF000149, 구분='산지 비탈면 시공 할증').적용, 0) / 100) / 개수" + } + ], + "호표": [ + { "종류": "인력", "요소": "LB000048", "이름": "기계운전원(발동기)(건설기계운전사)", "단위": "인", "수량": "찾기(QF000454, '말구(㎝)'=말구, '길이(m)'=길이).'기계운전원(발동기)' * 품계수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000006", "이름": "비계공", "단위": "인", "수량": "찾기(QF000454, '말구(㎝)'=말구, '길이(m)'=길이).비계공 * 품계수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000003", "이름": "특별인부", "단위": "인", "수량": "찾기(QF000454, '말구(㎝)'=말구, '길이(m)'=길이).특별인부 * 품계수", "비목": "노무비" }, + { "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000454, '말구(㎝)'=말구, '길이(m)'=길이).보통인부 * 품계수", "비목": "노무비" }, + { "종류": "재료", "요소": "MO:경유:{지역}", "이름": "경유(발동기)", "단위": "ℓ", "수량": "찾기(QF000454, '말구(㎝)'=말구, '길이(m)'=길이).경유 * 품계수", "비목": "재료비" } + ], + "덧줄": [{ "이름": "잡재료", "식": "재료비 * 찾기(QF000454, '말구(㎝)'=말구, '길이(m)'=길이).잡재료 / 100", "비목": "재료비", "출처": "산림품셈 13-10-2 3 주⑨" }], + "끝수": null + }, + { + "키": "GF000328", + "원문번호": "13-11-1", + "구분": "산림품셈", + "상세구분": "13장 구조물", + "이름": "원형 돌망태", + "결과단위": "원/㎡", + "출처": "산림품셈 13-11-1", + "소유": "공용", + "비고": "인력 시공 지름 45 · 50 · 55 · 60 · 기계 시공 지름 40 · 45 · 50 · 60 · 90 · 100 · 120 · 해석: 인력표 「인력(인)」 직종 없음 — 보통인부로 둠 · 인력 시공 조약돌량(㎥/㎡)은 표에 있으나 조약돌 자재품목 없어 재료 줄 뺌 · 기계 시공 재료량은 설계수량(주②) · 필터매트 설치 시 특별인부 0.09 · 보통인부 0.15인/㎡ 더함 · 돌망태 운반비 별도 · KSF 4601 공장제품", + "시험입력": { "시공": "기계", "지름": 50, "필터매트": "설치 안 함", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "시공", "설명": "인력 또는 기계(굴착기) 시공", "고르기": ["인력", "기계"], "출처": "산림품셈 13-11-1" }, + { "이름": "지름", "설명": "돌망태 지름(인력 45 · 50 · 55 · 60 · 기계 40 · 45 · 50 · 60 · 90 · 100 · 120 중)", "단위": "㎝", "출처": "산림품셈 13-11-1" }, + { "이름": "필터매트", "설명": "필터매트(부직포) 설치", "고르기": ["설치 안 함", "설치"], "출처": "산림품셈 13-11-1" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [], + "호표": [ + { + "종류": "인력", + "요소": "LB000003", + "이름": "특별인부", + "단위": "인", + "수량": "만약(시공 == '인력', 0, 찾기(QF000456, '지름(㎝)'=지름, 공종='조립설치', 명칭='특별인부').수량) + 만약(필터매트 == '설치', 찾기(CF000150, 구분='필터매트(부직포) 설치 시 특별인부').적용, 0)", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "LB000002", + "이름": "보통인부", + "단위": "인", + "수량": "만약(시공 == '인력', 찾기(QF000455, '지름(㎝)'=지름).조립설치 + 찾기(QF000455, '지름(㎝)'=지름).돌채움, 찾기(QF000456, '지름(㎝)'=지름, 공종='조립설치', 명칭='보통인부').수량) + 만약(필터매트 == '설치', 찾기(CF000150, 구분='필터매트(부직포) 설치 시 보통인부').적용, 0)", + "비목": "노무비" + }, + { "종류": "인력", "요소": "LB000033", "이름": "석공", "단위": "인", "수량": "만약(시공 == '인력', 0, 찾기(QF000456, '지름(㎝)'=지름, 공종='돌채움', 명칭='석공').수량)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000267, 기계='0201-0100', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 1.0㎥", + "단위": "시간", + "수량": "만약(시공 == '인력', 0, 찾기(QF000456, '지름(㎝)'=지름, 공종='돌채움', 명칭='굴착기(1.0㎥)').수량)" + } + ], + "덧줄": [], + "끝수": null + }, + { + "키": "GF000329", + "원문번호": "13-11-2", + "구분": "산림품셈", + "상세구분": "13장 구조물", + "이름": "타원형 돌망태", + "결과단위": "원/㎡", + "출처": "산림품셈 13-11-2", + "소유": "공용", + "비고": "인력 시공 지름 40 · 45 · 50 · 60 · 70 · 80 · 90 · 100 · 기계 시공 지름 40 · 45 · 50 · 60 · 70 · 80 · 90 · 100 · 해석: 인력표 「인력(인)」 직종 없음 — 보통인부로 둠 · 인력 시공 조약돌량(㎥/㎡)은 표에 있으나 조약돌 자재품목 없어 재료 줄 뺌 · 기계 시공 재료량은 설계수량(주②) · 필터매트 설치 시 특별인부 0.09 · 보통인부 0.15인/㎡ 더함 · 돌망태 운반비 별도 · KSF 4601 공장제품", + "시험입력": { "시공": "기계", "지름": 50, "필터매트": "설치 안 함", "지역": "전국평균", "보정작업": "해당 없음" }, + "입력": [ + { "이름": "시공", "설명": "인력 또는 기계(굴착기) 시공", "고르기": ["인력", "기계"], "출처": "산림품셈 13-11-2" }, + { "이름": "지름", "설명": "돌망태 지름(인력 40 · 45 · 50 · 60 · 70 · 80 · 90 · 100 · 기계 40 · 45 · 50 · 60 · 70 · 80 · 90 · 100 중)", "단위": "㎝", "출처": "산림품셈 13-11-2" }, + { "이름": "필터매트", "설명": "필터매트(부직포) 설치", "고르기": ["설치 안 함", "설치"], "출처": "산림품셈 13-11-2" }, + { + "이름": "지역", + "설명": "기계 연료값을 고를 지역", + "고르기": ["전국평균", "전국", "서울", "경기", "강원", "충북", "충남", "전북", "경북", "경남", "부산", "제주", "대구", "인천", "대전", "울산", "세종", "전남광주"], + "출처": "건설품셈 공통 8-1-7 5" + }, + { "이름": "보정작업", "설명": "암석·전석 작업이면 기계손료 가산", "고르기": ["해당 없음", "암석작업(연암・보통암・경암)", "전석섞인토사"], "출처": "건설품셈 공통 8-1-7 1" } + ], + "중간": [], + "호표": [ + { + "종류": "인력", + "요소": "LB000003", + "이름": "특별인부", + "단위": "인", + "수량": "만약(시공 == '인력', 0, 찾기(QF000458, '지름(㎝)'=지름, 공종='조립설치', 명칭='특별인부').수량) + 만약(필터매트 == '설치', 찾기(CF000151, 구분='필터매트(부직포) 설치 시 특별인부').적용, 0)", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "LB000002", + "이름": "보통인부", + "단위": "인", + "수량": "만약(시공 == '인력', 찾기(QF000457, '지름(㎝)'=지름).조립설치 + 찾기(QF000457, '지름(㎝)'=지름).돌채움, 찾기(QF000458, '지름(㎝)'=지름, 공종='조립설치', 명칭='보통인부').수량) + 만약(필터매트 == '설치', 찾기(CF000151, 구분='필터매트(부직포) 설치 시 보통인부').적용, 0)", + "비목": "노무비" + }, + { "종류": "인력", "요소": "LB000033", "이름": "석공", "단위": "인", "수량": "만약(시공 == '인력', 0, 찾기(QF000458, '지름(㎝)'=지름, 공종='돌채움', 명칭='석공').수량)", "비목": "노무비" }, + { + "종류": "로직", + "요소": "로직(GC000267, 기계='0201-0100', 지역=지역, 보정작업=보정작업)", + "이름": "굴착기(무한궤도) 1.0㎥", + "단위": "시간", + "수량": "만약(시공 == '인력', 0, 찾기(QF000458, '지름(㎝)'=지름, 공종='돌채움', 명칭='굴착기(1.0㎥)').수량)" + } + ], + "덧줄": [], + "끝수": null + }, { "키": "GF000234", "원문번호": "13-11-3", "구분": "산림품셈", "상세구분": "13장 구조물", "이름": "매트리스형 돌망태", @@ -1661,7 +1905,7 @@ "호표": [ { "종류": "재료", - "요소": {"구분": "매트·토목섬유", "상세구분": "돌망태·사방", "검색어": "기초사석 0.015~0.03㎥"}, + "요소": {"구분": "매트·토목섬유", "상세구분": "돌망태·사방", "검색어": "사각개비온"}, "이름": "철망태", "단위": "㎥", "수량": "찾기(QF000460, 구분='자재', 명칭='철망태').수량", @@ -2025,6 +2269,23 @@ "덧줄": [], "끝수": null }, + { + "키": "GF000330", + "원문번호": "13-15-1", + "구분": "산림품셈", + "상세구분": "13장 구조물", + "이름": "목재 껍질벗기기", + "결과단위": "원/m", + "출처": "산림품셈 13-15-1", + "소유": "공용", + "비고": "말구 지름별 m당 보통인부", + "시험입력": { "말구": 12 }, + "입력": [{ "이름": "말구", "설명": "목재 말구 지름(5 · 6 · 9 · 12 · 15 · 18 · 21 · 24 · 27 · 30 중)", "단위": "㎝", "출처": "산림품셈 13-15-1" }], + "중간": [], + "호표": [{ "종류": "인력", "요소": "LB000002", "이름": "보통인부", "단위": "인", "수량": "찾기(QF000469, '말구(㎝)'=말구).보통인부", "비목": "노무비" }], + "덧줄": [], + "끝수": null + }, { "키": "GF000245", "원문번호": "13-16-1", "구분": "산림품셈", "상세구분": "13장 구조물", "이름": "필터매트(육상)", diff --git a/resources/master_data/소요량_건설품셈_01장_도로포장공사.json b/resources/master_data/소요량_건설품셈_01장_도로포장공사.json index 64d7cde34..842caf871 100644 --- a/resources/master_data/소요량_건설품셈_01장_도로포장공사.json +++ b/resources/master_data/소요량_건설품셈_01장_도로포장공사.json @@ -408,7 +408,11 @@ "① 본 품은 콘크리트믹서트럭으로 직접 타설하는 콘크리트 포장의 인력포설 기준이다.", "② 본 품은 비닐깔기 및 철망깔기, 콘크리트 포설, 양생 작업을 포함한다.", "③ 거푸집 설치 및 해체, 줄눈작업은 별도 계상한다.", - "④ 현장 여건별 적용기준은 다음과 같다." + "④ 현장 여건별 적용기준은 다음과 같다.", + "※ 경운기 등 기타방법으로 콘크리트를 운반하는 경우 운반에 소요되는 비용은 별도 계상한다.", + "⑤ 콘크리트와 노반과의 접착부 처리품(모래층 깔기 등)은 별도 계상한다. 모래 부설시 일당시공량은 보통인부 2인기준 두께 3㎝시 660㎡, 두께 6㎝시 410㎡ 이다.", + "⑥ 공구손료 및 경장비(스크리드 등)의 기계경비는 인력품의 3%로 계상한다.", + "⑦ 비닐, 양생재, 철망 등 재료비 및 잡재료비는 별도 계상한다." ] }, { @@ -543,7 +547,9 @@ "비고 - 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.", "① 본 품은 규격 0.1㎡이하, 두께 8cm이하 보도용 블록의 설치 기준이다.", "② 본 품은 모래 부설, 모래층 다짐 및 고르기, 블록 절단 및 설치, 줄눈채움, 블록설치 후 다짐 작업을 포함한다.", - "③ 현장 여건별 적용기준은 다음과 같다." + "③ 현장 여건별 적용기준은 다음과 같다.", + "④ 기층에 콘크리트나 아스팔트 등의 안정처리기층을 사용하거나, 지반침하방지가 필요한 경우 별도 계상한다.", + "⑤ 공구손료 및 경장비(절단기 등)의 기계경비는 인력품의 5%, 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우 2%로 계상한다." ] }, { @@ -577,7 +583,9 @@ "비고 - 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.", "① 본 품은 규격 0.10㎡초과 0.25㎡이하, 두께 8cm이하 보도용 블록의 설치 기준이다.", "② 본 품은 모래 부설, 모래층 다짐 및 고르기, 블록 절단 및 설치, 줄눈채움, 블록설치 후 다짐 작업을 포함한다.", - "③ 현장 여건별 적용기준은 다음과 같다." + "③ 현장 여건별 적용기준은 다음과 같다.", + "④ 기층에 콘크리트나 아스팔트 등의 안정처리기층을 사용하거나, 지반침하방지가 필요한 경우 별도 계상한다.", + "⑤ 공구손료 및 경장비(절단기 등)의 기계경비는 인력품의 5%, 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우 2%로 계상한다." ] }, { @@ -687,7 +695,9 @@ "① 본 품은 복주식, 편지식, 문형식의 도로표지 설치 기준이다.", "② 본 품은 형태별 지주 및 규격별 표지판 설치 작업을 포함한다.", "③ 기초제작 및 폐자재 운반은 별도 계상한다.", - "④ 표지판을 추가 설치하는 경우에는 다음의 품을 적용한다." + "④ 표지판을 추가 설치하는 경우에는 다음의 품을 적용한다.", + "⑤ 지주설치 크레인의 규격은 다음을 기준한 것이며, 작업여건에 따라 변경할 수 있다.", + "⑥ 공구손료 및 경장비(드릴, 발전기 등)의 기계경비는 인력품의 2%로 계상한다." ] }, { @@ -1083,7 +1093,9 @@ "주": [ "① 본 품은 도로포장 노면에 미끄럼방지를 위해 유색포장(열경화성 아크릴수지+규사)를 도포하는 기준이다.", "② 본 품은 노면 청소, 테이프 마킹 및 제거, 자재 혼합 및 도포, 요철마감 작업을 포함한다.", - "③ 각 유형별 적용기준은 다음과 같다." + "③ 각 유형별 적용기준은 다음과 같다.", + "④ 트럭은 자재, 공구 및 경장비의 현장내 운반 작업에 적용한다.", + "⑤ 공구손료 및 경장비(핸드믹서 등)의 기계경비는 인력품의 3%로 계상한다." ] }, { @@ -1116,7 +1128,9 @@ "① 본 품은 아스팔트, 콘크리트, 보도블록 노면에 관로표시못 설치 기준이다.", "② 본 품은 천공, 접착제 도포, 표시못 설치 작업을 포함한다.", "③ 트럭은 자재, 공구 및 경장비의 현장내 운반 작업에 적용한다.", - "④ 공사의 종류는 다음과 같이 구분한다." + "④ 공사의 종류는 다음과 같이 구분한다.", + "⑤ 공구손료 및 경장비(전동드릴, 발전기 등)의 기계경비는 인력품에 다음 요율을 적용한다. (A-Type 2% · B-Type 4%)", + "⑥ 잡재료(채움모르타르 등)는 주재료비의 2%로 계상한다." ] }, { @@ -1138,7 +1152,9 @@ "이름": "표시못 설치 요율", "기준": "", "출처": "건설품셈 토목 1-8-14", - "용도": {"공종": "표시못 설치", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "표시못 설치", "대상": ["작업량 조건"], "로직키": [ + "GC000327" + ]}, "조건": { "구분": "고르기" }, "값칸": { "요율": "%" }, "줄": [ @@ -1275,7 +1291,9 @@ "① 본 품은 화강암 및 콘크리트 경계블록(길이 1.0m)을 설치하는 기준이다.", "② 본 품은 위치확인, 경계블록 절단 및 설치, 이음모르타르 바름 작업을 포함한다.", "③ 기초 콘크리트, 거푸집, 터파기 및 되메우기, 잔토처리는 현장 여건에 따라 별도 계상한다.", - "④ 현장 여건별 적용기준은 다음과 같다." + "④ 현장 여건별 적용기준은 다음과 같다.", + "⑤ 장비의 종류 및 규격은 현장여건에 따라 변경할 수 있다.", + "⑥ 공구손료 및 경장비(절단기 등)의 기계경비는 인력품의 2%로 계상한다." ] }, { @@ -1613,7 +1631,21 @@ "값칸": { "값": "구분 따름", "단위": "글", "기준": "글", "가감": "글" }, "줄": [ { "구분": "유도・점자블록을 설치하는 경우 시공량의 10%를 감하여 적용한다.", "값": 10, "단위": "%", "기준": "시공량", "가감": "감" }, - { "구분": "블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.", "값": 1, "단위": "인", "기준": "특별인부", "가감": "감" } + { "구분": "블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.", "값": 1, "단위": "인", "기준": "특별인부", "가감": "감" }, + { + "구분": "공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기) 시공", + "값": 5, + "단위": "%", + "기준": "인력품", + "가감": "계상" + }, + { + "구분": "공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우", + "값": 2, + "단위": "%", + "기준": "인력품", + "가감": "계상" + } ], "주": [], "그룹": "계수" @@ -1628,7 +1660,21 @@ "값칸": { "값": "구분 따름", "단위": "글", "기준": "글", "가감": "글" }, "줄": [ { "구분": "유도・점자블록을 설치하는 경우 시공량의 10%를 감하여 적용한다.", "값": 10, "단위": "%", "기준": "시공량", "가감": "감" }, - { "구분": "블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.", "값": 1, "단위": "인", "기준": "특별인부", "가감": "감" } + { "구분": "블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우, 특별인부 1인을 감하여 적용한다.", "값": 1, "단위": "인", "기준": "특별인부", "가감": "감" }, + { + "구분": "공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기) 시공", + "값": 5, + "단위": "%", + "기준": "인력품", + "가감": "계상" + }, + { + "구분": "공구손료 및 경장비(절단기 등)의 기계경비 · 블록 정밀절단(전동절단기)에 의한 시공이 아닌 경우", + "값": 2, + "단위": "%", + "기준": "인력품", + "가감": "계상" + } ], "주": [], "그룹": "계수" @@ -1862,7 +1908,9 @@ "이름": "차선도색 융착식 도료 수동식 계수 주⑤", "기준": "", "출처": "건설품셈 토목 1-8-9 주⑤", - "용도": {"공종": "차선도색", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "차선도색", "대상": ["작업량 조건"], "로직키": [ + "GC000319" + ]}, "조건": { "구분": "고르기" }, "값칸": { "값": "구분 따름", "단위": "글", "기준": "글" }, "줄": [ @@ -1876,7 +1924,9 @@ "이름": "차선도색 융착식 도료 수동식 계수 주⑥", "기준": "", "출처": "건설품셈 토목 1-8-9 주⑥", - "용도": {"공종": "차선도색", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "차선도색", "대상": ["작업량 조건"], "로직키": [ + "GC000319" + ]}, "조건": { "구분": "고르기" }, "값칸": { "값": "구분 따름", "단위": "글", "기준": "글" }, "줄": [ diff --git a/resources/master_data/소요량_건설품셈_02장_토목.json b/resources/master_data/소요량_건설품셈_02장_토목.json index 3ba42a9f7..ca5d5275b 100644 --- a/resources/master_data/소요량_건설품셈_02장_토목.json +++ b/resources/master_data/소요량_건설품셈_02장_토목.json @@ -19,7 +19,7 @@ "특별인부": "인", "보통인부": "인", "커터(320-400㎜)": "대", - "동력분무기(4.85㎾)": "수" + "동력분무기(4.85㎾)": "대" }, "줄": [ { diff --git a/resources/master_data/소요량_건설품셈_03장_건축.json b/resources/master_data/소요량_건설품셈_03장_건축.json index 19c8ad507..6370f9554 100644 --- a/resources/master_data/소요량_건설품셈_03장_건축.json +++ b/resources/master_data/소요량_건설품셈_03장_건축.json @@ -11,7 +11,7 @@ "이름": "콘크리트구조물 헐기(인력)", "기준": "일당", "출처": "건설품셈 유지관리 3-1-1", - "용도": {"공종": "콘크리트구조물 헐기", "대상": ["인력", "작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "콘크리트구조물 헐기", "대상": ["인력", "작업량 조건", "재료"], "로직키": ["GC001104"]}, "조건": { "철근유무": "고르기" }, "값칸": { "착암공": "인", "보통인부": "인", "소형브레이커(1.5kW)": "대", "시공량": "㎥" }, "줄": [ @@ -31,7 +31,7 @@ "이름": "콘크리트구조물 헐기(기계)", "기준": "일당", "출처": "건설품셈 유지관리 3-1-2", - "용도": {"공종": "콘크리트구조물 헐기", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "콘크리트구조물 헐기", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001105"]}, "조건": { "장애물": "고르기" }, "값칸": { "용접공": "인", "특별인부": "인", "보통인부": "인", "굴착기+압쇄기(1.0㎥)": "대", "굴착기(0.6㎥)": "대", "시공량": "㎥" }, "줄": [ @@ -55,7 +55,7 @@ "이름": "콘크리트구조물 헐기(기계) 장애물 제거 재료량(㎥당)", "기준": "㎥당", "출처": "건설품셈 유지관리 3-1-2", - "용도": {"공종": "콘크리트구조물 헐기", "대상": ["작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "콘크리트구조물 헐기", "대상": ["작업량 조건", "재료"], "로직키": ["GC001105"]}, "조건": { "구분": "고르기" }, "값칸": { "단위": "글", "수량": "수" }, "줄": [ @@ -69,7 +69,7 @@ "이름": "철골재 철거(인력)", "기준": "일당", "출처": "건설품셈 유지관리 3-1-3", - "용도": {"공종": "철골재 철거", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "철골재 철거", "대상": ["인력", "작업량 조건"], "로직키": ["GC001106"]}, "조건": {}, "값칸": { "용접공": "인", "보통인부": "인", "시공량": "ton" }, "줄": [ { "용접공": 3, "보통인부": 2, "시공량": 1.4 } ], @@ -85,7 +85,7 @@ "이름": "철골재 철거(인력) 재료량(ton당)", "기준": "ton당", "출처": "건설품셈 유지관리 3-1-3", - "용도": {"공종": "철골재 철거", "대상": ["작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "철골재 철거", "대상": ["작업량 조건", "재료"], "로직키": ["GC001106"]}, "조건": { "구분": "고르기" }, "값칸": { "단위": "글", "수량": "수" }, "줄": [ @@ -103,7 +103,7 @@ "이름": "철골재 철거(기계)", "기준": "일당", "출처": "건설품셈 유지관리 3-1-4", - "용도": {"공종": "철골재 철거", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "철골재 철거", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001107"]}, "조건": {}, "값칸": { "특별인부": "인", "보통인부": "인", "굴착기+빔커터기(1.0㎥)": "대", "굴착기(1.0㎥)": "대", "크레인": "대", "시공량": "ton" }, "줄": [ { "특별인부": 2, "보통인부": 1, "굴착기+빔커터기(1.0㎥)": 1, "굴착기(1.0㎥)": 1, "크레인": 1, "시공량": 22 } ], @@ -122,7 +122,7 @@ "이름": "석축 헐기(인력)", "기준": "정의별", "출처": "건설품셈 유지관리 3-1-5", - "용도": {"공종": "석축 헐기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "석축 헐기", "대상": ["인력", "작업량 조건"], "로직키": ["GC001108"]}, "조건": { "공종": "고르기" }, "값칸": { "기준": "글", "할석공": "인", "보통인부": "인" }, "줄": [ @@ -144,7 +144,7 @@ "이름": "금속기와 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-1", - "용도": {"공종": "금속기와 해체", "대상": ["인력"], "로직키": []}, + "용도": {"공종": "금속기와 해체", "대상": ["인력"], "로직키": ["GC001109"]}, "조건": {}, "값칸": { "지붕잇기공": "인", "보통인부": "인" }, "줄": [ { "지붕잇기공": 0.018, "보통인부": 0.012 } ], @@ -161,7 +161,7 @@ "이름": "흡음텍스 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-2", - "용도": {"공종": "흡음텍스 해체", "대상": ["인력"], "로직키": []}, + "용도": {"공종": "흡음텍스 해체", "대상": ["인력"], "로직키": ["GC001110"]}, "조건": {}, "값칸": { "내장공": "인", "보통인부": "인" }, "줄": [ { "내장공": 0.016, "보통인부": 0.011 } ], @@ -176,7 +176,7 @@ "이름": "경량천장철골틀 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-3", - "용도": {"공종": "경량천장철골틀 해체", "대상": ["인력"], "로직키": []}, + "용도": {"공종": "경량천장철골틀 해체", "대상": ["인력"], "로직키": ["GC001111"]}, "조건": {}, "값칸": { "내장공": "인", "보통인부": "인" }, "줄": [ { "내장공": 0.018, "보통인부": 0.012 } ], @@ -193,7 +193,7 @@ "이름": "조적벽 해체", "기준": "㎥당", "출처": "건설품셈 유지관리 3-2-4", - "용도": {"공종": "조적벽 해체", "대상": ["인력"], "로직키": []}, + "용도": {"공종": "조적벽 해체", "대상": ["인력"], "로직키": ["GC001112"]}, "조건": {}, "값칸": { "조적공": "인", "보통인부": "인" }, "줄": [ { "조적공": 0.380, "보통인부": 0.252 } ], @@ -210,7 +210,7 @@ "이름": "경량벽체철골틀 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-5", - "용도": {"공종": "경량벽체철골틀 해체", "대상": ["인력"], "로직키": []}, + "용도": {"공종": "경량벽체철골틀 해체", "대상": ["인력"], "로직키": ["GC001113"]}, "조건": {}, "값칸": { "내장공": "인", "보통인부": "인" }, "줄": [ { "내장공": 0.016, "보통인부": 0.011 } ], @@ -227,7 +227,7 @@ "이름": "석고판 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-6", - "용도": {"공종": "석고판 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "석고판 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001114"]}, "조건": { "부위": "고르기" }, "값칸": { "내장공": "인", "보통인부": "인" }, "줄": [ @@ -246,7 +246,7 @@ "이름": "도배 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-7", - "용도": {"공종": "도배 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "도배 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001115"]}, "조건": { "부위": "고르기" }, "값칸": { "도배공": "인", "보통인부": "인" }, "줄": [ @@ -265,7 +265,7 @@ "이름": "PVC계바닥재 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-8", - "용도": {"공종": "PVC계바닥재 해체", "대상": ["인력"], "로직키": []}, + "용도": {"공종": "PVC계바닥재 해체", "대상": ["인력"], "로직키": ["GC001116"]}, "조건": {}, "값칸": { "내장공": "인", "보통인부": "인" }, "줄": [ { "내장공": 0.006, "보통인부": 0.004 } ], @@ -280,7 +280,7 @@ "이름": "타일 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-9", - "용도": {"공종": "타일 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "타일 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001117"]}, "조건": { "공법": "고르기" }, "값칸": { "타일공": "인", "보통인부": "인" }, "줄": [ @@ -300,7 +300,7 @@ "이름": "기존방수층 및 보호층 철거", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-10", - "용도": {"공종": "기존방수층 및 보호층 철거", "대상": ["기계", "인력"], "로직키": []}, + "용도": {"공종": "기존방수층 및 보호층 철거", "대상": ["기계", "인력"], "로직키": ["GC001118"]}, "조건": {}, "값칸": { "착암공": "인", "보통인부": "인", "소형브레이커(1.3㎥/min)": "시간", "공기압축기(3.5㎥/min)": "시간" }, "줄": [ { "착암공": 0.06, "보통인부": 0.22, "소형브레이커(1.3㎥/min)": 0.10, "공기압축기(3.5㎥/min)": 0.05 } ], @@ -316,7 +316,7 @@ "이름": "기존방수층 제거 및 바탕처리", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-11", - "용도": {"공종": "기존방수층 제거 및 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "기존방수층 제거 및 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": ["GC001119"]}, "조건": { "부위": "고르기" }, "값칸": { "방수공": "인", "보통인부": "인" }, "줄": [ @@ -335,7 +335,7 @@ "이름": "석면건축자재 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 3-2-12", - "용도": {"공종": "석면건축자재 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "석면건축자재 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001120"]}, "조건": { "부위": "고르기" }, "값칸": { "석면해체공": "인", "보통인부": "인" }, "줄": [ @@ -360,7 +360,7 @@ "이름": "재도장 시 바탕처리(콘크리트·모르타르면)", "기준": "일당", "출처": "건설품셈 유지관리 3-3-1", - "용도": {"공종": "재도장 시 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "재도장 시 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": ["GC001121"]}, "조건": {}, "값칸": { "도장공": "인", "보통인부": "인", "시공량": "㎡" }, "줄": [ { "도장공": 2, "보통인부": 1, "시공량": 230 } ], @@ -375,7 +375,7 @@ "이름": "재도장 시 바탕처리(철재면)", "기준": "일당", "출처": "건설품셈 유지관리 3-3-2", - "용도": {"공종": "재도장 시 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "재도장 시 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": ["GC001122"]}, "조건": { "등급": "고르기" }, "값칸": { "도장공": "인", "보통인부": "인", "시공량": "㎡" }, "줄": [ @@ -394,7 +394,7 @@ "이름": "재도장 시 바탕처리(철재면) 대상면 적용기준", "기준": "정의", "출처": "건설품셈 유지관리 3-3-2", - "용도": {"공종": "재도장 시 바탕처리", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "재도장 시 바탕처리", "대상": ["작업량 조건"], "로직키": ["GC001122"]}, "조건": { "구분": "고르기" }, "값칸": { "적용기준": "글" }, "줄": [ @@ -408,7 +408,7 @@ "이름": "재도장 시 바탕처리(목재면)", "기준": "일당", "출처": "건설품셈 유지관리 3-3-3", - "용도": {"공종": "재도장 시 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "재도장 시 바탕처리", "대상": ["인력", "작업량 조건"], "로직키": ["GC001123"]}, "조건": { "등급": "고르기" }, "값칸": { "도장공": "인", "보통인부": "인", "시공량": "㎡" }, "줄": [ @@ -427,7 +427,7 @@ "이름": "재도장 시 바탕처리(목재면) 대상면 적용기준", "기준": "정의", "출처": "건설품셈 유지관리 3-3-3", - "용도": {"공종": "재도장 시 바탕처리", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "재도장 시 바탕처리", "대상": ["작업량 조건"], "로직키": ["GC001123"]}, "조건": { "구분": "고르기" }, "값칸": { "적용기준": "글" }, "줄": [ @@ -441,7 +441,7 @@ "이름": "지붕 덧씌우기", "기준": "일당", "출처": "건설품셈 유지관리 3-4-1", - "용도": {"공종": "지붕 덧씌우기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "지붕 덧씌우기", "대상": ["인력", "작업량 조건"], "로직키": ["GC001124"]}, "조건": {}, "값칸": { "지붕잇기공": "인", "보통인부": "인", "시공량": "㎡" }, "줄": [ { "지붕잇기공": 4, "보통인부": 2, "시공량": 85 } ], @@ -459,7 +459,7 @@ "이름": "지붕 재설치", "기준": "일당", "출처": "건설품셈 유지관리 3-4-2", - "용도": {"공종": "지붕 재설치", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "지붕 재설치", "대상": ["인력", "작업량 조건"], "로직키": ["GC001125"]}, "조건": {}, "값칸": { "지붕잇기공": "인", "보통인부": "인", "시공량": "㎡" }, "줄": [ { "지붕잇기공": 6, "보통인부": 2, "시공량": 50 } ], @@ -478,7 +478,7 @@ "이름": "도배 교체", "기준": "일당", "출처": "건설품셈 유지관리 3-4-3", - "용도": {"공종": "도배 교체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "도배 교체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001126"]}, "조건": { "부위": "고르기" }, "값칸": { "내장공": "인", "시공량": "㎡" }, "줄": [ @@ -497,7 +497,7 @@ "이름": "PVC계바닥재 교체", "기준": "일당", "출처": "건설품셈 유지관리 3-4-4", - "용도": {"공종": "PVC계바닥재 교체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "PVC계바닥재 교체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001127"]}, "조건": {}, "값칸": { "내장공": "인", "시공량": "㎡" }, "줄": [ { "내장공": 2, "시공량": 61 } ], @@ -513,7 +513,7 @@ "이름": "타일 교체", "기준": "일당", "출처": "건설품셈 유지관리 3-4-5", - "용도": {"공종": "타일 교체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "타일 교체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001128"]}, "조건": { "공법": "고르기" }, "값칸": { "타일공": "인", "시공량": "㎡" }, "줄": [ diff --git a/resources/master_data/소요량_건설품셈_03장_토공사.json b/resources/master_data/소요량_건설품셈_03장_토공사.json index e0b5b5dad..1830bf58d 100644 --- a/resources/master_data/소요량_건설품셈_03장_토공사.json +++ b/resources/master_data/소요량_건설품셈_03장_토공사.json @@ -439,7 +439,15 @@ "이름": "소모자재 요율", "기준": "", "출처": "건설품셈 공통 3-3-6 주⑨", - "용도": {"공종": "암발파", "대상": ["작업량 조건"], "로직키": ["GC000098"]}, + "용도": {"공종": "암발파", "대상": ["작업량 조건"], "로직키": [ + "GC000098", + "GC000091", + "GC000092", + "GC000093", + "GC000094", + "GC000095", + "GC000096" + ]}, "조건": { "장비": "고르기" }, "값칸": { "요율": "%" }, "줄": [ diff --git a/resources/master_data/소요량_건설품셈_04장_기계설비.json b/resources/master_data/소요량_건설품셈_04장_기계설비.json index b8e9bdb45..e0612b572 100644 --- a/resources/master_data/소요량_건설품셈_04장_기계설비.json +++ b/resources/master_data/소요량_건설품셈_04장_기계설비.json @@ -11,7 +11,7 @@ "이름": "배관 해체", "기준": "m당", "출처": "건설품셈 유지관리 4-1-1", - "용도": {"공종": "배관 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "배관 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001129"]}, "조건": { "관종": "고르기", "규격(㎜)": "고르기" }, "값칸": { "배관공": "인", "보통인부": "인" }, "줄": [ @@ -59,7 +59,7 @@ "이름": "각형덕트 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 4-1-2", - "용도": {"공종": "각형덕트 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "각형덕트 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001130"]}, "조건": { "호칭두께(mm)": "고르기" }, "값칸": { "덕트공": "인", "보통인부": "인" }, "줄": [ @@ -83,7 +83,7 @@ "이름": "스파이럴덕트 해체", "기준": "m당", "출처": "건설품셈 유지관리 4-1-3", - "용도": {"공종": "스파이럴덕트 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "스파이럴덕트 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001131"]}, "조건": { "철판두께(㎜)": "고르기", "규격(㎜)": "고르기" }, "값칸": { "덕트공": "인", "보통인부": "인" }, "줄": [ @@ -115,7 +115,7 @@ "이름": "배관보온 해체", "기준": "m당", "출처": "건설품셈 유지관리 4-1-4", - "용도": {"공종": "배관보온 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "배관보온 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001132"]}, "조건": { "보온재종류": "고르기", "규격(㎜)": "고르기" }, "값칸": { "보온공": "인", "보통인부": "인" }, "줄": [ @@ -173,7 +173,7 @@ "이름": "덕트보온 해체", "기준": "㎡당", "출처": "건설품셈 유지관리 4-1-5", - "용도": {"공종": "덕트보온 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "덕트보온 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001133"]}, "조건": { "보온재종류": "고르기" }, "값칸": { "보온공": "인", "보통인부": "인" }, "줄": [ @@ -191,7 +191,7 @@ "이름": "펌프 해체", "기준": "대당", "출처": "건설품셈 유지관리 4-1-6", - "용도": {"공종": "펌프 해체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "펌프 해체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001134"]}, "조건": { "규격(kW)": "고르기" }, "값칸": { "기계설비공": "인", "보통인부": "인" }, "줄": [ @@ -278,7 +278,7 @@ "이름": "유량계 교체", "기준": "일당", "출처": "건설품셈 유지관리 4-3-1", - "용도": {"공종": "유량계 교체", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "유량계 교체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001135"]}, "조건": { "규격(mm)": "고르기" }, "값칸": { "배관공": "인", "보통인부": "인", "시공량(보호통)": "개", "시공량(유량계)": "개" }, "줄": [ @@ -302,7 +302,7 @@ "이름": "관갱생공", "기준": "m당", "출처": "건설품셈 유지관리 4-3-2", - "용도": {"공종": "관갱생공", "대상": ["인력", "작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "관갱생공", "대상": ["인력", "작업량 조건", "재료"], "로직키": ["GC001136"]}, "조건": { "규격(㎜)": "고르기" }, "값칸": { "규사": "㎏", "에폭시도료": "㎏", "배관공": "인", "특별인부": "인", "장비사용시간": "시간" }, "줄": [ @@ -337,7 +337,7 @@ "이름": "관갱생공 장비조합", "기준": "정의", "출처": "건설품셈 유지관리 4-3-2", - "용도": {"공종": "관갱생공", "대상": ["기계", "작업량 조건"], "로직키": []}, + "용도": {"공종": "관갱생공", "대상": ["기계", "작업량 조건"], "로직키": ["GC001136"]}, "조건": { "규격(㎜)범위": "고르기" }, "값칸": { "라이닝기": "글", "공기압축기": "대" }, "줄": [ @@ -353,7 +353,7 @@ "이름": "배관누수 검사", "기준": "일당", "출처": "건설품셈 유지관리 4-3-3", - "용도": {"공종": "배관누수 검사", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "배관누수 검사", "대상": ["인력", "작업량 조건"], "로직키": ["GC001137"]}, "조건": {}, "값칸": { "배관공": "인", "시공량": "회" }, "줄": [ { "배관공": 2, "시공량": 2.8 } ], diff --git a/resources/master_data/소요량_건설품셈_05장_강구조공사.json b/resources/master_data/소요량_건설품셈_05장_강구조공사.json index f4f8f05d9..cc631bb51 100644 --- a/resources/master_data/소요량_건설품셈_05장_강구조공사.json +++ b/resources/master_data/소요량_건설품셈_05장_강구조공사.json @@ -229,7 +229,7 @@ { "구분": "희석재", "단위": "ℓ", - "사용량": 25, + "사용량": "도료 사용량 × 25 / 100", "사용량원문": "도료 사용량의 25%" } ], diff --git a/resources/master_data/소요량_건설품셈_06장_관부설_및_접합공사.json b/resources/master_data/소요량_건설품셈_06장_관부설_및_접합공사.json index 49d0cf269..a1f963898 100644 --- a/resources/master_data/소요량_건설품셈_06장_관부설_및_접합공사.json +++ b/resources/master_data/소요량_건설품셈_06장_관부설_및_접합공사.json @@ -714,7 +714,8 @@ "주": [ "① 본 품은 PC관의 부설 및 소켓식 접합 기준이다.", "② 본 품은 관부설, 윤활제 바르기, 고무링 삽입 및 소켓연결, 위치 및 구배 확인, 관로표시테이프 부설, 현장정리 작업을 포함한다.", - "③ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다." + "③ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다.", + "④ 공구손료 및 잡재료는 인력품의 1%로 계상한다." ] }, { @@ -818,7 +819,8 @@ "주": [ "① 본 품은 유리섬유복합관(6m)을 소켓 접합하는 기준이다.", "② 본 품은 관부설, 이물질 제거, 윤활제 도포, 접합장치 설치 및 삽입, 위치 및 구배 확인, 관로표시테이프 부설 작업을 포함한다.", - "③ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다." + "③ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다.", + "④ 공구손료 및 잡재료는 인력품의 1%로 계상한다." ] }, { @@ -1133,7 +1135,8 @@ "① 본 품은 주철제 게이트밸브의 부설 및 플랜지 접합하는 기준이다.", "② 본 품은 밸브 조립 및 부설, 이음관 접합(플랜지) 작업을 포함한다.", "③ 신축관의 접합 및 제수변실 설치는 별도 계상한다.", - "④ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다." + "④ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다.", + "⑤ 공구손료 및 잡재료는 인력품의 2%로 계상한다." ] }, { @@ -1178,7 +1181,8 @@ "① 본 품은 강관제 게이트 제수밸브의 부설 및 플랜지 접합하는 기준이다.", "② 본 품은 밸브 조립 및 부설, 이음관 접합(플랜지) 작업을 포함한다.", "③ 신축관의 접합 및 제수변실 설치는 별도 계상한다.", - "④ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다." + "④ 크레인 규격은 다음을 참고하여 적용하며, 현장조건(작업범위, 위치 등)에 따라 변경할 수 있다.", + "⑤ 공구손료 및 잡재료는 인력품의 2%로 계상한다." ] }, { @@ -1284,7 +1288,8 @@ "② 본 품의 관경은 본관을 기준한 것이다.", "③ 천공작업, 터파기, 되메우기, 잔토처리, 물푸기 작업은 제외되어 있다.", "④ 본 품은 누수방지대 부설 및 접합에 적용이 가능하다.", - "⑤ 본 품의 크레인 규격은 다음을 참고하여 적용한다." + "⑤ 본 품의 크레인 규격은 다음을 참고하여 적용한다.", + "⑥ 공구손료 및 잡재료는 인력품의 2%로 계상한다." ] }, { diff --git a/resources/master_data/소요량_건설품셈_07장_돌공사.json b/resources/master_data/소요량_건설품셈_07장_돌공사.json index 05501afd1..c69ce3552 100644 --- a/resources/master_data/소요량_건설품셈_07장_돌공사.json +++ b/resources/master_data/소요량_건설품셈_07장_돌공사.json @@ -175,9 +175,9 @@ "이름": "석재판 붙임 — 앵커 긴결공법(일당)", "기준": "일당 — 편성 1조 기준", "출처": "건설품셈 공통 7-4-2", - "용도": {"공종": "앵커 긴결공법", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "앵커 긴결공법", "대상": ["인력", "작업량 조건"], "로직키": ["GC001138"]}, "조건": { "면적": "범위" }, - "범위규칙": "아래 값 초과 ~ 위 값 이하(아래 값이 없으면 위 값 이하)", + "범위규칙": "초과·이하 · 아래 값 초과 ~ 위 값 이하(아래 값이 없으면 위 값 이하)", "값칸": { "석공": "인", "줄눈공": "인", "보통인부": "인", "시공량": "㎡" }, "줄": [ { "면적": [null, 0.3], "석공": 3, "줄눈공": 1, "보통인부": 2, "시공량": 10 }, @@ -194,9 +194,9 @@ "이름": "석재판 붙임 — 강제트러스 지지공법(일당)", "기준": "일당 — 편성 1조 기준", "출처": "건설품셈 공통 7-4-3", - "용도": {"공종": "강제트러스 지지공법", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "강제트러스 지지공법", "대상": ["인력", "작업량 조건"], "로직키": ["GC001139"]}, "조건": { "공정": "고르기", "면적": "범위" }, - "범위규칙": "아래 값 초과 ~ 위 값 이하(아래 값이 없으면 위 값 이하)", + "범위규칙": "초과·이하 · 아래 값 초과 ~ 위 값 이하(아래 값이 없으면 위 값 이하)", "값칸": { "용접공": "인", "철공": "인", "석공": "인", "줄눈공": "인", "보통인부": "인", "시공량": "㎡" }, "줄": [ { "공정": "하지철물 설치", "면적": [null, 0.3], "용접공": 2, "철공": 1, "시공량": 11 }, diff --git a/resources/master_data/소요량_건설품셈_09장_기타공사.json b/resources/master_data/소요량_건설품셈_09장_기타공사.json index 785637114..df9a4d346 100644 --- a/resources/master_data/소요량_건설품셈_09장_기타공사.json +++ b/resources/master_data/소요량_건설품셈_09장_기타공사.json @@ -302,7 +302,7 @@ { "명칭": "덕트계통 (공조,환기 배연)", "적용": "풍량조정댐퍼, 방화댐퍼의 조정, 풍량, 풍속, 소음의 측정, 필요개소의 온습도 측정", "항목": "비고", "수량": "각형덕트", "단위": "㎡" }, { "명칭": "덕트계통 (공조,환기 배연)", "적용": "풍량조정댐퍼, 방화댐퍼의 조정, 풍량, 풍속, 소음의 측정, 필요개소의 온습도 측정", "항목": "덕트공", "수량": 0.012, "단위": "m" }, { "명칭": "덕트계통 (공조,환기 배연)", "적용": "풍량조정댐퍼, 방화댐퍼의 조정, 풍량, 풍속, 소음의 측정, 필요개소의 온습도 측정", "항목": "비고", "수량": "스파이럴덕트", "단위": "m" }, - { "명칭": "주기계 실내기기", "적용": "보일러, 냉동기 등의 점검, 조정, 계기측정 기록 기타 건물 연면적", "항목": "비고", "수량": "( )는 온풍난방의 경우", "단위": "m" }, + { "명칭": "주기계 실내기기", "적용": "보일러, 냉동기 등의 점검, 조정, 계기측정 기록 기타 건물 연면적", "항목": "비고", "수량": "( )는 온풍난방의 경우", "단위": "" }, { "명칭": "주기계 실내기기", "적용": "5,000㎡이하", "항목": "배관공", "수량": "8.0(4.0)", "단위": "1식" }, { "명칭": "주기계 실내기기", "적용": "6,000∼15,000㎡", "항목": "배관공", "수량": "12.0(6.0)", "단위": "1식" }, { "명칭": "주기계 실내기기", "적용": "16,000∼30,000㎡", "항목": "배관공", "수량": "16.0(8.0)", "단위": "1식" }, diff --git a/resources/master_data/소요량_건설품셈_13장_플랜트설비공사.json b/resources/master_data/소요량_건설품셈_13장_플랜트설비공사.json index 8abdc988c..1ed53e35c 100644 --- a/resources/master_data/소요량_건설품셈_13장_플랜트설비공사.json +++ b/resources/master_data/소요량_건설품셈_13장_플랜트설비공사.json @@ -1078,7 +1078,7 @@ { "키": "QC001616", "원문번호": "13-1-2", "구분": "건설품셈 기계설비", "상세구분": "13장 플랜트설비공사", "이름": "관만곡(Pipe Bending) 설치 표3", - "기준": "", + "기준": "개당", "출처": "건설품셈 기계설비 13-1-2", "용도": {"공종": "관만곡(Pipe Bending) 설치", "대상": ["작업량 조건"], "로직키": ["GC000876"]}, "조건": { "구분": "고르기", "구경(㎜)": "수" }, @@ -3149,62 +3149,62 @@ "값칸": { "수량": "", "용접공": "", "특별인부": "" }, "줄": [ { "두께(㎜)": 5, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 0.27 }, - { "두께(㎜)": 5, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.30 }, + { "두께(㎜)": 5, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.3 }, { "두께(㎜)": 5, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 0.33 }, { "두께(㎜)": 5, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 0.35 }, - { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 1.90 }, - { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 2.20 }, - { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 2.30 }, - { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 2.50 }, - { "두께(㎜)": 5, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.010, "특별인부": 0.002 }, - { "두께(㎜)": 5, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.020, "특별인부": 0.006 }, + { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 1.9 }, + { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 2.2 }, + { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 2.3 }, + { "두께(㎜)": 5, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 2.5 }, + { "두께(㎜)": 5, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.01, "특별인부": 0.002 }, + { "두께(㎜)": 5, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.02, "특별인부": 0.006 }, { "두께(㎜)": 5, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.027, "특별인부": 0.008 }, { "두께(㎜)": 5, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.031, "특별인부": 0.009 }, { "두께(㎜)": 6, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 0.33 }, - { "두께(㎜)": 6, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.40 }, + { "두께(㎜)": 6, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.4 }, { "두께(㎜)": 6, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 0.42 }, { "두께(㎜)": 6, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 0.43 }, { "두께(㎜)": 6, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 2.25 }, { "두께(㎜)": 6, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 2.65 }, { "두께(㎜)": 6, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 2.75 }, - { "두께(㎜)": 6, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 2.90 }, + { "두께(㎜)": 6, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 2.9 }, { "두께(㎜)": 6, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.014, "특별인부": 0.004 }, { "두께(㎜)": 6, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.026, "특별인부": 0.008 }, { "두께(㎜)": 6, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.032, "특별인부": 0.009 }, { "두께(㎜)": 6, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.036, "특별인부": 0.011 }, - { "두께(㎜)": 7, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 0.40 }, - { "두께(㎜)": 7, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.50 }, + { "두께(㎜)": 7, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 0.4 }, + { "두께(㎜)": 7, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.5 }, { "두께(㎜)": 7, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 0.53 }, { "두께(㎜)": 7, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 0.55 }, - { "두께(㎜)": 7, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 2.60 }, - { "두께(㎜)": 7, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 3.10 }, + { "두께(㎜)": 7, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 2.6 }, + { "두께(㎜)": 7, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 3.1 }, { "두께(㎜)": 7, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 3.25 }, - { "두께(㎜)": 7, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 3.50 }, + { "두께(㎜)": 7, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 3.5 }, { "두께(㎜)": 7, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.021, "특별인부": 0.006 }, { "두께(㎜)": 7, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.031, "특별인부": 0.009 }, { "두께(㎜)": 7, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.038, "특별인부": 0.011 }, { "두께(㎜)": 7, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.042, "특별인부": 0.013 }, { "두께(㎜)": 8, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 0.49 }, - { "두께(㎜)": 8, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.60 }, + { "두께(㎜)": 8, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.6 }, { "두께(㎜)": 8, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 0.61 }, { "두께(㎜)": 8, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 0.62 }, { "두께(㎜)": 8, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 3.25 }, { "두께(㎜)": 8, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 3.75 }, - { "두께(㎜)": 8, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 4.00 }, + { "두께(㎜)": 8, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 4.0 }, { "두께(㎜)": 8, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 4.25 }, { "두께(㎜)": 8, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.027, "특별인부": 0.008 }, - { "두께(㎜)": 8, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.040, "특별인부": 0.012 }, + { "두께(㎜)": 8, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.04, "특별인부": 0.012 }, { "두께(㎜)": 8, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.048, "특별인부": 0.012 }, { "두께(㎜)": 8, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.052, "특별인부": 0.016 }, { "두께(㎜)": 9, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 0.68 }, - { "두께(㎜)": 9, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.80 }, + { "두께(㎜)": 9, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 0.8 }, { "두께(㎜)": 9, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 0.82 }, { "두께(㎜)": 9, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 0.83 }, - { "두께(㎜)": 9, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 3.80 }, - { "두께(㎜)": 9, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 4.50 }, + { "두께(㎜)": 9, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 3.8 }, + { "두께(㎜)": 9, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 4.5 }, { "두께(㎜)": 9, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 4.75 }, - { "두께(㎜)": 9, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 5.10 }, - { "두께(㎜)": 9, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.033, "특별인부": 0.010 }, + { "두께(㎜)": 9, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 5.1 }, + { "두께(㎜)": 9, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.033, "특별인부": 0.01 }, { "두께(㎜)": 9, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.052, "특별인부": 0.015 }, { "두께(㎜)": 9, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.056, "특별인부": 0.017 }, { "두께(㎜)": 9, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.063, "특별인부": 0.019 }, @@ -3212,10 +3212,10 @@ { "두께(㎜)": 10, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.0 }, { "두께(㎜)": 10, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 1.01 }, { "두께(㎜)": 10, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 1.01 }, - { "두께(㎜)": 10, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 4.70 }, + { "두께(㎜)": 10, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 4.7 }, { "두께(㎜)": 10, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 5.25 }, - { "두께(㎜)": 10, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 5.70 }, - { "두께(㎜)": 10, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 6.10 }, + { "두께(㎜)": 10, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 5.7 }, + { "두께(㎜)": 10, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 6.1 }, { "두께(㎜)": 10, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.048, "특별인부": 0.013 }, { "두께(㎜)": 10, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.062, "특별인부": 0.017 }, { "두께(㎜)": 10, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.069, "특별인부": 0.021 }, @@ -3223,107 +3223,107 @@ { "두께(㎜)": 11, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 0.95 }, { "두께(㎜)": 11, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.15 }, { "두께(㎜)": 11, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 1.18 }, - { "두께(㎜)": 11, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 1.20 }, - { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 5.50 }, - { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 6.20 }, - { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 6.70 }, - { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 7.10 }, + { "두께(㎜)": 11, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 1.2 }, + { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 5.5 }, + { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 6.2 }, + { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 6.7 }, + { "두께(㎜)": 11, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 7.1 }, { "두께(㎜)": 11, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.057, "특별인부": 0.015 }, { "두께(㎜)": 11, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.071, "특별인부": 0.021 }, { "두께(㎜)": 11, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.079, "특별인부": 0.024 }, { "두께(㎜)": 11, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.083, "특별인부": 0.025 }, { "두께(㎜)": 12, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 1.09 }, - { "두께(㎜)": 12, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.30 }, + { "두께(㎜)": 12, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.3 }, { "두께(㎜)": 12, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 1.33 }, { "두께(㎜)": 12, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 1.35 }, - { "두께(㎜)": 12, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 6.40 }, - { "두께(㎜)": 12, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 7.10 }, + { "두께(㎜)": 12, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 6.4 }, + { "두께(㎜)": 12, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 7.1 }, { "두께(㎜)": 12, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 7.75 }, - { "두께(㎜)": 12, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 8.20 }, + { "두께(㎜)": 12, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 8.2 }, { "두께(㎜)": 12, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.066, "특별인부": 0.017 }, { "두께(㎜)": 12, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.081, "특별인부": 0.024 }, { "두께(㎜)": 12, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.092, "특별인부": 0.028 }, { "두께(㎜)": 12, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.096, "특별인부": 0.029 }, { "두께(㎜)": 13, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 1.26 }, - { "두께(㎜)": 13, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.50 }, + { "두께(㎜)": 13, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.5 }, { "두께(㎜)": 13, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 1.55 }, { "두께(㎜)": 13, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 1.58 }, { "두께(㎜)": 13, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 7.25 }, - { "두께(㎜)": 13, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 8.10 }, - { "두께(㎜)": 13, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 8.80 }, - { "두께(㎜)": 13, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 9.30 }, - { "두께(㎜)": 13, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.075, "특별인부": 0.020 }, + { "두께(㎜)": 13, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 8.1 }, + { "두께(㎜)": 13, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 8.8 }, + { "두께(㎜)": 13, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 9.3 }, + { "두께(㎜)": 13, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.075, "특별인부": 0.02 }, { "두께(㎜)": 13, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.092, "특별인부": 0.028 }, { "두께(㎜)": 13, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.104, "특별인부": 0.031 }, - { "두께(㎜)": 13, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.110, "특별인부": 0.033 }, + { "두께(㎜)": 13, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.11, "특별인부": 0.033 }, { "두께(㎜)": 14, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 1.45 }, - { "두께(㎜)": 14, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.70 }, + { "두께(㎜)": 14, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.7 }, { "두께(㎜)": 14, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 1.73 }, { "두께(㎜)": 14, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 1.75 }, - { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 8.20 }, - { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 9.10 }, - { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 10.00 }, - { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 10.30 }, + { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 8.2 }, + { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 9.1 }, + { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 10.0 }, + { "두께(㎜)": 14, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 10.3 }, { "두께(㎜)": 14, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.083, "특별인부": 0.023 }, - { "두께(㎜)": 14, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.110, "특별인부": 0.031 }, + { "두께(㎜)": 14, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.11, "특별인부": 0.031 }, { "두께(㎜)": 14, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.119, "특별인부": 0.034 }, { "두께(㎜)": 14, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.125, "특별인부": 0.038 }, { "두께(㎜)": 15, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 1.64 }, - { "두께(㎜)": 15, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.90 }, + { "두께(㎜)": 15, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 1.9 }, { "두께(㎜)": 15, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 1.94 }, { "두께(㎜)": 15, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 1.96 }, - { "두께(㎜)": 15, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 9.20 }, + { "두께(㎜)": 15, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 9.2 }, { "두께(㎜)": 15, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 10.25 }, - { "두께(㎜)": 15, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 11.10 }, - { "두께(㎜)": 15, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 11.70 }, + { "두께(㎜)": 15, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 11.1 }, + { "두께(㎜)": 15, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 11.7 }, { "두께(㎜)": 15, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.089, "특별인부": 0.026 }, { "두께(㎜)": 15, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.128, "특별인부": 0.036 }, { "두께(㎜)": 15, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.135, "특별인부": 0.041 }, { "두께(㎜)": 15, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.142, "특별인부": 0.043 }, - { "두께(㎜)": 16, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 1.90 }, - { "두께(㎜)": 16, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 2.20 }, + { "두께(㎜)": 16, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 1.9 }, + { "두께(㎜)": 16, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 2.2 }, { "두께(㎜)": 16, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 2.25 }, { "두께(㎜)": 16, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 2.29 }, - { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 10.50 }, - { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 11.50 }, - { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 12.50 }, - { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 13.00 }, + { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 10.5 }, + { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 11.5 }, + { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 12.5 }, + { "두께(㎜)": 16, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 13.0 }, { "두께(㎜)": 16, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.096, "특별인부": 0.029 }, { "두께(㎜)": 16, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.138, "특별인부": 0.039 }, - { "두께(㎜)": 16, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.150, "특별인부": 0.045 }, - { "두께(㎜)": 16, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.160, "특별인부": 0.048 }, - { "두께(㎜)": 17, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 2.20 }, - { "두께(㎜)": 17, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 2.50 }, + { "두께(㎜)": 16, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.15, "특별인부": 0.045 }, + { "두께(㎜)": 16, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.16, "특별인부": 0.048 }, + { "두께(㎜)": 17, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 2.2 }, + { "두께(㎜)": 17, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 2.5 }, { "두께(㎜)": 17, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 2.56 }, - { "두께(㎜)": 17, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 2.60 }, - { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 11.50 }, - { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 12.50 }, - { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 16.00 }, - { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 14.50 }, + { "두께(㎜)": 17, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 2.6 }, + { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 11.5 }, + { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 12.5 }, + { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 16.0 }, + { "두께(㎜)": 17, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 14.5 }, { "두께(㎜)": 17, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.108, "특별인부": 0.032 }, - { "두께(㎜)": 17, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.150, "특별인부": 0.044 }, - { "두께(㎜)": 17, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.160, "특별인부": 0.051 }, + { "두께(㎜)": 17, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.15, "특별인부": 0.044 }, + { "두께(㎜)": 17, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.16, "특별인부": 0.051 }, { "두께(㎜)": 17, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.175, "특별인부": 0.053 }, { "두께(㎜)": 18, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 2.49 }, - { "두께(㎜)": 18, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 2.80 }, + { "두께(㎜)": 18, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 2.8 }, { "두께(㎜)": 18, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 2.88 }, { "두께(㎜)": 18, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 2.93 }, { "두께(㎜)": 18, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 13.75 }, - { "두께(㎜)": 18, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 16.00 }, - { "두께(㎜)": 18, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 16.30 }, - { "두께(㎜)": 18, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 17.00 }, - { "두께(㎜)": 18, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.110, "특별인부": 0.035 }, + { "두께(㎜)": 18, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 16.0 }, + { "두께(㎜)": 18, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 16.3 }, + { "두께(㎜)": 18, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 17.0 }, + { "두께(㎜)": 18, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.11, "특별인부": 0.035 }, { "두께(㎜)": 18, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.163, "특별인부": 0.049 }, - { "두께(㎜)": 18, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.190, "특별인부": 0.057 }, + { "두께(㎜)": 18, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.19, "특별인부": 0.057 }, { "두께(㎜)": 18, "구분": "인력(인)", "자세 및 직종": "입향", "용접공": 0.196, "특별인부": 0.059 }, - { "두께(㎜)": 19, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 2.80 }, - { "두께(㎜)": 19, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 3.10 }, - { "두께(㎜)": 19, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 3.20 }, + { "두께(㎜)": 19, "구분": "용접봉소비량(㎏)", "자세 및 직종": "하향", "수량": 2.8 }, + { "두께(㎜)": 19, "구분": "용접봉소비량(㎏)", "자세 및 직종": "횡향", "수량": 3.1 }, + { "두께(㎜)": 19, "구분": "용접봉소비량(㎏)", "자세 및 직종": "상향", "수량": 3.2 }, { "두께(㎜)": 19, "구분": "용접봉소비량(㎏)", "자세 및 직종": "입향", "수량": 3.27 }, - { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 15.50 }, - { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 16.80 }, - { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 17.20 }, - { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 19.00 }, + { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "하향", "수량": 15.5 }, + { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "횡향", "수량": 16.8 }, + { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "상향", "수량": 17.2 }, + { "두께(㎜)": 19, "구분": "소요전력(㎾h)", "자세 및 직종": "입향", "수량": 19.0 }, { "두께(㎜)": 19, "구분": "인력(인)", "자세 및 직종": "하향", "용접공": 0.129, "특별인부": 0.039 }, { "두께(㎜)": 19, "구분": "인력(인)", "자세 및 직종": "횡향", "용접공": 0.175, "특별인부": 0.053 }, { "두께(㎜)": 19, "구분": "인력(인)", "자세 및 직종": "상향", "용접공": 0.204, "특별인부": 0.061 }, @@ -3377,7 +3377,9 @@ { "Carbon Rod": "9.5ø×305m/m", "구분": "DC", "항목": "사용전압", "수량": 330, "단위": "A" }, { "Carbon Rod": "9.5ø×305m/m", "구분": "DC", "항목": "전압", "수량": 40, "단위": "V" } ], - "주": [] + "주": [ + "∘ 적용범위 : 강판 주강 Stainless철판, 경합금, 황동주철물 등의 Gouging 및 절단 등." + ] }, { "키": "QC001644", "원문번호": "13-2-5", "구분": "건설품셈 기계설비", "상세구분": "13장 플랜트설비공사", @@ -3462,7 +3464,9 @@ "② 예열품은 합금강의 재질에 따른 할증을 하지 않는다.", "③ 예열작업을 위한 비계설치비용 등은 별도 계상한다.", "④ Gas Heating의 경우 개소당 0.125인을 적용한다.", - "⑤ 예열온도는 다음과 같다." + "⑤ 예열온도는 다음과 같다.", + "◦ 탄소강관은 예열이 필요 없으나 외기온도가 5℃이하에서는 손으로 따뜻함을 느낄 정도로 예열해야 함.", + "◦ 가열속도는 Pipe내부와 외부의 온도차가 80℃를 초과하지 못하게 서서히 가열함." ] }, { @@ -4724,7 +4728,9 @@ { "품명": "시너", "용량별": "7,000", "수량": 60, "단위": "ℓ" }, { "품명": "시너", "용량별": "10,000(㎥)", "수량": 73, "단위": "ℓ" } ], - "주": [] + "주": [ + "※ 산소량은 대기압상태의 기준량이며, 압축산소는 35℃에서 150기압으로 압축용기에 넣어 사용하는 것을 기준한다." + ] }, { "키": "QC001667", @@ -4912,8 +4918,8 @@ { "작업구분": "Casing 설치 성형된 casing을 운반, 조양 alignment 후 설치", "항목": "윈치운전조", "수량": 1.01, "단위": "조/ton" }, { "작업구분": "Casing 설치 성형된 casing을 운반, 조양 alignment 후 설치", "항목": "비계공", "수량": 2.87, "단위": "인/ton" }, { "작업구분": "Casing 설치 성형된 casing을 운반, 조양 alignment 후 설치", "항목": "특별인부", "수량": 1.33, "단위": "인/ton" }, - { "작업구분": "본용접 Preheating, 본용접, annealing 작업", "항목": "수량", "수량": "※각 tube size에 대하여 용접항을 참조 산출", "단위": "인/ton" }, - { "작업구분": "검사 및 교정 외관검사, 수압시험후 casing leak test 교정 작업(비파괴 시험은 제외)", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 모든 품의 10%", "단위": "인/ton" } + { "작업구분": "본용접 Preheating, 본용접, annealing 작업", "항목": "수량", "수량": "※각 tube size에 대하여 용접항을 참조 산출", "단위": "" }, + { "작업구분": "검사 및 교정 외관검사, 수압시험후 casing leak test 교정 작업(비파괴 시험은 제외)", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 모든 품의 10%", "단위": "" } ], "주": [ "50만㎾이상 보일러설치에 있어서 Tube Panel Header류 및 Buckstay 조립조정은 다음을 참고하여 적용할 수 있다." @@ -5232,7 +5238,7 @@ { "작업구분": "drum internal조양 및 조립설치(internal 무게 ton당)", "구분": "200", "항목": "도장공", "수량": 1.2, "단위": "인/ton" }, { "작업구분": "drum internal조양 및 조립설치(internal 무게 ton당)", "구분": "250", "항목": "도장공", "수량": 1.2, "단위": "인/ton" }, { "작업구분": "drum internal조양 및 조립설치(internal 무게 ton당)", "구분": "300(ton)", "항목": "도장공", "수량": 1.2, "단위": "인/ton" }, - { "작업구분": "검사 및 교정", "항목": "수량", "수량": "기술관리, 포장해체, 작업토의를 제외한 10%", "단위": "인/ton" } + { "작업구분": "검사 및 교정", "항목": "수량", "수량": "기술관리, 포장해체, 작업토의를 제외한 10%", "단위": "" } ], "주": [] }, @@ -5304,7 +5310,7 @@ { "작업구분": "DUCT 설치 성형된 duct를 운반조양 alignment후 bolting 및 hangering", "항목": "특별인부", "수량": 1.33, "단위": "인/ton" }, { "작업구분": "DUCT 설치 성형된 duct를 운반조양 alignment후 bolting 및 hangering", "항목": "플랜트용접공", "수량": 0.66, "단위": "인/ton" }, { "작업구분": "DUCT 설치 성형된 duct를 운반조양 alignment후 bolting 및 hangering", "항목": "플랜트제관공", "수량": 0.56, "단위": "인/ton" }, - { "작업구분": "검사 및 교정 외관검사 및 Leak test", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 모든 품의 10%", "단위": "인/ton" } + { "작업구분": "검사 및 교정 외관검사 및 Leak test", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 모든 품의 10%", "단위": "" } ], "주": [] }, @@ -5349,7 +5355,7 @@ { "작업구분": "Heating Element 삽입 Hot busket, Interbusker, Cold busket의 삽입", "항목": "특별인부", "수량": 0.84, "단위": "인/ton" }, { "작업구분": "Sealing Plate 및 Packing ring 조립 설치", "항목": "플랜트기계설치공", "수량": 13.6, "단위": "인/ton" }, { "작업구분": "Sealing Plate 및 Packing ring 조립 설치", "항목": "특별인부", "수량": 2.9, "단위": "인/ton" }, - { "작업구분": "검사 및 교정", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 모든 품의 10%", "단위": "인/ton" } + { "작업구분": "검사 및 교정", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 모든 품의 10%", "단위": "" } ], "주": [] }, @@ -6203,7 +6209,7 @@ { "작업구분": "Foundation 침하 측정 (공사기간 중)", "용량별": "300", "항목": "측량사", "수량": 0.25, "단위": "인/일" }, { "작업구분": "Foundation 침하 측정 (공사기간 중)", "용량별": "350", "항목": "측량사", "수량": 0.25, "단위": "인/일" }, { "작업구분": "Foundation 침하 측정 (공사기간 중)", "용량별": "500 (MW)", "항목": "측량사", "수량": 0.25, "단위": "인/일" }, - { "작업구분": "검사 및 교정", "항목": "수량", "수량": "포장해체, 기술관리를 제외한 모든 품의 10%", "단위": "인/일" } + { "작업구분": "검사 및 교정", "항목": "수량", "수량": "포장해체, 기술관리를 제외한 모든 품의 10%", "단위": "" } ], "주": [ "① Turbine 부대기기, oil tank cooler, 윤활유 정화장치 등의 설치품은 일반 보조기기 품을 적용하여 별도 계상한다.", @@ -6543,7 +6549,7 @@ { "작업구분": "Hydrogen cooler 설치", "용량별": "300", "항목": "건설기계운전조", "수량": 4.9, "단위": "조/대" }, { "작업구분": "Hydrogen cooler 설치", "용량별": "350", "항목": "건설기계운전조", "수량": 5.6, "단위": "조/대" }, { "작업구분": "Hydrogen cooler 설치", "용량별": "500 (MW)", "항목": "건설기계운전조", "수량": 7.6, "단위": "조/대" }, - { "작업구분": "검사 및 교정 Gas leak test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 품의 10%", "단위": "조/대" } + { "작업구분": "검사 및 교정 Gas leak test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 품의 10%", "단위": "" } ], "주": [ "부대기기 및 부대배관 작업의 품은 별도 계상한다." @@ -6595,7 +6601,7 @@ { "작업구분": "Tube 삽입 설치 Tube sheet support Plate 소재 tube 삽입, Tube expanding 작업", "항목": "플랜트기계설치공", "수량": 0.0332, "단위": "인/개" }, { "작업구분": "Tube 삽입 설치 Tube sheet support Plate 소재 tube 삽입, Tube expanding 작업", "항목": "특별인부", "수량": 0.0629, "단위": "인/개" }, { "작업구분": "Tube 삽입 설치 Tube sheet support Plate 소재 tube 삽입, Tube expanding 작업", "항목": "Crane운전조", "수량": 0.0029, "단위": "조/개" }, - { "작업구분": "Condenser 내부소재 Leak test 교정", "항목": "수량", "수량": "기술관리 포장해체를 제외한 품의 15%", "단위": "조/개" } + { "작업구분": "Condenser 내부소재 Leak test 교정", "항목": "수량", "수량": "기술관리 포장해체를 제외한 품의 15%", "단위": "" } ], "주": [] }, @@ -6714,17 +6720,17 @@ "값칸": { "목공": "", "플랜트기계설치공": "", "인력운반공": "", "특별인부": "", "계": "" }, "줄": [ { "직종 용량(㎥/hr)": "50이하", "목공": 0.04, "플랜트기계설치공": 0.89, "인력운반공": 5.16, "특별인부": 3.86, "계": 9.95 }, - { "직종 용량(㎥/hr)": "51∼100", "목공": 0.06, "플랜트기계설치공": 1.10, "인력운반공": 6.04, "특별인부": 5.73, "계": 12.93 }, - { "직종 용량(㎥/hr)": "101∼200", "목공": 0.10, "플랜트기계설치공": 1.62, "인력운반공": 8.47, "특별인부": 7.19, "계": 17.38 }, + { "직종 용량(㎥/hr)": "51∼100", "목공": 0.06, "플랜트기계설치공": 1.1, "인력운반공": 6.04, "특별인부": 5.73, "계": 12.93 }, + { "직종 용량(㎥/hr)": "101∼200", "목공": 0.1, "플랜트기계설치공": 1.62, "인력운반공": 8.47, "특별인부": 7.19, "계": 17.38 }, { "직종 용량(㎥/hr)": "201∼300", "목공": 0.15, "플랜트기계설치공": 2.67, "인력운반공": 10.13, "특별인부": 10.69, "계": 23.64 }, - { "직종 용량(㎥/hr)": "301∼400", "목공": 0.19, "플랜트기계설치공": 3.19, "인력운반공": 13.60, "특별인부": 12.75, "계": 29.73 }, - { "직종 용량(㎥/hr)": "401∼500", "목공": 0.22, "플랜트기계설치공": 3.87, "인력운반공": 16.50, "특별인부": 15.56, "계": 36.15 }, - { "직종 용량(㎥/hr)": "501∼600", "목공": 0.27, "플랜트기계설치공": 4.66, "인력운반공": 19.30, "특별인부": 18.27, "계": 42.50 }, - { "직종 용량(㎥/hr)": "601∼700", "목공": 0.31, "플랜트기계설치공": 6.55, "인력운반공": 20.00, "특별인부": 20.72, "계": 47.58 }, - { "직종 용량(㎥/hr)": "701∼800", "목공": 0.34, "플랜트기계설치공": 8.56, "인력운반공": 20.60, "특별인부": 22.95, "계": 52.45 }, - { "직종 용량(㎥/hr)": "801∼900", "목공": 0.37, "플랜트기계설치공": 10.53, "인력운반공": 20.90, "특별인부": 25.10, "계": 56.90 }, - { "직종 용량(㎥/hr)": "901∼1,000", "목공": 0.39, "플랜트기계설치공": 11.94, "인력운반공": 21.50, "특별인부": 26.72, "계": 60.55 }, - { "직종 용량(㎥/hr)": "1,001∼2,000", "목공": 0.56, "플랜트기계설치공": 18.64, "인력운반공": 22.30, "특별인부": 42.0, "계": 83.50 } + { "직종 용량(㎥/hr)": "301∼400", "목공": 0.19, "플랜트기계설치공": 3.19, "인력운반공": 13.6, "특별인부": 12.75, "계": 29.73 }, + { "직종 용량(㎥/hr)": "401∼500", "목공": 0.22, "플랜트기계설치공": 3.87, "인력운반공": 16.5, "특별인부": 15.56, "계": 36.15 }, + { "직종 용량(㎥/hr)": "501∼600", "목공": 0.27, "플랜트기계설치공": 4.66, "인력운반공": 19.3, "특별인부": 18.27, "계": 42.5 }, + { "직종 용량(㎥/hr)": "601∼700", "목공": 0.31, "플랜트기계설치공": 6.55, "인력운반공": 20.0, "특별인부": 20.72, "계": 47.58 }, + { "직종 용량(㎥/hr)": "701∼800", "목공": 0.34, "플랜트기계설치공": 8.56, "인력운반공": 20.6, "특별인부": 22.95, "계": 52.45 }, + { "직종 용량(㎥/hr)": "801∼900", "목공": 0.37, "플랜트기계설치공": 10.53, "인력운반공": 20.9, "특별인부": 25.1, "계": 56.9 }, + { "직종 용량(㎥/hr)": "901∼1,000", "목공": 0.39, "플랜트기계설치공": 11.94, "인력운반공": 21.5, "특별인부": 26.72, "계": 60.55 }, + { "직종 용량(㎥/hr)": "1,001∼2,000", "목공": 0.56, "플랜트기계설치공": 18.64, "인력운반공": 22.3, "특별인부": 42.0, "계": 83.5 } ], "주": [ "① 본 품은 조립된 Pump를 설치하는 품이다.", @@ -6823,21 +6829,21 @@ { "직종 무게(ton)": "0.5이하", "목공": 0.03, "플랜트기계설치공": 0.52, "비계공": 0.06, "건설기계운전 (조/대)": 0.19, "특별인부": 2.12, "계": 2.92 }, { "직종 무게(ton)": "0.51∼1.0", "목공": 0.05, "플랜트기계설치공": 0.78, "비계공": 0.08, "건설기계운전 (조/대)": 0.28, "특별인부": 3.16, "계": 4.35 }, { "직종 무게(ton)": "1.01∼2.0", "목공": 0.08, "플랜트기계설치공": 1.04, "비계공": 0.11, "건설기계운전 (조/대)": 0.38, "특별인부": 4.92, "계": 6.53 }, - { "직종 무게(ton)": "2.01∼3.0", "목공": 0.10, "플랜트기계설치공": 1.41, "비계공": 0.15, "건설기계운전 (조/대)": 0.51, "특별인부": 6.08, "계": 8.25 }, + { "직종 무게(ton)": "2.01∼3.0", "목공": 0.1, "플랜트기계설치공": 1.41, "비계공": 0.15, "건설기계운전 (조/대)": 0.51, "특별인부": 6.08, "계": 8.25 }, { "직종 무게(ton)": "3.01∼4.0", "목공": 0.12, "플랜트기계설치공": 1.78, "비계공": 0.19, "건설기계운전 (조/대)": 0.64, "특별인부": 8.33, "계": 11.06 }, - { "직종 무게(ton)": "4.01∼5.0", "목공": 0.13, "플랜트기계설치공": 2.13, "비계공": 0.23, "건설기계운전 (조/대)": 0.78, "특별인부": 9.91, "계": 13.00 }, + { "직종 무게(ton)": "4.01∼5.0", "목공": 0.13, "플랜트기계설치공": 2.13, "비계공": 0.23, "건설기계운전 (조/대)": 0.78, "특별인부": 9.91, "계": 13.0 }, { "직종 무게(ton)": "5.01∼6.0", "목공": 0.15, "플랜트기계설치공": 2.46, "비계공": 0.27, "건설기계운전 (조/대)": 0.89, "특별인부": 11.52, "계": 15.29 }, - { "직종 무게(ton)": "6.01∼7.0", "목공": 0.17, "플랜트기계설치공": 2.76, "비계공": 0.31, "건설기계운전 (조/대)": 1.00, "특별인부": 12.86, "계": 17.10 }, - { "직종 무게(ton)": "7.01∼8.0", "목공": 0.19, "플랜트기계설치공": 3.08, "비계공": 0.60, "건설기계운전 (조/대)": 1.13, "특별인부": 14.15, "계": 19.15 }, + { "직종 무게(ton)": "6.01∼7.0", "목공": 0.17, "플랜트기계설치공": 2.76, "비계공": 0.31, "건설기계운전 (조/대)": 1.0, "특별인부": 12.86, "계": 17.1 }, + { "직종 무게(ton)": "7.01∼8.0", "목공": 0.19, "플랜트기계설치공": 3.08, "비계공": 0.6, "건설기계운전 (조/대)": 1.13, "특별인부": 14.15, "계": 19.15 }, { "직종 무게(ton)": "8.01∼9.0", "목공": 0.21, "플랜트기계설치공": 3.18, "비계공": 1.15, "건설기계운전 (조/대)": 1.24, "특별인부": 15.39, "계": 21.17 }, { "직종 무게(ton)": "9.01∼10.0", "목공": 0.23, "플랜트기계설치공": 3.28, "비계공": 1.65, "건설기계운전 (조/대)": 1.35, "특별인부": 16.65, "계": 23.16 }, { "직종 무게(ton)": "10.1∼15.0", "목공": 0.45, "플랜트기계설치공": 3.45, "비계공": 8.62, "건설기계운전 (조/대)": 2.19, "특별인부": 17.41, "계": 30.12 }, - { "직종 무게(ton)": "15.1∼20.0", "목공": 0.56, "플랜트기계설치공": 4.27, "비계공": 10.70, "건설기계운전 (조/대)": 2.71, "특별인부": 19.21, "계": 37.45 }, - { "직종 무게(ton)": "20.1∼25.0", "목공": 0.65, "플랜트기계설치공": 4.98, "비계공": 12.50, "건설기계운전 (조/대)": 3.15, "특별인부": 22.65, "계": 43.94 }, + { "직종 무게(ton)": "15.1∼20.0", "목공": 0.56, "플랜트기계설치공": 4.27, "비계공": 10.7, "건설기계운전 (조/대)": 2.71, "특별인부": 19.21, "계": 37.45 }, + { "직종 무게(ton)": "20.1∼25.0", "목공": 0.65, "플랜트기계설치공": 4.98, "비계공": 12.5, "건설기계운전 (조/대)": 3.15, "특별인부": 22.65, "계": 43.94 }, { "직종 무게(ton)": "25.1∼30.0", "목공": 0.73, "플랜트기계설치공": 5.62, "비계공": 14.15, "건설기계운전 (조/대)": 3.52, "특별인부": 25.31, "계": 49.33 }, { "직종 무게(ton)": "30.1∼35.0", "목공": 0.82, "플랜트기계설치공": 6.35, "비계공": 15.52, "건설기계운전 (조/대)": 3.95, "특별인부": 28.62, "계": 55.26 }, - { "직종 무게(ton)": "35.1∼40.0", "목공": 0.89, "플랜트기계설치공": 6.95, "비계공": 17.00, "건설기계운전 (조/대)": 4.31, "특별인부": 31.17, "계": 60.32 }, - { "직종 무게(ton)": "40.1∼45.0", "목공": 0.97, "플랜트기계설치공": 7.58, "비계공": 18.50, "건설기계운전 (조/대)": 4.75, "특별인부": 33.95, "계": 65.75 }, + { "직종 무게(ton)": "35.1∼40.0", "목공": 0.89, "플랜트기계설치공": 6.95, "비계공": 17.0, "건설기계운전 (조/대)": 4.31, "특별인부": 31.17, "계": 60.32 }, + { "직종 무게(ton)": "40.1∼45.0", "목공": 0.97, "플랜트기계설치공": 7.58, "비계공": 18.5, "건설기계운전 (조/대)": 4.75, "특별인부": 33.95, "계": 65.75 }, { "직종 무게(ton)": "45.1∼50.0", "목공": 1.06, "플랜트기계설치공": 8.05, "비계공": 19.62, "건설기계운전 (조/대)": 5.03, "특별인부": 36.23, "계": 69.99 } ], "주": [ @@ -7658,7 +7664,13 @@ { "품명": "산소", "규격": "6,000ℓ입", "수량": 0.38, "단위": "병" }, { "품명": "아세틸렌", "규격": "4,500ℓ 입", "수량": 0.33, "단위": "병" }, { "품명": "용접봉", "규격": "4ø×350ℓ", "수량": 3.0, "단위": "㎏" }, - { "품명": "세유", "수량": 3.0, "단위": "ℓ" } + { "품명": "세유", "수량": 3.0, "단위": "ℓ" }, + { + "품명": "기타", + "규격": "10%", + "수량": 10, + "단위": "%" + } ], "주": [] }, @@ -8942,12 +8954,12 @@ "조건": { "작업구분": "고르기", "항목": "고르기", "구분": "고르기" }, "값칸": { "수량": "" }, "줄": [ - { "작업구분": "1. 기술관리(공사기간중)", "항목": "기계기사", "수량": 0.80, "단위": "인/일" }, + { "작업구분": "1. 기술관리(공사기간중)", "항목": "기계기사", "수량": 0.8, "단위": "인/일" }, { "작업구분": "2. 표면손질", "항목": "특별인부", "수량": 0.16, "단위": "인/㎡" }, { "구분": "3. 본체조립설치", "작업구분": "본체 Frame", "항목": "철골공", "수량": 4.98, "단위": "인/ton" }, { "구분": "3. 본체조립설치", "작업구분": "Shell Plate", "항목": "비계공", "수량": 3.27, "단위": "인/ton" }, { "구분": "3. 본체조립설치", "작업구분": "Hand Rail", "항목": "기계설비공", "수량": 0.82, "단위": "인/ton" }, - { "구분": "3. 본체조립설치", "작업구분": "Stair의 조립", "항목": "용접공", "수량": 0.80, "단위": "인/ton" }, + { "구분": "3. 본체조립설치", "작업구분": "Stair의 조립", "항목": "용접공", "수량": 0.8, "단위": "인/ton" }, { "구분": "4. 기계조립설치", "작업구분": "구동기기 Chain,", "항목": "기계설비공", "수량": 5.79, "단위": "인/ton" }, { "구분": "4. 기계조립설치", "작업구분": "Conveyor 및", "항목": "비계공", "수량": 2.29, "단위": "인/ton" }, { "구분": "4. 기계조립설치", "작업구분": "Lapping Device 등의", "항목": "용접공", "수량": 0.76, "단위": "인/ton" }, @@ -8960,7 +8972,7 @@ { "구분": "6. 음극 Plate 조립 설치", "작업구분": "조립 설치, 지상교정 및 조립조양, 가조립", "항목": "비계공", "수량": 0.0315, "단위": "인/㎡" }, { "구분": "6. 음극 Plate 조립 설치", "작업구분": "조립 설치, 지상교정 및 조립조양, 가조립", "항목": "용접공", "수량": 0.0045, "단위": "인/㎡" }, { "구분": "6. 음극 Plate 조립 설치", "작업구분": "조립 설치, 지상교정 및 조립조양, 가조립", "항목": "특별인부", "수량": 0.0794, "단위": "인/㎡" }, - { "작업구분": "검사및교정", "항목": "수량", "수량": "기술관리를 제외한 본 품의 10%", "단위": "인/㎡" } + { "작업구분": "검사및교정", "항목": "수량", "수량": "기술관리를 제외한 본 품의 10%", "단위": "" } ], "주": [ "① 본 품은 본체조립 설치로 Duct flange까지이며 Duct는 별도 계상한다.", @@ -9074,7 +9086,7 @@ { "작업구분": "◦ 원치 설치 및 철거 - 조양을 위한 원치플리・로프 등의 설치와 사용후 철거까지 포함", "항목": "비계공", "수량": 11.00, "단위": "인/대" }, { "작업구분": "◦ 원치 설치 및 철거 - 조양을 위한 원치플리・로프 등의 설치와 사용후 철거까지 포함", "항목": "용접공", "수량": 3.30, "단위": "인/대" }, { "작업구분": "◦ 원치 설치 및 철거 - 조양을 위한 원치플리・로프 등의 설치와 사용후 철거까지 포함", "항목": "특별인부", "수량": 4.95, "단위": "인/대" }, - { "작업구분": "◦ 검사 및 교정 - 외관검사, 교정작업 (비파괴시험은 제외)", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "인/대" } + { "작업구분": "◦ 검사 및 교정 - 외관검사, 교정작업 (비파괴시험은 제외)", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "" } ], "주": [ "① 본 품은 급진기, 소각로모듈, 화격자, 내화물, 재 축출기 등 소각로 설비의 조립・설치를 기준으로 소운반을 포함한다.", @@ -9143,7 +9155,7 @@ { "작업구분": "◦ 원치 설치 및 철거 - 조양을 위한 원치플리・로프 등의 설치와 사용후 철거까지 포함", "항목": "비계공", "수량": 11.00, "단위": "인/대" }, { "작업구분": "◦ 원치 설치 및 철거 - 조양을 위한 원치플리・로프 등의 설치와 사용후 철거까지 포함", "항목": "용접공", "수량": 3.30, "단위": "인/대" }, { "작업구분": "◦ 원치 설치 및 철거 - 조양을 위한 원치플리・로프 등의 설치와 사용후 철거까지 포함", "항목": "특별인부", "수량": 4.95, "단위": "인/대" }, - { "작업구분": "◦ 검사 및 교정 - 외관검사, 교정작업 (비파괴시험은 제외)", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "인/대" } + { "작업구분": "◦ 검사 및 교정 - 외관검사, 교정작업 (비파괴시험은 제외)", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "" } ], "주": [ "① 본 품은 보일러 드럼, Tube Panel, Buckstay 등 폐열보일러의 조립・설치 기준으로 소운반을 포함한다.", @@ -9206,7 +9218,7 @@ { "작업구분": "◦ 본체 설치 - 반응물 배출장치(Lump Crusher) 및 Rotary Valve 설치 포함 ※ 소석회 분무장치 제외", "항목": "특별인부", "수량": 1.53, "단위": "인/ton" }, { "작업구분": "◦ 본체 설치 - 반응물 배출장치(Lump Crusher) 및 Rotary Valve 설치 포함 ※ 소석회 분무장치 제외", "항목": "비계공", "수량": 1.85, "단위": "인/ton" }, { "작업구분": "◦ 본체 설치 - 반응물 배출장치(Lump Crusher) 및 Rotary Valve 설치 포함 ※ 소석회 분무장치 제외", "항목": "건설기계운전조", "수량": 0.48, "단위": "조/ton" }, - { "작업구분": "◦ 검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "조/ton" } + { "작업구분": "◦ 검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "" } ], "주": [ "① 본 품은 반응탑 본체, Rotary Valve 등 반건식 반응탑의 조립・설치기준으로 소운반이 포함되어 있다.", @@ -9270,7 +9282,7 @@ { "작업구분": "◦ Sealing 용접 - 용접용 Support설치 및 운반포함", "항목": "플랜트용접공", "수량": 14.74, "단위": "인/ton" }, { "작업구분": "◦ Sealing 용접 - 용접용 Support설치 및 운반포함", "항목": "플랜트제관공", "수량": 4.99, "단위": "인/ton" }, { "작업구분": "◦ Sealing 용접 - 용접용 Support설치 및 운반포함", "항목": "특별인부", "수량": 1.07, "단위": "인/ton" }, - { "작업구분": "◦ 검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "인/ton" } + { "작업구분": "◦ 검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 전공량의 10%", "단위": "" } ], "주": [ "① 본 품은 촉매를 이용하여 질소산화물을 분해 정화하는 장치로서 탈질설비의 조립・설치와 소운반이 포함되어 있다.", @@ -9324,7 +9336,7 @@ { "작업구분": "◦ 휠터백 및 백케이지 조립・설치 - 지상교정, 조양・기기 설치포함 - Leveling 재교정후 Setting 포함", "항목": "비계공", "수량": 0.06, "단위": "인/휠터수" }, { "작업구분": "◦ 휠터백 및 백케이지 조립・설치 - 지상교정, 조양・기기 설치포함 - Leveling 재교정후 Setting 포함", "항목": "특별인부", "수량": 0.08, "단위": "인/휠터수" }, { "작업구분": "◦ 휠터백 및 백케이지 조립・설치 - 지상교정, 조양・기기 설치포함 - Leveling 재교정후 Setting 포함", "항목": "플랜트용접공", "수량": 0.01, "단위": "인/휠터수" }, - { "작업구분": "◦ 검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 공량의 10%", "단위": "인/휠터수" } + { "작업구분": "◦ 검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 공량의 10%", "단위": "" } ], "주": [ "① 본 품은 여과집진기 휠터백, 펄스유닛 등 여과집진기의 조립・설치 기준으로 소운반이 포함되어 있다.", @@ -9381,7 +9393,7 @@ { "작업구분": "◦혼합기, 이젝터, 로타리밸브 설치", "항목": "비계공", "수량": 0.57, "단위": "인/ton" }, { "작업구분": "◦혼합기, 이젝터, 로타리밸브 설치", "항목": "플랜트용접공", "수량": 0.57, "단위": "인/ton" }, { "작업구분": "◦혼합기, 이젝터, 로타리밸브 설치", "항목": "특별인부", "수량": 1.16, "단위": "인/ton" }, - { "작업구분": "◦검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 공량의 10%", "단위": "인/ton" } + { "작업구분": "◦검사 및 교정 - Gas Leak Test 포함", "항목": "수량", "수량": "기술관리, 포장해체를 제외한 공량의 10%", "단위": "" } ], "주": [ "① 본 품은 활성탄・반응조제 및 소석회 공급설비의 조립・설치기준으로 소운반이 포함되어 있다.", @@ -9823,7 +9835,7 @@ { "공정별": "스레이트 잇기 : Louver side에 스레이트 잇기", "항목": "스레이트공", "수량": 0.05, "단위": "인/㎡" }, { "공정별": "스레이트 잇기 : Louver side에 스레이트 잇기", "항목": "보통인부", "수량": 0.04, "단위": "인/㎡" }, { "공정별": "충전물충전 : 충전물을 규격별 순서로 충전 작업함", "항목": "보통인부", "수량": 0.6, "단위": "인/㎥" }, - { "공정별": "검사 및 교정", "항목": "수량", "수량": "기술관리를 제외한 전 품의 10%", "단위": "인/㎥" } + { "공정별": "검사 및 교정", "항목": "수량", "수량": "기술관리를 제외한 전 품의 10%", "단위": "" } ], "주": [ "① 본 품은 강재공냉식 Cooling tower를 기초 Tank 위에 조립 설치하는 품이다.", @@ -9855,7 +9867,7 @@ "조건": { "공정별": "고르기" }, "값칸": { "기계산업기사": "", "비계공": "", "특별인부": "", "제관공": "", "용접공": "", "기계설비공": "", "측량사": "", "수량": "", "비고": "글" }, "줄": [ - { "공정별": "기술관리", "기계산업기사": 0.500 }, + { "공정별": "기술관리", "기계산업기사": 0.5 }, { "공정별": "소운반조작", "비계공": 0.667, "특별인부": 0.333 }, { "공정별": "표면손질", "특별인부": 3.3 }, { "공정별": "현장가공", "제관공": 0.588, "용접공": 0.588, "특별인부": 0.588 }, @@ -10472,7 +10484,14 @@ { "구분": "Back Ring 사용시 : 25%까지 가산", "값": 25, "단위": "%", "기준": "본 품", "가감": "가산" }, { "구분": "Nozzle 용접시 : 50%까지 가산", "값": 50, "단위": "%", "기준": "본 품", "가감": "가산" }, { "구분": "Sloping Line 용접시 : 100%까지 가산", "값": 100, "단위": "%", "기준": "본 품", "가감": "가산" }, - { "구분": "Mitre 용접시 : 50%까지 가산", "값": 50, "단위": "%", "기준": "본 품", "가감": "가산" } + { "구분": "Mitre 용접시 : 50%까지 가산", "값": 50, "단위": "%", "기준": "본 품", "가감": "가산" }, + { + "구분": "Socket 용접시 : 40% 까지 감", + "값": 40, + "단위": "%", + "기준": "본 품", + "가감": "감" + } ], "주": [], "그룹": "계수" @@ -10518,7 +10537,14 @@ { "구분": "Back Ring 사용시 : 25%까지 가산", "값": 25, "단위": "%", "기준": "본 품", "가감": "가산" }, { "구분": "Nozzle 용접시 : 50%까지 가산", "값": 50, "단위": "%", "기준": "본 품", "가감": "가산" }, { "구분": "Sloping Line 용접시 : 100%까지 가산", "값": 100, "단위": "%", "기준": "본 품", "가감": "가산" }, - { "구분": "Mitre 용접시 : 50%까지 가산", "값": 50, "단위": "%", "기준": "본 품", "가감": "가산" } + { "구분": "Mitre 용접시 : 50%까지 가산", "값": 50, "단위": "%", "기준": "본 품", "가감": "가산" }, + { + "구분": "Socket 용접시 : 40% 까지 감", + "값": 40, + "단위": "%", + "기준": "본 품", + "가감": "감" + } ], "주": [], "그룹": "계수" diff --git a/resources/master_data/소요량_산림품셈_04장_나무베기.json b/resources/master_data/소요량_산림품셈_04장_나무베기.json index 7e59468c6..1e0f9e9c6 100644 --- a/resources/master_data/소요량_산림품셈_04장_나무베기.json +++ b/resources/master_data/소요량_산림품셈_04장_나무베기.json @@ -9,7 +9,7 @@ "이름": "수확베기 임업용 동력기계톱 벌목량", "기준": "㎥/1인/1일", "출처": "산림품셈 4-1-1", - "용도": {"공종": "임업용 동력기계톱", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "임업용 동력기계톱", "대상": ["인력", "작업량 조건"], "로직키": ["GF000286"]}, "조건": { "벌도목 구분": "고르기" }, "값칸": { "벌목량": "㎥", "인력구분": "글" }, "줄": [ @@ -28,9 +28,9 @@ "이름": "수확베기 벌목 할증", "기준": "", "출처": "산림품셈 4-1-1 주①②", - "용도": {"공종": "임업용 동력기계톱", "대상": ["작업량 조건", "할증"], "로직키": []}, + "용도": {"공종": "임업용 동력기계톱", "대상": ["작업량 조건", "할증"], "로직키": ["GF000286"]}, "조건": { "구분": "고르기", "평균경급(cm)": "범위" }, - "범위규칙": "「20cm 미만」 = 위 끝 제외 · 「20~30cm」 = 양 끝 포함", + "범위규칙": "이상·미만 · 마지막 칸 이하 포함 · 「20cm 미만」 = 위 끝 제외 · 「20~30cm」 = 양 끝 포함", "값칸": { "할증률": "%" }, "줄": [ { "구분": "벌도목 평균경급 20cm 미만", "평균경급(cm)": [null, 20], "할증률": 10 }, @@ -71,9 +71,9 @@ "이름": "단목베기 100본당", "기준": "인/100본당", "출처": "산림품셈 4-2-1", - "용도": {"공종": "100본당", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "100본당", "대상": ["인력", "작업량 조건"], "로직키": ["GF000287"]}, "조건": { "구분": "고르기", "제거 대상목 흉고직경(㎝)": "범위" }, - "범위규칙": "「10㎝이하」 = 위 끝 포함 · 「48㎝ 이상」 = 아래 끝 포함 · 12~14㎝ 등은 양 끝 포함(표에 없는 11 · 15 등의 값은 원문에 없음) · 작업보조 줄은 흉고직경 무관(조건 칸 없음)", + "범위규칙": "이상·이하 · 「10㎝이하」 = 위 끝 포함 · 「48㎝ 이상」 = 아래 끝 포함 · 12~14㎝ 등은 양 끝 포함(표에 없는 11 · 15 등의 값은 원문에 없음) · 작업보조 줄은 흉고직경 무관(조건 칸 없음)", "값칸": { "벌목": "인", "가지제거": "인", "토막내기": "인", "작업보조": "인", "인력구분": "글" }, "줄": [ { "구분": "벌목·가지제거·토막내기", "제거 대상목 흉고직경(㎝)": [null, 10], "벌목": 0.2, "가지제거": 0.1, "토막내기": 0.1, "인력구분": "벌목부" }, @@ -106,7 +106,7 @@ "이름": "단목베기 100본당 주 계수", "기준": "", "출처": "산림품셈 4-2-1 주④⑤⑥", - "용도": {"공종": "100본당", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "100본당", "대상": ["작업량 조건"], "로직키": ["GF000287"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ @@ -122,9 +122,9 @@ "이름": "단목베기 1,000㎡당", "기준": "인/1,000㎡당", "출처": "산림품셈 4-2-2", - "용도": {"공종": "1,000㎡당", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "1,000㎡당", "대상": ["인력", "작업량 조건"], "로직키": ["GF000288"]}, "조건": { "구분": "고르기", "규격": "고르기", "나무높이(m)": "범위" }, - "범위규칙": "「5m 미만」 = 위 끝 제외 · 「5m이상~8m미만」 = 아래 끝 포함 · 위 끝 제외 · 「8m 이상」 = 아래 끝 포함", + "범위규칙": "이상·미만 · 「5m 미만」 = 위 끝 제외 · 「5m이상~8m미만」 = 아래 끝 포함 · 위 끝 제외 · 「8m 이상」 = 아래 끝 포함", "값칸": { "단위": "글", "소요": "단위 따름" }, "줄": [ { "구분": "벌목부", "나무높이(m)": [null, 5], "단위": "인", "소요": 2.14 }, @@ -150,7 +150,7 @@ "이름": "단목베기 1,000㎡당 집재거리 가산", "기준": "", "출처": "산림품셈 4-2-2 비고", - "용도": {"공종": "1,000㎡당", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "1,000㎡당", "대상": ["작업량 조건"], "로직키": ["GF000288"]}, "조건": { "구분": "고르기" }, "값칸": { "집재거리 기준": "m", "가산단위": "m", "가산할증": "%", "원문": "글" }, "줄": [ @@ -164,7 +164,7 @@ "이름": "단목베기 1,000㎡당 경장비 기계경비", "기준": "", "출처": "산림품셈 4-2-2 주⑤", - "용도": {"공종": "1,000㎡당", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "1,000㎡당", "대상": ["작업량 조건"], "로직키": ["GF000288"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ @@ -178,9 +178,9 @@ "이름": "위험목 베기", "기준": "", "출처": "산림품셈 4-3", - "용도": {"공종": "위험목 베기", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "위험목 베기", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000289"]}, "조건": { "가슴높이지름(cm)": "범위" }, - "범위규칙": "「16~20cm」 등 양 끝 포함 · 「52cm이상」 = 아래 끝 포함", + "범위규칙": "이상·이하 · 「16~20cm」 등 양 끝 포함 · 「52cm이상」 = 아래 끝 포함", "값칸": { "특별인부": "인/본당", "벌목부": "인/본당", "보통인부": "인/본당", "굴삭기 우드그랩": "hr", "크레인": "hr" }, "줄": [ { "가슴높이지름(cm)": [16, 20], "특별인부": 0.14, "벌목부": 0.28, "보통인부": 0.28, "굴삭기 우드그랩": 0.28, "크레인": 0.28 }, @@ -205,7 +205,7 @@ "이름": "위험목 베기 주 계수", "기준": "", "출처": "산림품셈 4-3 주②③④⑤⑥", - "용도": {"공종": "위험목 베기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "위험목 베기", "대상": ["작업량 조건"], "로직키": ["GF000289"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ diff --git a/resources/master_data/소요량_산림품셈_05장_식재_및_녹화.json b/resources/master_data/소요량_산림품셈_05장_식재_및_녹화.json index 6600bb8bd..dc8250b4f 100644 --- a/resources/master_data/소요량_산림품셈_05장_식재_및_녹화.json +++ b/resources/master_data/소요량_산림품셈_05장_식재_및_녹화.json @@ -9,9 +9,9 @@ "이름": "굴취작업 관목굴취", "기준": "인/10본당", "출처": "산림품셈 5-1-1", - "용도": {"공종": "관목굴취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "관목굴취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000290"]}, "조건": { "수고(m)": "범위" }, - "범위규칙": "「0.3m 미만」 = 위 끝 제외 · 나머지 양 끝 포함(원문 「0.3∼0.7m 이하」 · 「0.8∼1.1m 이하」 · 「1.2∼1.5m 이하」)", + "범위규칙": "이상·이하 · 「0.3m 미만」 = 위 끝 제외 · 나머지 양 끝 포함(원문 「0.3∼0.7m 이하」 · 「0.8∼1.1m 이하」 · 「1.2∼1.5m 이하」)", "값칸": { "특별인부": "인", "보통인부": "인" }, "줄": [ { "수고(m)": [null, 0.3], "특별인부": 0.084, "보통인부": 0.012 }, @@ -48,9 +48,9 @@ "이름": "굴취작업 교목굴취(나무높이)", "기준": "인/본당", "출처": "산림품셈 5-1-2", - "용도": {"공종": "교목굴취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "교목굴취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000293"]}, "조건": { "나무높이(m)": "범위" }, - "범위규칙": "「1.0 이하」 = 위 끝 포함 · 나머지 양 끝 포함", + "범위규칙": "이상·이하 · 「1.0 이하」 = 위 끝 포함 · 나머지 양 끝 포함", "값칸": { "특별인부": "인", "보통인부": "인" }, "줄": [ { "나무높이(m)": [null, 1.0], "특별인부": 0.072, "보통인부": 0.012 }, @@ -78,7 +78,7 @@ "이름": "교목굴취(나무높이) 분 관련 수", "기준": "", "출처": "산림품셈 5-1-2", - "용도": {"공종": "교목굴취", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "교목굴취", "대상": ["작업량 조건"], "로직키": ["GF000293"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ @@ -93,9 +93,9 @@ "이름": "굴취작업 교목굴취(근원직경)", "기준": "인/본당", "출처": "산림품셈 5-1-3", - "용도": {"공종": "교목굴취", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "교목굴취", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000294"]}, "조건": { "근원직경(㎝)": "범위", "흉고직경(㎝)": "범위" }, - "범위규칙": "「4이하」 = 위 끝 포함 · 「5(4이하)」의 근원직경 5 = [5, 5] · 나머지 양 끝 포함 · 괄호 안 흉고직경이 없는 줄은 흉고직경 칸 없음", + "범위규칙": "이상·이하 · 「4이하」 = 위 끝 포함 · 「5(4이하)」의 근원직경 5 = [5, 5] · 나머지 양 끝 포함 · 괄호 안 흉고직경이 없는 줄은 흉고직경 칸 없음", "값칸": { "특별인부": "인", "보통인부": "인", "굴착기": "시간", "크레인": "시간" }, "줄": [ { "근원직경(㎝)": [null, 4], "특별인부": 0.096, "보통인부": 0.024 }, @@ -132,9 +132,9 @@ "이름": "교목굴취(근원직경) 장비 규격", "기준": "", "출처": "산림품셈 5-1-3 주⑧", - "용도": {"공종": "교목굴취", "대상": ["기계", "작업량 조건"], "로직키": []}, + "용도": {"공종": "교목굴취", "대상": ["기계", "작업량 조건"], "로직키": ["GF000294"]}, "조건": { "근원직경(cm)": "범위" }, - "범위규칙": "양 끝 포함", + "범위규칙": "이상·이하 · 양 끝 포함", "값칸": { "굴착기": "㎥", "크레인": "글" }, "줄": [ { "근원직경(cm)": [10, 19], "굴착기": 0.4 }, @@ -150,7 +150,7 @@ "이름": "교목굴취(근원직경) 분 관련 수", "기준": "", "출처": "산림품셈 5-1-3", - "용도": {"공종": "교목굴취", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "교목굴취", "대상": ["작업량 조건"], "로직키": ["GF000294"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ @@ -223,7 +223,7 @@ "이름": "뿌리돌림", "기준": "인/본당", "출처": "산림품셈 5-2", - "용도": {"공종": "뿌리돌림", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "뿌리돌림", "대상": ["인력", "작업량 조건"], "로직키": ["GF000295"]}, "조건": { "근원직경(㎝)": "수" }, "값칸": { "특별인부": "인", "보통인부": "인" }, "줄": [ @@ -358,9 +358,9 @@ "이름": "식재작업 관목식재(단식)", "기준": "인/10본당", "출처": "산림품셈 5-3-2", - "용도": {"공종": "관목식재", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "관목식재", "대상": ["인력", "작업량 조건"], "로직키": ["GF000291"]}, "조건": { "수고(m)": "범위" }, - "범위규칙": "「0.3m 미만」 = 위 끝 제외 · 나머지 양 끝 포함(원문 「0.3∼0.7m 이하」 · 「0.8∼1.1m 이하」 · 「1.2∼1.5m 이하」)", + "범위규칙": "이상·이하 · 「0.3m 미만」 = 위 끝 제외 · 나머지 양 끝 포함(원문 「0.3∼0.7m 이하」 · 「0.8∼1.1m 이하」 · 「1.2∼1.5m 이하」)", "값칸": { "특별인부": "인", "보통인부": "인" }, "줄": [ { "수고(m)": [null, 0.3], "특별인부": 0.19, "보통인부": 0.06 }, @@ -397,9 +397,9 @@ "이름": "식재작업 관목식재(군식)", "기준": "인/10본당", "출처": "산림품셈 5-3-3", - "용도": {"공종": "관목식재", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "관목식재", "대상": ["인력", "작업량 조건"], "로직키": ["GF000292"]}, "조건": { "수고(m)": "범위" }, - "범위규칙": "「0.3m 미만」 = 위 끝 제외 · 나머지 양 끝 포함(원문 「0.3∼0.7m 이하」 · 「0.8∼1.1m 이하」 · 「1.2∼1.5m 이하」)", + "범위규칙": "이상·이하 · 「0.3m 미만」 = 위 끝 제외 · 나머지 양 끝 포함(원문 「0.3∼0.7m 이하」 · 「0.8∼1.1m 이하」 · 「1.2∼1.5m 이하」)", "값칸": { "특별인부": "인", "보통인부": "인" }, "줄": [ { "수고(m)": [null, 0.3], "특별인부": 0.07, "보통인부": 0.02 }, @@ -437,9 +437,9 @@ "이름": "식재작업 교목식재(나무높이)", "기준": "인/본당", "출처": "산림품셈 5-3-4", - "용도": {"공종": "교목식재", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "교목식재", "대상": ["작업량 조건"], "로직키": ["GF000296"]}, "조건": { "나무높이(m)": "범위" }, - "범위규칙": "「1.0 이하」 = 위 끝 포함 · 나머지 양 끝 포함", + "범위규칙": "이상·이하 · 「1.0 이하」 = 위 끝 포함 · 나머지 양 끝 포함", "값칸": { "인력시공 특별인부": "인", "인력시공 보통인부": "인", "기계시공 특별인부": "인", "기계시공 보통인부": "인", "기계시공 굴착기": "시간" }, "줄": [ { "나무높이(m)": [null, 1.0], "인력시공 특별인부": 0.07, "인력시공 보통인부": 0.06 }, @@ -467,7 +467,7 @@ "이름": "교목식재(나무높이) 지주목 미설치 감 · 굴착기 규격", "기준": "", "출처": "산림품셈 5-3-4", - "용도": {"공종": "교목식재", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "교목식재", "대상": ["작업량 조건"], "로직키": ["GF000296"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ @@ -483,9 +483,9 @@ "이름": "식재작업 교목식재(흉고직경)", "기준": "인/본당", "출처": "산림품셈 5-3-5", - "용도": {"공종": "교목식재", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "교목식재", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000297"]}, "조건": { "흉고직경(㎝)": "범위", "근원직경(㎝)": "범위" }, - "범위규칙": "「4(5)이하」 = 위 끝 포함 · 「5(6)」 = [5, 5] · 나머지 양 끝 포함", + "범위규칙": "이상·이하 · 「4(5)이하」 = 위 끝 포함 · 「5(6)」 = [5, 5] · 나머지 양 끝 포함", "값칸": { "특별인부": "인", "보통인부": "인", "굴착기": "시간", "크레인": "시간" }, "줄": [ { "흉고직경(㎝)": [null, 4], "근원직경(㎝)": [null, 5], "특별인부": 0.1, "보통인부": 0.06 }, @@ -520,9 +520,9 @@ "이름": "교목식재(흉고직경) 장비 규격", "기준": "", "출처": "산림품셈 5-3-5 주⑧", - "용도": {"공종": "교목식재", "대상": ["기계", "작업량 조건"], "로직키": []}, + "용도": {"공종": "교목식재", "대상": ["기계", "작업량 조건"], "로직키": ["GF000297"]}, "조건": { "흉고직경(cm)": "범위" }, - "범위규칙": "양 끝 포함", + "범위규칙": "이상·이하 · 양 끝 포함", "값칸": { "굴착기": "㎥", "크레인": "글" }, "줄": [ { "흉고직경(cm)": [8, 17], "굴착기": 0.4 }, @@ -538,7 +538,7 @@ "이름": "교목식재(흉고직경) 지주목 미설치 감 · 흉고 높이", "기준": "", "출처": "산림품셈 5-3-5", - "용도": {"공종": "교목식재", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "교목식재", "대상": ["작업량 조건"], "로직키": ["GF000297"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ @@ -1006,7 +1006,7 @@ "이름": "선떼붙이기공 단끊기", "기준": "인/100m당", "출처": "산림품셈 5-16-1", - "용도": {"공종": "단끊기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "단끊기", "대상": ["작업량 조건"], "로직키": ["GF000298"]}, "조건": { "공정별": "고르기" }, "값칸": { "보통토사": "인", "경질ㆍ고사점토 및 자갈섞인 점토": "인", "호박돌 섞인 토사": "인" }, "줄": [ @@ -1030,7 +1030,7 @@ "이름": "단끊기 단폭 · 기준 경사 · 절취량 · 작업반장", "기준": "", "출처": "산림품셈 5-16-1", - "용도": {"공종": "단끊기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "단끊기", "대상": ["작업량 조건"], "로직키": ["GF000298"]}, "조건": { "구분": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글" }, "줄": [ @@ -1203,7 +1203,7 @@ "이름": "표토 절취 및 정지 표토절취 및 모으기", "기준": "㎡당", "출처": "산림품셈 5-19-1", - "용도": {"공종": "표토절취 및 모으기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "표토절취 및 모으기", "대상": ["인력", "작업량 조건"], "로직키": ["GF000299"]}, "조건": { "구분": "고르기", "직종": "고르기", "취급심도(㎝)": "수" }, "값칸": { "수량": "인" }, "줄": [ @@ -1224,7 +1224,7 @@ "이름": "표토 절취 및 정지 표토펴기 및 고르기", "기준": "인", "출처": "산림품셈 5-19-2", - "용도": {"공종": "표토펴기 및 고르기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "표토펴기 및 고르기", "대상": ["인력", "작업량 조건"], "로직키": ["GF000300"]}, "조건": { "구분": "고르기", "직종": "고르기", "표토두께(㎝)": "수" }, "값칸": { "수량": "인" }, "줄": [ @@ -1639,7 +1639,7 @@ "이름": "흙갈이 막갈이", "기준": "인/992㎡당", "출처": "산림품셈 5-26-1", - "용도": {"공종": "막갈이", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "막갈이", "대상": ["작업량 조건"], "로직키": ["GF000301"]}, "조건": { "토성": "고르기", "막갈이깊이(cm)": "수" }, "값칸": { "수량": "인" }, "줄": [ @@ -1669,7 +1669,7 @@ "이름": "흙갈이 흙부수기", "기준": "인/992㎡당", "출처": "산림품셈 5-26-2", - "용도": {"공종": "흙부수기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "흙부수기", "대상": ["작업량 조건"], "로직키": ["GF000302"]}, "조건": { "토성": "고르기", "막갈이깊이(cm)": "수" }, "값칸": { "수량": "인" }, "줄": [ @@ -1753,9 +1753,9 @@ "이름": "비탈덮기 방초매트 및 야자섬유매트 포장", "기준": "일당", "출처": "산림품셈 5-28-2", - "용도": {"공종": "방초매트 및 야자섬유매트 포장", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "방초매트 및 야자섬유매트 포장", "대상": ["인력", "작업량 조건"], "로직키": ["GF000303"]}, "조건": { "구분": "고르기", "폭(m)": "범위" }, - "범위규칙": "원문 머리 「폭 1.5m 이하」 · 「폭 2.0m 이하」 — 「폭 1.5m 이하」 = 위 끝 포함 · 「폭 2.0m 이하」 = 1.5m 초과 2.0m 이하 · 보통인부 줄은 폭 무관", + "범위규칙": "이하 · 원문 머리 「폭 1.5m 이하」 · 「폭 2.0m 이하」 — 「폭 1.5m 이하」 = 위 끝 포함 · 「폭 2.0m 이하」 = 1.5m 초과 2.0m 이하 · 보통인부 줄은 폭 무관", "값칸": { "단위": "글", "수량": "수", "시공량(㎡)": "㎡" }, "줄": [ { "구분": "조경공", "폭(m)": [null, 1.5], "단위": "인", "수량": 2, "시공량(㎡)": 90 }, diff --git a/resources/master_data/소요량_산림품셈_06장_생육보조.json b/resources/master_data/소요량_산림품셈_06장_생육보조.json index 55f1cadfc..38f53e517 100644 --- a/resources/master_data/소요량_산림품셈_06장_생육보조.json +++ b/resources/master_data/소요량_산림품셈_06장_생육보조.json @@ -166,9 +166,9 @@ "이름": "소금처리", "기준": "", "출처": "산림품셈 6-4-3", - "용도": {"공종": "소금처리", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "소금처리", "대상": ["인력", "작업량 조건"], "로직키": ["GF000304"]}, "조건": { "구분": "고르기", "주두부직경": "범위" }, - "범위규칙": "㎝미만·㎝이상 표기대로 · 「덩굴 제거지점 표시」 행은 직경 조건 없음", + "범위규칙": "이상·미만 · ㎝미만·㎝이상 표기대로 · 「덩굴 제거지점 표시」 행은 직경 조건 없음", "값칸": { "소요인력": "인/100본", "인력구분": "글" }, "줄": [ { "구분": "소금 처리", "주두부직경": [null, 2], "소요인력": 0.20, "인력구분": "보통인부" }, @@ -189,9 +189,9 @@ "이름": "뿌리제거", "기준": "", "출처": "산림품셈 6-4-4", - "용도": {"공종": "뿌리제거", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "뿌리제거", "대상": ["인력", "작업량 조건"], "로직키": ["GF000305"]}, "조건": { "구분": "고르기", "주두부직경": "범위" }, - "범위규칙": "표의 표기대로 · 1㎝ 미만 / 1~4㎝ / 4㎝ 초과 · 「덩굴 제거지점 표시」 행은 직경 조건 없음", + "범위규칙": "이상·미만 · 표의 표기대로 · 1㎝ 미만 / 1~4㎝ / 4㎝ 초과 · 「덩굴 제거지점 표시」 행은 직경 조건 없음", "값칸": { "소요인력": "인/100본", "인력구분": "글" }, "줄": [ { "구분": "뿌리 고살", "주두부직경": [null, 1], "소요인력": 0.40, "인력구분": "보통인부" }, @@ -217,7 +217,7 @@ "이름": "덩굴 피복도와 덩굴본수 환산표", "기준": "", "출처": "산림품셈 6-4-4", - "용도": {"공종": "뿌리제거", "대상": ["작업량 조건", "환산"], "로직키": []}, + "용도": {"공종": "뿌리제거", "대상": ["작업량 조건", "환산"], "로직키": ["GF000305"]}, "조건": { "덩굴피복도": "범위" }, "범위규칙": "표의 표기대로 · 80%이상 / 60∼80% / 40∼60% / 20∼40% / 20%이하 · 단위 %", "값칸": { "할인할증율": "", "환산계수": "", "덩굴본수": "본/ha" }, @@ -300,9 +300,9 @@ "이름": "교목 시비", "기준": "인/10주당", "출처": "산림품셈 6-7-1", - "용도": {"공종": "교목 시비", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "교목 시비", "대상": ["인력", "작업량 조건"], "로직키": ["GF000306"]}, "조건": { "인력구분": "고르기", "근원직경": "범위" }, - "범위규칙": "㎝미만·㎝이상 표기대로", + "범위규칙": "이상·미만 · ㎝미만·㎝이상 표기대로", "값칸": { "소요인력": "인/10주" }, "줄": [ { "인력구분": "특별인부", "근원직경": [null, 11], "소요인력": 0.29 }, diff --git a/resources/master_data/소요량_산림품셈_07장_집재_및_운재.json b/resources/master_data/소요량_산림품셈_07장_집재_및_운재.json index 3db546e51..88af5ae13 100644 --- a/resources/master_data/소요량_산림품셈_07장_집재_및_운재.json +++ b/resources/master_data/소요량_산림품셈_07장_집재_및_운재.json @@ -200,9 +200,9 @@ "이름": "수라집재", "기준": "", "출처": "산림품셈 7-2", - "용도": {"공종": "수라집재", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "수라집재", "대상": ["인력", "작업량 조건"], "로직키": ["GF000307"]}, "조건": { "집재거리": "범위", "ha당집재재적": "범위" }, - "범위규칙": "이하·미만은 위 끝 · 이상·초과는 아래 끝 · 두 수는 양 끝 포함 · 칸마다 원문 칸에 적힘", + "범위규칙": "이상·이하 · 이하·미만은 위 끝 · 이상·초과는 아래 끝 · 두 수는 양 끝 포함 · 칸마다 원문 칸에 적힘", "값칸": { "수량": "㎥", "소요인력": "글", "ha당집재재적원문": "글" }, "줄": [ { "집재거리": [0, 100], "ha당집재재적": [null, 20], "ha당집재재적원문": "20이하㎥", "수량": 1.94, "소요인력": "특별인부" }, @@ -395,9 +395,9 @@ "이름": "트랙터부착형 집재(지면끌기) 숲가꾸기·병해충방제", "기준": "1대 1일당", "출처": "산림품셈 7-5-2", - "용도": {"공종": "숲가꾸기, 병해충방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "숲가꾸기, 병해충방제", "대상": ["작업량 조건"], "로직키": ["GF000308"]}, "조건": { "집재거리": "범위", "본당평균재적": "범위" }, - "범위규칙": "두 수는 양 끝 포함 · 이상 · 칸마다 원문 칸에 적힘", + "범위규칙": "이상·이하 · 두 수는 양 끝 포함 · 이상 · 칸마다 원문 칸에 적힘", "값칸": { "수집량": "㎥", "인력구분": "글", "본당평균재적원문": "글" }, "줄": [ { "집재거리": [0, 40], "본당평균재적": [0.1, 0.2], "본당평균재적원문": "0.1∼0.2㎥", "수집량": 20.07, "인력구분": "3인 1조 (건설기계운전기사 1명, 특별인부 1명, 보통인부 1명)" }, @@ -507,9 +507,9 @@ "이름": "HAM200 집재 숲가꾸기·병해충방제", "기준": "1대 1일당", "출처": "산림품셈 7-7-2", - "용도": {"공종": "숲가꾸기, 병해충방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "숲가꾸기, 병해충방제", "대상": ["작업량 조건"], "로직키": ["GF000309"]}, "조건": { "집재재적": "범위", "집재거리": "범위" }, - "범위규칙": "두 수는 양 끝 포함 · 이하만 적힌 칸은 위 끝만", + "범위규칙": "이상·이하 · 두 수는 양 끝 포함 · 이하만 적힌 칸은 위 끝만", "값칸": { "수집량": "㎥", "인력구분": "글" }, "줄": [ { "집재재적": [0, 20], "집재거리": [null, 100], "수집량": 11.55, "인력구분": "3인 1조 (건설기계운전기사 1명, 특별인부 1명, 보통인부 1명)" }, @@ -544,9 +544,9 @@ "이름": "타워야더(RME 300T) 가선설치", "기준": "가선 1회당", "출처": "산림품셈 7-8-1", - "용도": {"공종": "가선설치", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "가선설치", "대상": ["작업량 조건"], "로직키": ["GF000310"]}, "조건": { "집재방식": "고르기", "작업로길이": "범위" }, - "범위규칙": "이하·초과 · 칸마다 원문 칸에 적힘", + "범위규칙": "이하 · 이하·초과 · 칸마다 원문 칸에 적힘", "값칸": { "소요량": "조", "인력구분": "글", "작업로길이원문": "글" }, "줄": [ { "집재방식": "상향집재", "작업로길이": [null, 120], "작업로길이원문": "120m이하", "소요량": 0.6, "인력구분": "3인 1조 (특별인부 2명 보통인부 1명)" }, @@ -571,9 +571,9 @@ "이름": "타워야더(RME 300T) 가선해체", "기준": "가선 1회당", "출처": "산림품셈 7-8-2", - "용도": {"공종": "가선해체", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "가선해체", "대상": ["작업량 조건"], "로직키": ["GF000311"]}, "조건": { "집재방식": "고르기", "작업로길이": "범위" }, - "범위규칙": "이하·초과 · 칸마다 원문 칸에 적힘", + "범위규칙": "이하 · 이하·초과 · 칸마다 원문 칸에 적힘", "값칸": { "소요량": "조", "인력구분": "글", "작업로길이원문": "글" }, "줄": [ { "집재방식": "상향집재", "작업로길이": [null, 120], "작업로길이원문": "120m이하", "소요량": 0.3, "인력구분": "3인 1조 (특별인부 2명 보통인부 1명)" }, @@ -656,9 +656,9 @@ "이름": "부착형 타워(K-301, HAM300) 집재 수확", "기준": "1대 1일당", "출처": "산림품셈 7-9-1", - "용도": {"공종": "수확", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "수확", "대상": ["작업량 조건"], "로직키": ["GF000312"]}, "조건": { "집재재적": "범위", "집재거리": "범위" }, - "범위규칙": "양 끝 포함 · 이하만 적힌 칸은 위 끝만", + "범위규칙": "이상·이하 · 양 끝 포함 · 이하만 적힌 칸은 위 끝만", "값칸": { "수집량": "㎥", "인력구분": "글" }, "줄": [ { "집재재적": [0, 20], "집재거리": [null, 100], "수집량": 18.76, "인력구분": "4인1조 (건설기계운전기사 1명 특별인부 2명 보통인부 1명)" }, @@ -693,9 +693,9 @@ "이름": "부착형 타워 집재 숲가꾸기·소나무재선충병방제", "기준": "1대 1일당", "출처": "산림품셈 7-9-2", - "용도": {"공종": "숲가꾸기, 소나무재선충병방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "숲가꾸기, 소나무재선충병방제", "대상": ["작업량 조건"], "로직키": ["GF000313"]}, "조건": { "집재재적": "범위", "집재거리": "범위" }, - "범위규칙": "양 끝 포함 · 이하만 적힌 칸은 위 끝만", + "범위규칙": "이상·이하 · 양 끝 포함 · 이하만 적힌 칸은 위 끝만", "값칸": { "수집량": "㎥", "인력구분": "글" }, "줄": [ { "집재재적": [0, 20], "집재거리": [null, 100], "수집량": 17.14, "인력구분": "4인1조 (건설기계운전기사 1명 특별인부 2명 보통인부 1명)" }, @@ -733,9 +733,9 @@ "이름": "소나무재선충병 방제 산물 수집량 가산 비율", "기준": "", "출처": "산림품셈 7-9-2 주④", - "용도": {"공종": "숲가꾸기, 소나무재선충병방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "숲가꾸기, 소나무재선충병방제", "대상": ["작업량 조건"], "로직키": ["GF000313"]}, "조건": { "노선별집재재적": "범위", "집재거리": "범위" }, - "범위규칙": "양 끝 포함 · 이하만 적힌 칸은 위 끝만", + "범위규칙": "이상·이하 · 양 끝 포함 · 이하만 적힌 칸은 위 끝만", "값칸": { "가산율": "%" }, "줄": [ { "노선별집재재적": [0, 20], "집재거리": [null, 100], "가산율": 17 }, @@ -766,9 +766,9 @@ "이름": "굴착기 우드그랩 산지집재-병해충방제", "기준": "", "출처": "산림품셈 7-10", - "용도": {"공종": "굴착기 우드그랩 산지집재-병해충방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "굴착기 우드그랩 산지집재-병해충방제", "대상": ["작업량 조건"], "로직키": ["GF000314"]}, "조건": { "구분": "고르기", "ha당평균작업량": "범위" }, - "범위규칙": "이하·미만은 위 끝 · 이상·초과는 아래 끝 · 두 수는 양 끝 포함 · 칸마다 원문 칸에 적힘", + "범위규칙": "이상·이하 · 이하·미만은 위 끝 · 이상·초과는 아래 끝 · 두 수는 양 끝 포함 · 칸마다 원문 칸에 적힘", "값칸": { "작업량": "㎥", "적용인부": "글", "ha당평균작업량원문": "글" }, "줄": [ { "구분": "작업량", "ha당평균작업량": [null, 20], "ha당평균작업량원문": "20㎥ 미만", "작업량": 27.49, "적용인부": "건설기계운전기사 1명 보통인부 1인" }, @@ -871,9 +871,9 @@ "이름": "동력상하차기(우드그래플) 집적", "기준": "1대 1일당", "출처": "산림품셈 7-12", - "용도": {"공종": "동력상하차기(우드그래플) 집적", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "동력상하차기(우드그래플) 집적", "대상": ["작업량 조건"], "로직키": ["GF000315"]}, "조건": { "원목길이": "수", "원목직경": "범위" }, - "범위규칙": "이하·초과 · 두 수는 양 끝 포함 · 칸마다 원문 칸에 적힘 · 원목길이 m", + "범위규칙": "이상·이하 · 이하·초과 · 두 수는 양 끝 포함 · 칸마다 원문 칸에 적힘 · 원목길이 m", "값칸": { "수량": "㎥", "소요인력": "글", "원목직경원문": "글" }, "줄": [ { "원목길이": 1.8, "원목직경": [null, 9], "원목직경원문": "9㎝ 이하", "수량": 25.39, "소요인력": "1인 1조 (건설기계 운전기사 1명)" }, @@ -916,7 +916,7 @@ "이름": "검척", "기준": "100㎥당", "출처": "산림품셈 7-13", - "용도": {"공종": "검척", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "검척", "대상": ["작업량 조건"], "로직키": ["GF000316"]}, "조건": { "구분": "고르기" }, "값칸": { "소요인력": "인", "인력구분": "글" }, "줄": [ diff --git a/resources/master_data/소요량_산림품셈_08장_방제.json b/resources/master_data/소요량_산림품셈_08장_방제.json index f6c2491c0..e789fb361 100644 --- a/resources/master_data/소요량_산림품셈_08장_방제.json +++ b/resources/master_data/소요량_산림품셈_08장_방제.json @@ -9,9 +9,9 @@ "이름": "나무주사 약제주입기", "기준": "ha당", "출처": "산림품셈 8-1-1", - "용도": {"공종": "약제주입기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "약제주입기", "대상": ["인력", "작업량 조건"], "로직키": ["GF000317"]}, "조건": { "천공수": "범위" }, - "범위규칙": "이하·초과 · 칸마다 원문 칸에 적힘", + "범위규칙": "이하 · 이하·초과 · 칸마다 원문 칸에 적힘", "값칸": { "특별인부": "인", "보통인부": "인", "천공수원문": "글" }, "줄": [ { "천공수": [null, 600], "천공수원문": "600개 이하", "특별인부": 0.62, "보통인부": 1.86 }, @@ -39,9 +39,9 @@ "이름": "나무주사 약제주입병", "기준": "", "출처": "산림품셈 8-1-2", - "용도": {"공종": "약제주입병", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "약제주입병", "대상": ["인력", "작업량 조건"], "로직키": ["GF000318"]}, "조건": { "천공수": "범위" }, - "범위규칙": "이하·초과 · 칸마다 원문 칸에 적힘", + "범위규칙": "이하 · 이하·초과 · 칸마다 원문 칸에 적힘", "값칸": { "특별인부": "인", "보통인부": "인", "천공수원문": "글" }, "줄": [ { "천공수": [null, 300], "천공수원문": "300개 이하", "특별인부": 0.31, "보통인부": 0.93 }, @@ -764,9 +764,9 @@ "이름": "끈끈이 롤 트랩", "기준": "100본/ha당", "출처": "산림품셈 8-4", - "용도": {"공종": "끈끈이 롤 트랩", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "끈끈이 롤 트랩", "대상": ["인력", "작업량 조건"], "로직키": ["GF000319"]}, "조건": { "구분": "고르기", "롤트랩사용량": "범위" }, - "범위규칙": "미만·이상 · 칸마다 원문 칸에 적힘", + "범위규칙": "이상·미만 · 미만·이상 · 칸마다 원문 칸에 적힘", "값칸": { "작업량": "줄 따름", "롤트랩사용량원문": "글", "임업용테이프": "m/본", "적용인부": "글" }, "줄": [ { "구분": "롤트랩 설치", "롤트랩사용량": [null, 8], "롤트랩사용량원문": "8롤 미만", "작업량": 2.5, "단위": "ha", "적용인부": "보통인부", "임업용테이프": 4 }, @@ -890,7 +890,7 @@ "이름": "드론방제 무인 헬리콥터 소요인력", "기준": "", "출처": "산림품셈 8-6-2", - "용도": {"공종": "드론방제", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "드론방제", "대상": ["인력", "작업량 조건"], "로직키": ["GF000320"]}, "조건": { "구분": "고르기", "항목": "고르기" }, "값칸": { "드론조종자 (건설기계 조종원)": "인", "부조종자 (건설기계 조종원)": "인", "특별인부 (신호수)": "인", "보통인부": "인" }, "줄": [ @@ -916,7 +916,7 @@ "이름": "드론방제 무인 멀티콥터 소요인력", "기준": "", "출처": "산림품셈 8-6-2", - "용도": {"공종": "드론방제", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "드론방제", "대상": ["인력", "작업량 조건"], "로직키": ["GF000320"]}, "조건": { "구분": "고르기", "항목": "고르기" }, "값칸": { "드론조종자 (건설기계 조종원)": "인", "부조종자 (건설기계 조종원)": "인", "특별인부 (신호수)": "인", "보통인부": "인" }, "줄": [ @@ -940,7 +940,7 @@ "이름": "지상방제 지상 약제살포", "기준": "", "출처": "산림품셈 8-6-3", - "용도": {"공종": "지상방제", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "지상방제", "대상": ["인력", "작업량 조건"], "로직키": ["GF000321"]}, "조건": { "구분": "고르기", "항목": "고르기" }, "값칸": { "특별인부": "인", "보통인부": "인" }, "줄": [ @@ -958,7 +958,7 @@ "이름": "지상살포 희석배수별 약제소요량", "기준": "", "출처": "산림품셈 8-6-3", - "용도": {"공종": "지상방제", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "지상방제", "대상": ["작업량 조건"], "로직키": ["GF000321"]}, "조건": { "희석배수": "수", "물의양": "수" }, "값칸": { "약제소요량": "㎖", "물의양원문": "글" }, "줄": [ @@ -1130,7 +1130,7 @@ "이름": "그물망 피복", "기준": "", "출처": "산림품셈 8-10", - "용도": {"공종": "그물망 피복", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "그물망 피복", "대상": ["인력", "작업량 조건"], "로직키": ["GF000322"]}, "조건": { "입목재적": "수", "항목": "고르기" }, "값칸": { "벌목부": "인", "보통인부": "인" }, "줄": [ @@ -1152,7 +1152,7 @@ "이름": "이동식 임목 파쇄", "기준": "1대 1조 시간당", "출처": "산림품셈 8-11", - "용도": {"공종": "이동식 임목 파쇄", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "이동식 임목 파쇄", "대상": ["작업량 조건"], "로직키": ["GF000323"]}, "조건": { "구분": "고르기" }, "값칸": { "작업량": "㎥/hr", "작업량원문": "글", "규격": "글", "비고": "글" }, "줄": [ diff --git a/resources/master_data/소요량_산림품셈_09장_토공.json b/resources/master_data/소요량_산림품셈_09장_토공.json index 5f430f236..33d091a62 100644 --- a/resources/master_data/소요량_산림품셈_09장_토공.json +++ b/resources/master_data/소요량_산림품셈_09장_토공.json @@ -73,7 +73,7 @@ "이름": "암절취 암파쇄", "기준": "㎥/hr · 본/hr", "출처": "산림품셈 9-4-1", - "용도": {"공종": "암파쇄", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "암파쇄", "대상": ["작업량 조건"], "로직키": ["GF000252"]}, "조건": { "적용기계": "고르기", "암의 종류": "고르기" }, "값칸": { "작업능력": "㎥/hr", "치즐소모량": "본/hr" }, "줄": [ @@ -110,7 +110,7 @@ "이름": "발파암 육상, 암석 절취(발파 10%)", "기준": "㎥당", "출처": "산림품셈 9-5-1", - "용도": {"공종": "육상, 암석 절취", "대상": ["기계", "인력", "작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "육상, 암석 절취", "대상": ["기계", "인력", "작업량 조건", "재료"], "로직키": ["GF000254"]}, "조건": { "구분": "고르기", "이름": "고르기", "규격": "고르기" }, "값칸": { "수량": "줄 따름", "비고": "글" }, "줄": [ @@ -130,7 +130,7 @@ "이름": "발파암 깎기(90%)", "기준": "", "출처": "산림품셈 9-5-2", - "용도": {"공종": "깎기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "깎기", "대상": ["작업량 조건"], "로직키": ["GF000253"]}, "조건": { "암의 종류": "고르기" }, "값칸": { "작업능력": "㎥/hr", "치즐소모량": "본/hr" }, "줄": [ @@ -167,7 +167,7 @@ "이름": "발파암 소할 기계소할(15%)", "기준": "㎥당", "출처": "산림품셈 9-6-1", - "용도": {"공종": "기계소할", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "기계소할", "대상": ["작업량 조건"], "로직키": ["GF000255"]}, "조건": { "적용기계": "고르기" }, "값칸": { "작업능력": "㎥/hr", "작업능력원문": "글", "치즐소모량": "본/hr" }, "줄": [ @@ -187,7 +187,7 @@ "이름": "무근콘크리트 깨기 T=30㎝ 미만", "기준": "㎥당", "출처": "산림품셈 9-7-1", - "용도": {"공종": "T=30㎝ 미만", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 미만", "대상": ["작업량 조건"], "로직키": ["GF000256"]}, "조건": { "구분": "고르기", "평균두께": "범위" }, "범위규칙": "이상·미만 · 평균두께 단위 ㎝", "값칸": { "작업능력": "㎥/hr", "작업능력원문": "글", "비고": "글" }, @@ -233,7 +233,7 @@ "이름": "무근콘크리트 깨기 T=30㎝ 이상", "기준": "㎥당", "출처": "산림품셈 9-7-2", - "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": ["GF000257"]}, "조건": { "구분": "고르기", "평균두께": "범위" }, "범위규칙": "이상·미만 · 평균두께 단위 ㎝", "값칸": { "작업능력": "㎥/hr", "작업능력원문": "글", "비고": "글" }, @@ -253,7 +253,7 @@ "이름": "철근콘크리트 깨기 T=30㎝ 미만 깨기", "기준": "㎥당", "출처": "산림품셈 9-8-1", - "용도": {"공종": "T=30㎝ 미만", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 미만", "대상": ["작업량 조건"], "로직키": ["GF000258"]}, "조건": { "구분": "고르기", "평균두께": "범위" }, "범위규칙": "이상·미만 · 평균두께 단위 ㎝", "값칸": { "작업능력": "㎥/hr", "작업능력원문": "글", "비고": "글" }, @@ -293,7 +293,7 @@ "이름": "철근콘크리트 깨기 T=30㎝ 이상 깨기", "기준": "㎥당", "출처": "산림품셈 9-8-2", - "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "T=30㎝ 이상", "대상": ["작업량 조건"], "로직키": ["GF000259"]}, "조건": { "구분": "고르기", "평균두께": "범위" }, "범위규칙": "이상·미만 · 평균두께 단위 ㎝", "값칸": { "작업능력": "㎥/hr", "작업능력원문": "글", "비고": "글" }, @@ -336,7 +336,7 @@ "이름": "기존포장 깨기 콘크리트 깨기", "기준": "㎥당", "출처": "산림품셈 9-10-1", - "용도": {"공종": "콘크리트", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "콘크리트", "대상": ["작업량 조건"], "로직키": ["GF000260"]}, "조건": { "구분": "고르기" }, "값칸": { "작업능력": "㎥/hr", "작업능력원문": "글", "비고": "글" }, "줄": [ @@ -357,7 +357,7 @@ "이름": "기존포장 깨기 아스팔트 깨기", "기준": "㎥당", "출처": "산림품셈 9-10-2", - "용도": {"공종": "아스팔트", "대상": ["작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "아스팔트", "대상": ["작업량 조건", "재료"], "로직키": ["GF000261"]}, "조건": { "구분": "고르기" }, "값칸": { "작업능력": "㎥/hr", "비고": "글" }, "줄": [ @@ -377,7 +377,7 @@ "이름": "포장절단 콘크리트(기계)", "기준": "일당", "출처": "산림품셈 9-11-1", - "용도": {"공종": "콘크리트", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "콘크리트", "대상": ["인력", "작업량 조건"], "로직키": ["GF000262"]}, "조건": { "구분": "고르기", "이름": "고르기", "규격": "고르기" }, "값칸": { "적용": "줄 따름", "비고": "글" }, "줄": [ @@ -442,7 +442,7 @@ "이름": "측구터파기 암절취", "기준": "㎥당", "출처": "산림품셈 9-12-2", - "용도": {"공종": "암절취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "암절취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000263"]}, "조건": { "구분": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -462,7 +462,7 @@ "이름": "측구터파기 발파암", "기준": "㎥당", "출처": "산림품셈 9-12-3", - "용도": {"공종": "발파암", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "발파암", "대상": ["인력", "작업량 조건"], "로직키": ["GF000264"]}, "조건": { "구분": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -577,7 +577,7 @@ "이름": "구조물터파기 육상 암절취(0~1m)", "기준": "㎥당", "출처": "산림품셈 9-13-7", - "용도": {"공종": "육상 암절취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "육상 암절취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000265", "GF000266", "GF000267"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -597,7 +597,7 @@ "이름": "구조물터파기 육상 암절취(1~2m)", "기준": "㎥당", "출처": "산림품셈 9-13-8", - "용도": {"공종": "육상 암절취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "육상 암절취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000266"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -614,7 +614,7 @@ "이름": "구조물터파기 육상 암절취(2~3m)", "기준": "㎥당", "출처": "산림품셈 9-13-9", - "용도": {"공종": "육상 암절취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "육상 암절취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000267"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -631,7 +631,7 @@ "이름": "구조물터파기 용수 암절취(0~1m)", "기준": "㎥당", "출처": "산림품셈 9-13-10", - "용도": {"공종": "용수 암절취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "용수 암절취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000268", "GF000269", "GF000270"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -650,7 +650,7 @@ "이름": "구조물터파기 용수 암절취(1~2m)", "기준": "㎥당", "출처": "산림품셈 9-13-11", - "용도": {"공종": "용수 암절취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "용수 암절취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000269"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -666,7 +666,7 @@ "이름": "구조물터파기 용수 암절취(2~3m)", "기준": "㎥당", "출처": "산림품셈 9-13-12", - "용도": {"공종": "용수 암절취", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "용수 암절취", "대상": ["인력", "작업량 조건"], "로직키": ["GF000270"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -682,7 +682,7 @@ "이름": "구조물터파기 육상 발파암(0~1m)", "기준": "㎥당", "출처": "산림품셈 9-13-13", - "용도": {"공종": "육상 발파암", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "육상 발파암", "대상": ["인력", "작업량 조건"], "로직키": ["GF000271", "GF000272", "GF000273"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -702,7 +702,7 @@ "이름": "구조물터파기 육상 발파암(1~2m)", "기준": "㎥당", "출처": "산림품셈 9-13-14", - "용도": {"공종": "육상 발파암", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "육상 발파암", "대상": ["인력", "작업량 조건"], "로직키": ["GF000272"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -719,7 +719,7 @@ "이름": "구조물터파기 육상 발파암(2~3m)", "기준": "㎥당", "출처": "산림품셈 9-13-15", - "용도": {"공종": "육상 발파암", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "육상 발파암", "대상": ["인력", "작업량 조건"], "로직키": ["GF000273"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -736,7 +736,7 @@ "이름": "구조물터파기 용수 발파암(0~1m)", "기준": "㎥당", "출처": "산림품셈 9-13-16", - "용도": {"공종": "용수 발파암", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "용수 발파암", "대상": ["인력", "작업량 조건"], "로직키": ["GF000274", "GF000275", "GF000276"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -756,7 +756,7 @@ "이름": "구조물터파기 용수 발파암(1~2m)", "기준": "㎥당", "출처": "산림품셈 9-13-17", - "용도": {"공종": "용수 발파암", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "용수 발파암", "대상": ["인력", "작업량 조건"], "로직키": ["GF000275"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -773,7 +773,7 @@ "이름": "구조물터파기 용수 발파암(2~3m)", "기준": "㎥당", "출처": "산림품셈 9-13-18", - "용도": {"공종": "용수 발파암", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "용수 발파암", "대상": ["인력", "작업량 조건"], "로직키": ["GF000276"]}, "조건": { "구분": "고르기", "작업": "고르기", "이름": "고르기", "항목": "고르기" }, "값칸": { "적용": "줄 따름", "적용원문": "글", "비고": "글" }, "줄": [ @@ -982,7 +982,7 @@ "이름": "비탈면 고르기(발파암) 기계사용료 (연암, 보통암+경암)/2 적용", "기준": "㎡당", "출처": "산림품셈 9-19-3", - "용도": {"공종": "비탈면 고르기", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "비탈면 고르기", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000278"]}, "조건": { "구분": "고르기", "이름": "고르기" }, "값칸": { "수량": "줄 따름", "비고": "글" }, "줄": [ diff --git a/resources/master_data/소요량_산림품셈_10장_자재․장비_운반.json b/resources/master_data/소요량_산림품셈_10장_자재․장비_운반.json index ea778995e..6d96f32d8 100644 --- a/resources/master_data/소요량_산림품셈_10장_자재․장비_운반.json +++ b/resources/master_data/소요량_산림품셈_10장_자재․장비_운반.json @@ -124,7 +124,7 @@ "이름": "인력운반 토사", "기준": "인/㎥당", "출처": "산림품셈 10-6-1", - "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": ["GF000279"]}, "조건": { "거리(m)": "수" }, "값칸": { "보통인부 토사": "인", "보통인부 석재": "인" }, "줄": [ @@ -149,7 +149,7 @@ "이름": "인력운반 돌(지게)", "기준": "인/㎥당", "출처": "산림품셈 10-6-2", - "용도": {"공종": "돌", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "돌", "대상": ["인력", "작업량 조건"], "로직키": ["GF000280"]}, "조건": { "거리(m)": "수" }, "값칸": { "보통인부": "인" }, "줄": [ @@ -176,7 +176,7 @@ "이름": "인력운반 기타 임업자재", "기준": "", "출처": "산림품셈 10-6-3", - "용도": {"공종": "기타 임업자재", "대상": ["작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "기타 임업자재", "대상": ["작업량 조건", "재료"], "로직키": ["GF000281"]}, "조건": { "거리(m)": "수" }, "값칸": { "목재 소재(조재목)": "인/㎥", "목재 제재": "인/㎥", "볏짚": "인/100속", "섶단·새": "인/100속", "나뭇가지단": "인/100속", "자른 떼(20㎝×20㎝)": "인/100매", "식생낭(혼토입)": "인/100개", "편책용 말뚝(목재,파이프)": "인/100본", "볏짚멍석(종비포함)": "인/1000㎡", "비료": "인/톤" }, "줄": [ @@ -218,7 +218,7 @@ "이름": "인력운반 돌(지게) 1회 운반량·할증", "기준": "", "출처": "산림품셈 10-6-2 주③", - "용도": {"공종": "돌", "대상": ["작업량 조건", "할증"], "로직키": []}, + "용도": {"공종": "돌", "대상": ["작업량 조건", "할증"], "로직키": ["GF000280"]}, "조건": { "구분": "고르기" }, "값칸": { "운반량": "kg", "할증": "%", "적용": "글" }, "줄": [ @@ -406,7 +406,7 @@ "이름": "케이블 크레인 짐내리기", "기준": "인/1일당", "출처": "산림품셈 10-8-1", - "용도": {"공종": "짐내리기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "짐내리기", "대상": ["작업량 조건"], "로직키": ["GF000282"]}, "조건": { "구분": "고르기", "운반기구": "고르기", "비고": "고르기" }, "값칸": { "보통인부 짐내리는 인부": "인", "보통인부 신호수": "인" }, "줄": [ @@ -483,7 +483,7 @@ "이름": "케이블 크레인 2단 크레인 추가 인부", "기준": "", "출처": "산림품셈 10-8-1 주②", - "용도": {"공종": "짐내리기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "짐내리기", "대상": ["작업량 조건"], "로직키": ["GF000282"]}, "조건": { "구분": "고르기" }, "값칸": { "보통인부 추가": "인" }, "줄": [ @@ -541,7 +541,7 @@ "이름": "덤프트럭 자재의 1회당 표준 운반량", "기준": "", "출처": "산림품셈 10-9-1", - "용도": {"공종": "자재의 1회당 표준 운반량", "대상": ["작업량 조건", "재료"], "로직키": []}, + "용도": {"공종": "자재의 1회당 표준 운반량", "대상": ["작업량 조건", "재료"], "로직키": ["GF000283"]}, "조건": { "구분": "고르기", "규격": "고르기" }, "값칸": { "중량": "kg", "환산량": "환산단위 따름", "환산단위": "글", "본수": "본" }, "줄": [ @@ -717,7 +717,7 @@ "이름": "덤프운반 토사 굴착기 작업능력", "기준": "", "출처": "산림품셈 10-12-1 주⑤", - "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": ["GF000284"]}, "조건": { "구분": "고르기", "세부": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글", "괄호값": "수 또는 글", "괄호단위": "글", "비고": "글" }, "줄": [ @@ -743,7 +743,7 @@ "이름": "덤프운반 토사 덤프트럭 작업능력", "기준": "", "출처": "산림품셈 10-12-1 주②", - "용도": {"공종": "토사", "대상": ["기계", "작업량 조건"], "로직키": []}, + "용도": {"공종": "토사", "대상": ["기계", "작업량 조건"], "로직키": ["GF000284"]}, "조건": { "구분": "고르기", "세부": "고르기" }, "값칸": { "값": "단위 따름", "단위": "글", "괄호값": "글", "적용": "글", "비고": "글" }, "줄": [ @@ -778,7 +778,7 @@ "이름": "덤프운반 토사 적재 재료 단위중량", "기준": "", "출처": "산림품셈 10-12-1 주②", - "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "토사", "대상": ["작업량 조건"], "로직키": ["GF000284"]}, "조건": { "재료": "고르기" }, "값칸": { "단위중량": "ton/㎥" }, "줄": [ @@ -795,7 +795,7 @@ "이름": "덤프운반 토사 토량환산계수", "기준": "", "출처": "산림품셈 10-12-1 주③", - "용도": {"공종": "토사", "대상": ["작업량 조건", "환산"], "로직키": []}, + "용도": {"공종": "토사", "대상": ["작업량 조건", "환산"], "로직키": ["GF000284"]}, "조건": { "재료": "고르기" }, "값칸": { "토량환산계수(L)": "" }, "줄": [ @@ -831,7 +831,7 @@ "이름": "인력운반(드론운반공)", "기준": "", "출처": "산림품셈 10-13-2", - "용도": {"공종": "인력운반", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "인력운반", "대상": ["작업량 조건"], "로직키": ["GF000285"]}, "조건": { "수평거리(m)": "수" }, "값칸": { "인원": "명" }, "줄": [ diff --git a/resources/master_data/소요량_산림품셈_13장_구조물.json b/resources/master_data/소요량_산림품셈_13장_구조물.json index 27e5252cb..2a6e9b509 100644 --- a/resources/master_data/소요량_산림품셈_13장_구조물.json +++ b/resources/master_data/소요량_산림품셈_13장_구조물.json @@ -555,7 +555,7 @@ "이름": "밑돌 및 천단 돌쌓기", "기준": "m당", "출처": "산림품셈 13-4-6", - "용도": {"공종": "밑돌 및 천단 돌쌓기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "밑돌 및 천단 돌쌓기", "대상": ["인력", "작업량 조건"], "로직키": ["GF000324"]}, "조건": { "돌의 뒷길이": "수" }, "값칸": { "석공": "인" }, "줄": [ @@ -955,7 +955,7 @@ "이름": "작은 말뚝 박기(6할 박기)", "기준": "개당", "출처": "산림품셈 13-10-2 1", - "용도": {"공종": "나무 말뚝박기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "나무 말뚝박기", "대상": ["인력", "작업량 조건"], "로직키": ["GF000325", "GF000326", "GF000327"]}, "조건": { "말구(㎝)": "수", "길이(m)": "수" }, "값칸": { "보통인부": "인" }, "줄": [ @@ -1003,7 +1003,7 @@ "이름": "기초말뚝 박기", "기준": "개당", "출처": "산림품셈 13-10-2 2", - "용도": {"공종": "나무 말뚝박기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "나무 말뚝박기", "대상": ["인력", "작업량 조건"], "로직키": ["GF000325", "GF000326", "GF000327"]}, "조건": { "말구(㎝)": "수", "길이(m)": "수" }, "값칸": { "보통인부": "인" }, "줄": [ @@ -1117,7 +1117,7 @@ "이름": "기초말뚝 박기 관입길이에 따른 계수", "기준": "", "출처": "산림품셈 13-10-2 2 주⑥", - "용도": {"공종": "나무 말뚝박기", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "나무 말뚝박기", "대상": ["작업량 조건"], "로직키": ["GF000325", "GF000326", "GF000327"]}, "조건": { "관입률": "수" }, "값칸": { "계수": "" }, "줄": [ @@ -1135,7 +1135,7 @@ "이름": "윈치말뚝 박기", "기준": "1일당", "출처": "산림품셈 13-10-2 3", - "용도": {"공종": "나무 말뚝박기", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "나무 말뚝박기", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000325", "GF000326", "GF000327"]}, "조건": { "말구(㎝)": "수", "길이(m)": "수" }, "값칸": { "경유": "ℓ", "잡재료": "%", "기계운전원(발동기)": "인", "비계공": "인", "보통인부": "인", "특별인부": "인", "일기당개박수": "개", "발동기": "HP", "떨공이": "kg", "말뚝중량": "kg/개", "떨공이원문": "글", "윈치": "글" }, "줄": [ @@ -1184,7 +1184,7 @@ "이름": "원형 돌망태 인력", "기준": "㎡당", "출처": "산림품셈 13-11-1 1", - "용도": {"공종": "원형", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "원형", "대상": ["작업량 조건"], "로직키": ["GF000328"]}, "조건": { "지름(㎝)": "수" }, "값칸": { "조약돌량": "㎥", "조립설치": "인", "돌채움": "인" }, "줄": [ @@ -1206,7 +1206,7 @@ "이름": "원형 돌망태 기계", "기준": "㎡당", "출처": "산림품셈 13-11-1 2", - "용도": {"공종": "원형", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "원형", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000328"]}, "조건": { "지름(㎝)": "수", "공종": "고르기", "명칭": "고르기" }, "값칸": { "수량": "줄 따름" }, "줄": [ @@ -1251,7 +1251,7 @@ "이름": "타원형 돌망태 인력", "기준": "㎡당", "출처": "산림품셈 13-11-2 1", - "용도": {"공종": "타원형", "대상": ["작업량 조건"], "로직키": []}, + "용도": {"공종": "타원형", "대상": ["작업량 조건"], "로직키": ["GF000329"]}, "조건": { "지름(㎝)": "수" }, "값칸": { "조약돌량": "㎥", "조립설치": "인", "돌채움": "인" }, "줄": [ @@ -1277,7 +1277,7 @@ "이름": "타원형 돌망태 기계", "기준": "㎡당", "출처": "산림품셈 13-11-2 2", - "용도": {"공종": "타원형", "대상": ["기계", "인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "타원형", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000329"]}, "조건": { "지름(㎝)": "수", "공종": "고르기", "명칭": "고르기" }, "값칸": { "수량": "줄 따름" }, "줄": [ @@ -1541,7 +1541,7 @@ "이름": "목재 껍질벗기기", "기준": "m당", "출처": "산림품셈 13-15-1", - "용도": {"공종": "목재 껍질벗기기", "대상": ["인력", "작업량 조건"], "로직키": []}, + "용도": {"공종": "목재 껍질벗기기", "대상": ["인력", "작업량 조건"], "로직키": ["GF000330"]}, "조건": { "말구(㎝)": "수" }, "값칸": { "보통인부": "인" }, "줄": [ diff --git a/resources/tester/helper_m02_treepanel.cjs b/resources/tester/helper_m02_treepanel.cjs index 2b7a3be9c..887c03dc8 100644 --- a/resources/tester/helper_m02_treepanel.cjs +++ b/resources/tester/helper_m02_treepanel.cjs @@ -1,4 +1,4 @@ -/* M02 항목 나무 자료(`M02_MasterTemplete_TreePanel_Model.ts`) 단위검증 헬퍼 — 트랜스파일해 Node 로 돌리고 JSON 으로 냄. */ +/* M02 구조물 라이브러리 자료(`M02_MasterTemplete_TreePanel_Model.ts`) 단위검증 헬퍼 — 트랜스파일해 Node 로 돌리고 JSON 으로 냄. */ const fs = require("fs"); const path = require("path"); const ts = require(path.join(__dirname, "..", "..", "config", "node_modules", "typescript")); diff --git a/resources/tester/test_b01_settings_cards.py b/resources/tester/test_b01_settings_cards.py new file mode 100644 index 000000000..8f80b0466 --- /dev/null +++ b/resources/tester/test_b01_settings_cards.py @@ -0,0 +1,108 @@ +"""B01 대시보드 「시스템 설정」 컨테이너 시험(27-3) — 화면 조작은 ORCA. + +· 역할별 카드(제목 · 설명 · 이동 해시)를 Node 로 바로 돌림 — 가짜 DOM +· 모든 역할 맨 위 한 줄 · 통째로 접힘 · 「구조물 관리」 컨테이너 없음 +""" + +from __future__ import annotations + +import json +import re +import shutil +import subprocess +from pathlib import Path + +import pytest + +ROOT = Path(__file__).resolve().parents[2] +PAGE = ROOT / "B01_Dashboard" / "B01_Dashboard_UI_Page.ts" + + +def _text(path: Path) -> str: + return path.read_text(encoding="utf-8") + + +def _fn(src: str, name: str) -> str: + found = re.search(rf"^function {name}\([\s\S]*?^}}", src, re.M) + assert found, f"{name} 를 못 찾음" + return found.group(0) + + +def _cards(user: dict) -> list: + src = _text(PAGE) + script = ( + "interface DashboardUser { role: string; is_master: boolean }\n" + "const ROUTES = { M01_MASTER_DATA: 'm01-master-data', M02_MASTER_TEMPLATE: 'm02-master-template' };\n" + "const L = (k: string) => k;\n" + "let went = '';\n" + "const navigateTo = (r: string, q?: Record) =>" + " { went = r + (q ? '?' + new URLSearchParams(q) : ''); };\n" + "const mk = (): any => ({ children: [] as any[], textContent: '', className: '', on: null as any," + " append(...c: any[]) { this.children.push(...c); }," + " addEventListener(_: string, f: any) { this.on = f; } });\n" + "const document = { createElement: () => mk() };\n" + + _fn(src, "settingCard") + + "\n" + + _fn(src, "buildSystemSettingsPanel") + + "\nconst user = JSON.parse(process.argv[1]);" + + "\nconsole.log(JSON.stringify(buildSystemSettingsPanel(user).children.map((c: any) => {" + + " c.on(); return [c.children[0].textContent, c.children[1].textContent," + + " decodeURIComponent(went)]; })));" + ) + result = subprocess.run( + ["node", "--experimental-strip-types", "--no-warnings", + "--input-type=module-typescript", "-e", script, json.dumps(user)], + capture_output=True, text=True, encoding="utf-8", timeout=60, + ) # fmt: skip + assert result.returncode == 0, result.stderr + return json.loads(result.stdout) + + +M02 = "m02-master-template" +READ_CO = ( + "B01_Dashboard_PermMasterRead · B01_Dashboard_PermCompanyRead · B01_Dashboard_PermPersonalWrite" +) +WRITE_CO = READ_CO.replace("CompanyRead", "CompanyWrite") + + +@pytest.mark.skipif(shutil.which("node") is None, reason="node 가 없음") +def test_시스템_관리자_카드_다섯(): + m = "B01_Dashboard_PermMasterWrite" + assert _cards({"role": "SYSTEM_ADMIN", "is_master": False}) == [ + ["B01_Dashboard_MasterElements", "B01_Dashboard_PermSourceRead", "m01-master-data"], + ["B01_Dashboard_CardUnitCombo", m, f"{M02}?open=일위대가&root=master"], + ["B01_Dashboard_CardStructCombo", m, f"{M02}?open=구조물조합&root=master"], + ["B01_Dashboard_CardStructOption", m, f"{M02}?open=옵션&root=master"], + ["B01_Dashboard_CardDrawing", m, f"{M02}?open=도면&root=master"], + ] + + +@pytest.mark.skipif(shutil.which("node") is None, reason="node 가 없음") +def test_회사_관리자_개인_카드_둘(): + company = [ + ["B01_Dashboard_CardUnitCombo", WRITE_CO, f"{M02}?open=일위대가&root=company"], + ["B01_Dashboard_CardStructCombo", WRITE_CO, f"{M02}?open=구조물조합&root=company"], + ] + assert _cards({"role": "ADMIN", "is_master": False}) == company + assert _cards({"role": "USER", "is_master": True}) == company # 회사 마스터 = 회사 수정 + assert _cards({"role": "USER", "is_master": False}) == [ + ["B01_Dashboard_CardUnitCombo", READ_CO, f"{M02}?open=일위대가&root=personal"], + ["B01_Dashboard_CardStructCombo", READ_CO, f"{M02}?open=구조물조합&root=personal"], + ] + + +def test_모든_역할_맨_위_통째로_접힘(): + src = _text(PAGE) + build = _fn(src, "buildPage") + # 역할 갈래 앞에서 한 번 — 모든 역할 · 프로젝트 위 + assert build.index("grid.append(buildSystemSettingsSection(state.user))") < build.index( + 'if (state.user.role === "SYSTEM_ADMIN")' + ) + assert "StructureManage" not in src and "buildStructurePanel" not in src + assert "top-row" not in src + sect = _fn(src, "buildSystemSettingsSection") + assert "buildSystemSettingsPanel(user), true)" in sect # 한 줄 통째 + assert '"ui-collapsible"' in sect and '"ui-collapsible__title"' in sect + assert "attachCollapsible(card)" in sect + config = _text(ROOT / "config" / "config_frontend.ts") + assert re.search(r"PROTECTED_ROUTES[\s\S]*?ROUTES\.M02_MASTER_TEMPLATE,[\s\S]*?\];", config) diff --git a/resources/tester/test_m01_api.py b/resources/tester/test_m01_api.py index feea2debd..4bcf6e1b6 100644 --- a/resources/tester/test_m01_api.py +++ b/resources/tester/test_m01_api.py @@ -266,7 +266,10 @@ def test_단가_자동_요소_찾기_저장전_시험계산(client: TestClient) json={"key": LOGIC_KEY, "inputs": LOGIC_INPUTS, "row": half}, ) lines = res.json()["lines"] - assert [x["이름"] for x in lines] == ["화약취급공"] and res.json()["sums"]["계"] < before + names = [x["이름"] for x in lines] # 소모자재 덧줄(3-3-6 주⑨)은 남음 + assert ( + names[0] == "화약취급공" and "보통인부" not in names and res.json()["sums"]["계"] < before + ) new = {**half, "키": "", "원문번호": "새 로직"} body = { "key": "", diff --git a/resources/tester/test_m02_layer_access.py b/resources/tester/test_m02_layer_access.py new file mode 100644 index 000000000..42e5189b3 --- /dev/null +++ b/resources/tester/test_m02_layer_access.py @@ -0,0 +1,142 @@ +"""M02 층 권한 한 벌(PLAN 27-1c · `M02_Layer_Access`) — 나무 · 항목 · 양식 · 남의 층 목록 같은 규칙. + +① `grant` 표 — 역할(일반 · 회사 관리자 · 시스템 관리자) × 층(마스터 · 자기 회사 · 남의 회사 · + 자기 개인 · 같은 회사 남 · 다른 회사 남) = 읽기 · 수정 · 막힘. +② 임시 storage — 남의 층은 자리가 있을 때만(없으면 404 · 폴더 안 만듦) · 나무 · 양식 길 같은 답 · + 남의 층 목록(회사 = 시스템 관리자 · 개인 = 회사 관리자 자기 회사 · 본인 뺌 · 자리 있는 것만). +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any + +import pytest +from fastapi import HTTPException + +from config import config_system +from M02_MasterTemplete import M02_Layer_Access as access +from M02_MasterTemplete import M02_MasterTemplete_Router_Layers as layers_router +from M02_MasterTemplete import M02_MasterTemplete_Store as store +from M02_MasterTemplete import M02_Template_Layers as layers +from resources.tester.test_m02_structure import write_sample_table +from resources.tester.test_m02_tree import _app + +USER = {"user_id": 42, "company_id": 7, "role": "USER", "is_master": False} +ADMIN = {**USER, "role": "ADMIN"} +MASTER = {**USER, "is_master": True} +SYSADMIN = {**USER, "role": "SYSTEM_ADMIN"} + + +def _answer(session: dict[str, Any], layer: str, owner: str | None) -> str: + try: + return "수정" if access.grant(session, layer, owner).write else "읽기" + except HTTPException as error: + return str(error.status_code) + + +def test_권한_표(): + cases = [ + ("system", None), + ("company", None), + ("company", "9"), + ("personal", None), + ("personal", "7/43"), + ("personal", "9/90"), + ] + got = { + name: [_answer(s, *c) for c in cases] + for name, s in ( + ("일반", USER), + ("회사관리", ADMIN), + ("마스터", MASTER), + ("시스템", SYSADMIN), + ) + } + assert got == { + "일반": ["읽기", "읽기", "403", "수정", "403", "403"], + "회사관리": ["읽기", "수정", "403", "수정", "읽기", "403"], + "마스터": ["읽기", "수정", "403", "수정", "읽기", "403"], + "시스템": ["수정", "수정", "읽기", "수정", "읽기", "읽기"], + } + # 자기 층 owner 를 적어도 같음 · 모양 틀림 400 · 회사 없음 409 + assert access.grant(USER, "personal", "7/42").write is True + assert _answer(SYSADMIN, "personal", "9") == "400" + assert _answer({**USER, "company_id": None}, "company", None) == "409" + with pytest.raises(HTTPException) as caught: + access.require(ADMIN, "personal", "7/43", write=True) + assert caught.value.status_code == 403 + + +@pytest.fixture() +def world(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> dict[str, Any]: + system = tmp_path / "system" + system.mkdir() + write_sample_table(system) + monkeypatch.setattr(store, "FOLDER", system) + monkeypatch.setattr(layers, "SYSTEM_ROOT", system) + store.renumber() + storage = tmp_path / "storage" + storage.mkdir() + monkeypatch.setattr(config_system, "STORAGE_BASE_DIR", str(storage)) + users = {42: 7, 43: 7, 44: 7, 90: 9} + + async def company_users(company_id: int) -> list[dict[str, Any]]: + return [{"user_id": u, "name": f"u{u}"} for u, c in users.items() if c == company_id] + + async def companies() -> list[dict[str, Any]]: + return [{"company_id": c, "name": f"c{c}"} for c in (7, 8, 9)] + + monkeypatch.setattr(layers_router, "_company_users", company_users) + monkeypatch.setattr(layers_router, "_companies", companies) + session: dict[str, Any] = dict(USER) + return {"client": _app(session), "session": session, "storage": storage} + + +def test_남의_층은_자리가_있을_때만_읽기(world: dict[str, Any]): + client, session, storage = world["client"], world["session"], world["storage"] + session.update(ADMIN) + tree = "/api/m02/layers/personal/tree?owner=7/43" + table = "/api/m02/layers/personal/templates/table/구조물집계표?owner=7/43" + assert client.get(tree).status_code == 404 # 43 은 아직 아무것도 없음 + assert not (storage / "7/43").exists() # 읽기로 남의 폴더를 만들지 않음 + (storage / "7/43/templates").mkdir(parents=True) # 폴더만 있고 집계표 없음 + assert client.get(tree).status_code == 404 + assert client.get(table).status_code == 404 + assert client.get("/api/m02/items?layer=personal&owner=7/43").status_code == 404 + assert not any((storage / "7/43/templates").iterdir()) # 읽기로 남의 층에 뼈대를 안 씀 + session.update(user_id=43) + assert client.get("/api/m02/layers/personal/tree").status_code == 200 # 43 첫 진입 = 뼈대 + session.update(user_id=42) + assert client.get(tree).status_code == 200 + assert client.get(table).status_code == 200 # 양식 길도 같은 규칙 + body = {"op": "add-folder", "경로": [], "이름": "새", "판": client.get(tree).json()["판"]} + assert client.post(tree, json=body).status_code == 403 # 읽기만 + assert client.get("/api/m02/items?layer=personal&owner=7/43").status_code == 200 + session.update(USER) + assert client.get(tree).status_code == 403 + assert client.get(table).status_code == 403 + session.update(SYSADMIN) + assert client.get(tree).status_code == 200 + assert client.post(tree, json=body).status_code == 403 # 시스템 관리자도 남의 층은 읽기만 + + +def test_남의_층_목록(world: dict[str, Any]): + client, session, storage = world["client"], world["session"], world["storage"] + for owner in ("7/43", "9/90"): # 층 폴더가 있는 사람만 목록에 + (storage / owner / "templates").mkdir(parents=True) + (storage / "9/templates").mkdir() + people = "/api/m02/layers/personal/owners" + assert client.get(people).status_code == 403 # 일반 사용자 + assert client.get("/api/m02/layers/company/owners").status_code == 403 + session.update(ADMIN) + assert client.get(people).json() == [ + {"owner": "7/43", "name": "u43"} + ] # 본인 · 44(자리 없음) 뺌 + assert client.get(f"{people}?company=9").status_code == 403 # 남의 회사 사람 + session.update(SYSADMIN) + assert client.get("/api/m02/layers/company/owners").json() == [ + {"owner": "7", "name": "c7"}, # 자기 회사는 자리 없어도 + {"owner": "9", "name": "c9"}, + ] + assert client.get(f"{people}?company=9").json() == [{"owner": "9/90", "name": "u90"}] diff --git a/resources/tester/test_m02_layer_screen.py b/resources/tester/test_m02_layer_screen.py index 0da4aa4da..29c7f92ce 100644 --- a/resources/tester/test_m02_layer_screen.py +++ b/resources/tester/test_m02_layer_screen.py @@ -1,8 +1,8 @@ -"""M02 층 화면(`?layer=personal|company`) 붙는 자리 시험 — 화면 조작은 ORCA. +"""M02 한 화면 뿌리 셋(PLAN 27-1 · 진입 해시 `?open=&root=&owner=`) 붙는 자리 시험 — 조작은 ORCA. · 권한 규칙(`accessFor`)을 Node 로 바로 돌림 — 시스템 SYSTEM_ADMIN · - 회사 ADMIN/is_master · 개인 본인 · 회사 없음 -· 주소 인자를 라우트에서 떼는지 · 대시보드 카드 역할별 단추 · 층 길 접두어 + 회사 ADMIN/is_master/SYSTEM_ADMIN · 개인 본인 · 회사 없음 · 남의 층 읽기만 +· 주소 인자를 라우트에서 떼는지 · 대시보드 카드 역할별 단추 · 층 길 접두어 · 뿌리 셋 """ from __future__ import annotations @@ -26,25 +26,35 @@ def _text(path: Path) -> str: @pytest.mark.skipif(shutil.which("node") is None, reason="node 가 없음") def test_층별_고칠_권한(): - found = re.search(r"^export function accessFor[\s\S]*?^}", _text(LAYER), re.M) - assert found, "accessFor 를 못 찾음" + """서버 `M02_Layer_Access` 와 같은 규칙(PLAN 27-1c) — 남의 층(owner)은 읽기만.""" + text = _text(LAYER) + own = re.search(r"^export const ownOwner[\s\S]*?;\n", text, re.M) + found = re.search(r"^export function accessFor[\s\S]*?^}", text, re.M) + assert own and found, "ownOwner · accessFor 를 못 찾음" script = ( 'type ManageLayer = "system" | "company" | "personal";\n' - "interface SessionUser { role?: string; company_id?: number | null; is_master?: boolean }\n" + "interface SessionUser { id: string; role?: string; company_id?: number | null;" + " is_master?: boolean }\n" "interface LayerAccess { canWrite: boolean; needCompany: boolean }\n" + + own.group(0).replace("export ", "") + found.group(0).replace("export ", "") + "\nconst cases = JSON.parse(process.argv[1]);" - + "\nconsole.log(JSON.stringify(cases.map((c) => accessFor(c[0], c[1]))));" + + "\nconsole.log(JSON.stringify(cases.map((c) => accessFor(c[0], c[1], c[2]))));" ) - sysadmin = {"role": "SYSTEM_ADMIN", "company_id": None} - admin = {"role": "ADMIN", "company_id": 3} - master = {"role": "USER", "company_id": 3, "is_master": True} - user = {"role": "USER", "company_id": 3} - orphan = {"role": "USER", "company_id": None} + sysadmin = {"id": "1", "role": "SYSTEM_ADMIN", "company_id": None} + sys3 = {"id": "1", "role": "SYSTEM_ADMIN", "company_id": 3} + admin = {"id": "5", "role": "ADMIN", "company_id": 3} + master = {"id": "6", "role": "USER", "company_id": 3, "is_master": True} + user = {"id": "7", "role": "USER", "company_id": 3} + orphan = {"id": "8", "role": "USER", "company_id": None} cases = [ - ["system", sysadmin], ["system", admin], ["system", None], - ["company", admin], ["company", master], ["company", user], ["company", orphan], - ["personal", user], ["personal", admin], ["personal", orphan], ["personal", sysadmin], + ["system", None, sysadmin], ["system", None, admin], ["system", None, None], + ["company", None, admin], ["company", None, master], ["company", None, user], + ["company", None, orphan], ["company", None, sys3], + ["personal", None, user], ["personal", None, admin], ["personal", None, orphan], + ["personal", None, sysadmin], + ["personal", "3/7", user], ["personal", "3/7", admin], ["company", "9", sysadmin], + ["personal", "9/90", sysadmin], ] # fmt: skip result = subprocess.run( ["node", "--experimental-strip-types", "--no-warnings", @@ -57,8 +67,9 @@ def test_층별_고칠_권한(): no_company = {"canWrite": False, "needCompany": True} assert json.loads(result.stdout) == [ ok, ro, ro, # 시스템 = SYSTEM_ADMIN 만 - ok, ok, ro, no_company, # 회사 = ADMIN · is_master · 일반은 읽기만 · 회사 없음 안내 + ok, ok, ro, no_company, ok, # 회사 = ADMIN · is_master · SYSTEM_ADMIN · 일반 읽기만 ok, ok, no_company, no_company, # 개인 = 본인 · 회사 없으면 안내 + ok, ro, ro, ro, # 자기 층 owner 는 자기 층 · 남의 층은 읽기만 ] # fmt: skip @@ -68,21 +79,35 @@ def test_주소_인자를_라우트에서_뗌(): assert "export function currentQuery()" in router assert "query?: Record" in router layer = _text(LAYER) - assert 'value === "company" || value === "personal" ? value : "system"' in layer + # 진입 해시 `?open=&root=&owner=`(PLAN 27-1d) · 옛 `?layer=` 도 root 로 + assert 'query.get("root") ?? query.get("layer")' in layer + assert 'raw === "company" || raw === "personal" ? raw : "master"' in layer + assert '["구조물조합", "일위대가", "옵션", "도면"]' in layer + picker = _text(ROOT / "ui_template" / "ui_template_item_picker.ts") + assert 'open: "구조물조합", root: "personal"' in picker and "layer=personal" not in picker -def test_대시보드_카드_역할별_단추(): - page = _text(ROOT / "B01_Dashboard" / "B01_Dashboard_UI_Page.ts") +def test_한_화면_뿌리_셋(): + """27-1b · c — 뿌리 셋 한 화면 · 다른 뿌리 = 해시로 다시 세움(저장 안 한 고침은 먼저 물음) · + 떠나면 층 길을 시스템으로 되돌림 · 목록은 펼칠 때 · 나무 부품은 owner · 자료 길을 받음.""" + page = _text(M02 / "M02_MasterTemplete_UI_Page.ts") + assert "createLibraryRoots(" in page and "setActiveLayer(layer, owner)" in page + assert "await main.confirmLeave()" in page.split("const go =")[1].split("navigateTo(")[0] + assert 'dispose: () => setActiveLayer("system")' in page + assert "side.reveal(entry.open)" in page + roots = _text(M02 / "M02_MasterTemplete_TreePanel_Roots.ts") + assert 'fetchOwners("company")' in roots and 'fetchOwners("personal", company)' in roots + assert "if (!kids.hidden && !loaded) void fill();" in roots # 펼칠 때 불러옴 + panel = _text(M02 / "M02_MasterTemplete_TreePanel.ts") assert ( - page.count('section(L("B01_Dashboard_StructureManage"), buildStructurePanel(state))') == 3 + "api.fetch(opt.layer, owner)" in panel + and "api.edit(opt.layer, body_, view.판, owner)" in panel ) - body = page.split("function buildStructurePanel")[1].split("function buildPage")[0] - # 개인용은 모두 · 회사용은 ADMIN · SYSTEM_ADMIN 만 - assert 'state.user.role === "ADMIN" || state.user.role === "SYSTEM_ADMIN"' in body - assert body.index('go("company"') < body.index('go("personal"') - assert "ROUTES.M02_MASTER_TEMPLATE, { layer }" in body - config = _text(ROOT / "config" / "config_frontend.ts") - assert re.search(r"PROTECTED_ROUTES[\s\S]*?ROUTES\.M02_MASTER_TEMPLATE,[\s\S]*?\];", config) + assert ( + "...(opt.canEdit ? { menu: () => menuOf(target) } : {})" in panel + ) # 읽기 뿌리 = 메뉴 없음 + api = _text(M02 / "M02_MasterTemplete_Api_Fetch.ts") + assert "owner=${enc(activeOwner)}" in api and "/owners" in api def test_층_길_접두어와_고정_풀림(): @@ -103,10 +128,13 @@ def test_층_길_접두어와_고정_풀림(): def test_읽기만_회사용_개인용으로_복사_막대(): page = _text(M02 / "M02_MasterTemplete_UI_Page.ts") - assert 'layer === "company" && !isAdmin ? buildReadOnlyBar(user)' in page - assert "readOnlyBar?.setColumn(column)" in page # 열 고름 → 막대 · 항목 나무가 함께 받음 - assert "access.needCompany" in page and "buildNeedCompany()" in page - assert "titleOf(layer)" in page + assert 'layer === "company" && !owner && !isAdmin ? buildReadOnlyBar(user)' in page + assert ( + "readOnlyBar?.setColumn(column)" in page + ) # 열 고름 → 막대 · 구조물 라이브러리가 함께 받음 + assert "accessFor(layer, owner, user).needCompany" in page # 회사 없음 = 마스터로 + assert "buildNeedCompany()" in _text(M02 / "M02_MasterTemplete_TreePanel_Roots.ts") + assert 'title: L("M02_Title")' in page # 한 화면 한 제목 layer = _text(LAYER) assert 'fromLayer: "company"' in layer and "M02_CopyToPersonal" in layer diff --git a/resources/tester/test_m02_structure_combo.py b/resources/tester/test_m02_structure_combo.py index c10e1d7e3..4333b2140 100644 --- a/resources/tester/test_m02_structure_combo.py +++ b/resources/tester/test_m02_structure_combo.py @@ -60,6 +60,9 @@ def test_처음_한_번_만듦_글_열_빼고_칸은_집계표_그대로(client, def test_집계표_저장_때_새_열_지운_열_고친_열을_맞춤_키_유지(client): before = _keys(client) + old_rv = next( + r for r in client.get("/api/m02/structure-combos").json()["줄"] if r["열"] == "rv" + ) def change(table): cols = table["열"] @@ -77,12 +80,9 @@ def test_집계표_저장_때_새_열_지운_열_고친_열을_맞춤_키_유지 assert [r["열"] for r in doc["줄"]][:4] == ["rv", "new1", "c1", "pv_b"] # 집계표 차례 assert all(rows[c]["키"] == k for c, k in before.items() if c != "h_rip_m") rv = rows["rv"] - assert (rv["분류1"], rv["분류3"], rv["단위"], rv["일위대가"]) == ( - "메쌓기", - "기초유", - "m", - "UA000004", - ) + # 화면 표 [저장](26-7e) — 있던 항목 머리(경로)는 나무가 정본이라 저장본 그대로 · 나머지는 표대로 + assert (rv["분류1"], rv["분류3"]) == (old_rv["분류1"], old_rv["분류3"]) + assert (rv["단위"], rv["일위대가"]) == ("m", "UA000004") assert (rv["바인딩"], rv["펼침"]) == ({"종류": "revetment"}, True) # 번호는 세 파일과 같음 — 새 열도 [저장] 한 번에 SD · SA · SM 이 섬 numbers = client.get("/api/m02/structures/numbers").json() diff --git a/resources/tester/test_m02_structure_options.py b/resources/tester/test_m02_structure_options.py index fe9d9090a..dd671b6ba 100644 --- a/resources/tester/test_m02_structure_options.py +++ b/resources/tester/test_m02_structure_options.py @@ -116,11 +116,11 @@ def test_파일이_깨져도_폼_응답은_모두_보임(client) -> None: def test_좌측_줄은_구조물_집계_양식_아래_한_줄_같은_한_곳에서_지움() -> None: side = (ROOT / "M02_MasterTemplete/M02_MasterTemplete_UI_Side.ts").read_text("utf-8") assert "section(options.title, options.body)" in side - assert ( - side.index(" summary,") - < side.index("section(options.title") - < side.index('section(L("M02_KindDrawing")') + # 차례 = 구조물 조합 → 옵션 → 도면 양식(시스템 층에만 · 해시 진입 `reveal` 이 이름으로 · 27-1d) + assert side.index("옵션: section(options.title") < side.index( + '도면: section(L("M02_KindDrawing")' ) + assert "children: [summary, ...(extras ? [extras.옵션, extras.도면] : [])]" in side assert "onOpen: () => (options.clear(), paint())" in side # 자재 조합을 열면 이 줄 고름 지움 assert "onOpen: () => (matset.clear(), paint())" in side # 이 줄을 열면 자재 조합 고름 지움 paint = side.split("function paint(): void {")[1].split("\n }\n")[0] diff --git a/resources/tester/test_m02_template_layers.py b/resources/tester/test_m02_template_layers.py index 72d1cc1e2..92c9f1bc6 100644 --- a/resources/tester/test_m02_template_layers.py +++ b/resources/tester/test_m02_template_layers.py @@ -143,13 +143,24 @@ def test_개인_양식은_본인만_쓰고_같은_회사는_읽어_가져옴(wor assert client.get(mine).status_code == 200 session.update(user_id=43) theirs = mine + "&user_id=42" + # 층 길 = 권한 한 벌(PLAN 27-1c) — 같은 회사 남의 개인 층은 회사 관리자만 읽기 · 쓰기는 본인만 + assert client.get(theirs).status_code == 403 + session["role"] = "ADMIN" assert client.get(theirs).status_code == 200 - # 첫 진입 때 구조물집계표 빈 뼈대가 서므로(PLAN 21-2) 새 이름으로 씀 + assert client.get(mine + "&owner=7/42").status_code == 200 put = client.put( f"/api/m02/layers/personal/templates/table/내표?project_id={P1}&user_id=42", json={"판": None, "문서": {"열": []}}, ) - assert put.status_code == 200 # user_id 는 쓰기에서 무시 — 본인(43) 자리에 새로 씀 + assert put.status_code == 403 + assert not (world["storage"] / "7/42/templates/table/내표.json").exists() + session["role"] = "USER" + # 첫 진입 때 구조물집계표 빈 뼈대가 서므로(PLAN 21-2) 새 이름으로 씀 + put = client.put( + f"/api/m02/layers/personal/templates/table/내표?project_id={P1}", + json={"판": None, "문서": {"열": []}}, + ) + assert put.status_code == 200 assert (world["storage"] / "7/43/templates/table/내표.json").is_file() got = client.post( f"/api/m02/projects/{P2}/templates/apply", json={"from": "personal", "user_id": 42} diff --git a/resources/tester/test_m02_treepanel.py b/resources/tester/test_m02_treepanel.py index 798f1391f..2e1835d12 100644 --- a/resources/tester/test_m02_treepanel.py +++ b/resources/tester/test_m02_treepanel.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -"""M02 관리 화면 항목 나무(PLAN 26-3a) 자료 셈 회귀검증 — 폴더 나무 · 빈 폴더 · 깊이 5 · 찾기 · 폴더 목록. +"""M02 관리 화면 구조물 라이브러리(PLAN 26-3a) 자료 셈 회귀검증 — 폴더 나무 · 빈 폴더 · 깊이 5 · 찾기 · 폴더 목록. 항목 경로 = 폴더 이름 배열 + 마지막 마디가 항목 이름 · 찾는 글이 있으면 맞는 항목과 위 폴더만. Node 헬퍼(`helper_m02_treepanel.cjs`)가 TS 를 트랜스파일해 돌리고, 여기서 값을 판정한다. diff --git a/ui_template/ui_template_item_picker.ts b/ui_template/ui_template_item_picker.ts index f01f7d9f9..98a4e504b 100644 --- a/ui_template/ui_template_item_picker.ts +++ b/ui_template/ui_template_item_picker.ts @@ -52,7 +52,8 @@ export interface ItemPickerOptions { export type ItemPickerResult = { action: "apply"; item: SummaryItem } | { action: "clear" } | { action: "cancel" }; -const MANAGE_HASH = "#/m02-master-template?layer=personal"; +/** 관리 화면 진입 해시(PLAN 27-1d) — 구조물 조합 · 개인 뿌리가 열린 채 */ +const MANAGE_HASH = `#/m02-master-template?${new URLSearchParams({ open: "구조물조합", root: "personal" })}`; const labels = (): TreeLabels => ({ layers: { diff --git a/ui_template/ui_template_locale_b3.ts b/ui_template/ui_template_locale_b3.ts index 9ba996d84..24684799f 100644 --- a/ui_template/ui_template_locale_b3.ts +++ b/ui_template/ui_template_locale_b3.ts @@ -139,6 +139,12 @@ export const ui_locales_b3 = { /* --- B01 시스템 설정 --- */ B01_Dashboard_SystemSettings: ["시스템 설정", "System Settings"], B01_Dashboard_MasterData: ["마스터 데이터", "Master Data"], + B01_Dashboard_PermSourceRead: ["원문 원천 · 읽기", "Source data · read"], + B01_Dashboard_PermMasterRead: ["마스터 읽기", "Master read"], + B01_Dashboard_PermMasterWrite: ["마스터 수정", "Master edit"], + B01_Dashboard_PermCompanyRead: ["회사 읽기", "Company read"], + B01_Dashboard_PermCompanyWrite: ["회사 수정", "Company edit"], + B01_Dashboard_PermPersonalWrite: ["개인 수정", "Personal edit"], /* --- B08·B09 빈 화면 (PLAN 7-3) --- */ B08_Quantity_Rebuilding: [ diff --git a/ui_template/ui_template_locale_m2.ts b/ui_template/ui_template_locale_m2.ts index bff3311ce..dbac9a6b9 100644 --- a/ui_template/ui_template_locale_m2.ts +++ b/ui_template/ui_template_locale_m2.ts @@ -4,7 +4,10 @@ * ========================================================================== */ export const ui_locales_m2 = { - B01_Dashboard_MasterTemplate: ["마스터 템플릿", "Master Templates"], + B01_Dashboard_CardUnitCombo: ["일위대가 조합", "Unit cost combos"], + B01_Dashboard_CardStructCombo: ["구조물 조합", "Structure combos"], + B01_Dashboard_CardStructOption: ["구조물 옵션", "Structure options"], + B01_Dashboard_CardDrawing: ["도면 양식", "Drawing templates"], M02_Title: ["마스터 템플릿", "Master Templates"], M02_KindTable: ["구조물 조합", "Structure combos"], M02_KindDrawing: ["도면 양식", "Drawing templates"], @@ -57,9 +60,6 @@ export const ui_locales_m2 = { M02_ActionFailed: ["안 됨 — {value}", "Failed — {value}"], M02_StructureNone: ["없음", "None"], M02_Back: ["돌아가기", "Back"], - B01_Dashboard_StructureManage: ["구조물 관리", "Structure management"], - B01_Dashboard_StructureCompany: ["회사용", "Company"], - B01_Dashboard_StructurePersonal: ["개인용", "Personal"], M02_TitleCompany: ["구조물 관리(회사)", "Structure management (company)"], M02_TitlePersonal: ["구조물 관리(개인)", "Structure management (personal)"], M02_ReadOnlyCompany: [ @@ -68,7 +68,7 @@ export const ui_locales_m2 = { ], M02_CopyToPersonal: ["개인용으로 복사", "Copy to personal"], M02_CopyPickFirst: ["복사할 열을 구조물 조합에서 먼저 고름", "Pick a column in the table first"], - M02_CopyDone: ["개인용으로 복사함 — 구조물 관리(개인)에서 고침", "Copied — edit it in your own"], + M02_CopyDone: ["개인용으로 복사함 — 「개인」 뿌리에서 고침", "Copied — edit it in your own"], M02_CopyFailed: ["복사 안 됨 — {value}", "Copy failed — {value}"], M02_NeedCompany: [ "회사부터 등록해야 구조물 조합을 만들 수 있음", @@ -98,7 +98,11 @@ export const ui_locales_m2 = { M02_PickerManage: ["관리 화면에서 고치기", "Edit in manager"], M02_PickerCopied: ["개인용으로 복사했음", "Copied to personal"], M02_PickerCopyFailed: ["복사 못 함 — {value}", "Copy failed — {value}"], - M02_TreeTitle: ["항목 나무", "Item tree"], + M02_TreeTitle: ["구조물 라이브러리", "Structure library"], + M02_RootMine: ["내 것", "Mine"], + M02_RootShared: ["회사 공용", "Company shared"], + M02_RootReadOnly: ["읽기", "read-only"], + M02_RootNone: ["볼 수 있는 층이 없음", "Nothing to show"], M02_TreeSearch: ["항목 찾기", "Find item"], M02_TreeEmptyEdit: [ "항목이 없음 — 맨 위 줄을 오른쪽 클릭해 폴더 · 항목을 더함",