fix(master_data): ESTX 다섯 갈래 노임 파일 뺌 · 값 확인 못 한 직종은 모두 준용 — 인력_준용대상

- 인력_엔지니어링노임 · 측량노임 · 건설사업관리노임 · SW노임 · 산림노임 뺌(출처 모르는 105 줄 · 원문 확보 뒤에만)
- 인력_미확보 → 인력_준용대상 49 직종(18 직종 되돌림) · 줄마다 준용 칸 null · 로직 참조 526 곳 되돌림
- M01 준용 고르기 — 준용대상 파일도 · 후보 = 건설노임·제조노임 공표 직종 · ref = 인력:원문:열쇠
- 로직 일괄 시험 계산: 통과 1011 · 인력 준용대상 값 없음 176 · check 틀·로직 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ
This commit is contained in:
2026-09-20 00:00:36 +09:00
co-authored by Claude Opus 5
parent d2a6646fc4
commit 91640faf54
28 changed files with 621 additions and 781 deletions
+6 -3
View File
@@ -34,6 +34,8 @@ const SIZE = 50;
const MARKET = "재료_시중물가.json";
const LINKED = "재료_품셈재료.json";
const WAGE = "인력_건설노임.json";
const ALIAS = "인력_준용대상.json";
const JOB = [WAGE, ALIAS];
const SUPPLY = ["값", "조달"];
const SOURCE = [...SUPPLY, "출처"];
const NARA = "나라장터:";
@@ -53,13 +55,14 @@ function blank(sample: Row): Row {
function hidden(file: string, col: string): boolean {
if (file === MARKET) return col === `값${SEP}조달`;
if (file === LINKED) return col.startsWith("연결");
return file === WAGE && col === "준용";
return JOB.includes(file) && col === "준용";
}
const HEADS: Record<string, string[]> = {
[MARKET]: ["조달 값", "조달 기준", "M01_ProcureCol"],
[LINKED]: ["M01_PriceCol"],
[WAGE]: ["M01_JobCol"],
[ALIAS]: ["M01_JobCol"],
};
const linkText = (link: unknown): string =>
@@ -139,7 +142,7 @@ export function renderRows(host: HTMLElement, file: string, q: string): () => vo
: (next: Row): void => editRow(file, d.version, key, row, next);
if (file === MARKET) tr.append(...marketCells(row, cur, put));
if (file === LINKED) tr.append(linkedCell(row, cur, put));
if (file === WAGE) tr.append(wageCell(row, cur, put));
if (JOB.includes(file)) tr.append(wageCell(row, cur, put));
body.append(tr);
}
@@ -265,7 +268,7 @@ function linkedCell(row: Row, cur: Row, put?: Put): HTMLTableCellElement {
return td;
}
/** 건설노임 — 미공표(값 없음) 줄의 준용 = 공표 직종 고르기. */
/** 건설노임 미공표 · 준용대상(값 없음) 줄의 준용 = 건설·제조노임 공표 직종 고르기. */
function wageCell(row: Row, cur: Row, put?: Put): HTMLTableCellElement {
const text = show(cur["준용"]);
const td = buildCell(text, { changed: text !== show(row["준용"]) });