diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate 분석/20_분석/19_진행률_장부.md b/resources/knowledge/original/경쟁사 프로그램/STmate 분석/20_분석/19_진행률_장부.md index 4d96c9b5..5e1cf614 100644 --- a/resources/knowledge/original/경쟁사 프로그램/STmate 분석/20_분석/19_진행률_장부.md +++ b/resources/knowledge/original/경쟁사 프로그램/STmate 분석/20_분석/19_진행률_장부.md @@ -13,7 +13,8 @@ | STC 안의 표 | 16종 | **10종 읽고 씀** · 4종 빈 표 | **2종 암호화** (`BDQTY`·`SYSINFO`) | ▓▓▓▓▓▓▓▓▓░ 88% | | STmate 출력 `XLSX` | 6 | 6 전부 | — | ▓▓▓▓▓▓▓▓▓▓ 100% | | 출력 시트 | **30종** | **30종 전부 훑음** (계산 있는 것 15종 규칙 확정) | — | ▓▓▓▓▓▓▓▓▓▓ 100% | -| 계산 사슬 단계 | 8 | **8 전부** | — | ▓▓▓▓▓▓▓▓▓▓ 100% | +| 계산 사슬 단계 | 8 | **8 전부** (④는 참조 그래프까지 실증) | — | ▓▓▓▓▓▓▓▓▓▓ 100% | +| 변경설계 재현 | 직접비+간접비 | **전 항목 원 단위 일치** | — | ▓▓▓▓▓▓▓▓▓▓ 100% | | 09번이 꼽은 호환성 차단점 | 6 | **3 해결 · 1 부분** | 2 (실행 필요) | ▓▓▓▓▓▓░░░░ 58% | ## 2. 설치 폴더 186개 @@ -119,6 +120,36 @@ **재구현 필수** — 간접비 항목마다 `calc_mode ∈ {recalculated, carry_original, proportional_from_original, delta_times_rate, manual}` 을 저장할 것. 전부 재계산으로 두면 이 세 항목에서 **85만 원**이 어긋난다. +## 6.5 이번에 마저 끝낸 둘 + +### 일위대가 호표 참조 그래프 — ④단계 실증 + +봉화 2024의 `일위대가표` 45개 호표를 그래프로 세웠다. + +| 항목 | 결과 | +|---|---| +| 구성행이 다른 호표를 가리키고 **단가가 일치** | **22건** | +| 이름은 같은데 단가가 다름 | **0건** | +| 호표 간 참조를 가진 호표 | 18 / 45 | +| **순환 참조** | **없음 → 위상순서 계산 가능** | +| 참조 깊이 | 최대 **2단** (잎 27 · 1단 14 · 2단 4) | + +⇒ 09번 §3의 「의존 그래프를 만들고 위상순서로 계산, 순환은 오류」가 **실데이터에서 성립**한다. 깊이가 얕아 재귀 깊이 걱정은 없고, 이름+규격 짝으로 참조를 찾을 수 있다(불일치 0건). + +### 설계변경 직접비 — 당초·변경 양쪽 원 단위 재현 + +계류보전 2025(변경)의 `BOQ11`은 한 표에 **차수1(당초)·차수2(변경)를 나란히** 담는다. 양쪽을 각각 다시 세웠다. + +| | 직접재료비 | 직접노무비 | 산출경비 | 행금액 절사 | +|---|---:|---:|---:|---| +| 차수1 (당초) | 40,003,539 ✅ | 32,976,276 ✅ | 20,047,669 ✅ | 294건 무결 | +| 차수2 (변경) | 26,448,347 ✅ | 41,778,438 ✅ | 16,915,256 ✅ | 294건 무결 | +| **증감** | −13,555,192 | **+8,802,162** | −3,132,413 | | + +**전 항목 1원도 안 틀림.** 같은 말단 행 집합(98행)에 차수별 수량·단가를 걸어 계산하면 되고, **제외금액 구역(`C*`) 판정도 차수와 무관하게 같다.** + +이로써 6장의 간접비 모드와 합쳐 **변경설계가 직접비부터 간접비까지 전부 재현**된다. + ## 7. 남은 일 — 할 수 있는 것과 없는 것 ### 지금 자료로 할 수 있는 것 @@ -127,8 +158,9 @@ |---:|---|---| | ~~1~~ | ~~남은 시트 훑기~~ | ✅ **완료** — 30종 전부. 새 규칙 없음, 집계표 ±1 원인 밝힘 | | ~~2~~ | ~~중기시간금액집계표~~ | ✅ **완료** — 절사(수량 × 시간당 성분단가) | -| 1 | 일위대가 호표 **참조 그래프** 복원 → 위상순서 계산 재현 | ④단계를 실증으로 | -| 2 | 설계변경 **직접비 증감**까지 원 단위 재현 | 6장을 전 항목으로 넓힘 | +| ~~1~~ | ~~일위대가 참조 그래프~~ | ✅ **완료** — 순환 없음, 깊이 2단, 불일치 0 (§6.5) | +| ~~2~~ | ~~설계변경 직접비 증감~~ | ✅ **완료** — 당초·변경 전 항목 원 단위 일치 (§6.5) | +| 1 | **표본 늘리기** | 지금 자료로 할 수 있는 것은 사실상 다 함. 규모·기간 의존 요율 좌표와 수공·실적 형식은 **새 표본이 있어야** 열림 | ### 끝내 못 하는 것 diff --git a/resources/knowledge/original/경쟁사 프로그램/STmate 분석/40_스크립트/revision_direct_cost.py b/resources/knowledge/original/경쟁사 프로그램/STmate 분석/40_스크립트/revision_direct_cost.py new file mode 100644 index 00000000..f120971e --- /dev/null +++ b/resources/knowledge/original/경쟁사 프로그램/STmate 분석/40_스크립트/revision_direct_cost.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +"""설계변경 직접비 — 차수1(당초)·차수2(변경)를 내역에서 다시 세워 출력과 대조.""" +import sys, io, pathlib, zipfile, struct, re, warnings +from decimal import Decimal as D, ROUND_DOWN +sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace") +warnings.filterwarnings("ignore"); import openpyxl +def dn(x): return D(x).quantize(D(1), rounding=ROUND_DOWN) +def dbf(zf,name): + b=zf.read(name); nrec,hlen,rlen=struct.unpack_from("