merge(M01): dev 합류 — 화면 계약 문서 충돌 해소 · 양쪽 문장 모두 살림

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
This commit is contained in:
2026-09-20 23:04:14 +09:00
co-authored by Claude Sonnet 5
39 changed files with 540 additions and 200 deletions
+10 -2
View File
@@ -23,7 +23,7 @@ export interface FileInfo {
version: string;
}
/** 하위 거름 한 갈래 — 인력 「구분」 · 기계 「세부분류」 · 장 그룹은 원문+부문(서버가 모음). */
/** 하위 거름 한 갈래 — 인력·기계 모두 「구분」 · 장 그룹은 원문+부문(서버가 모음). */
export interface SubInfo {
name: string;
book: string | null;
@@ -41,6 +41,13 @@ export interface RowsPage {
refs: Record<string, string>;
}
/** 소요량·계수 표의 용도 — 공종(원문 절 이름) · 대상(인력 · 기계 · 재료 · 할증 · 환산 · 작업량 조건) · 이 표를 쓰는 로직 키. */
export interface TableUsage {
공종: string;
대상: string[];
로직키: string[];
}
export interface TableHead {
file: string;
: string;
@@ -133,7 +140,8 @@ export const fetchTables = (
q: string,
page: number,
size: number,
): Promise<TablesPage> => get("/tables", { group, sub, detail, q, page, size });
usage = "",
): Promise<TablesPage> => get("/tables", { group, sub, detail, q, page, size, usage });
export const fetchTable = (
file: string,
+2 -1
View File
@@ -95,8 +95,9 @@ def get_tables(
q: str = "",
page: int = 1,
size: int = 30,
usage: str = "",
) -> dict:
return _call(store.tables, file, group, sub, detail, q, page, size)
return _call(store.tables, file, group, sub, detail, q, page, size, usage)
@router.get("/table")
+9 -4
View File
@@ -135,7 +135,8 @@ _STATES = ("공표", "산정", "미공표", "미확보", "추정") # 인력 「
def subs(file: str = "", group: str = "") -> dict:
"""하위 거름 목록 — 한 테이블 파일은 머리 묶음(인력 「구분」 · 기계 「원문」) ·
"""하위 거름 목록 — 한 테이블 파일은 머리 묶음(인력 · 기계 모두 「구분」 → 「상세구분」 ·
기계는 「원문」(건설품셈 · 산림품셈)도 머리에 있으나 「구분」 이 우선) ·
장 그룹(소요량 · 계수 · 로직)은 장 파일에서 모음(구분 = 원문 + 부문 · 상세구분 = 장 · 차례대로)."""
if group:
if group not in cm.mf.GROUPS:
@@ -189,9 +190,9 @@ def rows(
) -> dict:
data, version = read(file)
hits = [r for r in data.get(items_key(data)) or [] if _hit(r, q)]
if sub: # 인력 구분 · 기계 원문
if sub: # 인력·기계 구분(우선) · 기계 원문(책)도 받음
hits = [r for r in hits if sub in {r.get(s) for s in cm.MERGED.values()}]
if detail: # 인력 상세구분
if detail: # 인력 상세구분 · 기계 상세구분(기종)
hits = [r for r in hits if r.get("상세구분") == detail]
if state: # 인력 상태
hits = [r for r in hits if r.get("상태") == state]
@@ -232,8 +233,10 @@ def tables(
q: str = "",
page: int = 1,
size: int = 30,
usage: str = "",
) -> dict:
"""표 목록 — 파일 하나 또는 그룹 전체(구분 · 상세구분 · 찾기로 거름 · 장 차례대로 · 쪽 나눔)."""
"""표 목록 — 파일 하나 또는 그룹 전체(구분 · 상세구분 · 용도 대상 · 찾기로 거름 · 장 차례대로 · 쪽 나눔).
`usage` = 용도.대상(인력 · 기계 · 재료 · 할증 · 환산 · 작업량 조건) 하나."""
if file:
names = [file]
elif group in cm.mf.TABLE_GROUPS:
@@ -250,6 +253,8 @@ def tables(
continue
if detail and t.get("상세구분") != detail:
continue
if usage and usage not in ((t.get("용도") or {}).get("대상") or []):
continue
if _hit(t, q):
hits.append(
{
+3 -2
View File
@@ -11,10 +11,11 @@ import { t as L } from "@ui/ui_template_locale";
import { fetchFiles, fetchSubsAll, type FileInfo, type SubInfo } from "./M01_MasterData_Api_Fetch";
import { renderTree, type MakeRow } from "./M01_MasterData_UI_Tree";
/** 컨테이너마다 기억하는 화면 상태 — 찾기 글 · 쪽 (거름은 `m01.filter.*`) */
/** 컨테이너마다 기억하는 화면 상태 — 찾기 글 · 쪽 · 소요량·계수 표의 용도 대상 거름 (거름은 `m01.filter.*`) */
export interface View {
q: string;
page: number;
usage?: string;
}
const viewKey = (group: string): string => `m01.view.${group}`;
@@ -262,7 +263,7 @@ export function buildSide(
const one = files[0];
const dropped: Partial<Record<Group, { label: string; detail?: string }>> = {
: { label: L("M01_LaborSub"), detail: L("M01_LaborDetail") },
: { label: L("M01_MachineSub") },
: { label: L("M01_MachineSub"), detail: L("M01_MachineDetail") },
: { label: L("M01_LaborSub"), detail: L("M01_LaborDetail") },
: { label: L("M01_LaborSub"), detail: L("M01_LaborDetail") },
};
+2 -1
View File
@@ -101,7 +101,8 @@
}
.m01-master__head,
.m01-master__bar {
.m01-master__bar,
.m01-master__filter {
display: flex;
flex-wrap: wrap;
align-items: center;
+59 -8
View File
@@ -4,9 +4,15 @@
* → 표 하나(조건 칸 + 값 칸의 긴 줄) · 눌러 고침(노랑) · 줄 더하기·지우기
* ========================================================================== */
import { createButton, el, showToast } from "@ui/ui_template_elements";
import { createButton, createSelectField, el, showToast } from "@ui/ui_template_elements";
import { t as L } from "@ui/ui_template_locale";
import { fetchTable, fetchTables, type Row, type TableHead } from "./M01_MasterData_Api_Fetch";
import {
fetchTable,
fetchTables,
type Row,
type TableHead,
type TableUsage,
} from "./M01_MasterData_Api_Fetch";
import { saveView, type Pick } from "./M01_MasterData_UI_Side";
import {
onDraftChange,
@@ -27,16 +33,31 @@ import {
const LIST_SIZE = 30;
const LIST_COLS = ["키", "원문번호", "구분", "상세구분", "이름", "기준", "출처", "비고"] as const;
/** 용도 대상 거름 드롭다운 후보 — PLAN 1-1 셋째 줄 그대로. */
const USAGE_TARGETS = ["인력", "기계", "재료", "할증", "환산", "작업량 조건"];
/** 돌려받은 함수 = 이 화면을 걷을 때 부를 해제. */
export function renderTables(host: HTMLElement, pick: Pick, q: string): () => void {
let stop = (): void => {};
let usage = pick.view?.usage ?? "";
const list = (page = pick.view?.page ?? 1): void => {
stop();
stop = (): void => {};
void showList(host, pick, q, page, (file, key) => {
stop = openTable(host, file, key, () => list(page));
});
void showList(
host,
pick,
q,
usage,
page,
(file, key) => {
stop = openTable(host, file, key, () => list(page));
},
(next) => {
usage = next;
saveView(pick.group, { usage, page: 1 });
list(1);
},
);
};
list();
const off = onDraftChange(() => host.querySelector(".m01-master__tables") && markChanged(host));
@@ -58,17 +79,19 @@ async function showList(
host: HTMLElement,
pick: Pick,
q: string,
usage: string,
page: number,
open: (file: string, key: string) => void,
onUsageChange: (usage: string) => void,
): Promise<void> {
let got: { total: number; tables: TableHead[] };
try {
got = await fetchTables(pick.group, pick.sub, pick.detail, q, page, LIST_SIZE);
got = await fetchTables(pick.group, pick.sub, pick.detail, q, page, LIST_SIZE, usage);
} catch (error) {
showToast(error instanceof Error ? error.message : L("M01_LoadFailed"), "error");
return;
}
saveView(pick.group, { page });
saveView(pick.group, { page, usage });
const rows = got.tables.map((t) => {
const tr = el("tr", {
className: "m01-master__table-row",
@@ -81,8 +104,24 @@ async function showList(
tr.addEventListener("click", () => open(t.file, t.));
return tr;
});
const usageField = createSelectField({
options: [
{ value: "", text: L("M01_All") },
...USAGE_TARGETS.map((v) => ({ value: v, text: v })),
],
value: usage,
compact: true,
label: L("M01_UsageTarget"),
});
usageField.select.addEventListener("change", () => onUsageChange(usageField.select.value));
host.replaceChildren(
buildPager(got.total, LIST_SIZE, page, (p) => void showList(host, pick, q, p, open)),
el("div", { className: "m01-master__filter", children: [usageField.root] }),
buildPager(
got.total,
LIST_SIZE,
page,
(p) => void showList(host, pick, q, usage, p, open, onUsageChange),
),
el("div", {
className: "m01-master__grid-wrap m01-master__tables",
children: [
@@ -169,6 +208,7 @@ function openTable(host: HTMLElement, file: string, key: string, back: () => voi
const notes = ((table. ?? []) as string[]).map((n) =>
el("p", { className: "m01-master__muted", text: n }),
);
const usage = table. as TableUsage | undefined;
host.replaceChildren(
el("div", {
className: "m01-master__bar",
@@ -179,6 +219,17 @@ function openTable(host: HTMLElement, file: string, key: string, back: () => voi
className: "m01-master__muted",
text: `${key} · ${table. || "—"} · ${table. || ""}`,
}),
...(usage
? [
el("span", {
className: "m01-master__muted",
attrs: { title: usage.로직키.join(", ") },
text: `${L("M01_TableUsage")}: ${usage.} · ${usage..join(", ")} · ${L(
"M01_TableUsageLogicCount",
).replace("{value}", String(usage..length))}`,
}),
]
: []),
add,
],
}),
@@ -19,3 +19,10 @@
| 유료 물가지 (실무 관측: 물가정보·물가자료 중심) | 유료 구독 | 월간 | 미결정 — 실무 실측상 공사당 사급 잡자재 15종 내외만 의존 ([원가_기초데이터_원천 §5](../../../technical_info/01_임도/05_원가정보/원가_기초데이터_원천.md)) |
- 사용 방식·내역서 반영: [원가_기초데이터_원천 §4](../../../technical_info/01_임도/05_원가정보/원가_기초데이터_원천.md)
## 공공출처 원문 (2026-09-20)
| 폴더 | 내용 |
|---|---|
| 조달청_시설자재/ | 조달청 시설공사 자료실 「21년 하반기 시설자재 가격정보공개」 첨부 zip (게시 2021-09-24) |
| 경남교육청_일위대가/ | 2026년도 경상남도교육청 일위대가 xlsx 2개 (게시 2026-03-24 · 공공누리 상업적 이용금지·변경금지) |
+1 -1
View File
@@ -35,7 +35,7 @@
- `prices` = 호표 `요소``{ref, 이름, 규격, 단위, 값}`(단가 자동 칸) · 없는 요소는 `null` · `{이름}` 이 낀 원문번호·하위 로직 줄은 빠짐(계산 때 정해짐). 품셈재료는 `값` = 연결을 따라간 낮은 값(시험 계산용) · `출처` = 그 값의 열(`<자재품목 키>.<열>`) · 자재지역 후보는 `값` null(계산 때 정해짐).
- `elements` = 요소 찾기 창 — 그룹 전체에서 `q` 찾기 · `ref` = 식에 넣는 키 · 표형 그룹은 `값칸` 이 옴.
- `materials` = 재료 고르기 단계 — 로직 재료 줄 `요소` 가 조건 `{구분, 상세구분, 규격}` 이면 이 API 로 후보(방식 A·B·C 가 부품 `M01_MasterData_UI_Test_Pick.ts` 하나를 같이 씀 · 구분 → 상세구분 → 후보 순으로 좁힘). `값` 이 비어 있어도 후보로 둠. 옛 재료 줄(품셈재료 키)은 품셈재료 이름(없으면 이름 첫 낱말)으로 `pick?kind=price` 후보. 후보 글 = 이름 규격 · 값 있는 열 전부(물가자료 · 유통물가 …). 멈춤 까닭 `입력 「X」 없음` · `맞는 줄 0개` 는 방식 A·B·C 가 쉬운 말로 바꿔 보임(`plainReason`) · 빈 수 칸은 「값을 넣어 주세요」 안내 글.
- 소요량·계수 표의 `용도`({공종, 대상, 로직키}) = 방식 B 원문 표 미리보기 머리에 안내 · 칸이 없으면 안 보임.
- 소요량·계수 표의 `용도`({공종, 대상, 로직키}) = 방식 B 원문 표 미리보기 머리에 안내 · 칸이 없으면 안 보임 · `/tables``usage``용도.대상` 거름(기계 `sub`·`detail` 은 인력과 같이 구분 → 상세구분).
- `pick` = 고르기 창 — `price` = `재료_자재품목.json`(값 = 값 열 다섯 가운데 낮은 값 · `관급` = 관급 값 있음) ref 키 · `job` = `인력.json` 값 있는 공표 직종(구분 「미확보」 빼고) ref 키.
## 3. 시험 계산
@@ -0,0 +1,24 @@
# 로직 재료 고르기 변환 검증 (읽기 전용)
대상 커밋 `1bcc957e`(품셈재료 고르기 칸 · 로직 재료 줄 일괄 변환) 앞뒤 비교 — sub1 참고용.
앞 상태는 `git archive 1bcc957e^ resources/master_data ...``tmp/pre_master_data/` 에 꺼내 대조(워크트리 안 만듦).
## ① 통과 수 앞뒤
로직 458개 줄 각각에 자동 표본 입력(고르기 입력=첫 후보, 범위 입력=중간값, 그 밖=1) 하나씩 넣어 `mf.run` 실행 — 통과 92 → 95(새로 멈춤 0, 새로 통과 3). 커밋 메시지의 1119 → 1203 은 sub1이 여러 표본 조합으로 돌린 결과로 보임 — 이 검증은 표본 1개뿐이라 수치가 다름(방법 차이, 임의 판정).
## ② 금액 달라진 로직
앞뒤 다 통과한 로직 중 금액(결과 또는 비목 합)이 달라진 것 0건.
## ③ 고르기 조건인데 후보 0인 줄
로직 호표 중 재료 고르기 조건 287줄 — 후보 0인 줄 0건.
## ④ 호표 단위와 다른 단위의 후보를 집은 줄
287줄 중 271줄 — 고르기 후보군에 호표 단위와 다른 단위 섞임(예: GC000319 프라이머 호표단위 kg인데 후보에 ℓ 섞임 · GC000723 플럭스 kg인데 ℓ 섞임). 조건이 구분만 걸리고 상세구분·규격이 안 걸린 경우 후보가 수백 개까지 넓어져 단위가 섞이는 걸로 보임 — 실제 계산은 `pick()`이 대표 줄이나 첫 후보 하나만 쓰므로 당장 금액 오류는 아니나, 조건을 더 좁히면(상세구분·규격 채움) 안전.
## 확인 범위
- 표본 입력 자동 생성(입력마다 값 1개)이라 실제 화면 조작 조합 전부는 아님 — 정적 일관성(③④)과 대표 표본 계산(①②)만.
@@ -0,0 +1,44 @@
# 재료 공공출처 검증
안티그래비티 조사(ag_a1_raw) 12건을 실제로 열어 대조. 마스터 값은 넣지 않음.
## 출처별 결과
| 출처 | 주소 | 결과 |
|---|---|---|
| 조달청 시설공사 자료실 (21년 하반기) | pps.go.kr/kor/bbs/view.do?bbsSn=2109240002&key=00038 | 열림 · 첨부 zip 받음 · 잡석·유공관 없음 |
| 경상남도교육청 일위대가(건축, 토목) 2026 | gne.go.kr/pr/user/bbs/BD_selectBbs.do?q_bbsSn=1464&q_bbsDocNo=20260324150215893 | 열림 · xlsx 2개 받음 · 값 대조됨 |
| 국가법령정보센터 산림용종묘가격고시 | law.go.kr/행정규칙/산림용종묘가격고시 | 주소 오류페이지 · 내용 못 엶 |
## 재료별
| 재료 | 출처 | 판정 | 받는 법 | 갱신 |
|---|---|---|---|---|
| 합판 | 경남교육청 일위대가 xlsx · 단가대비표 | 확인됨 — 품명 「내수합판, 1급, 12*1220*2440mm」 M2 · 조달청가격 11,268 · 적용 11,287.28 (품명은 「합판 1급」이 아님) | 게시글 첨부 xlsx 내려받기 | 연 1~2회 |
| 각재 | 같음 | 확인됨 — 품명 「각재, 외송」 M3 · 511,929 · 적용 595,808.38 (「미송각재」는 틀림) | 같음 | 같음 |
| 유로폼 | 같음 | 확인됨 — 「건설용거푸집, 강, 600*1200*63.5mm」 매 · 조달청가격 27,075 (적용 29,000) | 같음 | 같음 |
| 강관동바리 | 같음 | 단품 단가 없음(조사 결과 그대로) — 강관동바리 설치·해체 일위대가만 있음 | — | — |
| 비계(강관·클램프) | 같음 | 확인됨 — 「강관비계, 비계파이프, 48.6*2.3mm」 M · 조달청가격 4,037 · 적용 3,850 / 「클램프 고정, 자동」 개 1,590 | 같음 | 같음 |
| 철선 | 같음 | 확인됨 — 「철선, 어닐링, ∮4.0mm」 kg 1,368 | 같음 | 같음 |
| 못 | 같음 | 확인됨 — 「일반못, 50mm」 kg 1,387 | 같음 | 같음 |
| 폼타이 | 같음 | 단품 단가 없음(조사 결과 그대로 · 이쪽에서 확인 안 함) | — | — |
| 유공관 | 조달청 21하 zip | 틀림 — zip 의 xlsx 안에 유공관 없음 (건축 xls 는 안 열었음, 토목 자재라 해당 없음) | — | — |
| 잡석 | 조달청 21하 zip | 틀림 — zip 의 xlsx 안에 잡석 없음 · 조사의 「토목.xlsx R582 16,000원」 없음 · 나라장터 API 스냅샷에도 잡석 0건 | — | — |
| 종자(산림용) | 산림청 고시(국가법령정보센터) | 못 엶 — 주소가 오류페이지 · 314,600 확인 못 함 | 법령센터에서 고시 본문 열람 | 연 1회(조사 주장) |
| 방부목 | — | 단독 공표값 없음(조사 결과 그대로 · 확인 안 함) | — | — |
## 조달청 시설자재가격 zip 대 나라장터 시설공통자재
- 같은 계열 — 「시설공통자재」 토목·건축·기계·전기 4분야 · 조달청 공사원가기준과 · 연 2회 조사.
- 시점 다름 — zip 은 2021 하반기 · 옛 스냅샷(`나라장터_시설공통자재_2026-08-14`)은 고시일 2024-10~2026-04.
- 값 대조는 안 함 — 두 쪽에 겹치는 품목이 잡석·유공관에 없어 판정 못 함.
- 이 게시글은 2021년 것 — 최신 반기 자료는 같은 자료실 다른 글.
## 이용 조건
- 경남교육청 일위대가 = 공공누리 「출처표시 + 상업적 이용금지 + 변경금지」 — 마스터 값으로 쓸 때 조건 확인 필요.
## 받아 둔 원문
- `resources/knowledge/original/원가계산/자재단가/조달청_시설자재/시설자재가격_21하.zip`
- `resources/knowledge/original/원가계산/자재단가/경남교육청_일위대가/일위대가_1.xlsx` (건축) · `일위대가_2.xlsx` (토목)
+113 -113
View File
@@ -6,116 +6,116 @@
- 「비슷한 이름」 칸 — 이름 글자만 겹친 자재품목 줄(종류·규격이 달라 잇지 않음)
- 재료 111 줄
| 키 | 이름 | 규격 | 단위 | 쓰는 로직 키 | 원문 절 | 비슷한 이름 |
|---|---|---|---|---|---|---|
| MP000012 | 사다리 | ∅19㎜ 아연도금 및 스테인레스 | ton | GF000181 | 산림품셈 12-16 | 맨홀사다리(PE코팅) |
| MP000038 | 지수활제 | | g | GF000173 | 산림품셈 12-11-1 | |
| MP000048 | JOINT FILLER | | ㎡ | GF000197, GF000208 | 산림품셈 12-27-2; 산림품셈 12-34-4 | |
| MP000052 | 스페이셔(몰탈 블록) | | | GF000200 | 산림품셈 12-29 | 스페이셔 |
| MP000055 | 스티로폴 | T=20㎜ | ㎡ | GF000202 | 산림품셈 12-30-2 | |
| MP000056 | TAR PAPER | T=15㎜ | ㎡ | GF000202 | 산림품셈 12-30-2 | |
| MP000057 | 채움재(아스팔트) | | ㎥ | GF000202 | 산림품셈 12-30-2 | 고경도줄눈채움재 |
| MP000060 | 콘크리트 표면 강화재(하드너) | | | GF000209 | 산림품셈 12-35 | |
| MP000065 | 틈메우기돌 | | ㎥ | GF000223 | 산림품셈 13-5-1 주④ | |
| MP000070 | 깃발 | | 개 | GF000081 | 산림품셈 8-6-1 | |
| MP000076 | 피복제 | 화이버/펄프류 | ㎏ | GC000145 | 건설품셈 공통 4-1-3 재료량 | |
| MP000077 | 침식방지안정제 | 합성접착제 | ㎏ | GC000145 | 건설품셈 공통 4-1-3 재료량 | |
| MP000078 | 색소 | 착색제 | ㎏ | GC000145 | 건설품셈 공통 4-1-3 재료량 | |
| MP000082 | 에폭시 | | kg | GC000337 | 건설품셈 토목 1-9-4 낙석방지망 재료(참고자료) | KP 주철직관(2종)-에폭시분체, KP 주철직관(2종)에폭시분체/관급, PFM 줄눈재(에폭시형1K) 외 |
| MP000095 | BASECHANNEL | 두께 2.0㎜ 이상 | m | GC000001 | 건설품셈 공통 2-2-3 주자재 | |
| MP000096 | TOPCHANNEL | 두께 2.0㎜ 이상 | m | GC000001 | 건설품셈 공통 2-2-3 주자재 | |
| MP000101 | 내부PANEL (목재문) | 1,200×2,400㎜ | 매 | GC000001 | 건설품셈 공통 2-2-3 주자재 | |
| MP000113 | 축중계(이동식) | | 대 | GC000003 | 건설품셈 공통 2-2-6 | |
| MP000129 | 보호막 | | ㎡ | GC000061 | 건설품셈 공통 2-10-1 재료량 | |
| MP000134 | 모래주머니 | | 개 | GC000181 | 건설품셈 공통 5-2-1 매트고정 재료량 | |
| MP000139 | HDPE 시트 | 22.5㎜ | ㎡ | GC000197 | 건설품셈 공통 5-4-1 재료량 | |
| MP000144 | 보조강재 | | ㎏ | GC000559 | 건설품셈 건축 1-1-2 | |
| MP000148 | FLUX | | ㎏ | GC000560 | 건설품셈 건축 1-1-4 | |
| MP000150 | 질석 | | ㎏ | GC000573 | 건설품셈 건축 1-4-3 | |
| MP000169 | 정배지 | | ㎡ | GC000618 | 건설품셈 건축 5-3-7 | |
| MP000172 | 알루미늄핀 | | 개 | GC000623 | 건설품셈 건축 5-4-4 | |
| MP000176 | 표준보강메시 | | ㎡ | GC000628 | 건설품셈 건축 5-4-9 | |
| MP000177 | 고강도메시 | | ㎡ | GC000629 | 건설품셈 건축 5-4-9 | |
| MP000201 | 실리콘 | | ㎏ | GC000752 | 건설품셈 기계설비 2-2-6 | 실리콘실란트, 실리콘접착제, 컬러강판(실리콘수지) 외 |
| MP000209 | 버너 | 압접가열용 | 개 | GC000360 | 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료) | 개장로용 가스버너, 버너응급시스템, 재연소로버너(분리형) 외 |
| MP000210 | 노즐 | 압접버너용 | 개 | GC000360 | 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료) | |
| MP000211 | 테르밋용재 | 점화용 | 포 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | |
| MP000212 | 몰드 | 테르밋 용접용 | 개 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | |
| MP000213 | 골무 | 테르밋 용접용 | 개 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | 식생축조블록 500(골무늬) |
| MP000214 | 퓨즈 | 테르밋 용접용 | 개 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | 고리퓨즈, 전선퓨즈(켓치홀드), 통형퓨즈 |
| MP000216 | 철구(Shot ball) | | ㎏ | GC000375, GC000822 | 건설품셈 토목 5-2-1 소재 표면처리; 건설품셈 기계설비 9-2-1 | 철구조물(과속), 철구조물(신호) |
| MP000218 | 철편(Grit) | | ㎏ | GC000376 | 건설품셈 토목 5-2-2 제품 표면처리 | |
| MP000220 | 동력 Brush | | 개 | GC000822 | 건설품셈 기계설비 9-2-1 | |
| MP000221 | Wire Brush | | 개 | GC000822, GC000993 | 건설품셈 기계설비 9-2-1; 건설품셈 기계설비 13-11-5 | |
| MP000223 | 컴파운드 | | g | GC000855, GC000859 | 건설품셈 기계설비 11-1-3; 건설품셈 기계설비 11-3-3 | |
| MP000235 | 슈 | 표준관입시험용 | 개 | GC000433 | 건설품셈 토목 8-2-1 | |
| MP000239 | 베인 전용로드 | ø16×750 | 본 | GC000435 | 건설품셈 토목 8-2-2 | |
| MP000240 | 로드 | ø40.5×1m | 본 | GC000435 | 건설품셈 토목 8-2-2 | |
| MP000241 | 표준사 | 평판재하시험용 | ㎏ | GC000436 | 건설품셈 토목 8-2-4 | |
| MP000242 | 단독콘 | 정재하시험용 | 개 | GC000438 | 건설품셈 토목 8-2-6 | |
| MP000250 | Lagging Sheet | | ㎡ | GC000901 | 건설품셈 기계설비 13-3-1 | |
| MP000253 | 코크스 | | ㎏ | GC000931, GC000932, GC000935, GC000936 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2; 건설품셈 기계설비 13-6-4 | |
| MP000254 | Sand Paper | 각종 | Sh | GC000931 | 건설품셈 기계설비 13-6-1 | |
| MP000255 | 여과기 | 14"×14〃 | Sh | GC000931 | 건설품셈 기계설비 13-6-1 | |
| MP000257 | 세유 | C-3 | | GC000931 | 건설품셈 기계설비 13-6-1 | |
| MP000258 | Grease | | ㎏ | GC000931, GC000932, GC000986, GC000993 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2; 건설품셈 기계설비 13-10-2; 건설품셈 기계설비 13-11-5 | |
| MP000259 | Machine oil | | | GC000931, GC000932, GC000986 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2; 건설품셈 기계설비 13-10-2 | |
| MP000260 | Gasoline | | | GC000931, GC000932 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2 | |
| MP000261 | Galvanized wire | #8#16 | ㎏ | GC000931, GC000932 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2 | |
| MP000262 | Grinding Wheel | 8"ø×25m/m t | EA | GC000931 | 건설품셈 기계설비 13-6-1 | |
| MP000265 | 보일유 | | | GC000931, GC000932 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2 | |
| MP000269 | 세유 | 03 | | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000271 | Wire brush | 각종 3/81.6" | EA | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000272 | Hack saw blade | 12" | EA | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000273 | Drill | 1.6ø∼3.8ø | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000274 | Grinder wheel | 8"ø∼25m/m t | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000275 | File | 각종 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000276 | Oil stone | 각종(황, 중, 세) | Sh | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000280 | Sand Paper | | Sh | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000281 | 광목 | | m | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000285 | 땜납 | 50 : 50 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | 봉땜납 |
| MP000286 | 붕사 | | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000287 | Compound | 절연용 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000288 | 3-Bond | 밀착제 No.2 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | |
| MP000290 | Nozzle | | 개 | GC000933, GC000934, GC000938 | 건설품셈 기계설비 13-6-3; 건설품셈 기계설비 13-6-6 | |
| MP000293 | 세유 | | | GC000939, GC000986, GC000993 | 건설품셈 기계설비 13-6-7; 건설품셈 기계설비 13-10-2; 건설품셈 기계설비 13-11-5 | |
| MP000294 | 전기용접 | | ㎏ | GC000940 | 건설품셈 기계설비 13-6-8 | |
| MP000295 | 탄소봉 | | 본 | GC000940 | 건설품셈 기계설비 13-6-8 | |
| MP000296 | Grinder | 12"ø | 개 | GC000940 | 건설품셈 기계설비 13-6-8 | |
| MP000297 | 돌 | 65×305 | 매 | GC000940 | 건설품셈 기계설비 13-6-8 | |
| MP000298 | Film | 2회 | ㎏ | GC000940 | 건설품셈 기계설비 13-6-8 | FILM CASSETTE |
| MP000299 | 탄소봉 | 8ø×350㎜ | 본 | GC000941, GC000942 | 건설품셈 기계설비 13-6-9; 건설품셈 기계설비 13-6-10 | |
| MP000301 | 노즐 | | 개 | GC000941, GC000943, GC000948 | 건설품셈 기계설비 13-6-9; 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | |
| MP000302 | 탈에폭시레신 | | | GC000941 | 건설품셈 기계설비 13-6-9 | |
| MP000303 | 그라인더돌 | 12"ø | 개 | GC000942, GC000943, GC000948 | 건설품셈 기계설비 13-6-10; 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | |
| MP000304 | Film | 65×305 | 매 | GC000942 | 건설품셈 기계설비 13-6-10 | FILM CASSETTE |
| MP000305 | Tar epoxy | | | GC000942 | 건설품셈 기계설비 13-6-10 | |
| MP000306 | 마린B/T(선박도로용) | | | GC000942 | 건설품셈 기계설비 13-6-10 | |
| MP000308 | Zinc primer | 15μ | ㎏ | GC000943, GC000948 | 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | |
| MP000309 | Tar Epoxy | 125μ | ㎾h | GC000943, GC000948 | 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | |
| MP000310 | Tar Epoxy | 2회 | | GC000944 | 건설품셈 기계설비 13-6-12 | |
| MP000314 | drill | 1/4" | 개 | GC000947 | 건설품셈 기계설비 13-6-15 | |
| MP000315 | drill | 11/15" | 개 | GC000947 | 건설품셈 기계설비 13-6-15 | |
| MP000319 | Tar Epoxy | 1회도장 | | GC000950 | 건설품셈 기계설비 13-6-16 | |
| MP000325 | M/C OIL | | | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000326 | Grinder Wheel | | 매 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000327 | Oil Stone | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000328 | File | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000330 | Drill | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000334 | Compound | | ㎏ | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000335 | 3-Bond | | ㎏ | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000336 | Seal Tape | | 통 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000337 | 백묵 | | 통 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000338 | 석필 | | 통 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000340 | 흑 Welder Glass | | 연 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000341 | 백 Welder Glass | | 연 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000342 | 오스터날 | | SET | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000343 | 탭 | | SET | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000344 | 다이스 | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000345 | 정 | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000349 | Center Punch | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000351 | 대강 | | ㎏ | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000352 | 유지 | | | GC000993 | 건설품셈 기계설비 13-11-5 | 섬유지(마감용), 섬유지(보강용) |
| MP000353 | Washer | | 매 | GC000993 | 건설품셈 기계설비 13-11-5 | |
| MP000359 | 중유 | | | GC000941, GC000943, GC000948 | 건설품셈 기계설비 13-6-9; 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | 박 리 제(중유) |
| MP000363 | 아스팔트싱글 | 336×1,000×3㎜ | 매 | GC000654 | 건설품셈 건축 7-1-5 | |
| 키 | 이름 | 규격 | 단위 | 쓰는 로직 키 | 원문 절 | 비슷한 이름 | 조달청 |
|---|---|---|---|---|---|---|---|
| MP000012 | 사다리 | ∅19㎜ 아연도금 및 스테인레스 | ton | GF000181 | 산림품셈 12-16 | 맨홀사다리(PE코팅) | 조달청에 없음(2026-09-20 조회) |
| MP000038 | 지수활제 | | g | GF000173 | 산림품셈 12-11-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000048 | JOINT FILLER | | ㎡ | GF000197, GF000208 | 산림품셈 12-27-2; 산림품셈 12-34-4 | | 조달청에 없음(2026-09-20 조회) |
| MP000052 | 스페이셔(몰탈 블록) | | | GF000200 | 산림품셈 12-29 | 스페이셔 | 조달청에 없음(2026-09-20 조회) |
| MP000055 | 스티로폴 | T=20㎜ | ㎡ | GF000202 | 산림품셈 12-30-2 | | 조달청에 없음(2026-09-20 조회) · 발포폴리스티렌 2줄은 단위·규격이 달라 안 넣음 |
| MP000056 | TAR PAPER | T=15㎜ | ㎡ | GF000202 | 산림품셈 12-30-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000057 | 채움재(아스팔트) | | ㎥ | GF000202 | 산림품셈 12-30-2 | 고경도줄눈채움재 | 조달청에 없음(2026-09-20 조회) |
| MP000060 | 콘크리트 표면 강화재(하드너) | | | GF000209 | 산림품셈 12-35 | | 조달청에 없음(2026-09-20 조회) |
| MP000065 | 틈메우기돌 | | ㎥ | GF000223 | 산림품셈 13-5-1 주④ | | 조달청에 없음(2026-09-20 조회) |
| MP000070 | 깃발 | | 개 | GF000081 | 산림품셈 8-6-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000076 | 피복제 | 화이버/펄프류 | ㎏ | GC000145 | 건설품셈 공통 4-1-3 재료량 | | 조달청에 없음(2026-09-20 조회) |
| MP000077 | 침식방지안정제 | 합성접착제 | ㎏ | GC000145 | 건설품셈 공통 4-1-3 재료량 | | 조달청에 없음(2026-09-20 조회) |
| MP000078 | 색소 | 착색제 | ㎏ | GC000145 | 건설품셈 공통 4-1-3 재료량 | | 조달청에 없음(2026-09-20 조회) |
| MP000082 | 에폭시 | | kg | GC000337 | 건설품셈 토목 1-9-4 낙석방지망 재료(참고자료) | KP 주철직관(2종)-에폭시분체, KP 주철직관(2종)에폭시분체/관급, PFM 줄눈재(에폭시형1K) 외 | 조달청에 없음(2026-09-20 조회) |
| MP000095 | BASECHANNEL | 두께 2.0㎜ 이상 | m | GC000001 | 건설품셈 공통 2-2-3 주자재 | | 조달청에 없음(2026-09-20 조회) |
| MP000096 | TOPCHANNEL | 두께 2.0㎜ 이상 | m | GC000001 | 건설품셈 공통 2-2-3 주자재 | | 조달청에 없음(2026-09-20 조회) |
| MP000101 | 내부PANEL (목재문) | 1,200×2,400㎜ | 매 | GC000001 | 건설품셈 공통 2-2-3 주자재 | | 조달청에 없음(2026-09-20 조회) |
| MP000113 | 축중계(이동식) | | 대 | GC000003 | 건설품셈 공통 2-2-6 | | 조달청에 없음(2026-09-20 조회) |
| MP000129 | 보호막 | | ㎡ | GC000061 | 건설품셈 공통 2-10-1 재료량 | | 조달청에 없음(2026-09-20 조회) |
| MP000134 | 모래주머니 | | 개 | GC000181 | 건설품셈 공통 5-2-1 매트고정 재료량 | | 조달청에 없음(2026-09-20 조회) |
| MP000139 | HDPE 시트 | 22.5㎜ | ㎡ | GC000197 | 건설품셈 공통 5-4-1 재료량 | | 조달청에 없음(2026-09-20 조회) |
| MP000144 | 보조강재 | | ㎏ | GC000559 | 건설품셈 건축 1-1-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000148 | FLUX | | ㎏ | GC000560 | 건설품셈 건축 1-1-4 | | 조달청에 없음(2026-09-20 조회) |
| MP000150 | 질석 | | ㎏ | GC000573 | 건설품셈 건축 1-4-3 | | 조달청에 없음(2026-09-20 조회) |
| MP000169 | 정배지 | | ㎡ | GC000618 | 건설품셈 건축 5-3-7 | | 조달청에 없음(2026-09-20 조회) |
| MP000172 | 알루미늄핀 | | 개 | GC000623 | 건설품셈 건축 5-4-4 | | 조달청에 없음(2026-09-20 조회) |
| MP000176 | 표준보강메시 | | ㎡ | GC000628 | 건설품셈 건축 5-4-9 | | 조달청에 없음(2026-09-20 조회) |
| MP000177 | 고강도메시 | | ㎡ | GC000629 | 건설품셈 건축 5-4-9 | | 조달청에 없음(2026-09-20 조회) |
| MP000201 | 실리콘 | | ㎏ | GC000752 | 건설품셈 기계설비 2-2-6 | 실리콘실란트, 실리콘접착제, 컬러강판(실리콘수지) 외 | 조달청에 없음(2026-09-20 조회) |
| MP000209 | 버너 | 압접가열용 | 개 | GC000360 | 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료) | 개장로용 가스버너, 버너응급시스템, 재연소로버너(분리형) 외 | 조달청에 없음(2026-09-20 조회) |
| MP000210 | 노즐 | 압접버너용 | 개 | GC000360 | 건설품셈 토목 4-5-1 가스압접 소모재료(참고자료) | | 조달청에 없음(2026-09-20 조회) |
| MP000211 | 테르밋용재 | 점화용 | 포 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | | 조달청에 없음(2026-09-20 조회) |
| MP000212 | 몰드 | 테르밋 용접용 | 개 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | | 조달청에 없음(2026-09-20 조회) |
| MP000213 | 골무 | 테르밋 용접용 | 개 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | 식생축조블록 500(골무늬) | 조달청에 없음(2026-09-20 조회) |
| MP000214 | 퓨즈 | 테르밋 용접용 | 개 | GC000361 | 건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료) | 고리퓨즈, 전선퓨즈(켓치홀드), 통형퓨즈 | 조달청에 없음(2026-09-20 조회) |
| MP000216 | 철구(Shot ball) | | ㎏ | GC000375, GC000822 | 건설품셈 토목 5-2-1 소재 표면처리; 건설품셈 기계설비 9-2-1 | 철구조물(과속), 철구조물(신호) | 조달청에 없음(2026-09-20 조회) |
| MP000218 | 철편(Grit) | | ㎏ | GC000376 | 건설품셈 토목 5-2-2 제품 표면처리 | | 조달청에 없음(2026-09-20 조회) |
| MP000220 | 동력 Brush | | 개 | GC000822 | 건설품셈 기계설비 9-2-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000221 | Wire Brush | | 개 | GC000822, GC000993 | 건설품셈 기계설비 9-2-1; 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000223 | 컴파운드 | | g | GC000855, GC000859 | 건설품셈 기계설비 11-1-3; 건설품셈 기계설비 11-3-3 | | 조달청에 없음(2026-09-20 조회) |
| MP000235 | 슈 | 표준관입시험용 | 개 | GC000433 | 건설품셈 토목 8-2-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000239 | 베인 전용로드 | ø16×750 | 본 | GC000435 | 건설품셈 토목 8-2-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000240 | 로드 | ø40.5×1m | 본 | GC000435 | 건설품셈 토목 8-2-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000241 | 표준사 | 평판재하시험용 | ㎏ | GC000436 | 건설품셈 토목 8-2-4 | | 조달청에 없음(2026-09-20 조회) |
| MP000242 | 단독콘 | 정재하시험용 | 개 | GC000438 | 건설품셈 토목 8-2-6 | | 조달청에 없음(2026-09-20 조회) |
| MP000250 | Lagging Sheet | | ㎡ | GC000901 | 건설품셈 기계설비 13-3-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000253 | 코크스 | | ㎏ | GC000931, GC000932, GC000935, GC000936 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2; 건설품셈 기계설비 13-6-4 | | 조달청에 없음(2026-09-20 조회) |
| MP000254 | Sand Paper | 각종 | Sh | GC000931 | 건설품셈 기계설비 13-6-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000255 | 여과기 | 14"×14〃 | Sh | GC000931 | 건설품셈 기계설비 13-6-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000257 | 세유 | C-3 | | GC000931 | 건설품셈 기계설비 13-6-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000258 | Grease | | ㎏ | GC000931, GC000932, GC000986, GC000993 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2; 건설품셈 기계설비 13-10-2; 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000259 | Machine oil | | | GC000931, GC000932, GC000986 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2; 건설품셈 기계설비 13-10-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000260 | Gasoline | | | GC000931, GC000932 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000261 | Galvanized wire | #8#16 | ㎏ | GC000931, GC000932 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000262 | Grinding Wheel | 8"ø×25m/m t | EA | GC000931 | 건설품셈 기계설비 13-6-1 | | 조달청에 없음(2026-09-20 조회) |
| MP000265 | 보일유 | | | GC000931, GC000932 | 건설품셈 기계설비 13-6-1; 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000269 | 세유 | 03 | | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000271 | Wire brush | 각종 3/81.6" | EA | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000272 | Hack saw blade | 12" | EA | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000273 | Drill | 1.6ø∼3.8ø | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000274 | Grinder wheel | 8"ø∼25m/m t | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000275 | File | 각종 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000276 | Oil stone | 각종(황, 중, 세) | Sh | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000280 | Sand Paper | | Sh | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000281 | 광목 | | m | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000285 | 땜납 | 50 : 50 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | 봉땜납 | 조달청에 없음(2026-09-20 조회) |
| MP000286 | 붕사 | | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000287 | Compound | 절연용 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000288 | 3-Bond | 밀착제 No.2 | ㎏ | GC000932 | 건설품셈 기계설비 13-6-2 | | 조달청에 없음(2026-09-20 조회) |
| MP000290 | Nozzle | | 개 | GC000933, GC000934, GC000938 | 건설품셈 기계설비 13-6-3; 건설품셈 기계설비 13-6-6 | | 조달청에 없음(2026-09-20 조회) |
| MP000293 | 세유 | | | GC000939, GC000986, GC000993 | 건설품셈 기계설비 13-6-7; 건설품셈 기계설비 13-10-2; 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000294 | 전기용접 | | ㎏ | GC000940 | 건설품셈 기계설비 13-6-8 | | 조달청에 없음(2026-09-20 조회) |
| MP000295 | 탄소봉 | | 본 | GC000940 | 건설품셈 기계설비 13-6-8 | | 조달청에 없음(2026-09-20 조회) |
| MP000296 | Grinder | 12"ø | 개 | GC000940 | 건설품셈 기계설비 13-6-8 | | 조달청에 없음(2026-09-20 조회) |
| MP000297 | 돌 | 65×305 | 매 | GC000940 | 건설품셈 기계설비 13-6-8 | | 조달청에 없음(2026-09-20 조회) |
| MP000298 | Film | 2회 | ㎏ | GC000940 | 건설품셈 기계설비 13-6-8 | FILM CASSETTE | 조달청에 없음(2026-09-20 조회) |
| MP000299 | 탄소봉 | 8ø×350㎜ | 본 | GC000941, GC000942 | 건설품셈 기계설비 13-6-9; 건설품셈 기계설비 13-6-10 | | 조달청에 없음(2026-09-20 조회) |
| MP000301 | 노즐 | | 개 | GC000941, GC000943, GC000948 | 건설품셈 기계설비 13-6-9; 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | | 조달청에 없음(2026-09-20 조회) |
| MP000302 | 탈에폭시레신 | | | GC000941 | 건설품셈 기계설비 13-6-9 | | 조달청에 없음(2026-09-20 조회) |
| MP000303 | 그라인더돌 | 12"ø | 개 | GC000942, GC000943, GC000948 | 건설품셈 기계설비 13-6-10; 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | | 조달청에 없음(2026-09-20 조회) |
| MP000304 | Film | 65×305 | 매 | GC000942 | 건설품셈 기계설비 13-6-10 | FILM CASSETTE | 조달청에 없음(2026-09-20 조회) |
| MP000305 | Tar epoxy | | | GC000942 | 건설품셈 기계설비 13-6-10 | | 조달청에 없음(2026-09-20 조회) |
| MP000306 | 마린B/T(선박도로용) | | | GC000942 | 건설품셈 기계설비 13-6-10 | | 조달청에 없음(2026-09-20 조회) |
| MP000308 | Zinc primer | 15μ | ㎏ | GC000943, GC000948 | 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | | 조달청에 없음(2026-09-20 조회) |
| MP000309 | Tar Epoxy | 125μ | ㎾h | GC000943, GC000948 | 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | | 조달청에 없음(2026-09-20 조회) |
| MP000310 | Tar Epoxy | 2회 | | GC000944 | 건설품셈 기계설비 13-6-12 | | 조달청에 없음(2026-09-20 조회) |
| MP000314 | drill | 1/4" | 개 | GC000947 | 건설품셈 기계설비 13-6-15 | | 조달청에 없음(2026-09-20 조회) |
| MP000315 | drill | 11/15" | 개 | GC000947 | 건설품셈 기계설비 13-6-15 | | 조달청에 없음(2026-09-20 조회) |
| MP000319 | Tar Epoxy | 1회도장 | | GC000950 | 건설품셈 기계설비 13-6-16 | | 조달청에 없음(2026-09-20 조회) |
| MP000325 | M/C OIL | | | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000326 | Grinder Wheel | | 매 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000327 | Oil Stone | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000328 | File | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000330 | Drill | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000334 | Compound | | ㎏ | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000335 | 3-Bond | | ㎏ | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000336 | Seal Tape | | 통 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000337 | 백묵 | | 통 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000338 | 석필 | | 통 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000340 | 흑 Welder Glass | | 연 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000341 | 백 Welder Glass | | 연 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000342 | 오스터날 | | SET | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000343 | 탭 | | SET | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000344 | 다이스 | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000345 | 정 | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000349 | Center Punch | | 개 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000351 | 대강 | | ㎏ | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000352 | 유지 | | | GC000993 | 건설품셈 기계설비 13-11-5 | 섬유지(마감용), 섬유지(보강용) | 조달청에 없음(2026-09-20 조회) |
| MP000353 | Washer | | 매 | GC000993 | 건설품셈 기계설비 13-11-5 | | 조달청에 없음(2026-09-20 조회) |
| MP000359 | 중유 | | | GC000941, GC000943, GC000948 | 건설품셈 기계설비 13-6-9; 건설품셈 기계설비 13-6-11; 건설품셈 기계설비 13-6-17 | 박 리 제(중유) | 조달청에 없음(2026-09-20 조회) |
| MP000363 | 아스팔트싱글 | 336×1,000×3㎜ | 매 | GC000654 | 건설품셈 건축 7-1-5 | | 조달청에 없음(2026-09-20 조회) |
+12 -4
View File
@@ -20,6 +20,11 @@ TRAIL_PAREN_RE = re.compile(r"(\s*\([^()]*\))+\s*$")
_heading_cache = {}
# 원문번호 절 이름이 표 내용과 안 맞는 예외 — 검증(ref/_검증_기계_용도.md) 반영.
OVERRIDE_공종 = {
"CC000074": "불도저·굴착기", # 8-4-8 은 「[70]기타기계」 절이나 내용은 불도저·굴착기 잡재료 비율
}
def _find_부문_dir(부문):
if not ORIG_KS.exists():
@@ -172,10 +177,13 @@ def main():
총_항목 += 1
= item[""]
= item.get("상세구분")
공종 = resolve_공종(원문, 부문, , item.get("원문번호"))
if 공종 is None:
공종_미확인.append((, fp, item.get("원문번호")))
공종 = item.get("이름", "").split("(", 1)[0].strip()
if in OVERRIDE_공종:
공종 = OVERRIDE_공종[]
else:
공종 = resolve_공종(원문, 부문, , item.get("원문번호"))
if 공종 is None:
공종_미확인.append((, fp, item.get("원문번호")))
공종 = item.get("이름", "").split("(", 1)[0].strip()
대상 = classify_대상(item, 인력_이름, 기계_이름, 재료_이름)
로직키 = sorted(로직_idx.get(, []))
용도_map[] = {"공종": 공종, "대상": 대상, "로직키": 로직키}
@@ -554,6 +554,36 @@ def show(result: dict) -> str:
return "\n".join(rows)
def 시험입력(row: dict) -> dict:
"""일괄 시험 계산용 입력 한 벌 — 고르기 첫 값 · 범위 위끝 · 줄의 「시험입력」 이 이김.
시험 계산 전용 — 정본 계산은 화면이 준 값만 씀."""
given = {}
for spec in row.get("입력", []):
if "고르기" in spec:
given[spec["이름"]] = spec["고르기"][0]
elif "범위" in spec:
given[spec["이름"]] = spec["범위"][1]
else:
given[spec["이름"]] = Decimal(1)
given.update(row.get("시험입력") or {})
return given
def calc_all(files: dict[str, dict], whole: mf.Master) -> tuple[int, list[str]]:
"""로직 전부를 시험 입력으로 돌림 — (통과 수, 멈춘 줄 목록)."""
passed, stuck = 0, []
for data in files.values():
if data.get("그룹") != "로직":
continue
for row in data.get("", []):
try:
mf.run(whole, str(row[""]), 시험입력(row))
passed += 1
except mf.FormulaError as err:
stuck.append(f"{row['']} {row.get('이름')} · {err}")
return passed, stuck
def _value(text: str):
try:
return Decimal(text)
@@ -567,6 +597,13 @@ def main(argv: list[str]) -> int:
given = dict(arg.split("=", 1) for arg in argv[2:])
print(show(mf.run(master(), argv[1], {k: _value(v) for k, v in given.items()})))
return 0
if mode == "계산전부":
files, whole = load(), master()
passed, stuck = calc_all(files, whole)
print(f"(계산) 통과 {passed} · 멈춤 {len(stuck)}")
for line in stuck:
print(" " + line)
return 0
names = argv[1:] or None
files, whole = load(names), master()
report = {}
@@ -2812,7 +2812,7 @@
"이름": "불도저·굴착기에 리퍼·브레이커·부착용 집게 조합 시 잡재료 비율",
"기준": "",
"출처": "건설품셈 공통 8-4-8 주⑤",
"용도": {"공종": "[70]기타기계", "대상": ["작업량 조건"], "로직키": ["GC000270", "GC000271"]},
"용도": {"공종": "불도저·굴착기", "대상": ["작업량 조건"], "로직키": ["GC000270", "GC000271"]},
"조건": {
"구분": "고르기"
},
+73 -27
View File
@@ -815,6 +815,52 @@
}
}
},
"구분": {
"[00]토공기계": {
"원문": "건설품셈",
"상세구분": []
},
"[10]다짐기계": {
"원문": "건설품셈",
"상세구분": []
},
"[20]운반 및 하역기계": {
"원문": "건설품셈",
"상세구분": []
},
"[30]포장기계": {
"원문": "건설품셈",
"상세구분": []
},
"[40]콘크리트기계": {
"원문": "건설품셈",
"상세구분": []
},
"[50]골재생산기계 등": {
"원문": "건설품셈",
"상세구분": []
},
"[60]기초공사용 기계": {
"원문": "건설품셈",
"상세구분": []
},
"[70]기타기계": {
"원문": "건설품셈",
"상세구분": []
},
"[80]스마트 건설장비": {
"원문": "건설품셈",
"상세구분": []
},
"[90]해상장비": {
"원문": "건설품셈",
"상세구분": []
},
"임업기계": {
"원문": "산림품셈",
"상세구분": []
}
},
"줄": [
{
"키": "EQ000001",
@@ -38975,7 +39021,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "아키아윈치",
"상세구분": "집재장비",
"이름": "아키아윈치",
"규격": "",
"단위": {
@@ -38997,7 +39043,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "2드럼 케이블윈치",
"상세구분": "집재장비",
"이름": "2드럼 케이블윈치",
"규격": "",
"단위": {
@@ -39019,7 +39065,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "파르미윈치",
"상세구분": "집재장비",
"이름": "파르미윈치(트랙터 포함)",
"규격": "",
"단위": {
@@ -39041,7 +39087,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "타이푼윈치",
"상세구분": "집재장비",
"이름": "타이푼윈치(트랙터 포함)",
"규격": "",
"단위": {
@@ -39063,7 +39109,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "우드피싱",
"상세구분": "집재장비",
"이름": "우드피싱(굴삭기 포함)",
"규격": "",
"단위": {
@@ -39085,7 +39131,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "임내차",
"상세구분": "집재장비",
"이름": "무한궤도형 임내차",
"규격": "",
"단위": {
@@ -39107,7 +39153,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "스마트집재기",
"상세구분": "집재장비",
"이름": "스마트집재기(트랙터 포함)",
"규격": "",
"단위": {
@@ -39129,7 +39175,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "HAM300",
"상세구분": "집재장비",
"이름": "HAM300(트랙터 포함)",
"규격": "",
"단위": {
@@ -39151,7 +39197,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "콜라타워야더",
"상세구분": "집재장비",
"이름": "콜라타워야더(K-301)",
"규격": "",
"단위": {
@@ -39173,7 +39219,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "굴착기",
"상세구분": "집재장비",
"이름": "소형굴삭기+부착용집개",
"규격": "",
"단위": {
@@ -39195,7 +39241,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "임업용 동력집재기",
"상세구분": "집재장비",
"이름": "임업용 동력집재기(트랙터부착형)",
"규격": "",
"단위": {
@@ -39217,7 +39263,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "HAM200, 춘천집재기, 스마트집재기",
"상세구분": "집재장비",
"이름": "HAM200, 춘천집재기, 스마트집재기",
"규격": "",
"단위": {
@@ -39239,7 +39285,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "하베스터",
"상세구분": "집재장비",
"이름": "하베스터(헤드부착형)",
"규격": "",
"단위": {
@@ -39261,7 +39307,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "굴착기",
"상세구분": "집재장비",
"이름": "0.6㎥급 무한궤도형 굴착기",
"규격": "0.6㎥급",
"단위": {
@@ -39283,7 +39329,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "동력상하차기, 임업용 굴착기",
"상세구분": "집재장비",
"이름": "동력상하차기, 임업용 굴착기(우드그래플)",
"규격": "",
"단위": {
@@ -39305,7 +39351,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "타워야더",
"상세구분": "집재장비",
"이름": "타워야더(RME 300T)",
"규격": "",
"단위": {
@@ -39327,7 +39373,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "스윙야더",
"상세구분": "집재장비",
"이름": "스윙야더(기본차량 포함)",
"규격": "",
"단위": {
@@ -39349,7 +39395,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "포워더",
"상세구분": "집재장비",
"이름": "초소형 포워더",
"규격": "",
"단위": {
@@ -39371,7 +39417,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "포워더",
"상세구분": "집재장비",
"이름": "소형 포워더",
"규격": "",
"단위": {
@@ -39393,7 +39439,7 @@
"원문번호": "2-2-3",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "트럭",
"상세구분": "집재장비",
"이름": "소형트럭",
"규격": "",
"단위": {
@@ -39513,7 +39559,7 @@
"원문번호": "2-2-8",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "리튬폴리머 배터리",
"상세구분": "드론 무인 멀티콥터",
"이름": "리튬폴리머 배터리(평균가)",
"규격": "16,000mA, 32000mA",
"단위": {
@@ -39535,7 +39581,7 @@
"원문번호": "2-2-9",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "1톤",
"상세구분": "지상 약제살포",
"이름": "1톤(방제차량)",
"규격": "1톤",
"단위": {
@@ -39554,7 +39600,7 @@
"원문번호": "2-2-9",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "동력분무기",
"상세구분": "지상 약제살포",
"이름": "동력분무기",
"규격": "45HP",
"단위": {
@@ -39591,7 +39637,7 @@
"원문번호": "2-2-11",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "굴착기",
"상세구분": "기타장비",
"이름": "굴착기(0.20.8㎥)",
"규격": "0.20.8㎥",
"단위": {},
@@ -39604,7 +39650,7 @@
"원문번호": "2-2-11",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "부착용집게",
"상세구분": "기타장비",
"이름": "부착용집게(0.20.8㎥)",
"규격": "0.20.8㎥",
"단위": {},
@@ -39617,7 +39663,7 @@
"원문번호": "2-2-11",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "트럭탑재형크레인",
"상세구분": "기타장비",
"이름": "트럭탑재형크레인",
"규격": "",
"단위": {},
@@ -39630,7 +39676,7 @@
"원문번호": "2-2-11",
"원문": "산림품셈",
"구분": "임업기계",
"상세구분": "타이어형크레인",
"상세구분": "기타장비",
"이름": "타이어형크레인",
"규격": "",
"단위": {},
@@ -13,6 +13,7 @@
"출처": "건설품셈 기계설비 1-1-1",
"소유": "공용",
"비고": "용접접합 자재는 별도 계상(주③) — 원문 1-1-1 재료표 없음 · 크레인·지게차 이동비 별도(주④) · 고소 감산·TIG 가산이 겹치면 공통 1-4-2 할증 중복가산(합산)",
"시험입력": {"규격": 15.0},
"입력": [
{
"이름": "규격",
@@ -70,6 +71,7 @@
"출처": "건설품셈 기계설비 1-2-1",
"소유": "공용",
"비고": "소모재료는 1-2-1 Brazing 소모재료 표(g → ㎏ 환산) · 해석: 용접봉 = 인동납 BCuP-3 · 산소는 대기압 기준량 · 규격 250㎜ 는 원문 재료표에 없음(계산 멈춤) · 크레인·지게차 이동비 별도(주④)",
"시험입력": {"규격": 8.0},
"입력": [
{
"이름": "규격",
@@ -157,6 +159,7 @@
"출처": "건설품셈 기계설비 1-3-1",
"소유": "공용",
"비고": "소모재료는 1-3-1 TIG용접 소모재료 표 — 규격 6·8·10·32㎜ 는 원문 재료표에 없음(계산 멈춤) · 크레인·지게차 이동비 별도(주④)",
"시험입력": {"규격": 65.0},
"입력": [
{
"이름": "규격",
@@ -226,6 +229,7 @@
"출처": "건설품셈 기계설비 1-1-2",
"소유": "공용",
"비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 15.0},
"입력": [
{
"이름": "관규격",
@@ -302,6 +306,7 @@
"출처": "건설품셈 기계설비 1-1-3",
"소유": "공용",
"비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 15.0},
"입력": [
{
"이름": "관규격",
@@ -378,6 +383,7 @@
"출처": "건설품셈 기계설비 1-1-4",
"소유": "공용",
"비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 25.0},
"입력": [
{
"이름": "관규격",
@@ -454,6 +460,7 @@
"출처": "건설품셈 기계설비 1-2-2",
"소유": "공용",
"비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 8.0},
"입력": [
{
"이름": "관규격",
@@ -530,6 +537,7 @@
"출처": "건설품셈 기계설비 1-3-2",
"소유": "공용",
"비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도 · Bending 가공 별도",
"시험입력": {"관규격": 6.0},
"입력": [
{
"이름": "관규격",
@@ -606,6 +614,7 @@
"출처": "건설품셈 기계설비 1-3-3",
"소유": "공용",
"비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 25.0},
"입력": [
{
"이름": "관규격",
@@ -769,6 +778,7 @@
"출처": "건설품셈 기계설비 1-3-5",
"소유": "공용",
"비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 15.0},
"입력": [
{
"이름": "관규격",
@@ -836,6 +846,7 @@
"출처": "건설품셈 기계설비 1-4-1",
"소유": "공용",
"비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 50.0},
"입력": [
{
"이름": "관규격",
@@ -903,6 +914,7 @@
"출처": "건설품셈 기계설비 1-4-2",
"소유": "공용",
"비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 50.0},
"입력": [
{
"이름": "관규격",
@@ -970,6 +982,7 @@
"출처": "건설품셈 기계설비 1-5-1",
"소유": "공용",
"비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 30.0},
"입력": [
{
"이름": "관규격",
@@ -1037,6 +1050,7 @@
"출처": "건설품셈 기계설비 1-5-2",
"소유": "공용",
"비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 30.0},
"입력": [
{
"이름": "관규격",
@@ -1104,6 +1118,7 @@
"출처": "건설품셈 기계설비 1-5-3",
"소유": "공용",
"비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도",
"시험입력": {"관규격": 50.0},
"입력": [
{
"이름": "관규격",
@@ -1171,6 +1186,7 @@
"출처": "건설품셈 기계설비 1-6-1",
"소유": "공용",
"비고": "절단 · 배관 · 고정철물 · 접합 · 배관시험 포함",
"시험입력": {"규격": 16.0},
"입력": [
{
"이름": "규격",
@@ -1226,6 +1242,7 @@
"출처": "건설품셈 기계설비 1-6-2",
"소유": "공용",
"비고": "절단 · 배관 · 고정철물 · 접합 · 배관시험 포함",
"시험입력": {"규격": 16.0},
"입력": [
{
"이름": "규격",
@@ -1281,6 +1298,7 @@
"출처": "건설품셈 기계설비 1-6-3",
"소유": "공용",
"비고": "절단 · 배관 · 고정철물 · 접합 · 배관시험 포함",
"시험입력": {"규격": 16.0},
"입력": [
{
"이름": "규격",
@@ -80,6 +80,7 @@
"출처": "건설품셈 기계설비 2-1-2",
"소유": "공용",
"비고": "제작 완료 덕트 설치 · 벽체통과 콘크리트 깨기 별도 · 크레인·지게차 이동비 별도 · 철판두께는 규격 칸이 정함(0.5∼1.0㎜)",
"시험입력": {"규격": 150.0},
"입력": [
{
"이름": "규격",
@@ -324,6 +325,7 @@
"출처": "건설품셈 기계설비 2-1-6",
"소유": "공용",
"비고": "일반 덕트에 연결 · 원문에 공구손료 주 없음",
"시험입력": {"규격": 100.0},
"입력": [
{
"이름": "규격",
@@ -13,6 +13,7 @@
"출처": "건설품셈 기계설비 3-1-1",
"소유": "공용",
"비고": "비닐감기 감산은 발포폴리에틸렌보온재만 · 가감이 겹치면 공통 1-4-2 할증 중복가산(합산) · 원문에 공구손료 주 없음",
"시험입력": {"배관규격": 15.0},
"입력": [
{
"이름": "배관규격",
@@ -106,6 +107,7 @@
"출처": "건설품셈 기계설비 3-1-2",
"소유": "공용",
"비고": "공장 가공 칼라함석 · 규격은 본관 · 보온두께는 관보온재 설치두께",
"시험입력": {"보온두께": 25.0, "배관규격": 15.0},
"입력": [
{
"이름": "보온두께",
@@ -159,6 +161,7 @@
"출처": "건설품셈 기계설비 3-2-1",
"소유": "공용",
"비고": "부속가산율은 설계자 입력(0∼25%) · 가산이 겹치면 공통 1-4-2 할증 중복가산(합산)",
"시험입력": {"규격": 15.0},
"입력": [
{
"이름": "규격",
@@ -13,6 +13,7 @@
"출처": "건설품셈 기계설비 4-1-1",
"소유": "공용",
"비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 급수·소방펌프 옥내 인력 운반 설치 · 기초·방진가대·전기배선·주위배관·압력탱크·자동제어설비 제외 · 지게차 등 장비 별도",
"시험입력": {"규격": 0.75},
"입력": [
{
"이름": "규격",
@@ -68,6 +69,7 @@
"출처": "건설품셈 기계설비 4-1-2",
"소유": "공용",
"비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 자동탈착식 · 인력·윈치 설치 · 기초·전기배선·주위배관·자동제어설비 제외 · 장비 사용 시 별도",
"시험입력": {"규격": 0.75},
"입력": [
{
"이름": "규격",
@@ -123,6 +125,7 @@
"출처": "건설품셈 기계설비 4-1-3",
"소유": "공용",
"비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 콘크리트(모르타르) 충전 별도 · 원문에 공구손료 주 없음",
"시험입력": {"규격": 0.75},
"입력": [
{
"이름": "규격",
@@ -253,6 +256,7 @@
"출처": "건설품셈 기계설비 4-2-2",
"소유": "공용",
"비고": "전동기 직결형 · 형틀 설치 별도",
"시험입력": {"규격": 200.0},
"입력": [
{
"이름": "규격",
@@ -285,6 +289,7 @@
"출처": "건설품셈 기계설비 4-2-3",
"소유": "공용",
"비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 원심형 · 플렉시블덕트·댐퍼 별도",
"시험입력": {"규격": 100.0},
"입력": [
{
"이름": "규격",
@@ -329,6 +334,7 @@
"출처": "건설품셈 기계설비 4-2-4",
"소유": "공용",
"비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 앵커 · 가대조립 · 작동시험 포함",
"시험입력": {"풍량": 1600.0},
"입력": [
{
"이름": "풍량",
@@ -373,6 +379,7 @@
"출처": "건설품셈 기계설비 4-2-5",
"소유": "공용",
"비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 가정용(최대 풍량 6∼12㎥/분)",
"시험입력": {"규격": 700.0},
"입력": [
{
"이름": "규격",
@@ -13,6 +13,7 @@
"출처": "건설품셈 기계설비 5-1-1",
"소유": "공용",
"비고": "설치위치 선정 · 설치 · 작동시험 · 마무리 포함 · 규격 50㎜ 이하는 보통인부 없음",
"시험입력": {"규격": 25.0},
"입력": [
{
"이름": "규격",
@@ -68,6 +69,7 @@
"출처": "건설품셈 기계설비 5-1-2",
"소유": "공용",
"비고": "바이패스 배관조립 · 배관시험 포함 · 온도조절장치는 본 품 준용 가능(주③)",
"시험입력": {"규격": 15.0},
"입력": [
{
"이름": "규격",
@@ -130,6 +132,7 @@
"출처": "건설품셈 기계설비 5-2-1",
"소유": "공용",
"비고": "고압버킷 · 저압벨로스형 · 바이패스 기타 부속 · 지지대·가대 별도",
"시험입력": {"규격": 15.0},
"입력": [
{
"이름": "규격",
@@ -185,6 +188,7 @@
"출처": "건설품셈 기계설비 5-3-1",
"소유": "공용",
"비고": "지지대 설치 별도",
"시험입력": {"규격": 25.0},
"입력": [
{
"이름": "규격",
@@ -247,6 +251,7 @@
"출처": "건설품셈 기계설비 5-3-2",
"소유": "공용",
"비고": "커넥팅로드 플랜지접합형 · 플랙시블조인트는 본 품 준용 가능(주③)",
"시험입력": {"규격": 25.0},
"입력": [
{
"이름": "규격",
@@ -302,6 +307,7 @@
"출처": "건설품셈 기계설비 5-4-1",
"소유": "공용",
"비고": "50㎜ 이하 나사(삽입)접합식 · 65㎜ 이상 플랜지접합식 · 벽체 홈파내기 별도 · 규격 50㎜ 이하는 보통인부 없음",
"시험입력": {"규격": 25.0},
"입력": [
{
"이름": "규격",
@@ -1009,6 +1009,7 @@
"출처": "건설품셈 공통 6-3-1",
"소유": "공용",
"비고": "해석: 각재도 합판 비율(1회 사용 자재비의 %)을 씀 · 소모자재(박리재 등) = 주자재비(합판·각재)의 % · 해석: 폼타이 1조 = 2본 · 사용 10회(주④㉮) · 동바리 별도 · 해석: 높이·지붕 감률은 더해서 뺌",
"시험입력": {"자재지역": "포항"},
"입력": [
{
"이름": "유형",
@@ -13,6 +13,7 @@
"출처": "건설품셈 기계설비 6-1-1",
"소유": "공용",
"비고": "구분 = 보호통 · 유량계 따로 한 줄씩 · 가산이 겹치면 공통 1-4-2 할증 중복가산(합산)",
"시험입력": {"규격": 15.0},
"입력": [
{
"이름": "규격",
@@ -89,6 +90,7 @@
"출처": "건설품셈 기계설비 6-1-2",
"소유": "공용",
"비고": "밸브·스트레이너·주위배관 · 전선관 배관·입선 · 지시부 별도",
"시험입력": {"규격": 15.0},
"입력": [
{
"이름": "규격",
@@ -194,6 +196,7 @@
"출처": "건설품셈 기계설비 6-2-1",
"소유": "공용",
"비고": "밸브·스트레이너·주위배관 · 전선관 배관·입선 · 지시부 별도",
"시험입력": {"규격": 15.0},
"입력": [
{
"이름": "규격",
@@ -249,6 +252,7 @@
"출처": "건설품셈 기계설비 6-2-2",
"소유": "공용",
"비고": "밸브·스트레이너·주위배관 · 전선관 배관·입선 · 지시부 별도",
"시험입력": {"규격": 50.0},
"입력": [
{
"이름": "규격",
@@ -304,6 +308,7 @@
"출처": "건설품셈 기계설비 6-2-3",
"소유": "공용",
"비고": "집단에너지 시설 · 원문 직종 그대로(플랜트배관공 · 특별인부 · 계장공) · 전선관·밸브·스트레이너 별도 · 열량지시계 매립 별도",
"시험입력": {"규격": 32.0},
"입력": [
{
"이름": "규격",
@@ -276,6 +276,7 @@
"출처": "건설품셈 공통 7-3-1",
"소유": "공용",
"비고": "해석: 일당 편성 장비 1대 × 1일 8시간 ÷ 일당 시공량(산림품셈 12장 로직과 같음) · 장비 규격은 작업여건에 따라 바꿀 수 있음(주⑤) — 굴착기·집게 설계자 고름 · 해석: 채움콘크리트 = 재료_자체 레미콘 · 전석 재료 원문 표에 없음",
"시험입력": {"자재지역": "울진"},
"입력": [
{ "이름": "기계", "고르기": ["0201-0060", "0201-0080", "0201-0020", "0201-0040", "0201-0070", "0201-0100"] },
{ "이름": "집게", "고르기": ["7206-0070", "7206-0020", "7206-0100"] },
@@ -13,6 +13,7 @@
"출처": "건설품셈 건축 9-1-1",
"소유": "공용",
"비고": "건조시멘트모르타르를 쓰지 않을 때 · 비빔 제외 · 재료는 할증 포함",
"시험입력": {"자재지역": "포항"},
"입력": [
{
"이름": "모래체가름",
@@ -493,6 +494,7 @@
"출처": "건설품셈 건축 9-3-1",
"소유": "공용",
"비고": "방수 코킹은 6-6-1",
"시험입력": {"자재지역": "포항"},
"입력": [{"이름": "자재지역", "비고": "시·군 이름 — 레미콘·골재 시중물가 후보를 고름"}],
"중간": [
{
@@ -526,6 +526,7 @@
"출처": "산림품셈 7-11",
"소유": "공용",
"비고": "해석: 건설기계조종원·운전기사 = 건설노임 건설기계운전사(1048) · 해석: 할증을 인력 · 연료 · 손료(가동일)에 함께 곱함 · 해석: 우드그래플 소모성경비(2-1-3) = Q × (트랙 보강 + 블레이드·실린더) 원/ha ÷ 집재재적 · 기계손료 못 넣음 — 기계 열쇠 「2-2-3 동력상하차기, 임업용 굴착기(우드그래플)」 에 쉼표(식이 열쇠를 끊음) · 경계값(아래 끝 수 그대로)은 못 찾음 — 범위규칙 「이하 · 이상 · 두 수는 양 끝 포함」 을 엔진이 「이하」로만 읽음 · 할인·할증 못 넣음 — 1-4-5 경사도(값 칸 「할인·할증률」) · 1-4-13 주행 장애물 상태(조건 빈칸) — 칸 이름 · 범위규칙 문법",
"시험입력": {"최대집재거리": 40.0, "집재재적": 60.0},
"입력": [
{ "이름": "최대집재거리", "단위": "m" },
{ "이름": "집재재적", "단위": "㎥/ha" },
@@ -1121,6 +1121,7 @@
"출처": "산림품셈 12-9-1",
"소유": "공용",
"비고": "수량은 설계수량(원문 빈칸) · 해석: 「무근,진동기」 = 12-1-1 무근구조물(진동기 경비는 12-1-3 주⑧대로 별도) · 거푸집 단위 「회」 = 합판 4회 사용 ㎡ · 수축줄눈 · 신축이음 · 배수파이프 설치 품 원문 없음 — 빠짐 · 되메우기 별도(주②)",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "콘크리트량",
@@ -1273,6 +1274,7 @@
"출처": "산림품셈 12-9-2",
"소유": "공용",
"비고": "수량은 설계수량 · 수축줄눈 · 신축이음 품 원문 없음 — 빠짐 · 철근 재료 원문 표에 없음",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "콘크리트량",
@@ -1446,6 +1448,7 @@
"출처": "산림품셈 12-9-3",
"소유": "공용",
"비고": "수량은 설계수량",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "콘크리트량",
@@ -2189,6 +2192,7 @@
"출처": "산림품셈 12-12",
"소유": "공용",
"비고": "원문 기준 단위 없음 — 수량 입력한 한 식 · 바닥정리 품 원문 없음 — 빠짐 · 해석: 성토부 할증은 불러온 모든 노무비에",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "콘크리트량",
@@ -2407,6 +2411,7 @@
"출처": "산림품셈 12-13",
"소유": "공용",
"비고": "기초잡석 구입은 현장발파암 유용(원문 규격)",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "콘크리트량",
@@ -2692,6 +2697,7 @@
"출처": "산림품셈 12-15",
"소유": "공용",
"비고": "구체 품은 비고 글의 수(콘크리트공 0.24 · 보통인부 0.42인/㎥)를 식에 적음 · 해석: 뚜껑 설치비 = 뚜껑 재료비의 5% · 비목 노무비",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "구체콘크리트량",
@@ -2908,6 +2914,7 @@
"출처": "산림품셈 12-16",
"소유": "공용",
"비고": "비고 글의 품(구체 0.17 · 0.29 · 원형거푸집 0.16 · 0.45 · 0.20 · 0.60)을 식에 적음 · 「설치비 재료비의 5%」 대상 원문 불명 — 미반영",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "구체콘크리트량",
@@ -3347,6 +3354,7 @@
"출처": "산림품셈 12-17-1-2 주③",
"소유": "공용",
"비고": "재료량에 할증 포함(원문 주)",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "배합비",
@@ -3441,6 +3449,7 @@
"출처": "산림품셈 12-17-2",
"소유": "공용",
"비고": "해석: 펌프차 고르기 = 콘크리트펌프차 중 80㎥/hr 이상([80∼95]) 규격(주①⑥) · 해석: 콘크리트다짐 = (펌프카 경비(노무·재료·경비 모두) + 인건비) × 1% — 레미콘 재료비는 뺌",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "펌프차",
@@ -3532,6 +3541,7 @@
"출처": "산림품셈 12-17-3",
"소유": "공용",
"비고": "해석: 펌프차 고르기 = 콘크리트펌프차 중 80㎥/hr 이상([8095]) 규격(주①⑥) · 50㎥ 이하는 콘크리트 타설품(원문 주)",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "펌프차",
@@ -289,6 +289,7 @@
"출처": "산림품셈 13-4-1",
"소유": "공용",
"비고": "「원문에 없는 조합: 뒷길이=25 · 돌=견치돌 · 쌓기=골쌓기 / 뒷길이=25 · 돌=견치돌 · 쌓기=켜쌓기 / 뒷길이=25 · 돌=깬돌 · 쌓기=골쌓기 / 뒷길이=25 · 돌=깬돌 · 쌓기=켜쌓기 / 뒷길이=30 · 돌=견치돌 · 쌓기=골쌓기 외 5」",
"시험입력": {"높이": 4.0, "돌": "깬잡석"},
"입력": [
{ "이름": "뒷길이", "단위": "㎝", "고르기": [25, 30, 35, 45, 55, 60, 75] },
{ "이름": "돌", "고르기": ["견치돌", "깬돌", "깬잡석", "호박돌 및 야면석"] },
@@ -420,6 +421,7 @@
"출처": "산림품셈 13-4-4",
"소유": "공용",
"비고": "해석: 채움 콘크리트 = 레디믹스트콘크리트 · 해석: 「호박돌 및 야면석」 = 채움 표 「호박돌」(야면석과 같은 수) · 「원문에 없는 조합: 뒷길이=25 · 돌=깬돌 · 쌓기=골쌓기 / 뒷길이=25 · 돌=깬돌 · 쌓기=켜쌓기 / 뒷길이=25 · 돌=견치돌 · 쌓기=골쌓기 / 뒷길이=25 · 돌=견치돌 · 쌓기=켜쌓기 / 뒷길이=30 · 돌=견치돌 · 쌓기=골쌓기 외 5」",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "뒷길이",
@@ -499,6 +501,7 @@
"출처": "산림품셈 13-4-5",
"소유": "공용",
"비고": "재료량은 설계수량(주⑦) · 해석: 채움 콘크리트 = 레디믹스트콘크리트 · 줄눈 메꿈 모르타르 수량 원문 없음",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "뒷길이",
@@ -775,6 +778,7 @@
"출처": "산림품셈 13-5-2",
"소유": "공용",
"비고": "재료량은 설계수량(주⑦) · 해석: 채움 콘크리트 = 레디믹스트콘크리트 · 줄눈 메꿈 모르타르 수량 원문 없음",
"시험입력": {"자재지역": "울진"},
"입력": [
{
"이름": "뒷길이",
@@ -865,6 +869,7 @@
"출처": "산림품셈 13-6-1",
"소유": "공용",
"비고": "흡출방지재·차수시트 시공 값(「( )」 값 칸 「수량( )」)은 식에서 못 가리켜 빠짐 · 건설품셈 공통 8-2-3 계수 필요(0.2㎥ · 0.4㎥ 굴착기를 쓸 때)",
"시험입력": {"직경": 60.0},
"입력": [
{ "이름": "직경", "단위": "㎝" },
{
@@ -944,6 +949,7 @@
"출처": "산림품셈 13-6-2",
"소유": "공용",
"비고": "흡출방지재·차수시트 시공 값(「( )」 값 칸 「수량( )」)은 식에서 못 가리켜 빠짐 · 건설품셈 공통 8-2-3 계수 필요(0.2㎥ · 0.4㎥ 굴착기를 쓸 때)",
"시험입력": {"직경": 60.0},
"입력": [
{ "이름": "직경", "단위": "㎝" },
{ "이름": "물빼기파이프", "고르기": ["설치", "설치 안 함"] },
@@ -1024,6 +1030,7 @@
"출처": "산림품셈 13-6-3",
"소유": "공용",
"비고": "흡출방지재·차수시트 시공 값(「( )」 값 칸 「수량( )」)은 식에서 못 가리켜 빠짐 · 건설품셈 공통 8-2-3 계수 필요(0.2㎥ · 0.4㎥ 굴착기를 쓸 때)",
"시험입력": {"직경": 60.0},
"입력": [
{ "이름": "직경", "단위": "㎝" },
{ "이름": "물빼기파이프", "고르기": ["설치", "설치 안 함"] },
@@ -1104,6 +1111,7 @@
"출처": "산림품셈 13-7-1",
"소유": "공용",
"비고": "흡출방지재·차수시트 시공 값(「( )」 값 칸 「수량( )」)은 식에서 못 가리켜 빠짐 · 건설품셈 공통 8-2-3 계수 필요(0.2㎥ · 0.4㎥ 굴착기를 쓸 때)",
"시험입력": {"직경": 60.0},
"입력": [
{ "이름": "직경", "단위": "㎝" },
{
@@ -1183,6 +1191,7 @@
"출처": "산림품셈 13-7-2",
"소유": "공용",
"비고": "흡출방지재·차수시트 시공 값(「( )」 값 칸 「수량( )」)은 식에서 못 가리켜 빠짐 · 건설품셈 공통 8-2-3 계수 필요(0.2㎥ · 0.4㎥ 굴착기를 쓸 때)",
"시험입력": {"직경": 60.0},
"입력": [
{ "이름": "직경", "단위": "㎝" },
{ "이름": "물빼기파이프", "고르기": ["설치", "설치 안 함"] },
@@ -542,7 +542,7 @@
"이름": "잔디시비",
"기준": "일당",
"출처": "건설품셈 유지관리 1-2-15",
"용도": {"공종": "잔디시비", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001012"]},
"용도": {"공종": "잔디시비", "대상": ["인력", "작업량 조건"], "로직키": ["GC001012"]},
"조건": {},
"값칸": { "조경공": "인", "보통인부": "인", "트럭(2.5ton)": "대", "시공량": "㎡" },
"줄": [ { "조경공": 2, "보통인부": 1, "트럭(2.5ton)": 1, "시공량": 22500 } ],
@@ -832,7 +832,7 @@
"이름": "차선도색 차선 밑그림",
"기준": "일당",
"출처": "건설품셈 토목 1-8-9",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000316"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC000316"]},
"조건": { "도색": "고르기" },
"값칸": { "시공량": "㎡", "특별인부": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -854,7 +854,7 @@
"이름": "차선도색 수용성형 페인트 수동식",
"기준": "일당",
"출처": "건설품셈 토목 1-8-9",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000317"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC000317"]},
"조건": { "도색": "고르기" },
"값칸": { "시공량": "㎡", "특별인부": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -879,7 +879,7 @@
"이름": "차선도색 수용성형 페인트 기계식",
"기준": "일당",
"출처": "건설품셈 토목 1-8-9",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000318"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC000318"]},
"조건": { "도색": "고르기" },
"값칸": { "시공량": "㎡", "특별인부": "인", "보통인부": "인", "라인마커트럭": "대", "라인마커트럭규격": "글", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -901,7 +901,7 @@
"이름": "차선도색 융착식 도료 수동식",
"기준": "일당",
"출처": "건설품셈 토목 1-8-9",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000319"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC000319"]},
"조건": { "도색": "고르기" },
"값칸": { "시공량": "㎡", "특별인부": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글", "트럭2_5ton": "대" },
"줄": [
@@ -949,7 +949,7 @@
"이름": "차선도색 상온경화형 플라스틱 도료 구동식",
"기준": "일당",
"출처": "건설품셈 토목 1-8-9",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000320"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC000320"]},
"조건": { "도색": "고르기" },
"값칸": { "시공량": "㎡", "특별인부": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -974,7 +974,7 @@
"이름": "가드레일 설치 지주 설치",
"기준": "일당",
"출처": "건설품셈 토목 1-8-10",
"용도": {"공종": "가드레일 설치", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000321"]},
"용도": {"공종": "가드레일 설치", "대상": ["인력", "작업량 조건"], "로직키": ["GC000321"]},
"조건": { "지주간격": "고르기" },
"값칸": { "시공량": "m", "특별인부": "인", "보통인부": "인", "굴착기_대형브레이커": "대", "굴착기_대형브레이커규격": "글", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -992,7 +992,7 @@
"이름": "가드레일 설치 판 설치",
"기준": "일당",
"출처": "건설품셈 토목 1-8-10",
"용도": {"공종": "가드레일 설치", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000322"]},
"용도": {"공종": "가드레일 설치", "대상": ["인력", "작업량 조건"], "로직키": ["GC000322"]},
"조건": { "지주간격": "고르기", "W": "고르기" },
"값칸": { "시공량": "m", "특별인부": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -1033,7 +1033,7 @@
"이름": "중앙분리대 설치(가드레일식) 판 설치",
"기준": "일당",
"출처": "건설품셈 토목 1-8-11",
"용도": {"공종": "중앙분리대 설치", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000323"]},
"용도": {"공종": "중앙분리대 설치", "대상": ["인력", "작업량 조건"], "로직키": ["GC000323"]},
"조건": { "지주간격": "고르기", "W": "고르기" },
"값칸": { "시공량": "m", "특별인부": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -1073,7 +1073,7 @@
"이름": "유색포장(미끄럼방지)",
"기준": "일당",
"출처": "건설품셈 토목 1-8-13",
"용도": {"공종": "유색포장", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000326"]},
"용도": {"공종": "유색포장", "대상": ["인력", "작업량 조건"], "로직키": ["GC000326"]},
"조건": { "형식": "고르기" },
"값칸": { "시공량": "㎡", "도장공": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -1105,7 +1105,7 @@
"이름": "표시못 설치",
"기준": "일당",
"출처": "건설품셈 토목 1-8-14",
"용도": {"공종": "표시못 설치", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC000327"]},
"용도": {"공종": "표시못 설치", "대상": ["인력", "작업량 조건"], "로직키": ["GC000327"]},
"조건": { "형식": "고르기" },
"값칸": { "시공량": "개소", "특별인부": "인", "보통인부": "인", "트럭": "대", "트럭규격": "글" },
"줄": [
@@ -1372,7 +1372,7 @@
"이름": "차선도색 — 차선 밑그림",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-15",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001047"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC001047"]},
"조건": {
"선종류": "고르기"
},
@@ -1429,7 +1429,7 @@
"이름": "차선도색 — 수용성형 페인트 수동식",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-15",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001048"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC001048"]},
"조건": {
"선종류": "고르기"
},
@@ -1489,7 +1489,7 @@
"이름": "차선도색 — 수용성형 페인트 기계식",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-15",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001049"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC001049"]},
"조건": {
"선종류": "고르기"
},
@@ -1537,7 +1537,7 @@
"이름": "차선도색 — 융착식 도료 수동식",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-15",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001050"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC001050"]},
"조건": {
"선종류": "고르기"
},
@@ -1658,7 +1658,7 @@
"이름": "차선도색 — 상온경화형 플라스틱 도료 구동식",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-15",
"용도": {"공종": "차선도색", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001051"]},
"용도": {"공종": "차선도색", "대상": ["인력", "작업량 조건"], "로직키": ["GC001051"]},
"조건": {
"선종류": "고르기"
},
@@ -1716,7 +1716,7 @@
"이름": "차선도색제거",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-16",
"용도": {"공종": "차선도색제거", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001052"]},
"용도": {"공종": "차선도색제거", "대상": ["인력", "작업량 조건"], "로직키": ["GC001052"]},
"조건": {},
"값칸": {
"특별인부": "인",
@@ -1951,7 +1951,7 @@
"이름": "교통 안전표지판 철거",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-21",
"용도": {"공종": "교통 안전표지판 철거", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001057"]},
"용도": {"공종": "교통 안전표지판 철거", "대상": ["인력", "작업량 조건"], "로직키": ["GC001057"]},
"조건": {},
"값칸": {
"특별인부": "인",
@@ -1982,7 +1982,7 @@
"이름": "교통 안전표지판 교체",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-22",
"용도": {"공종": "교통 안전표지판 교체", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001058"]},
"용도": {"공종": "교통 안전표지판 교체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001058"]},
"조건": {},
"값칸": {
"특별인부": "인",
@@ -2013,7 +2013,7 @@
"이름": "도로반사경 철거",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-23",
"용도": {"공종": "도로반사경 철거", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001059"]},
"용도": {"공종": "도로반사경 철거", "대상": ["인력", "작업량 조건"], "로직키": ["GC001059"]},
"조건": {
"면수": "고르기"
},
@@ -2052,7 +2052,7 @@
"이름": "도로반사경 교체",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-24",
"용도": {"공종": "도로반사경 교체", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001060"]},
"용도": {"공종": "도로반사경 교체", "대상": ["인력", "작업량 조건"], "로직키": ["GC001060"]},
"조건": {},
"값칸": {
"특별인부": "인",
@@ -2079,7 +2079,7 @@
"이름": "도로표지병 제거",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-25",
"용도": {"공종": "도로표지병 제거", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001061"]},
"용도": {"공종": "도로표지병 제거", "대상": ["인력", "작업량 조건"], "로직키": ["GC001061"]},
"조건": {},
"값칸": {
"보통인부": "인",
@@ -2105,7 +2105,7 @@
"이름": "시선유도표지 철거",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-26",
"용도": {"공종": "시선유도표지 철거", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001062"]},
"용도": {"공종": "시선유도표지 철거", "대상": ["인력", "작업량 조건"], "로직키": ["GC001062"]},
"조건": {
"설치구분": "고르기"
},
@@ -2151,7 +2151,7 @@
"이름": "보도용 블록 인력철거",
"기준": "일당",
"출처": "건설품셈 유지관리 2-1-27",
"용도": {"공종": "보도용 블록 인력철거", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001063"]},
"용도": {"공종": "보도용 블록 인력철거", "대상": ["인력", "작업량 조건"], "로직키": ["GC001063"]},
"조건": {
"Type": "고르기"
},
@@ -4660,7 +4660,7 @@
"이름": "하수관 수밀시험",
"기준": "일당",
"출처": "건설품셈 유지관리 2-4-4",
"용도": {"공종": "하수관 수밀시험", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001093"]},
"용도": {"공종": "하수관 수밀시험", "대상": ["인력", "작업량 조건"], "로직키": ["GC001093"]},
"조건": {
"관경": "고르기"
},
@@ -4710,7 +4710,7 @@
"이름": "하수관 공기압시험",
"기준": "일당",
"출처": "건설품셈 유지관리 2-4-5",
"용도": {"공종": "하수관 공기압시험", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001094"]},
"용도": {"공종": "하수관 공기압시험", "대상": ["인력", "작업량 조건"], "로직키": ["GC001094"]},
"조건": {
"관경": "고르기"
},
@@ -4760,7 +4760,7 @@
"이름": "하수관 준설(버킷식)",
"기준": "일당",
"출처": "건설품셈 유지관리 2-4-6",
"용도": {"공종": "하수관 준설", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001095"]},
"용도": {"공종": "하수관 준설", "대상": ["인력", "작업량 조건"], "로직키": ["GC001095"]},
"조건": {},
"값칸": {
"특별인부": "인",
@@ -4971,7 +4971,7 @@
"이름": "빗물받이 준설(인력식)",
"기준": "일당",
"출처": "건설품셈 유지관리 2-4-9",
"용도": {"공종": "빗물받이 준설", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GC001098"]},
"용도": {"공종": "빗물받이 준설", "대상": ["인력", "작업량 조건"], "로직키": ["GC001098"]},
"조건": {},
"값칸": {
"특별인부": "인",
@@ -1359,7 +1359,7 @@
"이름": "평떼 시비",
"기준": "일당",
"출처": "산림품셈 5-22-4",
"용도": {"공종": "평떼 시비", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000036"]},
"용도": {"공종": "평떼 시비", "대상": ["인력", "작업량 조건"], "로직키": ["GF000036"]},
"조건": { "구분": "고르기", "규격": "고르기" },
"값칸": { "단위": "글", "수량": "수", "시공량(㎡)": "㎡" },
"줄": [
@@ -344,7 +344,7 @@
"이름": "초본류 시비",
"기준": "10,000㎡당",
"출처": "산림품셈 6-7-3",
"용도": {"공종": "초본류 시비", "대상": ["기계", "인력", "작업량 조건"], "로직키": ["GF000059"]},
"용도": {"공종": "초본류 시비", "대상": ["인력", "작업량 조건"], "로직키": ["GF000059"]},
"조건": { "명칭": "고르기" },
"값칸": { "단위": "글", "수량": "" },
"줄": [
@@ -960,7 +960,7 @@
"이름": "원목 운반-수확",
"기준": "1회 적재량 · 1인 1일공정",
"출처": "산림품셈 7-14",
"용도": {"공종": "원목 운반-수확", "대상": ["기계", "작업량 조건"], "로직키": []},
"용도": {"공종": "원목 운반-수확", "대상": ["작업량 조건"], "로직키": []},
"조건": { "종별": "고르기" },
"값칸": { "적재량 용재 침엽수": "㎥", "적재량 용재 활엽수": "㎥", "적재량 신재": "㎥", "적재량 목탄": "kg", "운반": "연km", "상하차 침": "㎥", "상하차 활": "㎥", "적재량 용재 침엽수원문": "글", "적재량 용재 활엽수원문": "글", "적재량 신재원문": "글", "적재량 목탄원문": "글", "운반원문": "글" },
"줄": [
+23 -4
View File
@@ -113,6 +113,25 @@ def test_표_목록은_구분_상세구분으로_거름(client: TestClient) -> N
assert page["page"] == 2 and len(page["tables"]) == 5 and page["total"] == every["total"]
def test_표_용도_대상으로_거름(client: TestClient) -> None:
"""PLAN 1-1 셋째 줄 — 표마다 붙은 용도(공종·대상·로직키)로 거름."""
one = _get(client, "/api/m01/tables", group="소요량", size=1)["tables"][0]
usage = _get(client, "/api/m01/table", file=one["file"], key=one[""])["table"]["용도"]
assert usage["공종"] and usage["대상"]
target = usage["대상"][0]
narrowed = _get(
client, "/api/m01/tables", group="소요량", q=one["이름"], usage=target, size=500
)
assert one[""] in {t[""] for t in narrowed["tables"]}
ALL_TARGETS = ("인력", "기계", "재료", "할증", "환산", "작업량 조건")
other = next((v for v in ALL_TARGETS if v not in usage["대상"]), None)
if other:
excluded = _get(
client, "/api/m01/tables", group="소요량", q=one["이름"], usage=other, size=500
)
assert one[""] not in {t[""] for t in excluded["tables"]}
def test_갈래_목록은_서버가_줌(client: TestClient) -> None:
"""소요량 · 계수 · 로직 컨테이너의 구분 · 상세구분 — 장 차례대로."""
for group in ("소요량", "계수", "로직"):
@@ -332,10 +351,10 @@ def test_구분_목록(client: TestClient) -> None:
survey = next(s for s in got["subs"] if s["name"] == "측량")
assert survey["book"] == "측량노임" and "기능계 도화" in survey["details"]
machine = _get(client, "/api/m01/subs", file="기계.json")
assert machine["slot"] == "원문" and [s["name"] for s in machine["subs"]] == [
"건설품셈",
"산림품셈",
]
names = [s["name"] for s in machine["subs"]]
assert machine["slot"] == "구분" and names[0] == "[00]토공기계" and names[-1] == "임업기계"
earthwork = next(s for s in machine["subs"] if s["name"] == "[00]토공기계")
assert earthwork["book"] == "건설품셈" and "불도저" in earthwork["details"]
assert _get(client, "/api/m01/subs", file="재료_자재품목.json")["subs"] == []
+19
View File
@@ -907,3 +907,22 @@ def test_품셈재료_고르기_칸이_실파일에_있음():
assert rows and all("고르기" in row for row in rows.values())
assert any(isinstance(row["고르기"], dict) for row in rows.values())
assert cm.check_links(whole) == []
def test_로직_일괄_시험계산():
"""로직 전부를 시험 입력으로 돌림 — 멈춤은 데이터 결손(관리자 값·규격 미지정)만."""
files = cm.load()
passed, stuck = cm.calc_all(files, mf.Master(files))
assert passed >= 1270
남은_까닭 = ("관리자가 채울 값", "규격 선택 필요", "지역 값 없음", "맞는 줄")
assert [x for x in stuck if not any(c in x for c in 남은_까닭)] == []
def test_시험입력이_기본값을_이김():
"""「시험입력」 은 시험 계산 전용 칸 — 고르기 첫 값·범위 위끝을 덮어씀."""
row = {
"입력": [{"이름": "지역", "고르기": ["전국평균", "포항"]}, {"이름": "깊이", "범위": [1, 9]}]
}
assert cm.시험입력(row) == {"지역": "전국평균", "깊이": 9}
row["시험입력"] = {"지역": "포항"}
assert cm.시험입력(row)["지역"] == "포항"
+5 -1
View File
@@ -58,7 +58,11 @@ export const ui_locales_m1 = {
M01_FuelSub: ["구분", "Category"],
M01_FuelDetail: ["상세구분", "Detail"],
M01_LaborState: ["상태", "Status"],
M01_MachineSub: ["세부분류", "Sub-category"],
M01_MachineSub: ["구분", "Category"],
M01_MachineDetail: ["상세구분", "Detail"],
M01_UsageTarget: ["대상", "Target"],
M01_TableUsage: ["용도", "Usage"],
M01_TableUsageLogicCount: ["로직 {value}개", "{value} logic rules"],
M01_GroupLabor: ["인력", "Labor"],
M01_GroupMaterial: ["재료", "Materials"],
M01_GroupMachine: ["기계", "Machines"],