knowledge(요구): 요구서 642 · 설계 642-A · 분석 642-B · C · D — 엑셀 불러오기 다시 짬
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,319 @@
|
||||
# 분석 642-B — 경쟁사(EST Plus 2 · STmate) 내부 모델로 본 엑셀 매칭 규칙 (조사 · 읽기만)
|
||||
|
||||
대상 = 요구 642(엑셀 불러오기 다시 짬 — 1차 품명 · 규격 · 비고 · 별도계상 / 2차 비고 → 단산 상세 → 품셈 번호 → 기본공식). 근거 = 지식DB `경쟁사 프로그램/` REA 분석 + 여덟 실무 엑셀(골든 `FILES`) 직접 열람. 코드 · 마스터 · storage · git 안 고침.
|
||||
|
||||
## 0. 요약 열 줄
|
||||
|
||||
1. 두 프로그램 모두 「목록(결과 요약) + 상세(구성 행)」 짝 · 성분 셋(노 · 재 · 경, EST 는 실적 하나 더) · 코드 열쇠 구조 — EST 코드 = L · M · E · D · U · A + 10자리(엑셀에 안 찍힘), STmate 코드 = L · M · S · W · X · D · B · PR · RR · C · T + 5자리(프로젝트마다 다른 번호 · 숨은 칸에 찍힘).
|
||||
2. 품셈 번호 · 기본공식은 두 프로그램 모두 구조 칸 없음 — 「글」로만 남음: EST 단가산출 글 줄 · 일위 규격 칸, STmate 산근 원문 식 · 일위대가표 근거 줄(품명 「건설표준품셈」 · 규격 「7-2-2(찰붙임)」).
|
||||
3. ⭐ STmate 출력 엑셀은 내부 모델을 거의 통째로 품음 — 일위대가표 숨은 N 열 메타(COD · EXI · IPR · PRI · PRO · EQC · UNI), 단가산출근거 숨은 G 열 = `COSTN.SMT` 원문 식(`&L00002L&` · `&PA01M:M&` · Q식), M · N 열 묶음 열쇠, 목록표 메타(BQC · EQC · JDC · EDT) · 수식도 살아 있음.
|
||||
4. EST 출력 엑셀은 값 위주 — 갈래 신호 = 비고 「단산N참조 · 일위N참조」(N = 목록 차례 · 코드 아님) + 빈 비고 줄의 성분 칸 배치(노만 · 재만 · 노재경 · 경만) + 규격 글(「별도계상」 · 「노무비의」 · 「3인/20㎥」) · 총괄표 성분 칸은 수식(캐시 0).
|
||||
5. 1차 갈래는 거의 확정 가능 — STmate = 숨은 코드 머리로 확정 · EST = 비고 + 성분 배치 + 원천 시트(노임단가 · 자재단가 · 기계경비) 이름 · 단가 일치 · 별도계상 = EST 코드 없는 글 줄(단가 0) / STmate 비고 「별산」 + 목록표 단가 0.
|
||||
6. 「한 줄에 여러 산근」의 실체 = 산근 블록 안 여러 절(채집 + 상차 + 운반) · 기계/인력 비율(×90 % · ×10 %) · 산근 안 산근(`&D00075&` · `*단산N참조*`) · 일위 안 일위 — 매칭 단위는 줄이 아니라 산근 블록의 「절」.
|
||||
7. 율 · 할증 · 손료 줄은 기준 범위 · 결과 성분이 사용자 몫 — EST 규격 글자(노 · 재 · 경 · 합계)로 기준 · SCheck 로 결과(「공구손료 및 경장비의 기계경비」 → 재료비 칸 실례), STmate 메타 PRI(기준) · PRO(결과) · IPR(기준에 드는 줄) · 산근 `&PAnn기준:저장&`.
|
||||
8. 대조 규칙 실측 — EST 일위 줄 = 수량 × 단가 소수1 절사(1,160/1,160) · 호표 성분 = 줄 합 원 미만 절사(95/95) · 합계 = 성분 합 · 자재 적용 = 최저(93/93) / STmate 줄 = ROUNDDOWN(q×u,1) · 영월만 「총액 먼저」 끝수 배분 · 산근 「계약단가」(낙찰율) 줄이 목록표 단가의 원천.
|
||||
9. 사용자 손댄 흔적이 출력에 다 보임 — 경비성단가 「(경비)」 · 「(경비 로적용)」 · 계약단가 · 제외금액 `(-=)` · CalcIndex 2 줄 · 규격 속 품셈 글 · 옛 판 주석 · BQCODE 자유 글(「08' 신규」) · 줄 자릿수(「= 2,300」).
|
||||
10. 지식DB 빈칸 · 어긋남 16건 — 숨은 칸 · 끝수 배분 · CHGNM/CHBNM · BQCODE · 계약단가 · PA 문법 · EST 출력 칸 대응 · 총괄표 수식 등(5절).
|
||||
|
||||
근거 약칭 — 〔E〕 = `resources/knowledge/original/경쟁사 프로그램/EST Plus 2/REA 분석/` · 〔S〕 = `…/STmate 분석/20_분석/` · 〔SR〕 = `…/STmate 분석/REA 분석/` · 〔원〕 = `resources/knowledge/original/원가계산/STmate/` · 엑셀 = `resources/tester/helper_m02_hopyo_golden.py` `FILES` 여덟 파일(북부청임도 · 북부청사방 = EST · 봉화 · 동부청영월 · 울진대흥 · 영덕계류 · 울진소광 = STmate · 거창 = EST + 산림조합 시트 섞임) · 「시트!행」 = 그 파일 시트 행 번호.
|
||||
|
||||
---
|
||||
|
||||
## 1. 내부 자료 모델
|
||||
|
||||
### 1-1. EST Plus 2 — 표 · 코드
|
||||
|
||||
| 무엇 | 표(목록 / 상세) | 코드 꼴 | 근거 |
|
||||
| --- | --- | --- | --- |
|
||||
| 노임 | Laborc | `L0000000006` | 〔E〕`07_…/LaborcDat.decoded_candidates.json` |
|
||||
| 자재(유류 포함) | Stuffc — 출처 6칸 Cost1~6 · Page1~6 · ValueIndex · Ratio · Bimog | `M0000000017`(경유) | 〔E〕`07_…/StuffcDat…` · 최종 §5 |
|
||||
| 기계경비 | MachTitle / MachMain + MachGijun(적용기준) | `E0000000000` | 〔E〕`07_…/MachTitleDat…` · 최종 §6-5 |
|
||||
| 단가산출(산근) | CostTitle / CostMain(줄 = LineData 글) | `D0000000713` | 〔E〕`07_…/CostMainDat…` |
|
||||
| 일위대가(호표) | HeadTitle / HeadMain(구성 행) | `U0000001172` | 〔E〕`07_…/HeadMainDat…` |
|
||||
| 율 · 구간 율 · 조달수수료 행 | 같은 상세 표 안 특수 행 | `A01` 또는 없음 | HeadMain 「기구손료 조립노무비의」 `A01` |
|
||||
| 견적 · 표준시장단가 | EstiMate · SilJuk | — | 최종 §3 |
|
||||
|
||||
- 금액 4성분 = 노무 N · 재료 G · 경비 J · 실적 S, 단가 NU · GU · JU · SU(TU), 금액 NC · GC · JC · SC(TC), 수량 GN. 같은 칸에 시점별 꼬리 `_`(당초) · O*(낙찰 전). 〔E〕최종 §3
|
||||
- 열쇠 = Code 우선 → 못 찾으면 품명 · 규격 · 단위. 〔E〕최종 §5
|
||||
- 행 성격 칸 — 한 엔진이 분기:
|
||||
|
||||
| 칸 | 값 | 출력에 드러나는 꼴 |
|
||||
| --- | --- | --- |
|
||||
| LinkIndex | 5 자재 · 6 노임 · 21 표준시장 · 101 견적 · 103 일위 · 104 단산 · 105 기계 / 51 · 68 소계형 · 52 낙찰 · 54 순공사비 · 57 조달수수료 · 58 율 · 62 구간 율 · 61 자릿수 줄 | 비고 「단산N참조」(104) · 「일위N참조」(103) · 빈칸(5 · 6 · 105) · 단위 %(58 · 62) |
|
||||
| CalcIndex | 0 계산 · 합산 / 1 고정 · 합산 / 2 계산 · 합계 제외 / 3 둘 다 안 함 | 2 = 줄 금액은 보이나 호표 합계에 안 듦(「주철뚜껑」 줄 + 「설치비 재료비의 5%」) |
|
||||
| SCheck | 율 결과 성분 1 재료 · 2 노무 · 3 경비 · 0 성분별 / 원천 몰아넣기 3 = 경비성단가 / 산근 소계 줄 -1 노 · -2 재 · -3 경 · -4 실적 · -5 계 | 단가산출총괄표 비고 「(경비)」 · 「경비성단가」 → 일위 줄에 경비 칸만 |
|
||||
| OCheck | 율 기준 성분(1 재료 · 2 노무) — 규격 글로 못 정할 때 | 규격 「노무비의」 · 「주재료비의」 · 「가공노무비의」 |
|
||||
| SKind | 같은 구간끼리만 율 기준 | 「<현장가공>」 · 「<현장조립>」 구간 + `A01` 구간 율 |
|
||||
| Diget · DigetIndex | 줄 자릿수 | 같은 산식인데 「= 2,299.4」 · 「= 2,300」 |
|
||||
|
||||
근거: 〔E〕최종 §3 · §6-2 · `09_…/ESTPlus2_아이슬로_내역서개발_참고정리_20261029.md:13-24` · HeadMainDat 견본 줄.
|
||||
|
||||
### 1-2. EST 단가산출 글(LineData) 표지
|
||||
|
||||
| 표지 | 뜻 | 견본 |
|
||||
| --- | --- | --- |
|
||||
| `\x0e…\x0e` · `\x13…\x13` · `\x15…\x15` | 품명 · 규격 · 단위 | `\x0e굴착기(무한궤도)\x0e \x13(0.7㎥)\x13` |
|
||||
| `\x03…\x03` | 연결 단가(줄 LinkIndex 가 원천) — 원천이 바뀌면 글 숫자도 바뀜 | `노무비 : \x0359,020\x03 ÷ …`(기계 목록 NC) |
|
||||
| `\x11…\x11` | 앞 줄 변수값 | `÷ \x1155.11\x11` |
|
||||
| `\x0c…\x0c` | 다른 줄 값(율 기준) | `\x0c14,373.6\x0c ×3%` |
|
||||
| `\x12…\x12` | 엔진이 쓴 결과 | `= \x12963.8\x12` |
|
||||
| `\x1a…\x1a` | 자동 합계 문구 | `\x1a노무비 : 963.8 + 7,980.7 =\x1a` |
|
||||
| `*단산N참조*` | 산근 안 산근(LinkIndex 104 · Code D…) | 당초 판 `*단산25참조*` ↔ 현재 판 `*단산7참조*` — N 이 목록 차례라 판마다 바뀜 |
|
||||
|
||||
근거: 〔E〕`09_…/ESTPlus2_산근LineData_수량연결_정적분석_20261029.md:18-29` · `07_…/CostMainDat.decoded_candidates.json`(PkID 188). 엑셀로 나올 때 제어문자는 빠지고 글만 남음(북부청임도 「단가산출」 B 열).
|
||||
|
||||
### 1-3. STmate — 표 · 코드 · 식 언어
|
||||
|
||||
| 무엇 | 저장 | 코드 머리 | 근거 |
|
||||
| --- | --- | --- | --- |
|
||||
| 자원 단가 원장 | `COSTN.DBF`(코드 · 이름 · 규격 · 단위 · 성분 단가 4안 · 후보 6 · BQCODE · EQCODE · JDCODE · WQCODE · CONTCODE · IFORM) | L 노무 · M 자재 · S 경비(중기 취득가 천원 포함) · W 일식 · X 중기 · D 산근 · B 일위대가 · A 실적 | 〔S〕`02_…:38-52` · `11_…:52-61` |
|
||||
| 구성 수량 | `BDQTY.DBF`(QTY1..4 · DEVD · X_QTY · X_HAL · RATE · PRPT · EQCODE · SBMOK) — 암호화 | — | 〔S〕`07_…:55-72` |
|
||||
| 산출 원문 식 | `COSTN.SMT`(IFORM 메모) — 평문 | — | 〔S〕`23_…` · 〔원〕`SIxMemo_구조.md` |
|
||||
| 코드 종류 이름 | `Start8x.Ini` `COD_FMT_1~8` = 노무 · 자재 · 경비 · 대가 · 중기 · 산근 · 기타 · 실적 | 비고 「산근 4호표」 · 「대가 1호표」 · 「노무 6」 | 〔S〕`20_…:76-83` |
|
||||
| 특수 줄 코드 | 율 PR · 곱 RR · 구간 율 RRS · 제외 구역 C · 묶음 T(소계 T1 · 계 T2 · 총계 T7 · 계약단가 T0) | 숨은 M · N 열 `PR_1` · `RR_1` · `RRS_(8)_1` · `C1_1` · `T7_1` | 엑셀(아래 2-5) |
|
||||
|
||||
- 코드 번호는 프로젝트마다 새로 매김 — 여러 파일 공통 코드 36개가 모두 다른 품목. 〔582-24 B-5〕
|
||||
- 식 언어(원문 그대로 숨은 G 열에 출력):
|
||||
|
||||
| 꼴 | 뜻 | 견본(엑셀 숨은 G) |
|
||||
| --- | --- | --- |
|
||||
| `&코드&` · `&코드+성분&` | 자원 참조 · 성분(L · M · S) 하나만 끌어옴 · 성분 없으면 셋 다 | `&L00002L&` · `&X00006S&` · `&D00075&` |
|
||||
| `품'단위'` | 품 + 단위 글 | `0.26 * &L00002L&` · `0.31'Kg' * &M00034M&` |
|
||||
| `/ Q` | 중기 성분 ÷ 작업량 → 출력 수량 칸 = 1/Q | 울진대흥 H = 0.18518…(1/5.4) |
|
||||
| `Q = 3600*q*K*f*E/Cm` · `Cm = t1+t2+…` · `f = 1/1.175` | 기본공식 · 인자 줄(사용자 등록 · 10꼴 이상 · Cm 54꼴) | 봉화 「Q = 3600*q*K*f*E/Cm ='m3/hr'」 |
|
||||
| `&PAnn[기준]:[저장]& * n'%'` | 율(PR) — 기준 비목(없음 = 합계 · L · M) 의 n % 를 저장 비목에 | `'잡재료비 :'&PA01M:M& * 11'%'` · `'공구손료 :'&PA02L:S& * 1'%'` |
|
||||
| `&RAnn:M& * 0.08` · `&RS_L:M& * 0.03` | 곱(RR) · 소계 기준 곱(RRS) | 영월 단가산출근거!2082 · 3632 |
|
||||
| `:=A01` | 중간 라벨(금액변수) | `'패널(유로폼) :'&M00084& * 0.89 / 10 :=A01` |
|
||||
| `(=)` · `(==)` · `(===)` · `(-=)` | 소계 · 계 · 총계 · 제외 소계(계산하되 합계 제외) | 봉화 단가산출근거!613 「소계(제외금액)」 |
|
||||
| `'글'` | 주석 · 품셈 근거 · 작업조건 | `'건설표준품셈 3-1-3(터파기),11-3(굴삭기) 적용'` |
|
||||
|
||||
- PR · RR 셈: DEVD 참이면 1/수량, 아니면 PR = 수량 / 100 · RR = 수량. 기준 식 원천 = EQCODE 칸. 〔SR〕`30_…/편집기_중간기록_최종보고서아님.md` 「후속 확인」 · 「22시대 추가 조사」
|
||||
- 변수 선언 = 「대상 비목 · 저장 비목 · %」 셋을 함께 가짐. 〔S〕`28_…:9-34`
|
||||
|
||||
### 1-4. 품셈 번호 · 기본공식 · 고친 흔적이 놓이는 자리
|
||||
|
||||
| 정보 | EST | STmate |
|
||||
| --- | --- | --- |
|
||||
| 품셈 번호 | 산근 글 줄(「[건설표준품셈 준용]」 · 「[건설표준품셈(8-2, 2016년 삭제)]」 · 「<25년 품셈개정>」) · 일위 규격 칸(「임도품셈, 발생석활용 50%적용」 · 「산림사업품셈」) | 산근 원문 첫 주석 줄(`'건설표준품셈 3-1-3(터파기),11-3(굴삭기) 적용'`) · 일위대가표 근거 줄(품명 「건설표준품셈」 · 규격 「7-2-2(찰붙임)」 · 금액 0 · 메타 EXI 1) · 일위 규격 칸(「임도품셈 5-5」) |
|
||||
| 기본공식 · 인자 | 산근 글(q · K · f · E · Cm · Q · 분수 세 줄 그림) · 기계경비 시트(손료 · 주연료 · 잡품 · 운전사 환산식) · 노무 규격 칸 「3인/20㎥」(GN = 0.15 는 셈값) | 산근 원문(Q · Cm · t1~t6 · V1~V4 · n · P=qo*eo) · 중기사용료 시트 · INITIAL `RXNM_`(노임 환산식) |
|
||||
| 사용자 고친 흔적 | UserInput · NewItem 체크(출력 안 남음) · 「경비성단가」 · 「(경비)」 · CalcIndex 2 · 율 결과 성분 · 줄 자릿수 · 코드 없는 글 줄 · 규격 속 품셈 산식 | 숨은 G 원문 식 그대로 · 「(경비 로적용)」 · 「계약단가」 · 「계 x 낙찰율(88.000%)」 · `(-=)` 구역 · BQCODE 자유 글 · 임시코드 신규등록 · 사용자 등록 Q식 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 출력 엑셀 칸 ↔ 내부 모델 대응표
|
||||
|
||||
### 2-1. EST 「일위대가」 시트(북부청 두 파일 · xls)
|
||||
|
||||
| 칸 | 머리 줄(「제N호표」) | 구성 줄 | 내부 원천 |
|
||||
| --- | --- | --- | --- |
|
||||
| B | 「제N호표」 | — | HeadTitle 차례(= 비고 「일위N참조」 의 N) |
|
||||
| C · D · F | 품명 · 규격 · 단위 | 품명 · 규격 · 단위 | Name · Size · Unite |
|
||||
| E | — | 수량 | GN(규격에 품셈 산식 「3인/20㎥」 이 있으면 그 셈값) |
|
||||
| G | — | 합계 단가 | TU |
|
||||
| H · J · L · N | 호표 합계 · 노 · 재 · 경 금액 | 줄 합계 · 노 · 재 · 경 금액(소수1) | HeadTitle TC · NC · GC · JC / 줄 TC · NC · GC · JC |
|
||||
| I · K · M | — | 노 · 재 · 경 단가 | NU · GU · JU(원천 목록 성분 그대로 · 경비성단가면 경비 하나) |
|
||||
| O | — | 비고 「단산N참조」 · 「일위N참조」 · 빈칸 | 일위 탭 옵션 「비고란에 발췌근거 표시」(`TFRMOPTION.headcheckBigoShow`) — LinkIndex 104 · 103 의 근거 위치 |
|
||||
|
||||
- 북부청임도 비고 · 성분 꼴(줄 수): 단산N참조 + 노재경 133 · 노재 96 · 노 21 · 재경 11 · 노경 7 / 빈칸 + 재 78(자재) · 빈칸 + 노재경 3(기계 hr) / 별도계상 규격 + 단가 없음 59 · 품명 「조약돌(별도계상)」 5 / 일위N참조 1 / 단위 % 1(「잡재료비 · 재료비의」). 북부청사방은 같은 꼴 + 빈칸 + 노(「철골공 인」 노임) 2 · 단산N참조 + 경만 3(경비성단가).
|
||||
- 율 줄 = 품명(「잡재료비」) · 규격(기준 글 「재료비의」) · 수량(율 숫자) · 단위 % · 단가(기준액) · 금액. 〔E〕HeadMainDat 「설치비 · 재료비의 · 5 · % · SCheck 2」.
|
||||
- 근거: 북부청임도 일위대가!3-40 · !357 · !364.
|
||||
|
||||
### 2-2. EST 「단가산출」 시트
|
||||
|
||||
| 칸 · 줄 | 무엇 | 내부 원천 |
|
||||
| --- | --- | --- |
|
||||
| B 머리 「N.품명(규격)[단위]」 + C~F | 블록 머리 · 합계 · 노 · 재 · 경(원 미만 절사) | CostTitle 차례 · Name · Size · Unite · TC · NC · GC · JC |
|
||||
| B 몸 줄 | LineData 글(제어문자 뺀 것) — 절 제목 「1. 채 집」 · 「가. 굴착기」 · 인자 · Q 분수 세 줄 · 성분 줄 · 소계 | CostMain LineData |
|
||||
| C~F 가 찬 몸 줄 | 그 줄 TC · NC · GC · JC — 노임 · 자재 연결 줄(성분 하나) · 기계 소계 줄(105 / -5) · 계 줄(0 / -5) | CostMain 줄 금액(TC 0 인 줄은 빈칸) |
|
||||
| 단가산출총괄표 J 비고 | 「(경비)」 · 「경비성단가」 | CostTitle SCheck 3 → 일위 줄에서 경비 칸만(북부청사방 단산 13 · 14 실측) |
|
||||
|
||||
- 근거: 북부청임도 단가산출!4-60(「뒷채움돌 채집, 운반, 뒷채움 및 다짐 [건설표준품셈 준용]」 — 채집(기계 90 % + 인력 10 %) · 상차 · 운반 세 절) · !372 · !500-502 · !1087-1089 · 단가산출총괄표!8 · !14.
|
||||
|
||||
### 2-3. EST 원천 · 총괄 시트
|
||||
|
||||
| 시트 | 칸 | 내부 원천 · 뜻 |
|
||||
| --- | --- | --- |
|
||||
| 노임단가 | No · 품명 · 규격 · 단위 · 적용단가 · 비고(「2026년(상)」) · Z~AC 당초 | Laborc · 비고 = 노임 해 |
|
||||
| 자재단가 | 가격정보 · 물가자료 · 유통물가 · 물가정보 · 거래가격 · 견적가1(단가 + page) · 적용단가 · 비고(「26年북부지방산림청」) | Stuffc Cost1~6 · Page1~6 · TC · 「비고란에 발췌근거 표시」 |
|
||||
| 기계경비 | 명칭 · 규격 · 산출근거(손료 = 취득가 ₩ × 계수 × 10(-7) · 주연료 ℓ × 단가 · 잡품 주연료의 % · 운전사 1인 × 노임 × `1/8*16/12*25/20`) · 노 · 재 · 경 · 비고(「'26年 개정」) | MachMain · 최종 §6-5 |
|
||||
| 기계경비적용기준 | 환율(달러 · 엔 · 유로 + 고시일) · 기본재료비(경유 · 휘발유) | MachGijun · 갱신 항목 「유류대 · 환율」 |
|
||||
| 일위대가총괄표 · 단가산출총괄표 · 기계경비총괄표 · 내역서총괄표 | F 합계 · G~I 성분 · J 비고 · Z~AC 당초 | **G~I 는 수식 칸(캐시 0)** — 북부청임도 BIFF FORMULA 683개 중 단가산출총괄표 285 · 일위대가총괄표 204 · 기계경비총괄표 96 · 내역서총괄표 60 · 기계경비 32(Z 합계) — 성분은 상세 시트 또는 Z~AC 에서 읽음 |
|
||||
|
||||
- EST 엑셀 변환 창 경고 「엑셀변환후 금액변동이 발생할수 있으므로 변환된 엑셀자료의 금액을 확인하시기 바랍니다.」(`TFRMEXCELCONVERT.cxLabel1-2`) — 수식 칸을 엑셀이 다시 셈하면 EST 내부 값과 갈릴 수 있음.
|
||||
- 출력 시트 12개 = EST 「엑셀로 변환」 항목. 〔582-24 B-2〕
|
||||
|
||||
### 2-4. STmate 「일위대가표」 시트(xlsx · 수식 살아 있음)
|
||||
|
||||
| 칸 | 머리 줄 | 구성 줄 | 숨은 · 내부 원천 |
|
||||
| --- | --- | --- | --- |
|
||||
| A | 「제 N 호표」 · 다음 줄 이름 | 명칭 | COSTN NAME |
|
||||
| B · C · D | 규격 · — · 단위 | 규격 · 수량 · 단위 | SIZE · QTY1(할증 뒤) · UNIT |
|
||||
| E · F | — | 합계 단가 · 금액 | `=I+G+K` · `=J+H+L` |
|
||||
| G · I · K | — | 노 · 재 · 경 단가 = **목록표 참조 수식**(`=노무비목록표!E5` · `=단가산출근거목록표!F70` · `=중기목록표!F19`) | 참조 시트 이름 = 갈래 |
|
||||
| H · J · L | 합계 줄 = `ROUNDDOWN(SUMIF(P,O합계,H)+보정,0)` | `IF(C=0,0,ROUNDDOWN(G*C,1)+보정)` | 성분 소계 절사 |
|
||||
| M | 호표 코드(B00260) | 비고 — 코드(`M00024` · `D02058`) · 「별산M00985」 · 코드 사전 이름(「노무 6」 · 「산근 1호표」) · BQCODE 글 | 「비고」 설정 |
|
||||
| N(숨김) | `BDCOD|B00260 · POSS|7 · POSE|10`(몸 행 범위) | `COD|M00024 · EXI · DVD · BMK · IPR · KWN · BLA` (율 줄 + `PRI · PRO · EQC|A01 · UNI|% · TPR`) | 코드 · 줄 표지 메타 |
|
||||
| O · P | 합계 열쇠(T7_1) | 줄 열쇠(`M00024_1`) · 묶음(`T7_1` · 근거 줄 `_1`) | SUMIF 묶음 |
|
||||
| S~Y | — | 끝수 배분 칸(영월만 — 4절) | 총액 먼저 모드 |
|
||||
| Z | — | 목록표 바로가기 하이퍼링크 | — |
|
||||
| A 합계 줄 글 | 「합 계」 · 「합 계(경비 로적용)」 | — | 결과적용 비목(경비로 몰아넣기 · H · J = 0) |
|
||||
|
||||
- 메타 실측(다섯 파일 666 줄): COD 머리 D 307 · M 140 · L 93 · B 75 · 없음 38(근거 줄) · X 29 · PR 16 · W 5 · C 2 · S 1 / EXI 1 = 59(율 줄 · 근거 줄) · 2 = 2 / IPR 1 = 43(율 기준에 드는 줄 — 「포장공 · 보통인부」 다음 「잡재료비 노무비의 3%」) / PRI · PRO = 기준 · 결과 비목(1 재 · 2 노 · 3 경 — 「잡재료비 노무비의」 PRI 2 · PRO 1 · 「공구손료 및 경장비의 기계경비」 PRO 3 · 「산악할증」 PRO 2).
|
||||
- 근거: 동부청영월 일위대가표!5-40 · 봉화 일위대가표!72-74 · !78 · 울진소광 일위대가표!7-11.
|
||||
|
||||
### 2-5. STmate 「단가산출근거」 시트
|
||||
|
||||
| 칸 | 무엇 | 내부 원천 |
|
||||
| --- | --- | --- |
|
||||
| A | 줄 코드 표시(설정 따라 `X00006S` · 「중기 14L」 · BQCODE 「01000000011」 · 「24년 1월」 · 「08' 신규」) · 「총 계」 · 「계약단가」 · 「계 x 낙찰율(88.000%)」 · 「총 계 (경비 로적용)」 | 코드 · COD_FMT · BQCODE · 줄 종류 |
|
||||
| B | 보이는 글 = 수식 조립(`=" "&Z16&" * "&TEXT(I16,…)`) · 머리 = 코드 + 「이름 규격 / 단위」 | — |
|
||||
| C~F | 합계 · 노 · 재 · 경 금액(`ROUNDDOWN(J*H,1)` · 소계 `SUMIF(N,M,…)` · 총계 `ROUNDDOWN(…,0)` · 계약단가 `ROUNDDOWN(계*H/100,0)`) | 줄 성분 |
|
||||
| **G(숨김)** | **원문 식 한 줄**(`0.26 * &L00002L& =` · `(=)` · `'건설표준품셈3-1-3'`) · 머리 `BDCOD|D00002 · POSS · POSE` | `COSTN.SMT` IFORM |
|
||||
| H | QTY(품 · `/Q` 면 1/Q · +1e-13 덧값) · 계약단가 줄은 낙찰율 | BDQTY 셈 수량 |
|
||||
| I~L | 합계 · 노 · 재 · 경 단가(목록표 참조 · 율 줄은 `SUMIF(O,"1_01",…)` 기준액) | — |
|
||||
| M · N · O | 줄 열쇠(`L00002_1` · `PR_1` · `T1_1` · `C1_1`) · 묶음 열쇠 · 율 기준 표지(`1_01`) | 계층 · 율 범위 |
|
||||
| X | 「이름 / 규격」(목록표 참조) | — |
|
||||
| Z~AC | 품 분해(Z 품 · AA 「*1」 · AC `=Z*1`) — 「수량부분 값 수정은 아래의 연두색 부분에」 | 출력 엑셀을 고쳐 다시 셈하도록 만든 꼴 |
|
||||
|
||||
- 원문 식 꼴 실측(다섯 파일): 글 주석 1,178 · `(=)` 473 · `(==)` 194 · 중기 성분 `/ Q` 계열 수백 · `&PA01:M& * 2'%'` 71 · Q식 41+ · `t3'(적하시간)'=0.8'분'` 30 · `Cm = 18'sec (90˚)'` 29 … 토큰 X+S 320 · X+L 299 · X+M 299 · L 186 · M 89 · L+L 27 · PA+L:S 20 · PA+:S 19 · PA+M:M 17 · D 3. 〔`tmp/brain_642/B/stm_src.txt`〕
|
||||
- 근거: 동부청영월 단가산출근거!5-54 · !1336 · !1521 · !1542 · !2082 · !3632 · 울진대흥 단가산출근거!562 · !842-843 · 봉화 단가산출근거!243 · !589 · !613.
|
||||
|
||||
### 2-6. STmate 목록표 · 기초 시트
|
||||
|
||||
| 시트 | 보이는 칸 | 숨은 메타(G 또는 J 열) |
|
||||
| --- | --- | --- |
|
||||
| 노무비목록표 | 코드 · 명칭 · 규격 · 단위 · 단가 · 비고(BQC 11자리) | `COD|L00002 · BQC|01000000075 · EQC|01000001002 · JDC|L001010101000002 · EDT|2024.상` |
|
||||
| 재료비목록표 | 같음 · 단가 = `=자재단가대비표!O6` | `COD · BQC · EQC · JDC · EDT · DET|행` |
|
||||
| 경비목록표 | 같음(중기 취득가 S · 단위 천원) | `EQC|02010100190 · JDC · EDT|2024` |
|
||||
| 중기목록표 · 단가산출근거목록표 | 코드 · 명칭 · 규격 · 단위 · 합계 · 노 · 재 · 경 = 상세 시트 행 참조(계약단가 있으면 그 행) | `ADJ|F · RXX|0 · DET|행` |
|
||||
| 자재단가대비표 | 후보 다섯(조달 · 물가자료 · 물가정보 · 거래 · 견적) · 적용단가 · 출처 축약 | 〔S〕`17_…:109-139` |
|
||||
| 환율및기초자료 · 〓 INITIAL 〓(veryHidden) | 노임 환산식 · 환율 · 설정 스냅샷(ACTYP · ACTOP · CHGNM · CHBNM · CHNNM · CUTNM · OPTNM SML · RXNM_ · COND_) | 〔S〕`18_…:81-100` |
|
||||
|
||||
### 2-7. 출력 프로그램 · 설정 판별
|
||||
|
||||
| 판별 | 신호 |
|
||||
| --- | --- |
|
||||
| EST | 시트 12 이름(원가계산서 … 노임단가) · 단가산출 머리 「N.이름[단위]」 · 비고 「단산N참조」 |
|
||||
| STmate | 시트 「일위대가표」 · 「단가산출근거」 · 「〓 INITIAL 〓」 · 셀 「STmate」 표지 · 숨은 `COD|` 메타 |
|
||||
| STmate 비고 설정 | M 열 · A 열이 코드 꼴(영월) / 코드 사전 이름 꼴(울진대흥 「노무 6」) / BQCODE 꼴(봉화 11자리 · 날짜 · 사용자 글) — 파일마다 한 꼴 |
|
||||
| STmate 끝수 모드 | 일위대가표 S~Y 칸 수식 있음 = 총액 먼저(영월 · CHGNM · CHBNM False) / 없음 = 성분 먼저(나머지 넷 · True) |
|
||||
|
||||
---
|
||||
|
||||
## 3. 매칭 규칙 · 신호
|
||||
|
||||
### 3-1. 1차 — 줄 갈래 확정 신호
|
||||
|
||||
| 갈래 | EST 출력 신호 | STmate 출력 신호 | 확정도 | 아이슬로 대상 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 단가산출 부름 | 비고 「단산N참조」 | 숨은 COD `D…` · 단가 = `단가산출근거목록표!` 참조 · 비고 D 코드 / 「산근 N호표」 | 확정 | M02 단가산출(사용자 것) 또는 M01 단가산출 기초 조합(옵션값 입력 · 수량은 엑셀 그대로) |
|
||||
| 일위대가 부름 | 비고 「일위N참조」 | COD `B…` · `일위대가목록표!` 참조 · 「대가 N호표」 | 확정 | M02 다른 일위대가(한 줄 표현) |
|
||||
| 노임 | 비고 빈칸 + 노무 칸만 + 단위 인 + 노임단가 시트 품명 · 적용단가 일치 | COD `L…` · `노무비목록표!` | STmate 확정 · EST 강함 | M01 인력 |
|
||||
| 자재 | 비고 빈칸 + 재료 칸만 + 자재단가 시트 품명 · 규격 · 적용단가 일치 | COD `M…` · `재료비목록표!` | 같음 | M01 재료(경유 · 휘발유 · 중유 · 전력 = 유가전력) |
|
||||
| 기계 | 비고 빈칸 + 노재경 셋 + 단위 hr · 시간 + 기계경비 시트 명칭 · 규격 · 성분 일치 | COD `X…` · `중기목록표!` | 같음 | M01 기계 |
|
||||
| 경비 · 일식 | (견적 · 표준시장 LinkIndex 101 · 21 — 표본 없음) | COD `S…` · `W…` · `경비목록표!` | STmate 확정 | M01 해당 그룹 · 없으면 사용자 값 |
|
||||
| 별도계상 | 규격 「별도계상 · 별도계산」 또는 품명 「(별도계상)」 + 단가 0 · 코드 없는 글 줄(LinkIndex 0) | 비고 「별산」 머리 + 규격 「별도계상」 + 목록표 단가 0(숨은 COD 는 M 코드) | 확정 | 재료(금액 0 · 수량만) |
|
||||
| 율(%) | 단위 % + 규격 「…의」(노무비 · 재료비 · 주재료비 · 가공노무비 · 전체금액) | COD `PR…` · 메타 UNI % · PRI · PRO · IPR · 규격 「노무비의 %」 | 확정 | M01 계수 / M02 율 줄 |
|
||||
| 근거 · 주석 줄 | 코드 · 단가 없는 글 줄(「<현장가공>」) | COD 없음 · EXI 1 · 금액 0 · 품명 「건설표준품셈」 | 확정 | 매칭 대상 아님 — 2차 품셈 번호 원천 |
|
||||
| 성분 몰아넣기 | 단가산출총괄표 비고 「(경비)」 · 「경비성단가」 → 일위 줄 경비 칸만 | 합계 줄 「(경비 로적용)」 | 확정 | 결과 성분 옵션(합계로 대조) |
|
||||
|
||||
- 금액 칸 배치 = 성분 지문: 노만 → 노임 또는 인력 산근 · 재만 → 자재 · 노재경 → 기계 또는 기계 산근 · 경만 → 경비성단가 · 재경 → 자재 + 장비 산근(「P.V.C파이프설치」).
|
||||
- 이름만으로 못 가르는 까닭: 같은 이름 산근이 여러 블록(「구조물터파기」 인력 · B/H 90 % + 인력 10 %) · 코드 번호는 프로젝트마다 다름 · 규격에 사용자 글(「임도품셈 5-5」 · 「산림사업품셈」).
|
||||
|
||||
### 3-2. 2차 — 비고 → 단산 상세 → 품셈 번호 → 기본공식
|
||||
|
||||
| 걸음 | EST 자리 | STmate 자리 |
|
||||
| --- | --- | --- |
|
||||
| ① 비고 → 블록 찾기 | 「단산N참조」 N = 단가산출 시트 「N.」 머리(목록 차례 — 코드 아님 · 「단산,일위 Title데이타 복구」 뒤 바뀔 수 있음) · 「일위N참조」 → 「제N호표」 | 숨은 COD `D02058` = 단가산출근거 머리 `BDCOD|D02058` · 몸 범위 `POSS · POSE` · 목록표 행 참조 수식으로도 바로 감 |
|
||||
| ② 블록 안 절 나누기 | 절 제목 「1. 채 집」 · 「가. 굴착기(타이어형)(0.6㎥)」 · 「나. 인 력 (10%)」 · 「다. 소 계」 · 소계 줄(C~F 찬 줄) | 원문 주석 `'1. 포설(그레이다 3.6 m)'` · `(=)` 소계 · `(==)` 계 · N 열 묶음 |
|
||||
| ③ 품셈 번호 | 머리 아래 첫 글 줄 「[건설표준품셈 준용]」 · 「건설표준품셈 6-1-1 적용」 · 옛 판 「(8-2, 2016년 삭제)」 · 「<25년 품셈개정>」 · 일위 규격 칸 | 원문 첫 주석 · 일위대가표 근거 줄(EXI 1) · BQCODE 판 표시(봉화 「2024년 개정」) |
|
||||
| ④ 기본공식 | Q · Cm · q · K · f · E 인자 줄 · 「÷ Q × 90%」 · 노무 「172,068 × 0.3인/㎥ × 10%」 · 기계경비 시트 | 원문 Q식 · Cm식 · t · V · n 줄 · `&X…L& / Q` · 중기사용료 시트 |
|
||||
| ⑤ 수 지문 | 산근 머리 금액 = 일위 줄 단가(일위 줄 G = 단가산출 머리 C) | 목록표 단가 = 단가산출근거 총계(또는 계약단가) 행 |
|
||||
|
||||
- 품셈 번호는 비고에 없음(1,350 줄 중 0) — 블록 글 · 근거 줄에만. 〔582-24 A-1〕
|
||||
- 품셈 번호 함정: 옛 판 번호가 지금 판 다른 공종과 같은 번호(건설 11-3 굴삭기 ↔ 현행 11-3 가스 · 산림 5-1-2) — 번호만으로 잇지 않음. 〔582-24 B-6〕
|
||||
|
||||
### 3-3. 여러 정보가 엮이는 꼴
|
||||
|
||||
| # | 꼴 | 출력에서 보이는 모습 | 근거 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | 한 산근 = 여러 절(채집 + 상차 + 운반 · 포설 + 다짐) | 한 블록 안 절 셋 · 절마다 소계 · 끝 「계」 | 북부청임도 단가산출!8-60 |
|
||||
| 2 | 기계 / 인력 비율 조합 | 「÷ 23.1 × 90%」 + 「× 0.3인/㎥ × 10%」 · 규격 「B/H 90%+인력10%」 | 같음 · 〔S〕`31_…:37-38` |
|
||||
| 3 | 산근 안 산근 | EST `*단산N참조*`(LinkIndex 104) · STmate `&D00075&` · A 「산근 1호표」 | CostMainDat PkID 188 · 울진대흥 단가산출근거!562 |
|
||||
| 4 | 일위 안 일위 | EST 「일위N참조」(103) · STmate B 코드 — 실무 350 조합 중 150 이 2단 이상 | 〔S〕`31_…:67-87` |
|
||||
| 5 | 직접 줄 호표(기초 품을 호표에 맨 줄로 펼침) | 노임 · 기계 줄만 · 규격 「3인/20㎥」 | 〔582-24 A-6〕 55/245 |
|
||||
| 6 | 율 줄 기준 범위 | EST 머리 아래 위쪽 행 합 · SKind 구간 · 규격 글자 / STmate IPR · `1_01` 표지 줄만 · RRS 소계 | HeadMainDat `A01` · 영월 단가산출근거!1336 |
|
||||
| 7 | 율 결과 성분 ≠ 이름 | 「공구손료 및 경장비(진동기)의 기계경비 노무비의 2%」 → 재료비 칸(EST SCheck 1) · STmate PRO 3 경비 | HeadMainDat · 북부청임도 단가산출!1087-1089 |
|
||||
| 8 | 할증 세 갈래 | 수량 할증(「×1.03m」 · 「×5㎡×1.05」 — 수량에 이미 듦) · 금액 할증(「산악할증 노무비의 %」 율 줄) · 품 할증(「× 0.1 × 2」) | CostMainDat · 〔S〕`07_…:70` |
|
||||
| 9 | 손료 세 갈래 | 기계 손료(취득가 × 계수 × 10⁻⁷) · 재료 손료(「내수합판 10,984 × 1.03㎡ × 38%」 · `* 0.443'%'`) · 공구손료 율 줄 | 북부청임도 기계경비!5 · 단가산출!1181 |
|
||||
| 10 | 성분 몰아넣기 | 「(경비)」 · 「경비성단가」 · 「(경비 로적용)」 | 2-2 · 2-4 |
|
||||
| 11 | 낙찰율 계약단가 | 산근 「계약단가」 · 「계 x 낙찰율(88.000%)」 → 목록표가 그 행을 씀 | 울진대흥 단가산출근거!842-843 · 단가산출근거목록표 「제 15호표」 |
|
||||
| 12 | 제외 구역 · 계산 제외 | STmate `(-=)` 「소계(제외금액)」 · EST CalcIndex 2(줄 금액 보이나 합계 밖) | 봉화 단가산출근거!613 · HeadMainDat 「주철뚜껑」 |
|
||||
| 13 | 별도계상 | 수량만 · 금액 0 | 2-1 · 2-4 |
|
||||
| 14 | 직접 입력 단가 | EST 입력단가(ValueIndex 4) · STmate 강제금액 · 「바꾸기」 | 〔E〕최종 §5 · 〔S〕`28_…:118` |
|
||||
| 15 | 분수 그림 Q 식 | EST 세 줄(「3,600 × q …」 / 「Q = ───── =」 / 「18」) | 북부청임도 단가산출!24-26 |
|
||||
| 16 | `/ Q` 역수 수량 | STmate H = 1/Q | 울진대흥 단가산출근거!19 |
|
||||
| 17 | 같은 산식 다른 자릿수 | 「= 2,299.4」 · 「= 2,300」 | 북부청임도 단가산출!28 · !151 |
|
||||
|
||||
### 3-4. 매칭 단위 · 차례 (제안 — 구조에서 나온 것)
|
||||
|
||||
- 단위 = 일위 줄(1차 갈래) → 산근 블록의 절(2차) — 블록 하나에 M01 기초 여럿(1 · 2 · 3번 꼴)이 들므로 「한 줄 = 기초 여럿(복수 선택)」 이 정상 꼴.
|
||||
- 차례 = 출력 판별(2-7) → 숨은 메타(STmate) 또는 비고 + 성분 배치(EST) → 원천 시트 이름 · 단가 대조 → 블록 → 절 → 품셈 번호 → 기본공식 인자(q · K · f · E · Cm · 품) → 수 지문.
|
||||
- 매칭 열쇠로 안 쓸 것: 경쟁사 코드 번호(프로젝트마다 다름) · EST 「단산N」 의 N(차례 · 판마다 다름 — 같은 파일 안 위치로만) · 품셈 번호 단독.
|
||||
|
||||
---
|
||||
|
||||
## 4. 검증 · 대조 규칙(우리 금액 ↔ 엑셀 금액)
|
||||
|
||||
| 자리 | EST | STmate | 대조 규칙 | 근거 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 일위 줄 성분 금액 | 수량 × 단가 소수1 **절사** | `ROUNDDOWN(단가×수량,1)` + (총액 먼저면) 끝수 배분 | EST 1,160/1,160 · STmate 수식 그대로 | 북부청 두 파일 실측 · 영월 일위대가표 H7 |
|
||||
| 호표 성분 | Σ줄 성분 → 원 미만 절사 | `ROUNDDOWN(SUMIF(…)+보정,0)` | EST 95/95 | 실측 · 〔S〕`17_…:13-24` |
|
||||
| 호표 합계 | 성분 셋 합(줄 합계 절사 아님) | `=I+G+K` | EST 94/94 · 줄 합계를 더해 절사하면 1원 틀림(제1호표 1,040,053 ≠ 1,040,052) | 북부청임도 일위대가!5 |
|
||||
| 끝수 배분(총액 먼저) | 옵션 「총액 맞춤」 f197a4 최대 나머지 배분(북부청 표본은 꺼짐) | 총액 `ROUNDDOWN(E×C,1)` − 성분 절사 합 → 0.1(합계는 1)씩 버린 소수 큰 성분부터 · 동률 차례 경비 › 재료 › 노무(OPTNM `SML`) | 영월만: 일위 줄 37/131 · 호표 합계 20/30 · 산근 총계 42/69 보정 0 아님 | 〔E〕최종 §6-1 · 〔SR〕`15_…/작업메모` · 영월 일위대가표 V~Y |
|
||||
| 산근 줄 | 일반 식 2자리 사사오입 · 성분 · 연결 줄 1자리 절사 · 합계 원 미만 절사 | 성분 = 절사(시간단가 / Q, 소수1) · Q 소수2 먼저 확정 · 총계 원 미만 절사 | Q 는 글에 적힌 값으로 나눔(원값으로 나누면 어긋남) | 〔E〕최종 §6-4 · 〔S〕`18_…:47-79` |
|
||||
| 율 줄 | 기준 = 머리 아래 위쪽 행 합(SKind 구간 · 내역은 Level) · 기준 성분 = 규격 글자(노 · 품 · 인 / 재 · 자 / 경 / 합계 · 총) · 결과 = SCheck | 기준 = IPR · `1_01` 표지 줄 합 · PR = 수량/100 · RR = 수량 · 결과 = PRO · 저장 비목 | 기준 줄 범위 · 결과 성분부터 맞춘 뒤 금액 | 〔E〕최종 §6-2 · 〔SR〕`30_…` |
|
||||
| 할증 · 계수 곱 | 글 차례대로 | 식 문자열 좌→우 순차(계수 미리 접으면 1원 틀림) | 노임 환산 `1/8*16/12*25/20` 좌→우 18/18 | 〔S〕`18_…:33-45` |
|
||||
| 노임 해 | 노임단가 비고 「2026년(상)」 | 노무비목록표 `EDT|2024.상` · INITIAL `M_VER` | 노임 단가가 다르면 해부터 맞춤 | 실측 |
|
||||
| 자재 단가 출처 | 6 출처 · ValueIndex(최저 · 평균 · 최고 · 선택 · 입력) — 표본은 최저 93/93 | 5 후보 · 0 아닌 최저(76/76) · 6번째 = 적용 | 적용단가 = 최저가 아니면 사용자 고정 | 실측 · 〔S〕`17_…:109-139` |
|
||||
| 기계 시간단가 | 손료(취득가 × 계수 × 10⁻⁷) · 연료 · 잡품 · 운전사 → 기준표 자릿수 절사 → 합계 원 미만 절사 | 손료율 × 취득가(천원) · 성분별 절사 후 합 | 성분별 절사 | 〔E〕최종 §6-5 · 〔S〕`17_…:28-52` |
|
||||
| 낙찰율 | 낙찰 행 52 · O* 보관 | 산근 계약단가 = `ROUNDDOWN(계×낙찰율/100,0)` 성분별 · 목록표가 이 행 | 품셈으로 셈한 우리 값 × 낙찰율 로 대조 | 울진대흥 · 영덕 · 울진소광 |
|
||||
| 성분 몰아넣기 | 경비성단가 · 「(경비)」 | 「(경비 로적용)」 | 성분 대조 전에 합계로 대조 | 2-2 · 2-4 |
|
||||
| 반올림 함수 | 공통 도구 · 모드 1 사사오입 · 2 절사 · 3 올림식 | 내부 은행가 RoundTo · 출력 엑셀 수식은 Excel ROUND · ROUNDDOWN | STmate 엑셀 값은 엑셀 계산값(캐시) — 내부값과 원 단위 갈릴 수 있음 | 〔S〕`11_…:124-154` |
|
||||
| 수식 칸 | 총괄표 성분 · 기계 합계 = 수식 · 캐시 0 | 거의 모든 금액 = 수식 · 캐시 있음 | EST 총괄표 성분은 읽지 말고 상세 · 당초 칸에서 | BIFF 실측 |
|
||||
| 수량 덧값 | — | 수량 + 1e-13(0.0800000000001) | 절사 전 덧값 유지 또는 Decimal | 봉화 단가산출근거!243 |
|
||||
|
||||
- 대조 차례(제안): 블록 · 호표 합계 → 성분(몰아넣기 · 결과적용 · 낙찰율 확인) → 줄 → 절. 원 단위 차 ±1 은 끝수 배분 · 반올림 경로 차로 먼저 의심.
|
||||
|
||||
---
|
||||
|
||||
## 5. 지식DB 에 없거나 어긋나는 것
|
||||
|
||||
| # | 무엇 | 지식DB 지금 | 이번 관찰 | 꼴 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | STmate 출력 숨은 칸(일위대가표 N 메타 · 단가산출근거 G 원문 식 · M · N · O 열쇠 · Z~AC 품 분해 · 목록표 메타) | 17 · 18 · 31 은 값 칸만 · 582-24 B-2 「BDCOD|B…」 이름만 | 원문 식 · 줄 표지 · 율 범위가 출력에 다 있음 | 없음 (코드 `M02_Hopyo_Stmate.py` 는 G 열 일부 이미 씀) |
|
||||
| 2 | 메타 EXI · IPR · PRI · PRO · EQC · UNI · TPR · KWN · BLA · DVD · BMK 뜻 | 없음 | IPR = 율 기준에 드는 줄 · PRI/PRO = 기준 · 결과 비목(1 재 · 2 노 · 3 경) · EXI 1 = 율 줄 · 근거 줄 | 없음 · 추정 |
|
||||
| 3 | STmate 끝수 배분(총액 먼저) | 17번 「일위대가표 절사 94.2 %, 나머지는 구획 어긋남」 | 영월은 수식으로 배분 실재(호표 합계 20/30 보정) — 5.8 % 일부가 배분일 공산 | 어긋남 후보 |
|
||||
| 4 | CHGNM · CHBNM 뜻 | 〔원〕`STC_필드사전_핵심.md:25` 「변경 관련 플래그 ⚠」 | 영월만 False + 끝수 배분 칸 · CHNNM(내역 비목별 먼저/총액 먼저 — 〔SR〕14)과 같은 꼴 → 일위대가 · 산근 계산 방식 추정 | 어긋남 · 추정(1건) |
|
||||
| 5 | BQCODE 뜻 | 〔원〕핵심 「단가 적용월 등 ⚠」 · 582-24 A-1 「11자리 수 뜻 확인 못 함」 | 코드 종류마다 다른 자유 칸 — L = 11자리(호환 노임 코드 추정) · M = 적용월 · X · D = 사용자 글(「08' 신규」 · 「2024년 개정」) · 봉화 비고 = 이 칸 출력 | 어긋남 · 해소 |
|
||||
| 6 | 산근 계약단가(낙찰율) 줄이 목록표 단가 원천 | 26 · 27 「NAGCD · 결과값에 낙찰율적용」 이름만 | 세 파일 실재 · 목록표가 계약단가 행 참조 | 없음 |
|
||||
| 7 | 특수코드 `&PAnn기준:저장&` · `&RAnn:M&` · `&RS_L:M&` 문법 | 28 「특수코드(&PA01&)」 이름만 · 〔SR〕30 PR/RR 계수 | 기준 · 저장 비목 · `1_01` 범위 표지까지 출력 수식과 맞음 | 없음 |
|
||||
| 8 | EST 출력 엑셀 칸 대응(일위 B~O · 단가산출 B~F · 원천 시트) | REA 최종 §9 「변환 기능 범위 밖」 | 2-1~2-3 | 없음 |
|
||||
| 9 | EST 총괄표 성분 칸 = 수식(캐시 0) · 기계 합계 칸 수식 | 없음 | FORMULA 683 · 503 개 · 변환 창 금액변동 경고 | 없음 |
|
||||
| 10 | EST 「단산N참조」 = 일위 탭 「비고란에 발췌근거 표시」 · N = 목록 차례 | 582-24 「EST 산근 글 표지」 | 옵션 이름 · 당초 25 ↔ 현재 7 (차례라 판마다 바뀜) | 덧 |
|
||||
| 11 | EST 별도계상 = 코드 없는 글 줄(LinkIndex 0 · 규격 「별도계산」) | 없음 | HeadMainDat 견본 · 북부청 59 + 5 줄 | 없음 |
|
||||
| 12 | EST 율 결과 성분 실례(공구손료 기계경비 → 재료) · CalcIndex 2 + 율 기준 | REA 규칙만 | HeadMainDat 「설치비 SCheck 2 · 주철뚜껑 CalcIndex 2」 | 덧 |
|
||||
| 13 | EST 출력 반올림 실측(줄 소수1 절사 · 호표 성분 절사 · 합계 = 성분 합 · 자재 최저) | REA 표본(.estx) 대조만 | 엑셀 1,160 · 95 · 94 · 93 실측 | 덧 |
|
||||
| 14 | STmate 비고 · A 열 = 설정 따라 코드 / 코드 사전 이름 / BQCODE | 582-24 「봉화 = 설계자가 손으로 적은 글」 | 손글은 맞으나 자리 = BQCODE 칸 출력 | 일부 어긋남 |
|
||||
| 15 | EST 자재단가 시트 출처 이름(가격정보 · 물가자료 · 유통물가 · 물가정보 · 거래가격 · 견적가1) | STmate 슬롯 이름만(17 · 20) | EST 도 설치 · 기관마다 이름이 다를 수 있음(미확인) | 없음 |
|
||||
| 16 | STmate 수량 덧값 1e-13 · `/Q` 역수 수량 | REA 30 DEVD 역수 규칙만 | 출력 H 칸 실측 | 덧 |
|
||||
|
||||
- 지식DB 반영은 지식DB 운영지침(`resources/knowledge/00_운영지침.md`)대로 따로 — 이 문서는 근거 · 후보만.
|
||||
|
||||
---
|
||||
|
||||
## 근거 · 도구
|
||||
|
||||
- 지식DB: 〔E〕`ESTPlus2_REA_최종보고서_20261030.md` · `09_…/ESTPlus2_아이슬로_내역서개발_참고정리_20261029.md` · `09_…/ESTPlus2_산근LineData_수량연결_정적분석_20261029.md` · `07_…/{CostMain,HeadMain,HeadTitle,CostTitle,Stuffc,Laborc,MachTitle}Dat.decoded_candidates.json` · `02_화면구성/captions.json` / 〔S〕`02` · `07` · `11` · `17` · `18` · `20` · `23` · `26` · `28` · `31` / 〔SR〕`15_…/작업메모_최종아님.md` · `30_…/편집기_중간기록_최종보고서아님.md` / 〔원〕`SIxMemo_구조.md` · `STC_필드사전_핵심.md`.
|
||||
- 앞 분석: `docs/raw/요구_1102/_분석_582-24_비고_경쟁사.md` · `docs/raw/요구_내역서/_분석_내역1-A_EST.md` · `_분석_내역1-B_STmate.md` · `_분석_내역3-A_EST_화면.md` · `_분석_내역3-B_STmate_화면.md`.
|
||||
- 이번 도구(`tmp/brain_642/B/`): `peek.py`(시트 · 칸 엿보기) · `stm_src.py` → `stm_src.txt`(STmate 원문 식 꼴 · 토큰 셈) · `stm_rows.py`(STmate 특수 줄) · `est_rows.py`(EST 줄 거르기). 실측 수(1,160 · 95 · 94 · 93 · 보정 칸 · FORMULA 수)는 이 창에서 직접 돌린 값.
|
||||
@@ -0,0 +1,232 @@
|
||||
# 642-C 북부청 임도 엑셀(EST) 정보 활용 — 매칭을 쉽게 할 길
|
||||
|
||||
대상: `resources/knowledge/original/실무문서/2026_실무일위대가 모음/2026년_북부지방산림청_임도사업_설계내역서(공통단가).xls` (사본 `tmp/brain_642/C/src.xls` 로만 읽음 · 원본 · 코드 · 마스터 · git 손대지 않음)
|
||||
|
||||
## 요약 (열 줄)
|
||||
|
||||
1. 시트 12 = 원가계산서 · 내역서총괄표 · 내역서 · 일위대가총괄표 · 일위대가 · 단가산출총괄표 · 단가산출 · 기계경비총괄표 · 기계경비 · 기계경비적용기준 · 자재단가 · 노임단가 — 시트끼리 잇는 끈 = 비고 「단산N참조 · 일위N참조」 + 품명·규격 같음 + 단가 숫자 같음(코드 칸 · 숨은 칸 · 메모 · 서식 신호 없음).
|
||||
2. 일위대가 세부행 415: 1차(비고 · 별도계상 · 단위)만으로 337(81.2 %) 갈래 확정 — 단산 268 · 일위 1 · 별도계상 64 · % 1 · hr 3.
|
||||
3. 나머지 78 은 전부 「자재단가」 시트 품명+규격 같음으로 확정 → 415/415(100 %) · 금액 있는 350 줄 단가도 단가표 값과 전부 같음 · 비고 번호와 총괄표 이름 269/269 일치.
|
||||
4. 같은 EST 꼴 북부청사방 201 · 거창 68 도 같은 4 단계로 100 %(거창은 「별도계산」 글자 변형 3 줄 · 사방은 두 시트에 같은 이름 1 줄만 주의) · 내역서 139 줄도 같은 길로 100 %.
|
||||
5. 단산 블록 95: 머리 「N.품명(규격)[단위]」 = 단산총괄표 95/95 · 품셈 번호 읽힘 91(고유 72 · M01 로직 같은 번호 59 · 아랫마디 4) · 기본공식 꼴 94 블록에서 읽힘.
|
||||
6. 단산 글 속 단가 숫자가 노임(157) · 기계(319 · 노재경 세 값 = 기계 한 대 65 블록) · 자재(52) · 단산(16) 값으로 역조회됨 — 블록이 쓰는 LB · EQ · MT 를 숫자로 알아냄.
|
||||
7. 얽힘: 품셈 번호 2+ 블록 18 · 세부 작업 절 2+ 블록 71 · 단산 안 단산(67 · 69 → 68) · 비율 섞음 44 · 준용 · 옛 해 · 삭제 조항 · 오타 각 1~4 — EST 는 한 줄 한 단산 번호, 여러 품셈은 블록 안에 묶임.
|
||||
8. M01 대응: 노임 19/19 이름 · 값 같음 · 기계 31/32 지문(손료 바탕값 · 손료계수 · 주연료) 한 키 · 자재 91 중 자동 12 · 사람 확인 후보 41 · 후보 없음 38(현장 · 지역 품목).
|
||||
9. 엑셀 = 옛 값: 노임 · 기계 손료는 M01 과 같음 · 유가(경유 1,376 ↔ 1,846.39) · 환율(USD 1,442 ↔ 1,414.9) · 자재 일부 다름 — 단가는 참고, 로직 · 매개값으로 이음.
|
||||
10. 쉬운 길 = 「단가표 시트 → 엑셀 사전(갈래 + M01 키)」 먼저 · 세부행은 비고 번호 → 별도계상 → 단위 → 사전 4 단계 · 단산 블록은 품셈 번호 → M01 로직 후보, 글 속 단가 숫자 → 사전 역조회, 공식 꼴 → 옵션값 · STmate 꼴은 줄마다 코드(M · L · X · S · B · D · W)가 사전 열쇠.
|
||||
|
||||
---
|
||||
|
||||
## 1. 시트 12 — 크기 · 머리 · 내용 · 잇는 칸
|
||||
|
||||
A 열은 모든 시트에서 빈 여백 칸. 크기 = 행 × 열(xlrd 실측).
|
||||
|
||||
| 시트 | 크기 | 머리(B 열부터) | 내용 꼴 | 잇는 칸 · 끈 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 원가계산서 | 35×8 | 비목 · 구분 · 금액 · 요율 · 산출근거 | 원가 비목 18 + 소계 A~M | 「4 × 0.167」 꼴 식 글 · 내역서 원가 줄과 같은 값 |
|
||||
| 내역서총괄표 | 45×11 | 공종 · 품명 · 규격 · 수량 · 단위 · 합계 · 노 · 재 · 경 · 비고 | 장 10(토공~관급자재대) · 절(1.1 등) 합계 | 내역서 공종 줄 합계 |
|
||||
| 내역서 | 202×15 | 공종 · 품명 · 규격 · 수량 · 단위 · (단가 · 금액)×4 · 비고 | 공종 줄 + 세부 139 + 원가 줄 21 | 비고 「단산N참조」 47 · 「일위N참조」 67 · 단위 % 1 · 그 밖 24 = 자재단가 품명+규격 23 + 단산총괄 이름 1 |
|
||||
| 일위대가총괄표 | 72×29 | 호표 · 품명 · 규격 · 단위 · 합계 · 노 · 재 · 경 · 비고 · (Y~AB) 당초 합 · 노 · 재 · 경 | 호표 68 | 「제N호표」 = 일위대가 시트 호표 · 노재경 칸은 0, 실제 값은 당초 칸 |
|
||||
| 일위대가 | 560×15 | 호표 · 품명 · 규격 · 수량 · 단위 · (단가 · 금액)×4 · 비고 | 호표 68(빈 호표 1 = 제61호표) · 세부 415 | 비고 단산N 268 · 일위N 1 · 별도계상 64 · 단위 hr 3 · % 1 · 나머지 78 = 자재단가 |
|
||||
| 단가산출총괄표 | 99×29 | No · 품명 · 규격 · 단위 · 합계 · 노재경 · 비고 · 당초 | 단산 95 | No = 단가산출 머리 「N.」 95/95 · 비고 「(경비)」 8 · 「경비성단가」 1(내역서에서 경비로 몰아 넣음 신호) |
|
||||
| 단가산출 | 4345×6 | 산출근거 · 합계 · 노 · 재 · 경 | 블록 95 · 글 줄(합계 줄에만 돈 칸) | 머리 「N.품명(규격)[단위]」 · 글 속 품셈 번호 · 단가 숫자(노임 · 기계 · 자재 · 단산 값) · 「*단산68참조*」 |
|
||||
| 기계경비총괄표 | 36×29 | No · 품명 · 규격 · 단위 · 합계 · 노재경 · 당초 | 기계 32 | 일위대가 hr 줄 · 단산 글 「노무비 : A ÷ Q」 세 값(A · B · C) |
|
||||
| 기계경비 | 192×30 | 명칭 · 규격 · 산출근거 · 합계 · 노재경 · 비고 | 기계 32 블록 — 손료 · 주연료 · 잡품 · 운전사 줄 | 손료 「바탕값 ₩× 계수 × 10(-7)」 = M01 EQ 가격 · 손료계수 · 주연료 단가 = 유가 · 운전사 = 노임단가 · 노임계수 |
|
||||
| 기계경비적용기준 | 31×17 | 환율 · 기본재료비 · 노임계수 | 환율 3 · 유가 2 · 노임계수 5(1/8*16/12*25/20 등) | 유가 → 기계경비 주연료 · 노임계수 → 운전사 |
|
||||
| 자재단가 | 101×29 | No · 품명 · 규격 · 단위 · 가격정보 · 물가자료 · 유통물가 · 물가정보 · 거래가격 · 견적가1(단가 · page) · 적용단가 · 비고 | 자재 93(경유 · 휘발유 포함) | 일위대가 재료 줄 · 단산 글 자재 단가 · 내역서 사급 · 관급 줄 · page 칸 8 자리 조달 번호 14 |
|
||||
| 노임단가 | 34×29 | No · 품명 · 규격 · 단위 · 적용단가 · 비고 | 직종 19 | 단산 글 「직종 : 단가 ×」 · 기계경비 운전사 |
|
||||
|
||||
신호 없는 것: 숨은 행 · 열 0 · 숨은 시트 0 · 메모 0 · 하이퍼링크 0 · 이름 정의 = 인쇄영역 · 인쇄제목 22 뿐 · 셀 서식(글꼴 · 굵기 · 들여쓰기 · 색) 머리 · 몸 모두 같음 · 코드 칸 없음.
|
||||
|
||||
덤 신호:
|
||||
|
||||
- 총괄표 3 종의 노 · 재 · 경 칸 = 0 · 실제 값은 Y~AB 「당초」 칸(합계는 E 칸과 같음 95/95).
|
||||
- 자재단가 적용단가 = 원천 가운데 최저가 93/93(가격정보 26 · 물가자료 27 · 거래가격 20 · 물가정보 15 · 유통물가 5) · 비고는 모두 「26年북부지방산림청」.
|
||||
- 기계경비 운전사 줄 = 노임 × 노임계수(1/8*16/12*25/20) — 시간당 노무비 59,020 · 49,778 · 36,248 이 단산 글에 그대로 나옴.
|
||||
|
||||
## 2. 매칭을 쉽게 할 정보
|
||||
|
||||
| 정보 | 어디 | 무엇을 정해 주나 | 실측 |
|
||||
| --- | --- | --- | --- |
|
||||
| 비고 「단산N참조 · 일위N참조」 | 일위대가 · 내역서 비고 칸 | 갈래(단가산출 · 일위대가) + 번호 | 일위대가 269 · 내역서 114 · 번호 ↔ 총괄표 이름 전부 맞음 |
|
||||
| 「별도계상 · 별도계산」 | 품명 · 규격 칸 | 재료(관급 · 사급 자재대로 따로 계상) | 64 줄 · 고유 6(레미콘 2 · 큰돌 · 조약돌 · 알골재 · 이형철근) · 모두 재료 |
|
||||
| 단위 % · hr · 인 | 단위 칸 | 계수(율) · 기계 · 인력 | % 1(잡재료비 재료비의 3 %) · hr 3(대형브레이카) · 인 0(사방 2 · 거창 10) |
|
||||
| 자재단가 시트 | 품명 · 규격 · 단위 · 원천 6 · 적용 | 재료 확정 + 단가 | 나머지 78 줄 전부 품명+규격 같음 |
|
||||
| 노임단가 시트 | 직종 19 | 인력 확정 · 단산 글 직종 단가 | 단산 글 노임 단가 157 줄 = 노임단가 값 |
|
||||
| 기계경비총괄표 + 기계경비 | 기계 32 · 손료 지문 | 기계 확정 · M01 EQ 키 | 단산 글 세 값 → 기계 한 대 65 블록 · EQ 지문 31/32 |
|
||||
| 기계경비적용기준 | 유가 2 · 환율 3 · 노임계수 5 | 유가전력 · 환율 · 운전사 환산 | 이름으로 MO · FX |
|
||||
| 단가산출총괄표 | No · 품명 · 규격 · 당초 노재경 | 단산 블록 번호 · 금액 | 95/95 머리 · 금액 같음 |
|
||||
| 일위대가총괄표 | 호표 68 | 일위 번호 · 금액 | 내역서 일위N 67 + 일위대가 일위46 1 |
|
||||
| 단산 글 품셈 번호 | 단가산출 글 | 책 · 절 → M01 로직 후보 | 91/95 블록 |
|
||||
| 단산 글 기본공식 | 단가산출 글 | 로직 꼴 · 옵션값(q · K · f · E · Cm · 품 · 율 · Q hr) | 94/95 블록 |
|
||||
| 단산 글 단가 숫자 | 단가산출 글 | 블록이 쓰는 LB · EQ · MT · 다른 단산 | 단가 숫자 줄 604 중 실제 단가 전부 단가표 값(남은 60 = 3,600 상수 · 율 중간 셈) |
|
||||
| 자재 page 칸 8 자리 | 자재단가 가격정보 page | 조달 물품 번호 | 14 · M01 에는 이 번호 없음(쓸 수 없음) |
|
||||
|
||||
## 3. 전수 실측
|
||||
|
||||
### 3-1. 일위대가 세부행 갈래
|
||||
|
||||
판정 차례: ① 비고 번호 → ② 별도계상 · 별도계산 → ③ 단위 % · hr · 인 → ④ 단가표 시트(자재 · 노임 · 기계 · 단산총괄 · 일위총괄) 품명+규격.
|
||||
|
||||
| 파일 | 세부행 | 1차(①~③) | 2차(④) | 미정 | 단가 같음 | 비고 번호 ↔ 이름 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| 북부청임도 | 415 | 337(81.2 %) | 78 | 0 | 350/350 | 269/269 |
|
||||
| 북부청사방 | 201 | 164(81.6 %) | 37 | 0(두 시트 같은 이름 1) | 197/199 | 141/141 |
|
||||
| 거창 | 68 | 55(80.9 %) | 13 | 0(별도계산 넣은 뒤) | 58/59 | 33/33 |
|
||||
| 북부청임도 내역서 | 139 | 115(82.7 %) | 24 | 0 | 131/138 | 114/114 |
|
||||
|
||||
북부청임도 1차 나눔: 단산 268 · 별도계상 64 · 기계(hr) 3 · 일위 1 · 계수(%) 1 · 2차 78 = 재료(자재단가). 고유 줄 82(1차 58 · 2차 24).
|
||||
|
||||
단가 다름 사례: 내역서 가설창고 3 줄(단산총괄 비고 「(경비)」 — 내역서는 경비 한 칸) · 「큰돌쌓기(찰쌓기)」 1 줄(수량 · 금액 빈 줄 · ∼ 글자) · 건설폐기물 · 검증수수료 3 줄(내역서 경비 칸) · 사방 「뒷채움잡석구입운반」 2 줄.
|
||||
|
||||
금액 칸 꼴(덤 신호): 2차 78 줄 모두 「재료비 단가만」 — 꼴만으로도 재료 후보.
|
||||
|
||||
### 3-2. 단산 블록 95 — 품셈 번호 · 기본공식
|
||||
|
||||
| 항목 | 전체 95 | 일위대가가 부르는 49 |
|
||||
| --- | --- | --- |
|
||||
| 품셈 번호 읽힘 | 91 | 48 |
|
||||
| 번호 없음 | 4(빈 블록 1 · 층따기 · 잔토정리 · 물운반 — 공식만) | 1 |
|
||||
| 번호 2 개 이상 | 18 | 9 |
|
||||
| 세부 작업 절 2 개 이상 | 71 | 36 |
|
||||
| 부르는 곳 | 일위대가 49 · 내역서만 45 · 단산 안에서만 1(68) | — |
|
||||
|
||||
책(번호 인용 수): 건설(부문 안 적음) 78 · 산림 27 · 건설(건축) 4 · 임도(옛) 3 · 건설(공통) 1. 고유 번호 72.
|
||||
|
||||
품셈 번호 → M01 로직(GF 산림 · GC 건설) 후보:
|
||||
|
||||
| 맞춤 | 고유 번호 | 예 |
|
||||
| --- | --- | --- |
|
||||
| 같은 번호 | 59 | 산림 13-6-2 → GF000227 큰돌쌓기 찰쌓기 · 건설 8-2-13 → GC001166 대형브레이커 |
|
||||
| 아랫마디만 | 4 | 건설 6-2(→ 6-2-x 16) · 8-2(→ 66) · 9-9 · 산림 9-14 |
|
||||
| 없음 | 6 | 1-10 · 1-24(표 인용) · 11-9(옛 덤프) · 공통 2-8-20 · 산림 10-2(소요량 QF000303) · 9-17-1(계수 CF000103) |
|
||||
| 임도(옛) 대응 없음 | 3 | 8-2-1 · 8-2-8 · 13-2-3(대응표 「확정」 줄에 없음) |
|
||||
|
||||
- 같은 번호 59 중 건설 부문 2 개 이상 걸림 24(예 3-2-4 → 공통 · 건축 · 유지관리) — 부문 안 적힌 건설 번호는 공통 → 토목 먼저 · 이름 낱말로 가름.
|
||||
- 1-2-3(체적환산계수) · 1-10 · 1-24 는 로직이 아니라 계수 · 표 인용 — 계수(CC) 쪽 후보.
|
||||
- 쪽 번호 인용 1(「건설공사표준품셈 p.266」 고화매트).
|
||||
|
||||
기본공식 꼴(블록 수 · 글 패턴 읽기):
|
||||
|
||||
| 꼴 | 블록 |
|
||||
| --- | --- |
|
||||
| 인력 품(직종 노임 × 품) | 69 |
|
||||
| 기계경비 배분(노 · 재 · 경 ÷ Q · × hr) | 65 |
|
||||
| 율(…의 N % · × N %) | 53 |
|
||||
| 손료 · 손율 | 33 |
|
||||
| 환산(f · 체적 · 중량) | 26 |
|
||||
| 굴착기 사이클(3,600 · q · K · f · E / Cm) | 23 |
|
||||
| 시간 표값(Q = N hr) | 18 |
|
||||
| 사이클 시간(Cm = t1 + t2 …) | 16 |
|
||||
| 덤프 · 살수 사이클(60 · q · f · E / Cm) | 13 |
|
||||
| 일 시공량 환산(Qd ÷ 8) | 13 |
|
||||
| 운반 속도(L / V) | 12 |
|
||||
| 자재 단가 줄(자재단가 값과 같은 숫자) | 38 |
|
||||
|
||||
블록마다 꼴 수: 1 꼴 5 · 2 꼴 16 · 3 꼴 17 · 4 꼴 23 · 5 꼴 12 · 6 꼴 14 · 7 이상 7 · 0 꼴 1(빈 블록).
|
||||
|
||||
단가표 이음: 노임 값 70 블록 · 기계 세 값 65 블록(한 블록 기계 1 대 39 · 2 대 18 · 3 대 이상 8 · 글의 기계 이름과 같음 63/65 · 못 찾은 세 값 2 = 단산 68 값) · 자재 값 38 블록.
|
||||
|
||||
### 3-3. 한 줄 여러 단가산출 · 얽힘 사례
|
||||
|
||||
EST 꼴 = 일위대가 한 줄에 단산 번호 하나 · 여러 품셈은 그 블록 안에 묶임. 얽힘 표지 수: 비율 섞음 44 · 준용 4 · 옛 해 품셈(2025 년) 3 · 단산 안 단산 2 · 삭제 조항 1 · 규격 환산 1 · 오타 1.
|
||||
|
||||
| 단산 | 이름 | 얽힘 | 부르는 호표 |
|
||||
| --- | --- | --- | --- |
|
||||
| 2 | 뒷채움돌채집운반뒷채움(발파) | 절 4(채집 굴착기 90 % + 인력 10 % · 상차 · 덤프 운반 · 뒷채움 다짐 3-4-4) · 1-10 계수 · 「건설표준품셈 준용」 | 8 · 9 · 10 · 20 · 25 · 26 · 34 · 35 등 |
|
||||
| 33 | 기초잡석채집,운반,다짐 | 산림 12-12 준용 + 「2025년 표준품셈 3-4-8」 · 절 4 | 1 · 4 · 5 · 6 · 11 · 16 · 17 · 27 등 |
|
||||
| 4 | 양질사토운반 | 1-2-3(계수) + 3-4-7 + 8-2-8 · 절 3 | 내역서 |
|
||||
| 89 | 구조물터파기(암절취) | 1-2-3 + 3-2-4 + 8-2-3 · 2025 년 판 | 내역서 |
|
||||
| 95 | 도장(철재면2회) | 건축 11-1-3 + 11-2-6 + 11-2-4 · 공구손료 3 % · 2 % · 2 % · 절 8 | 65 |
|
||||
| 64 | 비탈면보호공(평떼) | 건설 4-1-1 + 산림 5-23-3(책 둘) | 38~44 |
|
||||
| 77 · 78 | 철근콘크리트깨기 | 건설 8-2-13 + 산림 9-8-2(책 둘) | 내역서 |
|
||||
| 29 | 철근가공조립(연결철근) | 산림 12-9-1 + 건설 6-2 · Type-Ⅰ × 30 % | 7 · 21 · 22 · 23 |
|
||||
| 38 | 다웰바설치 | 6-2-1 + 6-3-10 · 재료 + 인건비 + 철근가공 간단 | 7 · 21 · 22 · 23 |
|
||||
| 73 · 74 | 강관동바리 · 강관비계 | 손율 2-2-4 · 2-2-5 + 설치 2-6-1 · 2-7-1 · 공구손료 2 % | 52~60 |
|
||||
| 11 · 86 · 87 | 가설창고(콘테이너) | 손율 26.7 · 18 · 16 % + 2-3-2 · 총괄 비고 (경비) | 내역서 |
|
||||
| 67 · 69 | 줄눈절단 · 포장절단 | 「*단산68참조*」 — 단산 안 단산(세 값 6,837 · 1,724 · 1,371) | 내역서 |
|
||||
| 6 | 야면석채집및운반 | 건설 8-2(2016 년 삭제) · 575/1750 환산 · 인력 10 % | 2 · 4 · 5 · 13 · 17 · 24 · 25 · 47 |
|
||||
| 30 | 큰돌채집운반 | 임도(옛) 13-2-3 · 발생석 50 % · 제잡비 6 % · 「임도표준품셈의 발파암 기준」 | 8 · 14 · 15 · 20 |
|
||||
| 63 | 돌망태형 옹벽설치 | 「13-114」 오타(= 13-11-4) | 34~37 |
|
||||
| 70 | 고화매트설치 | 산림 9-19-1 + 건설 p.266 · 절 5 | 45 |
|
||||
| 45(호표) | 고화매트수로 | 세부행이 일위46참조(일위 안 일위) | — |
|
||||
|
||||
## 4. M01 대조
|
||||
|
||||
| 갈래 | 엑셀 | 자동 대응 | 사람 확인 | 없음 | 단가 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 노임(LB) | 19 | 19(이름 · 작업반장 2 → 건설업) | 0 | 0 | 19/19 같음(2026 상반기) |
|
||||
| 기계(EQ) | 32 | 31(지문 — 한 대 25 · 묶음 6 = 굴착기 + 브레이커 · 집게) | 1 | 0 | 손료 바탕값 · 계수 · 주연료 31/32 같음 |
|
||||
| 자재(MT) | 91 | 12 | 41 | 38 | 대조 칸 6 중 4 같음 |
|
||||
| 유가(MO) | 2 | 2(이름) | — | — | 경유 1,376 ↔ 1,846.39 · 휘발유 1,473 ↔ 1,863.25 |
|
||||
| 환율(FX) | 3 | 3(이름) | — | — | USD 1,442 ↔ 1,414.9 · JPY100 919 ↔ 887.33 · EUR 1,685.72 ↔ 1,631.87 |
|
||||
|
||||
기계:
|
||||
|
||||
- 이름+규격 그대로 같음 20 · 표기만 다름 — 로울러/롤러 · 불도우저/불도저 · 브레이카/브레이커 · 「커 터」/「커터(콘크리트 및 아스팔트용)」 · 물탱크/물탱크(살수차) · 굴착기(타이어형)/굴착기(타이어).
|
||||
- 지문 = 기계경비 시트 손료 줄(바탕값 원 · 손료계수) + 주연료 ℓ/hr — M01 EQ 「가격 × 1000 · 손료계수 · 주연료」와 같음.
|
||||
- 못 맞춤 1 = 굴착기(무한궤도) 0.7㎥(발파) — 손료계수 2405(표준 2085 을 사용자가 고친 값) · 가격만으로는 EQ000020 → 옵션 · 사용자 확인.
|
||||
|
||||
자재(유가 2 뺌 91 · 글자 규격 38 = 요구 624-2 확인 대상):
|
||||
|
||||
| 수준 | 수 | 예 |
|
||||
| --- | --- | --- |
|
||||
| 이름+규격 같음 | 2 | 도로반사경(지주포함) · 구역화물 |
|
||||
| 이름 같음 + 숫자 규격 같음(차례 · 구분자 무관) | 6 | 파형강관 D=800mm, 2.7t ↔ D800×2.7T · 자물쇠 · 라바콘 |
|
||||
| 이름 바탕 같음 + 숫자 규격 같음 | 4 | 다웰바(DOWEL BAR) Ø32×1,000 ↔ 다 웰 바 Φ32*1000 · 레미콘(인제,홍천내면) 25-21-120 ↔ 레미콘(지역)-사급(지역 고름) |
|
||||
| 사람 확인 후보(이름 같고 규격 다름 · 낱말 겹침 · 눈 판정) | 41 | P.V.C PIPE VG1(50mm) ↔ PVC파이프(일반관) D=50mm(VG1) · 탄소강관(백) 외경 139.8 ↔ 압력배관용강관(백관) 125A(외경139.8) · 안고초 ↔ 산림종자/안고초 · 이형철근,SD400 D13 ↔ 이형철근(SD400) D=13mm · 신나 ↔ 신너(조합페인트용) KSM-6060(2종) |
|
||||
| 후보 없음 · 엉뚱 | 38 | 큰돌(인제 · 양구 · 관급) · 임도안내판 · 취수장안내판 · 임도표지석 · 측점번호판 · 국가지점번호판 · 검증수수료 · 공사안내표지판 · 콘테이너하우스 · 중하중그레이팅 · 휠라 · 강관써포트 · 쇄석(홍천) · 내수합판1급(M01 「합판(내수), 지역」 — 이름 꼴 다름) |
|
||||
|
||||
- 자재 이름은 EST 자재 목록 이름이 아니라 사용자가 고친 이름 · 물가지 이름이 많음 — 이름만으로 M01 대응이 약함.
|
||||
- 대응 뒤 단가 대조(같은 원천 칸): 자물쇠 · 라바콘 · 구역화물 같음 · 도로반사경 유통물가 340,000 ↔ 290,000 · 물가정보 220,000 ↔ 260,000.
|
||||
|
||||
## 5. 쉬운 방법 제안
|
||||
|
||||
### 5-1. EST 꼴 — 「엑셀 사전」 먼저
|
||||
|
||||
1. **단가표 시트 → 엑셀 사전** — 자재단가(93) · 노임단가(19) · 기계경비총괄표(32) + 기계경비(손료 지문) · 기계경비적용기준(유가 2 · 환율 3 · 노임계수 5) · 단가산출총괄표(95) · 일위대가총괄표(68). 항목마다 갈래가 시트로 이미 정해짐 · 이름 · 규격 · 단위 · 엑셀 단가 · M01 키 후보를 한 번 붙임.
|
||||
2. **M01 키 붙이기는 사전에서 한 번만** — 노임 = 이름(19/19) · 기계 = 손료 지문(31/32) · 유가 · 환율 = 이름 · 자재 = 이름 · 숫자 규격 자동 12 + 후보 41 은 사용자 확인 · 없음 38 은 「사용자 자재(엑셀 값)」. 사용자가 한 번 고른 대응은 사전에 남겨 다음 파일에 재사용(같은 발주처 파일은 이름이 되풀이됨).
|
||||
3. **세부행은 4 단계로 끝** — 비고 번호 → 별도계상 · 별도계산 → 단위 % · hr · 인 → 사전(품명+규격). 실측 EST 3 파일 · 내역서 모두 100 %. 두 시트에 같은 이름(사방 1)만 금액 칸 꼴 · 비고로 가름.
|
||||
4. **단산 블록 = 번호로 1:1** — 머리 「N.」 = 단산총괄표 No(95/95) · 수량은 엑셀 그대로(요구 642-8).
|
||||
5. **단산 블록 → M01 로직 후보 = 품셈 번호** — 책 + 절 번호로 GF · GC(같은 번호 59/72 · 아랫마디 4) · 부문 안 적힌 건설 번호 = 공통 → 토목 차례 + 이름 낱말 · 임도(옛) 번호 = 대응표 · 없으면 사용자 · 1-2-3 등 표 인용 = 계수 후보로 따로.
|
||||
6. **블록이 쓰는 요소 = 글 속 단가 숫자 역조회** — 노임 값 → LB · 노재경 세 값 → EQ(65 블록) · 자재 값 → MT · 단산 값 → 다른 단산(67 · 69 → 68). 이름 글 읽기보다 숫자가 확실함(엑셀 안에서는 값이 한 벌).
|
||||
7. **옵션값 = 공식 꼴** — 굴착기 · 덤프 사이클(q · K · f · E · Cm · L · V) · 시간 표값(Q hr) · 일 시공량(Qd) · 인력 품 · 율(90 % · 10 % · 50 % · 2 %) 을 글에서 읽어 M01 로직 입력에 넣음 · 단가는 M01 지금 값으로 다시 셈(엑셀 = 옛 값 · 차는 참고 표시).
|
||||
8. **얽힘은 표시만 · 복수 선택** — 품셈 2+(18) · 절 2+(71) · 책 둘 섞임 · 단산 안 단산 · 준용 · 삭제 · 옛 해 · 오타 = 블록 하나에 로직 여럿 후보로 보임 · 자동 확정 없음.
|
||||
|
||||
### 5-2. 다른 실무 파일 · STmate 꼴
|
||||
|
||||
| 파일 | 꼴 | 시트 | 단가표 시트 |
|
||||
| --- | --- | --- | --- |
|
||||
| 북부청임도 | EST xls | 12 | 같은 12 시트 |
|
||||
| 북부청사방 | EST xls | 12 | 같은 12 시트(자재 100 · 노임 17 · 기계 23 · 단산 67 · 호표 27) |
|
||||
| 거창 | EST xlsx | 50 | 같은 12 시트 + 견적단가 + 숨은 탭 14(estx 중간 탭 12 — BUDGE · daega · junggi · noyim · unitpric · 구역화물 등) |
|
||||
| 봉화 · 동부청영월 · 울진대흥 · 영덕계류 · 울진소광 | STmate xlsx | 21~25 | 아래 대응 + 〓 INITIAL 〓(veryHidden 재등록 메타) |
|
||||
|
||||
STmate 꼴은 단가표 시트 대신:
|
||||
|
||||
| EST 시트 | STmate 시트 | 코드 머리 |
|
||||
| --- | --- | --- |
|
||||
| 자재단가 | 재료비목록표 · 자재단가대비표(조달가격 · 물가정보 · 물가자료 · 적산정보 · 견적단가 · 적용) | M |
|
||||
| 노임단가 | 노무비목록표 | L |
|
||||
| 기계경비총괄표 · 기계경비 | 중기목록표 · 중기사용료 | X |
|
||||
| (기계 손료 바탕값) | 경비목록표(천원) | S |
|
||||
| 기계경비적용기준 | 환율및기초자료(환율 · 운전사 노임계수) | — |
|
||||
| 단가산출총괄표 · 단가산출 | 단가산출근거목록표 · 단가산출근거 | D |
|
||||
| 일위대가총괄표 · 일위대가 | 일위대가목록표 · 일위대가표 | B |
|
||||
| — | 일식견적목록표 | W |
|
||||
|
||||
- STmate 는 목록표 줄 · 일위대가표 세부행마다 「COD|M00004」 꼴 코드 — 갈래가 코드 머리 글자로 바로 정해짐(봉화 일위대가표 코드 등장: D 103 · B 67 · M 41 · L 30 · X 7).
|
||||
- 같은 사전 방식: 코드 → 목록표 이름 · 규격 · 단가 → M01 키(한 번) · 세부행은 코드로 사전 조회 · 일위대가표 비고 칸에 품셈 · 판(「2024년 개정」 · 「2024.01」) 글.
|
||||
|
||||
### 5-3. 덧
|
||||
|
||||
- 엑셀 불러오기 오른쪽 호표 목록 = 일위대가총괄표 · 단가산출총괄표(STmate = 두 목록표) 그대로 쓰면 됨 — 번호 · 이름 · 규격 · 단위 · 금액이 이미 정리돼 있음.
|
||||
- 엑셀 금액 칸 「합 = 노 + 재 + 경」 · 줄 금액 = 단가 × 수량 검산은 사전 단계에서 끝남(북부청임도 단가 같음 350/350).
|
||||
- 글 읽기 한계: 기본공식 꼴은 글 패턴 세기(대략치) · 자재 사람 확인 후보 41 은 눈 판정.
|
||||
|
||||
---
|
||||
|
||||
### 만든 파일(tmp/brain_642/C 만)
|
||||
|
||||
- `p.py` 공용 읽기 · `s1_sheets.py` · `s2_dump.py`(시트 TSV) · `s4_rows.py`(세부행 판정 → `out_rows.json`) · `s5_blocks.py`(단산 글 → `out_blocks.json`) · `s5b_refs.py`(품셈 번호 → M01 로직 → `out_refs.json`) · `s6_m01.py` · `s6b_tokens.py`(M01 대조 → `out_m01.json`) · `s7_files.py` · `s7b_stmate.py`(다른 파일 시트) · `s8_run.py`(다른 EST 파일 판정)
|
||||
- 사본: `src.xls` · `copy_북부청사방.xls` · `copy_거창.xlsx`
|
||||
@@ -0,0 +1,239 @@
|
||||
# 분석 642-D — 엑셀 불러오기 화면 흐름 · 중간 상세 페이지 걷기
|
||||
|
||||
읽기 전용 조사 · 코드 · storage · git 안 고침 · 화면 = ORCA 랩탑 메인 탭(5173 · 일반 계정 · 밝음 · 1532×1093) · 북부청 임도 엑셀 사본(지문만 다르게 512 바이트 덧붙임)을 올려 봄 → 끝에 그 HP-000060 지움(만든 0) · 다른 창 HP-000059 안 건드림 · 사본 지움.
|
||||
|
||||
## 요약 (열 줄)
|
||||
|
||||
1. 「중간 상세 페이지」 = 불러오기 마법사 **걸음 ② 본 칸 화면**(`M02_MasterTemplete_Hopyo_Wizard.ts:184-311` `second()` · 사진 `02a` · `02b`) — 왼쪽 [불러오기] → 걸음 ①(층 · 「단가산출」 체크 · [엑셀 고르기] · 사진 `01`) → 걸음 ② → [엑셀 보기 · 확인 · 만들기] → 엑셀 보기 모달 · 엑셀까지 누름 셋 · 화면 둘.
|
||||
2. 걸음 ② 몸 = 파일 글 · 단가산출 칸(넓은 표 95 블록 · 페이지 높이 5,255 px) · 일위대가 안내 · 안 이은 줄 띠 · [엑셀 보기 · 확인 · 만들기] · [끝내기] · [처음으로] — 단가산출 칸은 엑셀 보기 오른쪽 단가산출 목록(780-2)과 같은 것 두 벌(`SK_SYNC` 두 벌 맞춤).
|
||||
3. 엑셀 보기 모달 몸 = 이미 사용자가 바라는 꼴(탭 셋 + 오른쪽 호표 목록 · 단가산출 탭 = 단가산출 목록 · 사진 `03` · `04` · `05b`) → 목표 = 이 몸을 본 칸에 바로 · 걸음 ① · ② · 모달 껍데기 걷음.
|
||||
4. 목표 흐름 — 왼쪽 [불러오기] = 바로 파일 고르기 창 → 올림 → 본 칸 = 머리 막대(층 · 호표 · 검산 · 안 이은 줄 · [고르기] · [끝내기]) + 엑셀 + 오른쪽 목록 · 누름 하나 · 작업 중 파일 줄 = 왼쪽 판.
|
||||
5. 고르기 · 확인 자리 = **시트 아래 「줄 판」** 권함 — 확인 창 몸 `buildHopyoCheck`(이미 모달 밖 몸 · `Hopyo_Check.ts:226`) · 단가산출 줄 표 `skLineTable` 넓은 꼴 그대로 · 엑셀 그 행이 위에 보인 채 · 모달은 [로직 추가] 길만.
|
||||
6. 옮기기 = 오른쪽 판 아래 막대 그대로(일위대가 [모두 고정으로 들여오기] · [저장 (n)] · 단가산출 [확인한 것 옮기기 (n)]) · [끝내기] · 안 이은 줄 = 본 칸 머리 막대.
|
||||
7. 지움 = `Hopyo_Wizard.ts` 315 줄(새 `Hopyo_Import.ts` ≈ 200 줄로) · 「단가산출」 체크 · 걸음 막대 · 넓은 단가산출 칸 · 엑셀 보기 [삭제] · 화면 글 셋 — `Hopyo_Check.ts` 662 · `Hopyo_Api.ts` 632 손 안 댐 · `Hopyo_Sheet.ts` 614 → ≈ 440(만들기 셋을 새 `Hopyo_SheetMake.ts` 로).
|
||||
8. 길 — 해시 · 라우터 바뀜 없음(지금도 본 칸 `showView` · 해시 안 씀) · sessionStorage 열쇠 둘 그대로 · 새 열쇠 없음 · 열린 창 손잡이 `opened` 에 본 칸 보기도 등록 = 확인 창 [엑셀 보기] · 줄 표 [보기] 가 본 칸 시트를 뜀.
|
||||
9. 실측 흠 셋 — [끝내기] 전 [안 이은 줄 고르기] = 「✓ 안 이은 줄 0」 + 띠 녹색 + [끝내기] 켜짐(빈 `nos` · `Wizard.ts:212` · `:221` · 사진 `07a` · 실제 198 줄 사진 `07b`) · 올린 직후 단가산출 칸 「맞춤 셈 중」 뒤 자동 다시 판정 없음(사진 `02a`) · 좁은 단가산출 줄 펼침 짓눌림(사진 `05a`).
|
||||
10. 시험 고칠 것 여섯 파일 + 도우미 셋 · 642-A 줄 결과 자리 = 칠(상태) · 길 막대 까닭(근거 · 품셈 번호 · 공식) · 줄 판(갈래 배지 · 후보 칩 복수 · [옵션] · [확인]) · 목록 「확인 n/m」 · 고를 갈래 둘(층 고름 자리 · [로직 추가] 「실무 호표」 걷기).
|
||||
|
||||
---
|
||||
|
||||
## 사진(밝음 한 벌 · `tmp/brain_642/D/`)
|
||||
|
||||
| 사진 | 화면 |
|
||||
| --- | --- |
|
||||
| `00_좌측패널.png` | M02 왼쪽 판 「일위대가 불러오기」 펼침 — [불러오기] · [별칭 장부] |
|
||||
| `01_걸음1_층엑셀.png` | 본 칸 걸음 ① — 결과 층 · 결과(일위대가 · 단가산출 체크) · [엑셀 고르기] · 작업 중 줄 |
|
||||
| `02a_걸음2_중간화면_셈중.png` | 본 칸 걸음 ② (= 중간 상세 페이지) — 올린 직후 · 단가산출 칸 「맞춤 셈 중」 |
|
||||
| `02b_걸음2_중간화면_단가산출칸.png` | 걸음 ② [다시 판정] 뒤 — 넓은 단가산출 표 95 블록(아래로 길게 밀림) |
|
||||
| `03_엑셀보기_일위대가표.png` | 엑셀 보기 모달 — 일위대가표 탭 · 오른쪽 호표 목록 |
|
||||
| `04_엑셀보기_단가산출표.png` | 단가산출표 탭 — 오른쪽 = 단가산출 목록(좁은 꼴) |
|
||||
| `05a_엑셀보기_단가산출표_줄펼침.png` | 단가산출 목록 [줄 8] 펼침 — 좁은 판 줄 표 짓눌림 |
|
||||
| `05b_엑셀보기_단가산출상세.png` | 단가산출 상세 탭 · 단산2 범위 고름 |
|
||||
| `06_확인창_제1호표.png` | 호표 [수정] → 확인 창(모달 위 모달 · 엑셀 통째 가림) |
|
||||
| `07a_안이은줄창_셈전_0.png` | [끝내기] 전 [안 이은 줄 고르기] — 「✓ 안 이은 줄 0」(흠) |
|
||||
| `07b_걸음3_끝내기막힘_안이은줄창.png` | [끝내기] → 다시 셈 → 막힘 · 안 이은 줄 198(호표 64) 창 |
|
||||
|
||||
---
|
||||
|
||||
## 1. 지금 화면 흐름
|
||||
|
||||
### 1-1 걸음마다
|
||||
|
||||
| 차례 | 자리 · 사진 | 보이는 것 | 코드 |
|
||||
| --- | --- | --- | --- |
|
||||
| 0 | 왼쪽 판 「일위대가 불러오기」 `00` | [불러오기](구조물 조합 층 단추 꼴) · [별칭 장부] | `Hopyo_Side.ts:37-55` · 자리 `UI_Side.ts:165-181` |
|
||||
| 1 | 본 칸 걸음 ① `01` | 안내 글 · 걸음 막대(①②③ · 누를 수 없음) · 결과 층 고름(쓸 수 있는 층만 · 기본 개인) · 결과 체크(일위대가 늘 · 「단가산출」 선택) · [엑셀 고르기](숨은 file 입력) · 「작업 중」 줄(층마다 HP · [이어서]) | `Wizard.ts:105-182` `first()` · 층 `:59-63` · 체크 `:144-149` · 올림 `:120-133` · 본 칸 띄움 `Side.ts:62-72` → `UI_Main.ts:632-652` `showView` |
|
||||
| 2 | 본 칸 걸음 ② `02a` · `02b` | 파일 · 층 · 호표 수 · (체크면) 단가산출 칸 넓은 표(거르기 · 블록 95 줄 · [확인] 칩 · [줄 n] · [보기] · [확인한 것 옮기기] · [다시 판정]) · 일위대가 머리 · 안내 · 안 이은 줄 띠 + [안 이은 줄 고르기] · [엑셀 보기 · 확인 · 만들기] · [끝내기] · [처음으로] | `Wizard.ts:184-311` `second()` · 몸 `:258-270` · 단가산출 칸 `:256` → `Hopyo_WizardSk.ts:79-373`(넓은 꼴) · 띠 `:225-245` |
|
||||
| 2-a | 엑셀 보기 모달 `03` · `04` · `05b` | 머리(시트 · 호표 · 검산 · 제안 · [삭제]) · 길 막대(뒤로 · 뛰기 · 원본 시트 · 까닭) · 어긋남 띠 · 범례 · 왼쪽 읽기 전용 시트(탭 셋) · 오른쪽 = 일위대가표 탭 호표 목록(찾기 · 체크 · [수정] · n/m · [모두 고정으로 들여오기] · [저장]) · 단가산출 탭 = 단가산출 목록(좁은 꼴) | 엶 `Wizard.ts:188-207` · 몸 `Hopyo_Sheet.ts:146-614` · 모달 `:212-224` · 오른쪽 `:178-202` · 탭 판 바꿈 `Hopyo_SheetSk.ts:50-64` · 길 막대 `Hopyo_SheetNav.ts:114-292` |
|
||||
| 2-b | 확인 창(모달 위 모달) `06` | 호표 하나 줄 표(체크 · 구분 · 이름 · 별칭 · 수량 · 금액 · 품 비교 · 단추) · 자재 표 · 머리 [엑셀 보기] · [맞춤 · 별칭 일괄 체크] · [일위대가 생성] · [구조물 조합으로] | [수정] `Sheet.ts:296-315` → `Hopyo_Check.ts:645-662` `openHopyoCheck` · 몸 `:226` `buildHopyoCheck` · 줄 표 `Hopyo_CheckRows.ts` |
|
||||
| 2-c | 단가산출 줄 펼침 `05a` | 블록 줄 표(묶음 · 이름 · 매개값 · 상태 · 방법 · 금액 · 고름) — 좁은 판 안 | `WizardSk.ts:294-307` · `Hopyo_SkLines.ts` |
|
||||
| 2-d | 안 이은 줄 창 `07a` · `07b` | 안 이은 줄 수 띠 · 줄마다 호표 · 이름 · 규격 · 수량 · 갈래 · 까닭 · 고른 것 · [단가산출 걸음에서 확인 ▸] · [고르기] · [찾기] · [우리에 없음] | `Hopyo_Left.ts:121-296` · 띠 단추 `Wizard.ts:216-223` |
|
||||
| 3 | 걸음 ③ [끝내기] | 호표 68 줄 차례로 다시 셈(띠 「셈 중 i / 68」 · 약 40 초) → 남은 줄 있으면 막음 · 안 이은 줄 창 · 걸음 ② 로 돌아감 / 없으면 물음 → HP 지움 → 걸음 ① | `Wizard.ts:272-310` `end()` |
|
||||
|
||||
- 엑셀 화면까지 누름 셋(왼쪽 [불러오기] → [엑셀 고르기] → [엑셀 보기 · 확인 · 만들기]) · 화면 둘(걸음 ① · ②) 을 거침.
|
||||
- 엑셀 보기는 모달 — 왼쪽 판 · 본 칸을 덮음 · 확인 창이 그 위에 또 모달(`Sheet.ts:212` · `Check.ts:646`) · 확인 창 [엑셀 보기] = 뒤 엑셀 모달을 앞으로 꺼냄(`SheetNav.ts:73-87` `raise` · `lower`).
|
||||
- 걸음 ③ 은 막히면 곧바로 ② 로 돌아감 — 걸음 ③ 화면 없음(막대 글만 · `Wizard.ts:273` · `:286`).
|
||||
|
||||
### 1-2 「중간에 보이는 상세 페이지」 특정
|
||||
|
||||
- **걸음 ② 본 칸 화면** — `Wizard.ts:184-311` `second()` 의 `body.replaceChildren(…)`(`:258-270`) · 사진 `02a` · `02b`.
|
||||
- 왼쪽 판과 엑셀 화면 사이(차례상 중간) · 본 칸(자리상 가운데)에 뜸 — 두 뜻 다 이 화면.
|
||||
- 하는 일 = 엑셀 보기 여는 단추 하나 + 단가산출 칸(엑셀 보기 오른쪽 목록과 한 벌 · `WizardSk.ts:11-13` · `:74-76`) + 안 이은 줄 띠 + [끝내기].
|
||||
- 「단가산출」 체크 켜면 95 블록 넓은 표가 위에 와서 [엑셀 보기 · 확인 · 만들기] 단추가 페이지 아래(높이 5,255 px)로 밀림.
|
||||
- 걸음 ①(`Wizard.ts:105-182` · 사진 `01`)도 엑셀 앞 화면 — 층 고름 · 체크 · [엑셀 고르기] 만 · 함께 걷음.
|
||||
- 확인 창(사진 `06`)은 엑셀 화면 **뒤**에 여는 것 — 사용자 말 「중간」 과 다름 · 다만 엑셀을 통째 가려 2 장 자리 바꿈 권함.
|
||||
|
||||
### 1-3 실측 곁 흠
|
||||
|
||||
| 흠 | 실측 | 근거 |
|
||||
| --- | --- | --- |
|
||||
| [끝내기] 전 [안 이은 줄 고르기] = 「✓ 안 이은 줄 0」 · 창 닫으면 띠 녹색 · [끝내기] 켜짐 | 사진 `07a` · 닫은 뒤 띠 글 「✓ 안 이은 줄 0」 · 실제 = 198 줄(호표 64 · 사진 `07b`) | `nos` 가 `recount()` 때만 참(`Wizard.ts:212` · `:247`) · 단추는 빈 `nos` 로 `openLeft`(`:221`) → `countLeft(at, [])`(`Left.ts:285`) → 빈 표 · `paint(map)` `finish.disabled = !!n?.줄`(`Wizard.ts:230`) |
|
||||
| 올린 직후 단가산출 칸 「맞춤 셈 중 — 끝나면 다시 누름」 → 자동 다시 판정 없음 | 사진 `02a` · [다시 판정] 누른 뒤 표(`02b`) | `WizardSk.ts:148-161`(한 번만 판정) |
|
||||
| 좁은 단가산출 판 [줄 n] 펼침 = 줄 표 칸 열 하나가 판 폭 안에 짓눌림(「방법」 칸 10 줄 감김) | 사진 `05a` | `WizardSk.ts:294-307`(좁은 꼴에도 넓은 줄 표 그대로) · 판 폭 `Hopyo.css:302-305`(42 %) |
|
||||
| 엑셀 보기 [삭제] 와 [끝내기] = 같은 서버 지움(`DELETE …/hopyo/{키}`) · [삭제] 는 안 이은 줄 막힘 · 물음 글 없이 지움 | 코드 | `Sheet.ts:251-270` · `Wizard.ts:272-310` · `Api.ts:477-478` |
|
||||
| 부품 규칙 어긋남(엑셀 보기) — 날 찾기 입력 · 날 체크 · 페이지 CSS 목록 줄 · 오른쪽 판 자체 격자 | 코드 | `Sheet.ts:178-181` · `:325` · `Hopyo.css:335-382` · `:260-305` · 확인 창 통째 날 체크 `Check.ts:609` |
|
||||
| [로직 추가] 「실무 호표」 덧줄 = 사실상 닿지 않음 — 서버는 작업 중 HP 만 내고(`M02_Hopyo_Match.py:495-508` `hopyo_store.rows`) 불러오기 화면을 떠나면 그 HP 를 지움(`Side.ts:74-79` · `Wizard.ts:98-103`) | 코드 | `Hopyo_Pick.ts:20-104` |
|
||||
|
||||
---
|
||||
|
||||
## 2. 목표 흐름
|
||||
|
||||
### 2-1 흐름
|
||||
|
||||
| | 지금 | 목표 |
|
||||
| --- | --- | --- |
|
||||
| 엑셀까지 | 왼쪽 [불러오기] → 걸음 ① [엑셀 고르기] → 걸음 ② [엑셀 보기 · 확인 · 만들기] → 모달 | 왼쪽 [불러오기] → 파일 고르기 창 → 본 칸 = 엑셀 |
|
||||
| 누름 | 셋 | 하나 |
|
||||
| 작업 중 이어서 | 걸음 ① 줄 [이어서] → 걸음 ② → [엑셀 보기] | 왼쪽 판 「작업 중」 줄 누름 → 본 칸 = 엑셀 |
|
||||
| 결과 층 | 걸음 ① 고름 | 왼쪽 판 작은 고름(쓸 층 둘 이상일 때만 · 일반 = 개인 하나라 안 보임) |
|
||||
| 단가산출 체크 | 걸음 ① 체크 → 걸음 ② 넓은 칸 | 없음 — 단가산출 탭 오른쪽 목록이 늘 있음(780-2 · `SheetSk.ts:5` 「마법사 체크와 상관없음」) |
|
||||
| 호표 확인 | 모달 위 모달(엑셀 가림) | 시트 아래 줄 판(엑셀 그 행 보인 채) |
|
||||
| 단가산출 줄 | 좁은 판 안 펼침(짓눌림) | 시트 아래 줄 판(넓은 줄 표) |
|
||||
| 안 이은 줄 · 끝내기 | 걸음 ② 띠 · 단추 | 본 칸 머리 막대 |
|
||||
| 떠남 = 올린 파일 지움(743-1) | 마법사 `leave` | 그대로(본 칸 보기 `leave`) |
|
||||
|
||||
### 2-2 화면 그림
|
||||
|
||||
```
|
||||
┌ 왼쪽 판 ─────────────┐┌ 본 칸 「일위대가 불러오기 — north_road.xls」 ──────────────────────────────────────────┐
|
||||
│ 일위대가 불러오기 ▾ ││ ① 머리 막대 개인 층 · 호표 68 · 검산 맞음 · 제안 215 / 줄 415 · (셈 중 i/n) │
|
||||
│ [불러오기] ││ [안 이은 줄 198 · 호표 64 배지] [안 이은 줄 고르기] [끝내기] │
|
||||
│ (층 개인|회사|마스터)││ ② 길 막대 [◂ 뒤로] [▸ 단가산출 상세 · 단산2] [▸ 부르는 줄 1/11] 원본 시트 「…」 · 까닭 글 │
|
||||
│ 작업 중 ││ ③ 띠 · 범례 엑셀 셈 어긋남 9 [보기 1/11] · ■이어짐 ■엑셀과 다름 ■고를 것 ■못 이음 ■밖 ─내가 고름 │
|
||||
│ north_road.xls · 68 ││ ┌ ④ 엑셀(읽기 전용 · 탭 셋) ───────────────┐┌ ⑥ 오른쪽 목록 판 ───────────────────┐ │
|
||||
│ 별칭 장부 ││ │ 일위대가표 · 단가산출표 · 단가산출 상세 ││ 일위대가표 탭 = 호표 목록 │ │
|
||||
│ ││ │ (칠 · 고름 · 두 번 누름 = 첫 뛰기) ││ [찾기] 호표 68 │ │
|
||||
│ ││ │ ││ □ 제1호표 [수정] 배수관날개벽… 4/6 │ │
|
||||
│ ││ ├ ⑤ 줄 판(열 때만 · 경계 끌기) ────────────┤│ … │ │
|
||||
│ ││ │ 제1호표 확인 몸(buildHopyoCheck) [닫기] ││ [모두 고정으로 들여오기] [저장 (n)] │ │
|
||||
│ ││ │ 또는 단산2 줄 표(skLineTable 넓은 꼴) ││ 단가산출표 · 상세 탭 = 단가산출 목록 │ │
|
||||
│ ││ │ ││ 거르기 · 블록 줄 · [확인] · [줄 n] │ │
|
||||
│ ││ └───────────────────────────────────────────┘│ [확인한 것 옮기기 (n)] [다시 판정] │ │
|
||||
│ ││ └───────────────────────────────────────┘ │
|
||||
└───────────────────────┘└─────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 영역 | 내용 | 지금 코드(옮겨 씀) |
|
||||
| --- | --- | --- |
|
||||
| 왼쪽 판 | [불러오기] = 숨은 file 입력 바로 · 층 고름(둘 이상일 때) · 「작업 중」 줄(층마다 `listHopyo`) · [별칭 장부] | `Wizard.ts:59-63` · `:109-133` · `:160-181` → `Hopyo_Side.ts` |
|
||||
| ① 머리 막대 | 파일 · 층 · 호표 · 검산 · 제안 · 셈 중(엑셀 보기 머리) + 안 이은 줄 배지 · [안 이은 줄 고르기] · [끝내기] | `Sheet.ts:234-249` + `Wizard.ts:225-253` · `:272-310` |
|
||||
| ② · ③ | 길 막대 · 어긋남 띠 · 범례 그대로 | `SheetNav.ts` |
|
||||
| ④ 엑셀 | 그대로 | `Sheet.ts:356-396` |
|
||||
| ⑤ 줄 판 | [수정] = 확인 몸 · [줄 n] = 단가산출 줄 표 · 머리 [닫기] · 경계 끌기 | `Check.ts:226` `buildHopyoCheck` · `SkLines.ts` `skLineTable` |
|
||||
| ⑥ 목록 판 | 탭 따라 호표 · 단가산출 · 아래 막대 = 옮기기 | `Sheet.ts:178-202` · `:317-353` · `SheetSk.ts` · `WizardSk.ts`(좁은 꼴) |
|
||||
|
||||
- 본 칸 높이 = 화면 높이 꽉(도면 양식 앞선 꼴 `M02_MasterTemplete_Drawing.css:6-16` `.m02-main:has(> .m02-main__host > …)` 그대로 한 벌).
|
||||
- 폭 — 본 칸 ≈ 화면 − 왼쪽 판(약 320 px) · 좁으면 왼쪽 판 [패널 접기](이미 있음) · 900 px 아래 쌓기(`Hopyo.css:268-274`) 그대로.
|
||||
- 다른 엑셀 [불러오기] = 지금 보기 떠남(쥔 HP 지움) — 확인 창 캐시(`hasDraft`)가 있으면 물음 한 번(지금 [끝내기] 물음 글 `Wizard.ts:293-297` 다시 씀).
|
||||
|
||||
### 2-3 고르기 · 확인 · 옮기기 자리
|
||||
|
||||
| 갈래 | 좋은 점 | 흠 | 판정 |
|
||||
| --- | --- | --- | --- |
|
||||
| 오른쪽 판 펼침 | 새 틀 없음 | 판 22 rem ~ 42 % — 확인 표 칸 열둘 · 단가산출 줄 표 칸 열이 짓눌림(사진 `05a`) | 안 씀 |
|
||||
| 곁 판(오른쪽 넓힘 55 ~ 70 %) | 부품 `createSidePanels`(`ui_template_side_panels.ts` · 폭 끌기 · 취향 저장) | 시트가 엑셀 서너 열만 보임 — 엑셀 보며 맞추기(요구 627) 어려움 | 버금 |
|
||||
| 모달 하나(지금 확인 창) | 고칠 것 없음 | 엑셀 통째 가림(사진 `06`) · 본 칸 시트로 바꾸면 확인 창 [엑셀 보기]가 뒤 시트만 뛰어 안 보임 | 안 씀 |
|
||||
| **시트 아래 줄 판** | 그 호표 엑셀 행(5 ~ 10 행)이 위에 보인 채 줄 표를 넓게 · 확인 몸 `buildHopyoCheck` 그대로(모달 밖 몸 이미 있음) · [엑셀 보기] = 바로 위 시트 뜀 · 단가산출 줄 표 넓은 꼴 그대로 | 세로 공간 — 줄 판 열면 시트 약 13 행 · 경계 끌기로 조절 | **권함** |
|
||||
|
||||
- 호표 확인 = 목록 [수정] → 줄 판에 `buildHopyoCheck({…, onBuilt: 줄 판 닫음})` · 만들기 단추(일위대가 생성 · 품셈으로 바꾸기 · 구조물 조합으로)는 확인 몸 머리 그대로.
|
||||
- 단가산출 = 목록 블록 [줄 n] → 줄 판에 그 블록 줄 표(좁은 판 안 펼침 대신) · [확인] 칩 · [확인한 것 옮기기 (n)] 은 목록 판 그대로.
|
||||
- 옮기기 = 목록 판 아래 막대(탭별) 그대로 · [끝내기] = 머리 막대.
|
||||
- 안 이은 줄 창(`openLeft` 모달)은 그대로 — [단가산출 걸음에서 확인 ▸](`Left.ts:181-193` `onSk`) = 창 닫고 본 칸 단가산출 상세 탭 그 블록으로 뛰고 줄 판 엶.
|
||||
|
||||
### 2-4 부품 재사용
|
||||
|
||||
| 쓸 곳 | 부품 | 비고 |
|
||||
| --- | --- | --- |
|
||||
| 줄 판 · 시트 경계 | `createPanelResizer`(`ui_template_resizer.ts:46` · vertical) | 높이 = 세션 저장(부품 규칙) |
|
||||
| 줄 판 머리 | `createPanelHead`(제목 + [닫기] actions) | |
|
||||
| 머리 막대 | `ui-toolbar` · `createBadge`(안 이은 줄) · `createButton` | |
|
||||
| 층 고름(왼쪽 판) | `createSegment` size 24 | 지금 걸음 ① 것 옮김 |
|
||||
| 작업 중 줄(왼쪽 판) | `createListRow` | 지금 날 ghost 단추 줄(`Wizard.ts:172-178`) |
|
||||
| 찾기 칸 · 체크(호표 목록) | `createInputField` · `createCheckbox` | 지금 날 `<input>`(`Sheet.ts:178` · `:325`) — 옮기는 김에 |
|
||||
| 호표 목록 줄 | `createListRow`(번호 · 덧붙임) | 지금 `.m02-hopyo-sheet__item` 페이지 CSS(`Hopyo.css:343-382`) — 옮기는 김에 |
|
||||
| 띠 · 범례 · 표 · 칩 | `createBanner` · `createLegend` · `tableShell` · `createToggle chip` | 그대로 |
|
||||
|
||||
### 2-5 고를 갈래(둘)
|
||||
|
||||
1. 결과 층 고름 자리 — (권함) 왼쪽 판 작은 고름 · 쓸 층 둘 이상(회사 관리자 · 시스템 관리자)만 보임 / 늘 개인(요구 627 「일위대가 해당 컨테이너의 개인」).
|
||||
2. [로직 추가] 「실무 호표」 덧줄(`Hopyo_Pick.ts`) — (권함) 걷음 = 엑셀 보기 모달 껍데기 · `raise`/`lower`(779-6) · `onImport` · `openHopyoCheck` 모달 길까지 함께 걷힘 / 둠 = 모달 껍데기 한 벌 남김(약 30 줄).
|
||||
|
||||
---
|
||||
|
||||
## 3. 지울 것 · 남길 것 · 옮길 것
|
||||
|
||||
### 3-1 파일
|
||||
|
||||
| 파일 | 지금 줄 | 할 일 | 뒤 줄(어림) |
|
||||
| --- | --- | --- | --- |
|
||||
| `M02_MasterTemplete_Hopyo_Wizard.ts` | 315 | **지움** — 걸음 막대(`:49-53` · `:72-76`) · 걸음 ① 화면(`:105-182` 중 화면) · 「단가산출」 체크 `wantSangeun`(`:92` · `:144-149`) · 걸음 ② 몸(`:184-270` 중 화면) · [처음으로](`:254-255`) · 넓은 단가산출 칸(`:256` · `:260-262`) 걷음 · 남는 것(쥔 파일 · 떠남 `:94-103` · 띠 · 다시 셈 · 끝내기 `:225-253` · `:272-310`)은 새 파일로 | 0 |
|
||||
| 새 `M02_MasterTemplete_Hopyo_Import.ts` | — | 본 칸 보기 = 머리 막대 + `buildHopyoSheet` · 쥔 파일 · 떠남 · 띠 · 끝내기 · 줄 판 자리 · `nos` = 엑셀 보기가 읽은 호표 번(빈 `nos` 흠 고침) | ≈ 200 |
|
||||
| `M02_MasterTemplete_Hopyo_Side.ts` | 83 | [불러오기] = 숨은 file 입력 · 올림(`uploadHopyo`) → `showView(Import)` · 층 고름 · 작업 중 줄 · `WIZARD` 열쇠 → 불러오기 보기 | ≈ 150 |
|
||||
| `M02_MasterTemplete_Hopyo_Sheet.ts` | 614 | 몸/껍데기 나눔 — `buildHopyoSheet(opt) → {root, jump, destroy}` + 모달 껍데기 `openHopyoSheet`(Pick 길 · 2-5 ② 걷으면 껍데기도 지움) · [삭제] `dropButton`(`:251-270`) · `onDeleted`(`:82-83`) 걷음 · [저장] · 하위 먼저 만들기 · [모두 고정](`:453-611` ≈ 160 줄) → 새 `Hopyo_SheetMake.ts` · [수정] = 줄 판(`:296-315`) · 본 칸 보기도 `opened` 등록(`:289-293`) | ≈ 440 |
|
||||
| 새 `M02_MasterTemplete_Hopyo_SheetMake.ts` | — | `save` · `makeAll` · `importAll` · `buildOrder` 옮김(줄 바꿈 없음) | ≈ 175 |
|
||||
| `M02_MasterTemplete_Hopyo_SheetSk.ts` | 68 | `show(번)`(안 이은 줄 창 → 그 블록) 내보냄 · [줄 n] → 줄 판 | ≈ 85 |
|
||||
| `M02_MasterTemplete_Hopyo_WizardSk.ts` | 373 | 넓은 꼴만 쓰던 것 걷음 — 넓은 칸(`:201-213`) · 넓은 줄(`:271-283`) · [보기] `sheet()`(`:141-146` · `:265`) · 안내 글(`:122`) · 좁은 꼴 [줄 n] = 부르는 쪽 `onLines(번)` · 줄 표 지음 `lines(번)` 내보냄 · `count()` 남김(끝내기 글) · 이름 그대로(시험 · 도우미 이어 씀) | ≈ 330 |
|
||||
| `M02_MasterTemplete_Hopyo_Check.ts` | 662 | **손 안 댐** — `buildHopyoCheck`(`:226`) 줄 판에 그대로 · [엑셀 보기](`:592` · `:209-210`)는 `opened` 로 본 칸 시트 뜀 | 662 |
|
||||
| `M02_MasterTemplete_Hopyo_Api.ts` | 632 | **손 안 댐** — 새 서버 길 없음(`uploadHopyo` · `listHopyo` · `deleteHopyo` 그대로) | 632 |
|
||||
| `M02_MasterTemplete_Hopyo_Left.ts` | 327 | 손 안 댐 — 부르는 쪽이 `nos` 바로 넘김 · `onSk` = 본 칸 뛰기 | 327 |
|
||||
| `Hopyo_CheckRows` · `SkLines` · `SheetNav` · `Kids` · `Choose` · `Lost` · `Relink` · `ToItem` · `Compare` · `SkApi` | | 손 안 댐(`SheetNav.raise/lower` 는 모달 껍데기 남기면 둠) | |
|
||||
| `M02_MasterTemplete_Hopyo_Pick.ts` | 104 | 2-5 ② 걷으면 지움 + `Labor_Pick.ts:50` 내보냄 · 서버 `GET …/hopyo-picks`(`M02_Labor_Router.py:252-260` · `M02_Hopyo_Match.py:495-519`) | 0 |
|
||||
| `M02_MasterTemplete_Hopyo.css` | 417 | 본 칸 높이 꽉 한 벌(도면 양식 꼴) · 줄 판 행 · 목록 줄 페이지 CSS(`:335-382`)는 `createListRow` 로 가면 걷음 · 모달 몸(`:256-258`)은 껍데기 남기면 둠 | ≈ 400 |
|
||||
| `ui_template/ui_template_locale_m2.ts` | | 걷음 `M02_WizSkCheck`(`:242`) · `M02_WizSkHead`(`:309`) · `M02_WizIlwiHead`(`:310`) · `M02_SkHint`(`:247` · 넓은 꼴 안내) · 남김 `M02_HopyoImport` · `M02_Left*` · `M02_SkLeft` · `M02_SkUnmoved` | |
|
||||
| 서버(`M02_Hopyo_*.py` · `M02_Labor_Router.py`) | | 화면 흐름 때문에 바뀔 것 없음(매칭은 642-A) | |
|
||||
|
||||
### 3-2 700 줄 근처
|
||||
|
||||
- `Hopyo_Check.ts` 662 · `Hopyo_Api.ts` 632 — 이번 일에서 한 줄도 안 늘림(줄 판은 기존 몸 · 새 서버 길 없음).
|
||||
- `Hopyo_Sheet.ts` 614 — 껍데기 · 줄 판 자리로 늘 몫(+40)보다 만들기 셋 옮김(−160) · [삭제] 걷음(−20)이 커서 ≈ 440 으로 줆 · 642-A 줄 결과를 붙일 자리 생김.
|
||||
- 새 파일 셋(`Import` ≈ 200 · `SheetMake` ≈ 175) — 700 아래.
|
||||
|
||||
### 3-3 길(라우터 · 상태 · 캐시 · 해시)
|
||||
|
||||
| 갈래 | 지금 | 뒤 |
|
||||
| --- | --- | --- |
|
||||
| 라우터 · 해시 | 해시 없음 — 본 칸 `showView`(`UI_Main.ts:632-652`) · 페이지 해시 `#/m02-master-template` 그대로 | 그대로 · 새 해시 열쇠 안 만듦(떠나면 HP 지움 = 다시 열 것 없음) |
|
||||
| 본 칸 보기 열쇠 | `Side.ts:33` `WIZARD = "불러오기"` · 같은 열쇠면 다시 안 지음(`:63`) | 같은 열쇠 = 불러오기 보기 · 파일 바뀌면 다시 지음 |
|
||||
| 떠남 = 쥔 HP 지움 | 마법사 `held` · `pagehide`(`Wizard.ts:94-103`) · `Side.paint`(`:74-79`) | 불러오기 보기로 옮김 · 그대로 |
|
||||
| 화면 상태 | `pick`(층) · `wantSangeun` · `steps` · `nos` · `map` · `sk` | `pick` → 왼쪽 판 · `wantSangeun` · `steps` 지움 · `nos`(엑셀 보기 호표 번으로 바로) · `map` · `sk`(목록 판 단가산출 칸) → 불러오기 보기 |
|
||||
| sessionStorage | 확인 창 `m02-hopyo-check:{층}:{주인}:{키}:{번}`(`Check.ts:75-76`) · 단가산출 `m02-hopyo-sk:{층}:{주인}:{키}`(`WizardSk.ts:52-53`) | 둘 다 그대로 · 새 열쇠 없음 |
|
||||
| 두 벌 맞춤 알림 `SK_SYNC` | 마법사 칸 ↔ 엑셀 보기 목록(`WizardSk.ts:74-76` · `:129-139`) | 벌 하나만 남음 — 둬도 해 없음(걷으면 `test_627_sheet_sk.py:75-76` 고침) |
|
||||
| 격자 메모리 캐시 | `SheetNav.ts:62-70` `gridOf`(마지막 하나) | 그대로 |
|
||||
| 열린 창 손잡이 | `Sheet.ts:89` `opened` · 같은 파일 다시 부름 = 앞으로 꺼내 뜀(`:289-293`) | 본 칸 보기도 같은 열쇠로 등록 → 확인 몸 [엑셀 보기] · 단가산출 줄 [보기] = 본 칸 시트 뜀 · 모달 안 띄움 |
|
||||
| 알림 `HOPYO_BUILT` · `HOPYO_DRAFT` | 왼쪽 나무 · 칠 다시(`UI_Side.ts:157-162` · `SheetNav.ts:247-248`) | 그대로 |
|
||||
|
||||
### 3-4 시험 고칠 것(고친 대상만 · `./venv/Scripts/python.exe -m pytest resources/tester/<파일> -q`)
|
||||
|
||||
| 시험 | 자리 | 고칠 것 |
|
||||
| --- | --- | --- |
|
||||
| `test_m02_hopyo_screen.py` | `:26-32` 이름 목록 · `test_좌측_판_자리와_권한 :339-366` · `test_엑셀_보기_창_여는_자리와_늦게_불러옴 :385-405` · `test_명사형_단추와_별칭_장부_풀이_359 :514-540` · `test_372_2_… :542-552` · `test_779_… :554-591`(`opened` · `raise`/`lower`) | `Hopyo_Wizard` → `Hopyo_Import` · Side = 올림 · 불러오기 보기 · `wantSangeun` 없음 · 중간 걸음 없음(`second(` · `STEPS` 없음) · [삭제] → [끝내기] · 모달 껍데기 남김 여부대로 |
|
||||
| `test_729_3_hopyo_left_screen.py` | `test_마법사_끝내기_막음_단가산출_칸_목록_열 :93-130` | 끝내기 대조 → `Hopyo_Import` · `sangeunStep(scope, file.키, file.파일` 대조 걷음 · 빈 `nos` 로 `openLeft` 안 부름 대조 더함 |
|
||||
| `test_627_sheet_sk.py` | `:47`(좁은 꼴 인자) · `test_캐시_공유_알림_칠_다시 :72-88`(`Wizard` 글) · `test_부품_상자만_700줄 :90-99` | `onLines` 인자 · `Wizard` → `Import` · 파일 목록 |
|
||||
| `test_778_5_sk_pick_screen.py` | `test_화면_자동_없음_부품_상자만 :115-132`(`:121` `단산행: 행` · `:124-125` `Wizard`) | 넓은 [보기] 걷음 → 줄 판 뛰기 대조 · `Wizard` → `Import` |
|
||||
| `test_782_1_small_flaws.py` | `test_finish_confirm_args_in_order :8-15` | 끝내기 물음 인자 대조 → `Hopyo_Import` |
|
||||
| `test_720_m02_folder_layer.py` | `:99` | `Hopyo_Side` 글 대조 맞춤 |
|
||||
| 도우미 `helper_m02_hopyo_seam.cjs:35` · `helper_m02_hopyo_check.cjs:69` | `Hopyo_Sheet.ts` 를 불러 `hopyoAtRow` · `spanText` · `lastColumn` · `buildOrder` · `rowsText` · `allLinked` 씀 | `buildOrder` 옮기면 `SheetMake` 도 불러옴 · 나머지 그대로 |
|
||||
| 도우미 `helper_778_5_sk_pick.cjs:26` · `:141` | `WizardSk` 대역 · `createSheetSk` | `show` · `onLines` 대역 더함 |
|
||||
| 새 지킴 시험 하나 | — | 왼쪽 [불러오기] = file 입력 · 올림 뒤 `showView` 바로 · 중간 걸음 없음 · 줄 판 = `buildHopyoCheck` · 700 줄 · 날 `<input>` · `<button>` 없음 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 새 매칭(642-A) 줄 결과 자리
|
||||
|
||||
642-A 가 낼 줄 하나(사용자 642-7 · 8 기준) = 갈래(M01 단가산출 기초 + 옵션값 · M02 단가산출 · M02 일위대가 한 줄 · M01 인력 · 재료 · 유가전력 · 기계 · 소요량 · 계수 · 환율) · 후보 여럿(복수 선택) · 옵션값 · 근거(1 차 품명 · 규격 · 비고 / 2 차 비고행 · 품셈 번호 · 기본공식) · 수량(엑셀 그대로) · 확인.
|
||||
|
||||
| 결과 칸 | 자리 | 부품 · 지금 비슷한 것 |
|
||||
| --- | --- | --- |
|
||||
| 줄 상태(이어짐 · 고를 것 · 못 이음 · 밖 · 내가 고름) | ④ 엑셀 칠 + ③ 범례 — 엑셀에서 바로 보임(요구 621-5 하이라이트) | 격자 `칠` · `logic/M02_MasterTemplete_Hopyo_SheetMap.ts` `paintOf` · `createLegend` |
|
||||
| 근거(1 차 · 2 차 · 품셈 번호 · 기본공식) | ② 길 막대 까닭 글(고른 행) + [▸ 단가산출 상세] 뛰기 = 2 차 근거 원문 행 | `SheetNav.ts:135` · `:199-204` `why` · `jumpsAt` |
|
||||
| 갈래 | ⑤ 줄 판 줄마다 배지 | `createBadge` · 지금 확인 표 「구분」 칸(`CheckRows.ts`) |
|
||||
| 후보 여럿 · 복수 선택 | ⑤ 줄 판 줄 펼침 — 후보 칩 여럿(켬 = 고름 · 여럿 켬 됨) · [찾기](기초 · 인력 · 재료 · 기계) | `createToggle chip` · `openHopyoChoose` · `openFindPicker`(`Left.ts:167-177`) |
|
||||
| 옵션값 | 후보 칩 옆 [옵션] → 입력 창 | `openLaborInput`(`Check.ts` `editOptions`) |
|
||||
| 수량 | ⑤ 줄 판 수량 칸 — 엑셀 그대로 · 고침 없음 | 확인 표 「수량산출」 |
|
||||
| 확인(호표) | ⑤ 줄 판 머리 [확인] · ⑥ 호표 목록 「확인 n/m」 · 다 확인 녹색 | `Sheet.ts:97-110` `allLinked` · `linkText` |
|
||||
| 확인(단가산출 블록) | ⑥ 단가산출 목록 [확인] 칩 · [확인한 것 옮기기 (n)] | `WizardSk.ts:236-252` |
|
||||
| 고를 것만 보기 | ⑥ 목록 거르기(「고를 줄 있음」 꼴) | `createSegment` · `filterBlocks` |
|
||||
| 줄 결과 받기 | 파일 통째(칠 · 목록 수) = 열 때 한 번(`hopyo-marks` 꼴) · 줄 판 자세히 = 열 때 그 호표만(`readHopyoOne` 꼴) | 서버 응답 꼴은 642-A 가 정함 |
|
||||
|
||||
- 화면은 보이기 · 고르기만 — 판정 · 금액은 서버(지금 원칙 그대로).
|
||||
- 줄 판 몸이 642-A 로 바뀌어도 자리(⑤)와 열고 닫는 길은 그대로 — `buildHopyoCheck` 를 새 몸으로 바꿔 끼우는 한 곳.
|
||||
@@ -0,0 +1,470 @@
|
||||
# 설계 642-A — 엑셀 불러오기 매칭 파이프라인 · 자료 모델 (요구 642 · 읽기 전용 조사 · 코드 · 마스터 · storage · git · DB 안 고침)
|
||||
|
||||
경로 줄임 — `M02/` = `M02_MasterTemplete/` · `MD/` = `resources/master_data/` · `MS/` = `resources/master_data/scripts/` · 파일 이름 `M02_Hopyo_` 머리 뺌(예 `Excel.py`) · `REA/` = `resources/knowledge/original/경쟁사 프로그램/EST Plus 2/REA 분석/`.
|
||||
측정 = `tmp/brain_642/A/scratch/`(`a1_clause.py` 조항 색인 · `a2_logic.py` 기초 식 · `s1~s12` 견본 엑셀 덤프) · 견본 = `resources/knowledge/original/실무문서/2026_실무일위대가 모음/2026년_북부지방산림청_임도사업_설계내역서(공통단가).xls`(EST 출력 · 판별 근거 6 가지 = 3장 끝).
|
||||
|
||||
## 0. 요약 열두 줄
|
||||
|
||||
1. 뿌리 진단 — 지금 맞춤은 「엑셀 숫자 → 우리 기초 1,515 개 지문 순위 → 옵션 거꾸로 찾기(엔진 수백 번) → 조합 풀이」 꼴이라 글에 적힌 근거(품셈 번호 · 기본공식 · 선택값)를 안 쓰고 숫자를 짐작함 → 자동값 1(635 · 639) · 절 섞임 둘째 키(638) · 엉뚱한 근거(628)가 모두 이 꼴에서 나옴.
|
||||
2. 새 길 = 「글 먼저 · 결정적 · 찾기 없음」 — 1차 줄(품명 · 규격 · 비고 · 비목 칸) → 갈래 후보 · 2차 블록(품셈 번호 → 조항 색인 → 기본공식 꼴 → 옵션값 읽기) → 엔진 한 번 검산 · 못 읽은 칸 = 「입력 필요」 · 모든 옮김은 사용자 확인(요구 623).
|
||||
3. 자료 모델 — 지금 SC · SK 꼴로 요구 7 조합 중 기초+옵션 · M02 SK · M02 SC(한 줄 사본) · 인력 · 재료 · 기계(기계경비 로직) · 율 · 고정 금액이 모두 담김 · 줄 꼴 고침 없이 시작 가능.
|
||||
4. 없는 것 넷 — 유가전력 MO(SC 이음 · 자재 막음 `M02_Labor_Fixed.py:31 · 83-87` · `M02_Labor_Doc.py:172-179`) · 환율 FX · 소요량 QC/QF · 계수 CC/CF(줄 꼴 없음 · 엔진 안 표 찾기로만) · 견본 북부청 415 줄엔 넷 다 0 줄 → MO 만 S 일감 · 셋은 「매개값 근거」 꼬리표로 시작.
|
||||
5. 한 엑셀 줄 = 우리 여러 줄 — 권함 = SC 줄 여럿(고른 것마다 한 줄 · 같은 별칭 · 줄 `본뜬 {호표, 차례, 행}` 으로 묶음 · 이미 저장되는 칸 `M02_Labor_Ref.py:299 · 326-328`) · SK = 바탕 없음 + 더한줄 여럿(778-5 꼴) · 고른 것 목록 하나 → SC 줄 · SK 더한줄 두 어댑터.
|
||||
6. 1차 규칙(북부청 415 줄) = 「단산N참조」 268 → 2차 · 「일위N참조」 1 → 하위 SC · 별도계상(규격 59 · 품명 5) → 재료 · 재료비만 · 비고 빔 78 → 재료 · 단위 hr 3 → 기계 · 단위 % 1 → 율 · 단위 인 0 → 인력 · 후보 찾는 곳 = 장부 › M01 표마다(LB · MT · MO · EQ · 기초) › M02 층 SK · SC.
|
||||
7. 2차 품셈 번호 — M01 로직 1,515 개 모두 `원문번호` · `구분`(책 · 부문) 칸이 있음(빈 것 0 · 조항 903 · 조항당 하나 607) → 「책 · 부문 · 번호」 색인으로 바로 후보 1~5 · 블록 91/95 에 번호 글 · 준용 · 옛 · 번호 없음 = 표지.
|
||||
8. 2차 옵션값 읽기 여섯 길 B1 규격 · 품명 괄호(`Match.spec_inputs` 재사용) · B2 선택값 줄 · B3 상수 줄(기호표) · B4 대입식(우리 식 분자 · 분모 + 단위 짝) · B5 표 거꾸로(소요량 표 줄 = 엑셀 품 · Q · %) · B6 같은 호표 다른 줄 — 값마다 출처 꼬리표 · 엇갈림 표지 · 지어 넣은 1 · 0 없음.
|
||||
9. 예시 셋 모의 — 예시 1 단산10 = GC001140 다섯 칸 모두 글에서(0.547619 · 94,227 = 엑셀) · 예시 2 단산47 = 절 둘 = GC000206{Type-Ⅰ} + GC000207{Type-Ⅰ · Ⅰ-1 · 소량감률 50 · 구분 토목|건축 고를 것}(638 「두 키」 는 흠 아님 · 맡은 절) · 예시 3 단산24 = GC000211{유형 보통(Q 45 표 거꾸로) · 사용횟수 4회(38 % · 9 % 대조)} · 품 같음 → 남는 차 = 단가 차(참고).
|
||||
10. 코드 — 남김 18 · 나눔 3(Basis · Match · Build) · 지움 10(Finger · Ours · Option · Fit · Combine · Verdict · Line · SkPatch · SkLink · Basis 순위 몫) · 새 파일 7(Clause · Formula · Bind · Solve · Row · Make · Router) · TS 지움 9 · 고침 6 · B09 · M01 빌린 이름 23 개 모두 남는 파일에 있음.
|
||||
11. 639 관계 — 새 맞춤은 엑셀에서 읽은 값 + 사용자 값만 적고 엔진이 쓴 칸을 모두 적어 저장(빈 칸 → 자동값 1 길 안 탐) → 639-1 뿌리(`run_line`)는 안 묶음 · 기본 규칙 함수 하나(639-1a `master_auto.defaults`)만 묶어 「기본」 제안 · 검산에 씀.
|
||||
12. 일감 = 물결 1(새 파일만 · 창 넷 병행: Clause+Formula · Bind+Solve · Row+MO · 화면 껍데기) → 물결 2(Make+Router · 판정 화면) → 물결 3(지움 · 시험 정리 · 칠) → 검증 = 북부청 제1 · 2호표 · 예시 1 · 2 · 3 기대표(5-4) · 사용자 물음 둘(7장).
|
||||
|
||||
---
|
||||
|
||||
## 1. 자료 모델 대조 (할 일 1)
|
||||
|
||||
### 1-1 담는 그릇 둘
|
||||
|
||||
| 그릇 | 자리 | 꼴 | 줄 갈래 판정 |
|
||||
|---|---|---|---|
|
||||
| 일위대가 SC(사전조합) | `{층}/precombo/SC-######.json`(`M02_Labor_Ref.py:7-12`) · 정리 `clean_doc` `:192-217` · 줄 `_combo_lines` `:287-309` · 줄 검사 = `M02_Labor_Doc.clean` `:100-206` | `{종류 사전조합, 키, 이름, 단위, 담은로직[], 자재[], 구분, 상세구분, 본뜬}` · TS = `LaborDoc`(`M02_MasterTemplete_Labor_Api.ts:94-116`) | 갈래 칸 없음 — 있는 열쇠로 가름(`M02_Labor_Doc.line_id` `:424-428` · TS `Labor_Calc.ts:141-150`) |
|
||||
| 단가산출 SK | `{층}/sangeun/SK-######.json` · `M02_Sangeun_Doc.py:3-30` · `clean` `:295-351` · TS `logic/M02_Sangeun_Cover_Model.ts:30-98` | `{바탕 {로직}|{참조}|null, 입력값, 열린입력, 덮개, 뺀줄, 더한줄[], 환산, 고름, 자재표시}` | 더한줄 `종류` = 인력 · 재료 · 기계 · 로직(`:45`) + 참조 · 고정(율 = 고정.비율 `:173`) |
|
||||
|
||||
SC 줄 넷 + 자재:
|
||||
|
||||
| SC 줄 | 칸 | 자리 |
|
||||
|---|---|---|
|
||||
| 로직(기초) | `로직, 입력값, 수량 {손}, 별칭, 메모, 켜쌓기율?, 고름?, 자재표시?, 패치?` | `M02_Labor_Doc.py:137-167` · 같은 로직 두 번 400 `:143` · 빈 입력값 버림 `:102 · 157` |
|
||||
| 참조 | `참조 {층, 주인, 키 SP|SC|SK}, 수량, 별칭, 메모, 패치?(SK 만)` | `:120-136` |
|
||||
| 고정 | `고정 {이름, 규격, 단위, 단가 {노 · 재 · 경}, 이음 {노임 LB, 자재 MT, 기계 EQ}, 출처?, 비율?}` | `M02_Labor_Fixed.py:65-97` · 이음 머리 검사 `:31 · 83-87` |
|
||||
| 율 | 고정 + `비율 {기준 = 비목 | 인력 · 재료 · 장비 | [줄 열쇠], 비목}` · 수량 = % | `M02_Labor_Fixed.py:88-92 · 99-104` |
|
||||
| 자재(따로 목록) | `{코드 MT|PM, 수량, 자재구분?, 별도계상?, 운반비?}` | `M02_Labor_Doc.py:168-190` · MT · PM 밖 400 `:172-179` |
|
||||
| 줄 출처 | 줄 `본뜬 {…}`(아무 묶음 · 셈에 안 씀) | `M02_Labor_Ref.py:299 · 326-328` |
|
||||
|
||||
### 1-2 요구 7 조합 — 줄 하나에 담나
|
||||
|
||||
| # | 항목 | SC 줄 | SK 줄 | 셈 자리 |
|
||||
|---|---|---|---|---|
|
||||
| a | M01 기초 + 옵션값 | **됨** — 로직 줄 · `입력값` | **됨** — `바탕.로직` + 문서 `입력값` · 더한줄 로직(제 `입력값`) | `M02_Labor_Doc.run_line` `:542-563` · `M02_Sangeun_Calc.run` `:328-389` |
|
||||
| b | M02 SK | 됨 — 참조 → 저장 때 로직 줄 + 패치로 펼침(`M02_Library_Flat.py:333-370 · 403-405`) · 바탕 없는 SK · 환산 SK = 못 펼침(`:343-347` · 저장 길은 참조 그대로 `:16-17`) | 됨 — `바탕.참조` · 더한줄 참조 → 몸 사본 | `M02_Labor_Expand.py:69-70` |
|
||||
| c | M02 SC(한 줄) | **됨** — 사본 블록 한 줄(`M02_Library_Flat.py:406-408` · `M02_Labor_Ref.py:113-123`) | 됨 — 저장 때 더한줄 N 줄로 펼침(`M02_Library_Flat.py:175-221`) | `M02_Labor_Expand.py:134-211` |
|
||||
| d | M01 인력 LB | 됨 — 고정 `이음.노임`(노무비 = LB 값 `M02_Labor_Fixed.py:174-180`) | 됨 — 더한줄 인력 `요소 LB` | `MS/master_pick.py` `_priced` `:129-151` |
|
||||
| e | M01 재료 MT | 됨 — 자재 목록 · 고정 `이음.자재` · 로직 `고름` | 됨 — 더한줄 재료 · `고름` | `M02_Labor_Doc.material_price` `:461-489` |
|
||||
| f | M01 유가전력 MO | **없음** — 이음 머리 MT 만 · 자재 MT · PM 만 | API 는 받음(요소 머리 검사 없음 `M02_Sangeun_Doc.py:284-292`) · 화면 고르기 · 불러오기 길 없음 | 엔진은 셈 됨(`MS/master_material.py:238-270` MO → `master.value`) |
|
||||
| g | M01 기계 EQ | 고정 `이음.기계`(셈은 줄 단가 그대로 `M02_Labor_Fixed.py:188`) · **로직 줄 기계경비 기초 + `입력값 {기계}`** 가 셈 됨 | 더한줄 로직 GC 기계경비 + `{기계: EQ}`(778-2) · EQ 직접 더한줄 = 셈 오류(EQ 값이 묶음 `MS/master_formula.py:616-619`) | — |
|
||||
| h | M01 소요량 QC/QF | **없음**(기초 식 안 `찾기` 로만 · 화면 `/table` 읽기만 `M02_Logic_Lib_Read.py:20-21`) | 없음 | — |
|
||||
| i | M01 계수 CC/CF | **없음** | 없음(SK `환산.계수` 는 단위 환산 수 · 다른 것) | — |
|
||||
| j | M01 환율 FX | **없음** | API 만(MO 와 같은 틈) | — |
|
||||
| k | 율 | 됨 — 고정.비율 | 됨 — 고정.비율 더한줄(778-4) | `M02_Labor_Fixed.ratios` · `M02_Sangeun_Calc._rated` `:401-435` · TS 짝 `M02_MasterTemplete_Labor_Calc.ts:283-332` |
|
||||
| l | 고정 금액 | 됨 — 고정(이음 없음) | 됨 — 고정 더한줄 · 인력 · 재료 손 `단가` | `M02_Labor_Fixed.line` `:166-191` |
|
||||
|
||||
- 그룹마다 하나가 아님(요구 7 「복수 선택」) — SC 줄 · 자재 · SK 더한줄 모두 목록 · 수 제한 없음 · 막는 것은 「같은 로직 · 같은 참조 · 같은 고정 줄 두 번」(SC 만 `M02_Labor_Doc.py:114 · 124 · 143`) — SK 더한줄 로직은 같은 로직 두 번 됨.
|
||||
- 고정 줄 하나에 LB · MT · EQ 셋 함께 이음 됨(`M02_Labor_Fixed.py:83-87`) · 묶음은 첫 이음(`:107-110`).
|
||||
|
||||
### 1-3 한 엑셀 줄 = 우리 여러 줄
|
||||
|
||||
| 꼴 | 모양 | 됨 | 막힘 |
|
||||
|---|---|---|---|
|
||||
| **(가) SC 줄 여럿 + 본뜬 묶음(권함)** | 고른 것마다 SC 한 줄 · 같은 `별칭`(엑셀 품명) · 줄 `본뜬 {층 실무자료, 키 HP-… 제N호표, 차례, 행}` · 수량 = 엑셀 수량 × 몫 × 단위 환산 · 그 줄 묶음 안 율 = `비율.기준 [그 묶음 줄 열쇠]` | 꼴 고침 없음 — 지금 Build 도 「한 줄 로직 여럿 = 같은 별칭」(`Build.py:13-14`) · 본뜬 칸 이미 저장(`M02_Labor_Ref.py:299`) | 같은 로직 둘째 = 한 줄 SC 사본으로 감쌈(지금 규칙 `Build.py:13-14 · 300` 그대로) |
|
||||
| (나) SC 한 줄 + 패치 | 주 기초 로직 줄 + `패치.더한줄`(나머지 기초 로직 · 재료 · 인력 · 율 · 고정) = `M02_Library_Flat.sk_line` 결과와 같은 꼴 | 됨(`M02_Labor_Patch.py:3-8` · 더한줄에 참조 못 넣음 `:37-38`) | 기초 없는 줄 조합 못 담음(바탕 필요 `M02_Library_Flat.py:343-344`) · 나머지 기초가 화면에서 덮개 안에 숨음 |
|
||||
| SK(단가산출표 탭) | 바탕 없음 + 더한줄 [로직 ×N(제 입력값 · 수량 = 몫) · 인력 · 재료 · 기계경비 로직 · 율 · 고정 · 참조] | 됨(778-5 단위 SK 와 같은 꼴 · 화면 검증됨) | — |
|
||||
|
||||
- 판단 — (가)는 기초마다 줄이 보여 옵션 고치기 쉬움 · 기초 없는 조합도 같은 꼴 · 하이라이트 · 장부가 `본뜬.차례` 하나로 잇힘. 고른 것 목록 하나 → 「SC 줄」 · 「SK 더한줄」 두 얇은 어댑터.
|
||||
- 묶음 칸(그룹 id)은 새로 안 둠 — `본뜬.차례` 가 그 몫.
|
||||
|
||||
### 1-4 셈 엔진 자리
|
||||
|
||||
| 엔진 | 자리 | 하는 일 | 빈 칸 처리 |
|
||||
|---|---|---|---|
|
||||
| `run_line` | `M02_Labor_Doc.py:542-563` | 로직 한 줄 = `mf.run` + 끝수 + 켜쌓기율 + 율 보기 · 재료 | **빈 입력 = 견본 자동값**(`:550` · 나눗수 1 · 그 밖 0 `MS/master_auto.py:91-108`) |
|
||||
| `calc` · `settle` | `M02_Labor_Doc.py:431-458 · 492-539` | 줄 갈래로 나눔(참조 → Expand · 고정 → fixed.line · 패치 → patch.run · 로직 → run_line) · 반영 = 기준 × 수량 ÷ 배(`:402-404`) | 기준 None 줄 = 합에서 조용히 뺌(`:407-408`) |
|
||||
| `Labor_Fixed.line` · `ratios` | `M02_Labor_Fixed.py:166-191 · 194-225` | 고정 줄 · 율 줄 | 빈 비목 0(`:80`) |
|
||||
| `Expand` | `M02_Labor_Expand.py:79-106 · 134-211` | SP · SK · SC 참조 풀기 | SC 안 수량 없음 = 「수량 없음」(`:165-168` · 1 아님) |
|
||||
| `Sangeun_Calc` | `resolve` `:136-170` · `_fill` `:197-228` · `_bundles` `:313-325` · `run` `:328-389` | SK 바탕 고리 · 덮개 · 더한줄 · 율 | 더한줄 로직 빈 칸 = 흐름 예시 › 자동값(`_defaults` `:185-194`) |
|
||||
| TS 짝 | `M02_MasterTemplete_Labor_Calc.ts`(`settle` · `rateBase` 짝 `:1-13`) · `M02_Labor_LogicMats_Model.ts` | 화면 즉시 합 | SK 짝 없음(서버 셈 `M02_Sangeun_Cover_Model.ts:6`) |
|
||||
| M01 엔진 | `MS/master_formula.py` `run` `:564-662` · `fill_empty` `:505-512` · `EmptyInput` `:61 · 419` | 입력 → 중간 → 호표 줄 → 덧줄 | **빈 입력 = None 이면 그 줄만 비움 + 까닭**(`:574 · 585`) — 새 맞춤 검산이 쓸 길 |
|
||||
|
||||
### 1-5 없는 것 · 더할 것
|
||||
|
||||
| 틈 | 지금 | 더할 꼴 | 크기 | 권함 |
|
||||
|---|---|---|---|---|
|
||||
| 유가전력 MO | SC 막힘 · SK API 만 | 고정 `이음` 에 `유가: MO`(LINKS · GROUPS 한 줄씩 · 셈 = 재료비 칸 MO 값) + SK 더한줄 재료 `요소 MO` 고르기 · 시험 | S | 물결 1(Row 창) |
|
||||
| 환율 FX | 없음 | 「외화 단가 × FX」 고정 줄 칸 | S | 예시 나올 때(북부청 0 줄) |
|
||||
| 소요량 · 계수 | 없음 · 엑셀엔 단산 글 속 수(1.03㎡ · 38 % · K 0.55 · 손율 26.7 %)로만 나옴 | 지금 = 2차 B5 「표 거꾸로」 근거 꼬리표 · 뒤 = 줄 `수량출처 {표, 조건, 칸}`(엔진 `찾기` 그대로) | M | 꼬리표로 시작 · 줄 꼴은 예시 나올 때 |
|
||||
| 입력 필요 저장 | SC 빈 입력값 버림(`M02_Labor_Doc.py:157`) → 셈 때 자동값 | 새 맞춤은 엔진이 쓴 칸 모두 적어 저장(4장) | — | 꼴 고침 없음 |
|
||||
| EQ 직접 줄 | 셈 오류 | 기계경비 로직 줄로만(778-2 규칙 그대로) | — | 그대로 |
|
||||
| 같은 로직 두 번(SC) | 400 | 한 줄 SC 사본 감쌈(지금 규칙) | — | 그대로 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 새 매칭 파이프라인 (할 일 2)
|
||||
|
||||
### 2-0 지금 길이 틀린 까닭 — 뿌리
|
||||
|
||||
| 단계 | 지금 | 낳은 흠 |
|
||||
|---|---|---|
|
||||
| 기초 찾기 | 엑셀 블록 숫자 지문 ↔ 우리 기초 1,515 × 변형 지문 순위(`Fit.rank` · `Ours.fingerprint`) · 조항은 덤 점수(`Basis.clause` 1.0 · 0.9 · 0.5) | 번호만 같은 다른 부문 1위(628) · 품 비슷한 엉뚱한 기초(GF000214 → 단산10) |
|
||||
| 옵션 | 칸마다 후보 공간 × 엔진 수백 번 돌려 엑셀 품과 가까운 조합(`Option.space` `:115-170` · `find`) · 후보에 견본 1 · 0 | 0.5476 → 25 · 98,939,100원(635 · 639) |
|
||||
| 여러 절 | 1순위가 블록 통째 지문에 옵션 맞춤 + 덮지 못한 절 덧 로직(`Combine.py:271 · 282` · `Verdict.py:129`) | 둘째 키 옵션 틀림 +11 %(638) |
|
||||
| 단가산출 줄 | 778-5 단위 SK = 기초 안 씀 · 엑셀 품 고정(요구 623-1) | 642-8 「M01 기초 + 옵션값」 과 어긋남 |
|
||||
|
||||
새 길 원칙: ① 글에 적힌 근거를 먼저 읽음(품셈 번호 · 기본공식 · 선택값 · 상수) ② 후보는 조항 색인으로 좁힘(순위 아님) ③ 옵션값은 읽어서 넣음(찾지 않음) · 못 읽으면 「입력 필요」 ④ 엔진은 후보마다 한 번(검산) ⑤ 모든 옮김은 사용자 확인 · 복수 고름.
|
||||
|
||||
### 2-1 단계 한눈에
|
||||
|
||||
| 단계 | 입력 | 출력 | 판정 이름 | 파일 |
|
||||
|---|---|---|---|---|
|
||||
| ① 읽기 · 정규화 | 엑셀 바이트 | Book(HP 판 올림) · 격자 | 읽음 · 엑셀 자체 어긋남(띠) | `Excel` · `Stmate` · `ReadEst` · `UnitLine` · `Grid` · `Store`(남김) + `ReadEst` 글행 덧 |
|
||||
| ② 1차 줄 판정 | 호표 줄 | 줄 판 `{갈래후보, 후보[], 판정}` | 제안 있음 · 2차 필요 · 후보 여럿 · 후보 없음 | 새 `Row` + `Elem` · `Material` · `Ledger` · `Units` |
|
||||
| ③ 단가산출 줄 | 2차 필요 줄 + 블록 번 | `수량 {엑셀, 배, 갈래}` + 블록 풀이 붙임 | 단위 같음 · 단위 환산 · 환산 입력 | `Row`(환산 = `Match.factor` 옮김) |
|
||||
| ④ 2차 블록 풀이 | 블록 + 부르는 줄 · 같은 호표 줄 | 블록 풀이 `{표지, 절[], 덧[], 판정}` | 줄 = 품 같음 · 품 다름 · 입력 필요 · 엑셀만 · 우리만 / 절 = 기초 풂 · 후보 여럿 · 기초 없음 / 블록 = 기초로 풂 · 기초+덧 · 줄 조합 · 고를 것 n | 새 `Clause` · `Formula` · `Bind` · `Solve` |
|
||||
| ⑤ 사용자 확인 | ②④ 제안 + 고름(복수) | 확인 `{호표: {차례: [고른 것]}, 블록: {번: [고른 것]}}` | 확인 전 · 확인함 · 입력 필요 n(옮기기 막힘) | 화면 새 판 둘 · 캐시 sessionStorage |
|
||||
| ⑥ 만들기 | 확인 + Book(서버 다시 셈) | SC · SK(개인 층) · 장부 | 옮김 · 못 옮김(까닭) · 금액 참고 | 새 `Make` + `Kids` · `Fixed` · `Compare` |
|
||||
|
||||
고른 것(⑤ · ⑥ 공통 꼴) = `{갈래 기초|단가산출|일위대가|인력|재료|유가|기계|율|고정, 키, 이름, 단위, 입력값 {이름: 값}, 출처 {이름: B1~B6|사용자|기본}, 몫, 비목?, 기준?, 별도계상?}`.
|
||||
|
||||
### 2-2 ① 읽기 · 정규화 — Book 재사용
|
||||
|
||||
- 남김: Book `{꼴, 시트, 호표[{번, 이름, 규격, 단위, 금액, 행, 줄[{차례, 이름, 규격, 수량, 단위, 단가, 금액, 비고, 참조 {종류 단산|일위, 번}, 갈래, 행, 근거, 묶음, 재현}]}], 단산[{번, 이름, 단위, 행, 출처, 직종, 글, 금액, 항목[]}], 검산}`(`Excel.py:318-370` · `UnitLine.py:5-20`) · 두 형식이 여기서 한 꼴(776-2).
|
||||
- 덧 둘: ⓐ 글 줄마다 엑셀 행(`ReadEst.py:225` 가 `_글행` 을 버림 → 남김 · 옵션값 출처 「B1170 행」 표시 · 하이라이트) ⓑ 절 나무 `절 [{번, 제목, 행 [시작, 끝], 항목 [차례], 소계 {노 · 재 · 경}, 아래 [...]}]`(항목 `절` · `윗절` 칸에서 모음 · 빠진 절 번호 그대로 둠 — 단산6 1 → 3).
|
||||
- 지움: Book 만든 뒤 `Basis.settle` 부름(`Excel.py:306 · 378-380`) → 새 `Clause.settle`(같은 일 · 옮김).
|
||||
- HP 판 `BOOK=3`(`Store.py:35`) → 4 · 옛 HP = 끝내고 「다시 올림」 안내(776 정함 그대로).
|
||||
|
||||
### 2-3 ② 1차 줄 판정 — 품명 · 규격 · 비고 · 비목 칸
|
||||
|
||||
| 신호(위가 먼저) | 갈래 후보 | 북부청 줄 | 후보 찾는 곳 |
|
||||
|---|---|---|---|
|
||||
| 비고 「일위N참조」 | 일위대가(하위 호표) | 1(O357 · 제45 → 제46 뒤 번호) | 엑셀 하위 호표 → 하위 먼저 SC(`Kids.first`) |
|
||||
| 비고 「단산N참조」 | 단가산출 → 2차 | 268 | 장부 › M02 층 SK · SC 이름 · 규격 › M01 기초 이름(참고) |
|
||||
| 규격 · 품명 「별도계상」 · 단가 0 | 재료(별도계상) | 64(규격 59 · 품명 5) | MT 이름 · 규격(`Material.candidates`) · 숫자 규격은 치수 순서 무관(요구 624-2) |
|
||||
| 단위 % · 규격 「재료비의 · 노무비의」 | 율 | 1(C364 잡재료비 3 %) | 기준 = 규격 글자(EST 규칙 노 · 품 · 인 → 노무 · 재 · 자 → 재료 · 경 → 경비 · 합계 · 총 → 합계 `REA/09_…/ESTPlus2_아이슬로_내역서개발_참고정리_20261029.md:51`) |
|
||||
| 비고 빔 · 재료비만 | 재료 · 유가(이름이 유류 · 전력) | 78 | MT › MO › PM(개인 자재) |
|
||||
| 비고 빔 · 단위 hr · 시간 · 대 | 기계 | 3(대형브레이카 O212 · 509 · 546) | EQ(괄호 낱말 778-1 `Fixed.Linker._machine`) → 기계경비 기초 로직(778-2) |
|
||||
| 단위 인 · 직종 이름 | 인력 | 0 | LB 이름 · 옛이름(`ReadEst.trade`) · 작업반장 = 건설업(요구 624-1) |
|
||||
| 그 밖 | 고정 금액 + 이름 후보 전부 | 0 | 위 모든 표 + QC · CC · FX 이름(꼬리표만) |
|
||||
|
||||
- 판정: 「제안 있음」 = 장부 짝 또는 후보 하나(별도계상 자재 · 유일 MT · 유일 LB) · 「2차 필요」 = 단산 줄 · 「후보 여럿」 · 「후보 없음」(고정 금액 제안).
|
||||
- EST 행 성격과 같은 틀 — LinkIndex 5 자재 · 6 노임 · 103 일위대가 · 104 단가산출 · 105 기계 · 58 · 62 비율(`REA/ESTPlus2_REA_최종보고서_20261030.md:34`).
|
||||
- 장부(`실무자료/맞춤.json` `Ledger.py:3-6`) = 1차 기억 — 열쇠 그대로(`Match.line_key` `:62` · B09 도 씀) · 짝 꼴을 고른 것 꼴로 넓힘(갈래 · 키 · 입력값 · 몫 · 여럿).
|
||||
|
||||
### 2-4 ③ 단가산출 줄 — 수량 그대로
|
||||
|
||||
- 우리 줄 수량 = 엑셀 수량 × 몫(블록 풀이 절마다) × 단위 환산 배(`Match.factor` `:199-223` · 784-2 「단위 환산 — 엑셀 1 ㎡ = 우리 [ ] 본」 · 같은 단위 = 1 숨김).
|
||||
- 블록 풀이(④)를 줄에 붙임 — 한 블록을 여러 줄이 부르면 풀이 한 벌 · 줄마다 수량만 다름.
|
||||
- 단산이 단산을 부름(`*단산68참조*` B3022 · B3117) = 하위 블록 먼저 풀이 · 고른 것 갈래 「단가산출」(하위 SK).
|
||||
|
||||
### 2-5 ④ 2차 블록 풀이
|
||||
|
||||
#### ④-1 품셈 번호 → 후보(색인 · 순위 아님)
|
||||
|
||||
- 색인 = M01 로직 `{(구분, 원문번호): [키]}` — 로직 1,515 · 조항 903 · 원문번호 빈 것 0 · 조항당 로직 하나 607 · 둘 127 · 셋 87 · 넷 이상 82(`a1_clause.py`).
|
||||
- 엑셀 출처 = 블록 `출처 [[책, 번호]]`(`ReadEst.sources` `:130-143` · 책 낱말 · 오타 「품줌」) → 부문 풀이 · 옛 번호 대응(`Basis.resolve` · `road_map` · `_part` `:115-190`) → 색인: 같음 › 윗마디(엑셀 6-2 ⊃ 6-2-2 · 6-2-3) › 같은 책 다른 부문 버림.
|
||||
- 표지: 「준용」(4 블록 · 후보 참고만) · 「옛 번호」(`no_basis` `:214-247` · 단산6 「8-2, 2016년 삭제」) · 「기초 없음」(조항에 로직 0) · 「번호 없음」(4 블록 · 1차 이름 후보로).
|
||||
- 결과단위 거름 — 후보 결과단위 성격 ≠ 블록 단위 성격이면 뺌(예 단산33 「12-12 준용」 → GF000177 날개벽 원/식 ≠ ㎥).
|
||||
|
||||
#### ④-2 절 나눔
|
||||
|
||||
- 절 나무(①ⓑ)의 윗 절마다 기초 하나 — 절 제목 ↔ 후보 이름 뜻 낱말(「현장가공」 ↔ GC000206 · 「조립」 ↔ GC000207) · 번호가 절에 따로 적히면 그 번호(단산33 B1720 「4. 기초지정[2025년 표준품셈3-4-8]」).
|
||||
- 블록 번호가 절 단위(「6-2」)면 아랫마디 후보를 절마다 나눠 줌 — 638 「두 키」 = 맡은 절 둘(흠 아님).
|
||||
- 합계 · 소계 절 = 셈 밖(`UnitLine` `밖`).
|
||||
- 절 71/95 블록이 여러 갈래(`scratch/s7_skstats.py` 실측 · 1절 24 · 2절 32 · 3절 26 · 4절 10 · 5절 이상 3).
|
||||
|
||||
#### ④-3 기본공식 · 옵션값 읽기(B1~B6)
|
||||
|
||||
| 길 | 읽는 곳 | 넣는 칸 | 재사용 | 예 |
|
||||
|---|---|---|---|---|
|
||||
| B1 규격 · 품명 | 부르는 일위대가 줄 규격 + 품명 괄호 | 고르기 글 · 이름 붙은 수 D= H= B= T= L= L3= | `Match.spec_inputs` `:139-185` · `numbers` · `LETTERS` | 「철근구조물」 → 구조물 · 「장비사용」 → 타설방법 · 「L3=35cm」 → 뒷길이 35 |
|
||||
| B2 선택값 줄 | 블록 글 「※ …」 · 「사용횟수 4회 : 보통」 · 「L = 6m {경사도 = 35°}」 | 고르기 글 · 이름 붙은 수 | B1 함수에 글 줄 넘김 | 단산24 B1177 → 사용횟수 4회 · 유형 「보통」 |
|
||||
| B3 상수 줄 | 「q = 0.6㎥ K = 0.55 f = 1」 · 「E = 0.35 Cm = 18sec(90˚)」 | 기호표 → 입력 이름(q → 버킷용량 · f → f · E → E입력 · Cm → 싸이클입력 · (90˚) → 선회각도 · L → 거리 · n → 운반회수 · T → 실작업시간) | 새 기호표(≈ 20 기호 · 입력 이름 = 기호면 바로) | 단산6 B376 · B378 → GC001148 |
|
||||
| B4 대입식 | 「P = 1 ㎡ × 575㎏/㎡ × 1회 ÷ 25㎏ × 1일 ÷ n = …」 | 우리 줄 수량 식을 중간 식까지 펴 분자 · 분모 입력 이름 + 단위(㎏ · m · 회)로 짝 | `MS/master_formula.parse` · `walk` · `MS/master_auto._uses` `:35-58` · `Words.parse_rhs` `:193-226` | 575㎏(분자) → 운반무게 · 25㎏(분모) → 회당운반량 · n(분모 · 회) → 운반회수 |
|
||||
| B5 표 거꾸로 | 직종 품 「5인 ÷ 45」 · Q 「45㎡/일」 · 율 「38 %」 · 「9 %」 | 표 찾기 고르기 칸 = 엑셀 수와 같은 표 줄 하나의 조건값 · 모든 직종 같은 배수 = 시공량 감률 칸 | `MS/master_auto._uses`(찾기 칸 · 표) · `_fits` `:66-79` | QC000431 시공량 45 → 유형 보통 · QC000428 합판 38 · 소모자재 9 → 4회 · QC000420 품 ×2 → 소량감률 50 |
|
||||
| B6 같은 호표 다른 줄 | 별도계상 레미콘 규격 「25-21-120」 · 수량 0.36㎥ ÷ 3㎡ | 굵은골재 · 강도 · 슬럼프 · 채움콘크리트량 | 새(규격 꼴 「a-b-c」 하나) | 제2호표 행 14 → GF000225 |
|
||||
|
||||
- 값마다 `출처 {길, 행, 글}` · 두 길이 다른 값 = 「엇갈림」(사용자) · 표지 없는 값 0.
|
||||
- 못 읽은 칸 — 엔진이 그 칸을 안 쓰면 「안 씀」(예 GC001140 운반회수가 있으면 재료갈래 · 운반로 · 실작업시간은 `만약(운반회수 > 0 …)` 로 안 씀) · 쓰면 「입력 필요」 + 기본 규칙값 제안(4장 · 꼬리표 「기본 — 엑셀에 없음」).
|
||||
- 입력 칸 3,888 = 고르기 2,835 · 단위 붙은 수 947 · 라틴 기호 이름 341(E입력 27 · f 20 · Cm 4 · qt 4 …) → B1 · B2 · B5 가 대부분 · B3 · B4 는 수 칸 몫.
|
||||
|
||||
#### ④-4 검산(후보마다 엔진 한 번)
|
||||
|
||||
- 엔진 = `mf.run` + `fill_empty`(못 읽은 칸 None → 그 줄만 비움 · 견본 자동값 안 씀) · 후보 ≤ 5 × 1 번.
|
||||
- 줄 대조 = 우리 호표 줄 ↔ 엑셀 단위 줄(`UnitLine` 항목 · 묶음 L 노무 · X 기계 · M 자재 · R 율 · S 하위 · E 값) — 같은 묶음 · 같은 요소(LB · EQ 갈래 · MT 이름)로 짝 · **품(매개값) 비교가 판정** · 금액은 참고(노임 · 단가 해가 다름).
|
||||
- 품 같음 문턱 = 엑셀 자릿수 반올림 폭 안(0.67 ↔ 0.6667 · 1.18 ↔ 1.1765) 또는 0.5 %.
|
||||
- 줄 판정 = 품 같음 · 품 다름 · 입력 필요 · 엑셀만(우리 기초에 없는 줄 → 덧 줄 후보) · 우리만(엑셀에 없는 우리 줄 → 고르기 「아님」 가능 칸 표시 · 예 폼타이).
|
||||
- 율 비목 엇갈림 — 엑셀 공구손료 · 기계경비 율 결과가 재료비 칸(E)에 듦(단산24 B1203 · 46 B2213 · 47 B2252 · B2277) · 우리 기초 덧줄은 경비 → 금액 같음 · 칸 다름 표지(우리 그대로).
|
||||
|
||||
#### ④-5 블록 판정
|
||||
|
||||
| 블록 판정 | 조건 | 제안 |
|
||||
|---|---|---|
|
||||
| 기초로 풂 | 절마다 후보 하나 · 입력 필요 0 · 엑셀만 줄 0 | 절마다 기초(입력값 · 몫) |
|
||||
| 기초 + 덧 | 위 + 엑셀만 줄(율 · 재료 · 인력 · 기계) | 기초 + 덧 줄(`Units` 잇기 · 778-5 꼴) |
|
||||
| 줄 조합 | 기초 후보 0(기초 없음 · 번호 없음 · 옛) | 단위 줄 → 인력 · 재료 · 기계경비 로직 · 율 · 하위 · 값(지금 `SkUnit.adds` 꼴) + 근거 꼬리표 |
|
||||
| 고를 것 n | 후보 여럿 · 입력 필요 · 엇갈림 · 못 이은 덧 줄 | 그 칸 · 그 줄만 사용자 |
|
||||
|
||||
#### ④-6 얽힘 규칙(요구 642-8 「조심」)
|
||||
|
||||
| 얽힘 | 견본 자리 | 규칙 |
|
||||
|---|---|---|
|
||||
| 한 블록 여러 절 · 여러 기초 | 단산47 · 6 · 33 · 46 | 절마다 기초(④-2) · 절 몫 = 그 절 뒤 곱수(× 575/1750 × 90 %) |
|
||||
| 율 기준 줄 | 「인력품의 9 %」 B2250 · 「주자재비의 9 %」 B1187 | `UnitLine` 기준줄(778-3) → 우리 기초 덧줄 율과 대조 · 없으면 율 덧 줄(기준 = 묶음 · 줄 목록) |
|
||||
| 경비성단가 | 단산5 · 11 · 14 · 20 · 35(총괄표 「(경비)」) | 블록 비목 = 엑셀 머리 금액 따름 표지 · 우리 셈은 기초 비목 그대로 · 차 참고 |
|
||||
| 단산 → 단산 | 단산67 · 69 → 68 | 하위 블록 먼저 · 하위 SK |
|
||||
| 호표 → 뒤 호표 | 제45 → 제46 | 하위 먼저(777-1 그대로) |
|
||||
| 기계 · 노임 숫자로만 | 59,020 / 19,792 / 27,120 = 기계경비총괄표 31 굴착기(타이어) | 앞 제목 줄 「가. 굴착기(타이어형)(0.6㎥)」 + 세 수 한 묶음 → EQ · 기계경비 로직 |
|
||||
| 기계 갈래 엇갈림 | 단산46 굴착기(타이어) ↔ GC000198 안 GC000267(무한궤도) | 표지 · 자동 선택 없음(요구 624-8) |
|
||||
| 품셈 글 흔들림 | 오타 「표줌」 · 「2025년 표준품셈3-4-8」 · 단위중량 근거 1-10 | 책 낱말 표(781-1) · 단위중량 · 손율 근거 번호 = 후보 아님(결과단위 거름) |
|
||||
| 글 셈 흠 | B1733 「36,248 ÷ 0.096 = 3,418.3」 · B151 대 B28 | 칸(C~F) 값만 믿음 · 띠(778-5 D-6) |
|
||||
| 같은 호표 다른 줄 | 제2호표 레미콘 별도계상 ↔ 찰붙임 채움콘크리트 | B6 · 로직 자재와 같은 품목 = 사용자 자재에서 빼고 세 칸만 로직 `자재표시`(지금 `Build.py` 규칙 · `labor.no_twice`) |
|
||||
| 1-2-9 소규모 · 1-4 할증 | 「× 2」 · 「소량」 | 783 표지(프로젝트 조정 대상) · 셈은 기초 칸(소량감률) |
|
||||
|
||||
### 2-6 ⑤ 사용자 확인 · 복수 고름 · 옮김
|
||||
|
||||
- 자동 없음(요구 623-3) — 제안은 미리 체크로만 보이고 옮김은 [확인] 뒤 · 호표 단위 [제안 모두 확인] 단추는 사용자가 누름(브레인 정할 것 B8).
|
||||
- 줄 판(일위대가표 탭 오른쪽): 호표 → 줄마다 1차 갈래 칩 · 후보 칩 여럿 고름 · 단산 줄은 블록 풀이 펼침(절마다 기초 칩 · 입력값 칸 = 엑셀 값 + 출처 꼬리표 · 입력 필요 붉은 테 · 엇갈림) · 몫 · 단위 환산.
|
||||
- 블록 판(단가산출표 · 상세 탭 오른쪽): 블록 목록(95 · 일위대가 밖 46 = 780) → 같은 블록 풀이 판 · 옮기면 SK.
|
||||
- 엑셀 보기 칠 = 확인 상태(초록 확인함 · 파랑 고를 것 · 주황 품 다름 · 빨강 못 풂 · 흐림 밖) — `logic/M02_MasterTemplete_Hopyo_SheetMap.ts` 그대로 · 상태만 새 판정.
|
||||
- 검산 금액은 서버(③ 서버 단독 · M01 엔진 TS 없음) · 고름 반영은 화면 즉시 · 검산은 뒤에서(옛 요청 끊기).
|
||||
|
||||
### 2-7 ⑥ 만들기
|
||||
|
||||
| 확인한 것 | SC 줄(일위대가) | SK 더한줄(단가산출) |
|
||||
|---|---|---|
|
||||
| 기초 | 로직 줄 `{로직, 입력값(엔진이 쓴 칸 모두), 수량 {손 = 엑셀 수량 × 몫 × 배}, 별칭 = 엑셀 품명, 본뜬 {층 실무자료, 키, 차례, 행}}` | `{종류 로직, 로직, 입력값, 수량 = 몫}` |
|
||||
| 단가산출(M02 SK · 하위 블록 SK) | 참조 → 펼침(로직 + 패치 · 바탕 없음이면 참조 그대로) | 참조 |
|
||||
| 일위대가(하위 호표 · M02 SC) | 사본 블록 한 줄 | 참조 → 펼침 |
|
||||
| 인력 · 기계 · 유가 | 고정 + 이음(LB · EQ · MO) · 기계는 기계경비 로직 줄 | 인력 `요소 LB` · 로직 GC + `{기계}` · 재료 `요소 MO` |
|
||||
| 재료 · 별도계상 | 자재 목록 `{코드, 수량, 별도계상}` | 재료 `요소 MT, 별도계상` |
|
||||
| 율 | 고정.비율 `기준 = [그 엑셀 줄 묶음 줄 열쇠] | 비목` | 고정.비율(778-4) |
|
||||
| 고정 금액 | 고정(엑셀 단가 · `출처 {파일, 호표, 줄}`) | 고정 |
|
||||
|
||||
- 층 = 개인(요구 627) · 일위대가 → `precombo` · 단가산출 → `sangeun` · 하위 먼저 · 같은 내용 재사용(`Kids.save` · `M02_Library_Same`).
|
||||
- 서버가 Book + 확인으로 다시 셈(브라우저 값 안 받아 적음) · 확인한 짝 → 장부.
|
||||
- 엑셀 대조 = `Compare.compare` · `excel_given`(참고 · 비목마다 1 원 안 같음).
|
||||
|
||||
### 2-8 금액 검산 정리
|
||||
|
||||
| 자리 | 엑셀 | 우리 | 쓰임 |
|
||||
|---|---|---|---|
|
||||
| 단위 줄 | 품 · 시간 · 수량 · 율 | 엔진 줄 수량 | **판정**(품 같음) |
|
||||
| 절 | 절 소계(C~F) | 기초 기준 × 몫 | 참고 · 차 % |
|
||||
| 블록 · 호표 줄 | 머리 단가 · 줄 금액 | 고른 것 합 | 참고(M01 지금 단가 · 엑셀 = 과거 값 · 요구 624-5) |
|
||||
| 엑셀 자체 | 줄 합 ↔ 머리 · 글 셈 ↔ 칸 | — | 띠(`UnitLine` 재현 · 덮음 · `Marks` 어긋남) |
|
||||
|
||||
### 2-9 길(API) — 새 `M02_Hopyo_Router.py`(옛 hopyo 길 옮김 · `M02_Labor_Router.py` 625 줄 덜어 냄)
|
||||
|
||||
| 길 | 일 | 지금 대비 |
|
||||
|---|---|---|
|
||||
| `POST …/hopyo` | 올림 → Book · 격자 · 저장 | `Fit.ensure` 배경 일 걷음(`M02_Labor_Router.py:223-236`) |
|
||||
| `GET …/hopyo/{키}` | 호표 목록 + 줄 상태 | `Match.view` 대신 |
|
||||
| `GET …/hopyo/{키}/{번}` | 그 호표 1차 판 + 단산 줄 블록 풀이 | `Match.view(no)` · `guess` 대신 |
|
||||
| `GET …/hopyo/{키}/block/{번}` | 블록 풀이(단가산출표 탭) | `/sangeun` 판정 대신 |
|
||||
| `POST …/hopyo/{키}/check` | 고른 것 + 입력값 → 검산(엔진 한 번씩) | 확인 창 `/labor/{col}/calc` 대신 |
|
||||
| `POST …/hopyo/{키}/move` | 확인 → SC · SK · 장부 | `/hopyo-build` · `/sangeun` 확인 몸 대신 |
|
||||
| 그대로 | `/hopyo-grid` · `DELETE /hopyo/{키}` · `/hopyo-ledger` · `/hopyo-paste` · `/hopyo-relink*` · `/hopyo-item` · `/hopyo-marks`(칠 = 새 판정) | B09 TS · M01 이 씀 |
|
||||
|
||||
- 시동 `hopyo_ours.warm()`(`M02_Labor_Router.py:215`) 걷음.
|
||||
|
||||
### 2-10 예시 · 검증 기대표(북부청 · 코드 안 고친 모의)
|
||||
|
||||
| 자리 | 1차 | 2차 후보(조항 색인) | 옵션값(출처) | 검산 기대 |
|
||||
|---|---|---|---|---|
|
||||
| 제1호표 행 6 레미콘 별도계상 2.5㎥ | 재료 · 별도계상 | — | — | 0 원 |
|
||||
| 행 7 레미콘타설(장비사용) 단산46 | 2차 | 공통 6-1-1 = GC000198 하나(건축 GC000630 · 기계설비 GC000775 부문 다름) | 타설방법 장비사용타설(B1 품명 괄호) · 구조물 철근구조물(B1) · 소량감률 50(B5 품 ×2 · 「소량」) · 굴착기 0.6㎥(B3 · 타이어 ↔ 무한궤도 엇갈림) | 콘크리트공 3 ÷ 27.5 = 0.1091 = 엑셀 · 보통인부 0.0364 · 굴착기 0.29 hr · 공구손료 2 %(엑셀 재료비 칸 · 표지) |
|
||||
| 행 8 합판거푸집 4회 단산24 | 2차 | 공통 6-3-1 = GC000211 하나 | 유형 보통(B5 QC000431 시공량 45 + B2 「보통」) · 사용횟수 4회(B1 · B2 · B5 합판 38 · 소모자재 9) · 폼타이 아님(우리만 줄) · 높이감률 · 구멍땜 = 입력 필요(기본 0 제안) | 형틀목공 0.1111 · 보통인부 0.0444 → 노무 38,291 = 엑셀 · 재료 품(1.03 × 38 % · 0.038 × 38 %) 같음 → 재료비 차 = 자재 단가 차(요구 640-1 참고) |
|
||||
| 행 9 기초잡석 단산33 | 2차 | 「12-12 준용」 = 결과단위 다름 → 표지 · 절 다섯(채집 · 적사 · 운반 · 기초지정 3-4-8 GC000110 · 합계) | 절마다 · 기계 Q 식(B3 · B4) | 고를 것 n(가장 얽힌 블록 · 글 셈 흠 B1733 띠) |
|
||||
| 행 10 면목 | 재료 | — | — | MT 후보(없으면 고정) |
|
||||
| 행 11 철근가공조립(현장) 단산47(예시 2) | 2차 | 「6-2」 윗마디 → 공통 6-2-2 GC000206(절 「1. 현장가공」) + 6-2-3 GC000207(절 「2. 조립」) | GC000206 Type-Ⅰ(B1 · B5 0.67 · 0.22 = 3/4.5 · 1/4.5) · GC000207 Type-Ⅰ · 호 Ⅰ-1 · 소량감률 50(B5 ×2) · 구분 토목|건축 = 고를 것(같은 수 · 임도 = 토목 제안 · 요구 624-1 꼴) | 가공 0.6667/0.2222 · 조립 3.5294/1.1765 = 엑셀 0.67/0.22 · 3.53/1.18 · 율 9 % · 2 % = 기초 덧줄 · 결속선 6.5㎏ |
|
||||
| 제2호표 행 14 레미콘 별도계상 0.36㎥ | 재료 · 별도계상 | — | — | 행 18 채움콘크리트와 겹침 표지 |
|
||||
| 행 15 야면석채집 및 운반 단산6 | 2차 | 「8-2, 2016년 삭제」 옛 표지 · 절 넷(채집 인력 10 % · 기계채집 · 상차 · 운반 덤프 · 「2.」 빠짐) | 기계채집 = GC001148(B3 q 0.6 → 버킷용량 · K 0.55 → 버킷조건 B5 · f 1 · E 0.35 → E입력 · Cm 18 → 싸이클입력 · 90˚ → 선회각도) · 몫 575/1750 × 90 % | 절마다 고를 것 · Q 23.1 대조 |
|
||||
| 행 16 고임돌 단산3 | 2차 | 「준용」 번호 없음 → 이름 후보 | 절마다 | 고를 것 |
|
||||
| 행 17 야면석소운반 단산10(예시 1) | 2차 | 공통 1-2-7 → GC001140 · 1141 · 1142 · 기본공식 「÷ 25㎏」(지게) → GC001140 | 운반무게 575(B4 분자 ㎏) · 회당운반량 25(B4 분모 ㎏) · 운반거리 6(B2 L) · 경사각도 35(B2) · 운반회수 42(B3 n) · 나머지 = 안 씀 | 0.547619 → 94,227.7 = 엑셀(782-1 재현과 같음) |
|
||||
| 행 18 야면석찰붙임 단산39 | 2차 | 산림 13-5-2 → GF000224 · 225 · 품명 「찰붙임」 → GF000225 | 뒷길이 35(B1 L3) · 굵은골재 25 · 강도 21 · 슬럼프 120(B6 「25-21-120」) · 채움콘크리트량 0.12(B6 0.36 ÷ 3 · 엇갈림이면 사용자) | 석공 0.11 · Q 0.22 hr 대조 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 지금 코드 — 남길 것 · 지울 것 · 고쳐 쓸 것 (할 일 3)
|
||||
|
||||
### 3-1 Python(34 파일 · 9,885 줄)
|
||||
|
||||
| 파일 | 줄 | 판정 | 까닭 · 할 일 |
|
||||
|---|---|---|---|
|
||||
| Excel | 388 | 남김 · 부름 하나 | Book 읽기 · B09 빌림(`_flat` `:65` · `_text` `:69` · `_num` `:75` · `_out` `:90` · `_cell` `:167` · `_money` `:171` · `DRM` `:46` · `ExcelError` `:61` · `read_book` `:300` · `kind_of` `:181`) · `hopyo_basis` 부름 넷(`:115 · 187 · 218 · 352`) → `ReadEst` · 새 `Clause` |
|
||||
| Stmate | 398 | 남김 | 형식 어댑터 · `source_basis.settle` → `Clause` |
|
||||
| ReadEst | 410 | 남김 + 덧 | 블록 · 출처 · 직종 · 항목 · 글행 남김(`:225`) · 절 나무 |
|
||||
| UnitLine | 219 | 남김 | 단위 줄 · 재현 · 덮음 · 일위대가 줄 투영 |
|
||||
| Grid | 341 | 남김 | 엑셀 보기 세 시트(779-1) |
|
||||
| Store | 192 | 남김 | HP · 격자 · 키 · `save`(B09 Bill_Hopyo `:113`) · `memory` · `remember`(B09 Router_Link · M01 Alias) |
|
||||
| Paste | 317 | 남김 | B09 Daega_Paste(`read_text` `:158` · `cells` `:44` · `fixed_lines` `:281`) · 모두 고정 길 |
|
||||
| Forget | 209 | 남김 · 두 줄 | 맞춤 캐시 지움(`Fit.cache_path` `:129-132`) 걷음 |
|
||||
| Words | 247 | 남김(작게) | `parse_rhs` · `mtypes` · `specnums` · `nfkc` 씀 · `cosine` · `jacc` · `cond_score`(Fit 만) 지움 |
|
||||
| Shares | 49 | 남김(작게) | B09 Import_Prices `trade` · `eq_key` · `sections`(Finger 만) 지움 |
|
||||
| Finger | 185 | **지움** | 지문 · `kind_of` `:179-185` 부르는 곳 넷(Build · Fixed · Kids) → `Excel.kind_of` |
|
||||
| Basis | 335 | **나눔** | 출처 풀이(`_ours` · `ours` · `clause` · `road_map` · `_grams` · `_sections` · `_named` · `_part` · `resolve` · `settle` · `has_logic` · `_has` · `no_basis` · `:46-247`) → 새 `Clause` · 순위(`candidates` · `merge` · `pick` `:248-335`) 지움 · Match 서로 부름 끊김 |
|
||||
| Match | 519 | **나눔** | 이름 도구 · 목록(`line_key` `:62` B09 · `tidy` · `words` · `near` · `numbers` · `spec_inputs` · `factor` · `fits` · `_grams` · `targets` · `_seeds` · `_public` · `_exact` · `MATERIAL_KINDS` · `_PAREN` · `LETTERS` `:1-320`) 남김 · 흐름(`candidates` · `name_cands` · `fix_typo` · `clause` · `b_order` · `_logic_specs` · `_line_mod` · `units_of` · `_state` · `view` · `guess` · `picks` · `chain` `:319-519`) 지움 |
|
||||
| Ours | 363 | **지움** | 우리 지문 · 디스크 캐시 · 시동 warm |
|
||||
| Option | 538 | **지움** | 옵션 거꾸로 찾기 — 자동값 1 · 엉뚱 입력 뿌리(635) |
|
||||
| Fit | 442 | **지움** | 순위 · 배경 일 · 캐시 |
|
||||
| Combine | 329 | **지움** | 조합 풀이(638 둘째 키 자리) |
|
||||
| Verdict | 237 | **지움** | 블록 판정(지문 · 옵션) |
|
||||
| Line | 487 | **지움** | 줄 맞춤 응답 → 새 `Row` |
|
||||
| Material | 309 | 남김 | 자재 후보 · 별도계상 · `clean`(B09 Import_Prices `:111`) · `marks` · Match 남는 몫만 부름 |
|
||||
| Elem | 160 | 남김 + 넓힘 | M01 요소 후보 LB · EQ · MT → + MO |
|
||||
| Units | 266 | 고쳐 씀 | 단위 줄 → 우리 단위(덧 줄 · 줄 조합 몫) · `SkPatch._mach_logics` · `MACH_IN` · `LINK` 옮겨 옴(`:167`) |
|
||||
| Ledger | 309 | 고쳐 씀 | 1차 기억 · 짝 꼴 넓힘 · `ours.version`(`:273`) · `match.targets`(`:196`) 정리 · M01 Alias 빌림(`read` `:80` · `put` `:303` · `_plain_of` `:59`) 지킴 |
|
||||
| Fixed | 191 | 남김 | `Linker` · `line_of` · 모두 고정 길 · `finger.kind_of` → 줄 `갈래` |
|
||||
| Build | 543 | **나눔** | 모두 고정 길(`Builder` `:121` · `.build({}, [], False)` B09 Bill_Hopyo `:116` · `_order` `:475` · `_origins` `:78` · `build_all` `:495`) 남김 · 확인한 줄 몸(대상 · SkLink 이음 `:289-364`) → 새 `Make` |
|
||||
| Kids | 247 | 남김 | 하위 먼저 · 같은 SC 재사용 · `Sangeun._same_mark` 옮겨 옴 |
|
||||
| Item | 160 | 남김 | 구조물 조합으로 |
|
||||
| SkLink | 131 | **지움** | 확인 안 한 단산 줄 → SK 이음(맞춤 캐시 기댐) |
|
||||
| SkPatch | 518 | **지움** | 블록 판정 → SK 꼴(Fit · Option · Combine) · 기계 몫 셋만 Units 로 |
|
||||
| SkUnit | 193 | 고쳐 씀 | 단위 줄 → SK 더한줄(`adds`) = 덧 줄 · 줄 조합 · SkPatch 부름(`:61 · 113`) 걷음 |
|
||||
| Sangeun | 323 | 고쳐 씀 | `Maker` SK 쓰기 · `_same_mark` · Fit · Basis · SkPatch 부름(`:156 · 177-179 · 212-232 · 300`) 걷음 → `Make` 가 부름 |
|
||||
| Compare | 66 | 남김 | 엑셀 대조(참고 금액) |
|
||||
| Relink | 152 | 남김 | 「이 공사 단가로 다시 잇기」(B09 TS) |
|
||||
| Marks | 152 | 고쳐 씀 | 칠 = 새 판정 · 어긋남 띠 남김 · `fit.result` 걷음(`:128-136`) |
|
||||
|
||||
### 3-2 새 파일(모두 700 줄 아래)
|
||||
|
||||
| 새 파일 | 일 | 줄(짐작) | 재사용 |
|
||||
|---|---|---|---|
|
||||
| `Clause` | 출처 풀이(Basis 옮김) + 조항 색인 `(구분, 원문번호)` + 후보 · 표지 · 결과단위 거름 | 300 | Basis 앞 몫 · `M02_Labor_Inputs.sources` |
|
||||
| `Formula` | 블록 글 → 절 나무 · 선택값 줄 · 상수 줄 · 대입식(분자 · 분모 · 단위) · 절 몫 | 300 | `Words.parse_rhs` · `ReadEst` 꼴 |
|
||||
| `Bind` | B1~B6 옵션값 읽기 · 기호표 · 표 거꾸로 · 출처 · 엇갈림 · 안 씀 · 입력 필요 | 350 | `Match.spec_inputs` · `MS/master_auto._uses` · `_fits` · `mf.parse` · `walk` |
|
||||
| `Solve` | 후보 × 바인딩 × 엔진 한 번 → 줄 대조 · 절 · 블록 판정 · 덧 줄(`Units`) | 300 | `mf.run` · `fill_empty` · `UnitLine` 항목 |
|
||||
| `Row` | 1차 줄 판정 · 후보(장부 · M01 표마다 · M02 층) · 수량 · 환산 | 300 | `Excel.kind_of` · `Elem` · `Material` · `Ledger` · `Match.factor` |
|
||||
| `Make` | 확인 → 고른 것 → SC 줄 · SK 더한줄 · 하위 먼저 · 장부 · 엑셀 대조 | 350 | `Kids` · `Fixed` · `SkUnit.adds` · `Sangeun.Maker` · `M02_Library_Flat` · `Compare` |
|
||||
| `Router` | 새 길 + 옛 hopyo 길 옮김 | 350 | `M02_Labor_Router.py:215-625` 몫 |
|
||||
|
||||
### 3-3 TS(24 파일 · 6,057 줄)
|
||||
|
||||
| 파일 | 줄 | 판정 | 까닭 |
|
||||
|---|---|---|---|
|
||||
| Side | 83 | 고침 | [불러오기] → 층 · 파일 고르기 → 바로 엑셀 보기(요구 642-11) |
|
||||
| **Wizard** | 315 | **지움** | 가운데 상세 페이지(`second()` `:184-270`) · 올림(걸음 ①)은 Side 로 · [끝내기] · `pagehide` 정리(`:98-103`)는 Sheet 머리로 |
|
||||
| WizardSk · SkApi · SkLines | 373 · 21 · 163 | 지움 | 단가산출 걸음 → 새 블록 판 |
|
||||
| logic/SkPick · logic/Draft | 242 · 57 | 지움 | 옛 고름 캐시 · 미리 셈 |
|
||||
| Check · CheckRows · Choose | 662 · 373 · 383 | 지움 → 새 줄 판 · 블록 판 | 확인 창(줄 하나 대상 하나 꼴) · `unitField`(`CheckRows.ts:114`) 꼴은 새 판으로 옮김 · Choose 후보 창은 부품만 재사용 |
|
||||
| Left · Lost | 327 · 93 | 지움 | 「안 이은 줄」 띠 → 판정 「고를 것」 |
|
||||
| Pick | 104 | 지움(권함) | 「실무 호표」 로직 추가(`/hopyo-picks` = `Match.picks`) · 옮긴 SC 는 서고 고르기로 · 부르는 곳 셋(Labor_Pick · Detail · Table) 정리 |
|
||||
| Sheet | 614 | 고침 | 엑셀 보기 = 모달 대신 본문 · 오른쪽 판 = 새 줄 판 · 블록 판 |
|
||||
| SheetNav · logic/SheetMap · SheetSk | 294 · 278 · 68 | 남김 · 상태 꼴만 | 탭 · 칠 · 뛰기 · 단가산출 목록 |
|
||||
| Kids | 130 | 고침 | 하위 함께 → `move` 길 |
|
||||
| Api | 632 | 고침 | 새 길 꼴 · 옛 타입 걷음 |
|
||||
| Ledger · Relink · ToItem · Compare · logic/Unit | 393 · 236 · 123 · 32 · 61 | 남김 | M01 Alias · B09 Bill_Fold 빌림 · 단위 환산 보이기 |
|
||||
|
||||
- 새 TS: 줄 판(`…_Hopyo_Rows.ts`) · 블록 판(`…_Hopyo_Block.ts`) · 고름 캐시 순수(`logic/…_Hopyo_Picks.ts`) — 부품 상자만(칩 · 표 · 배지).
|
||||
|
||||
### 3-4 B09 · M01 빌린 이름 — 모두 남는 파일
|
||||
|
||||
| 이름 | 정의 | 남는 파일 |
|
||||
|---|---|---|
|
||||
| `_flat` · `_text` · `_money` · `_cell` · `_num` · `_out` · `DRM` · `ExcelError` · `read_book` | `Excel.py` | Excel |
|
||||
| `_order` · `Builder` · `_origins` | `Build.py:475 · 121 · 78` | Build(모두 고정 몫) |
|
||||
| `read_text` · `cells` · `fixed_lines` | `Paste.py:158 · 44 · 281` | Paste |
|
||||
| `line_key` | `Match.py:62` | Match(이름 도구 몫) |
|
||||
| `trade` · `eq_key` | `Shares.py:11 · 18` | Shares |
|
||||
| `clean` | `Material.py:91` | Material |
|
||||
| `save` · `memory` · `remember` | `Store.py:120 · 172 · 180` | Store |
|
||||
| `read` · `put` · `_plain_of` | `Ledger.py:80 · 303 · 59` | Ledger |
|
||||
| TS `openRelink` · `RelinkSource` · `relinkRows` · `PasteCols` | Hopyo_Relink · Hopyo_Api | 남김 |
|
||||
| TS `LedgerPair` · `buildHopyoLedger` · `KIND_TEXT` · `LEDGER_HINT` · `pairText` | Hopyo_Api · Hopyo_Ledger | 남김 |
|
||||
|
||||
### 3-5 시험
|
||||
|
||||
- 맞춤 층을 부르는 시험 28/44 파일(Fit 20 · Ours 10 · Match 10 · Verdict 5 · Finger 4 · Line 3 · SkPatch 3 · Option 2 · Combine 2 · SkLink 1) → 지움 또는 새 뜻 · 까닭은 커밋 글.
|
||||
- 남김: `test_m02_hopyo_excel` · `stmate` · `grid` · `test_621_hopyo_stages` S1(S2 지문 해시 지움) · `test_705_2` · `test_707_*` · `test_718_2` · `test_778_3` · `test_779_grid_views` · `test_779_4` · `test_741` · `test_777_1`(하위) · `test_778_4`(율 줄).
|
||||
|
||||
### 3-6 PLAN 남은 일감
|
||||
|
||||
- 784-1 · 784-3 = 지울 파일 몫(Option · Line · Combine · Verdict) → 갈음 · `master_auto` 가드 몫이 남았으면 639-1a 로.
|
||||
- 783-3 불러오기 경고 = 새 판정 꼬리표 「프로젝트 조정 대상(1-2-9 · 1-4)」(783-1 뒤).
|
||||
|
||||
---
|
||||
|
||||
## 4. 자동값 1(639)과의 관계 (할 일 4)
|
||||
|
||||
| 물음 | 답 |
|
||||
|---|---|
|
||||
| 새 맞춤이 견본 자동값을 쓰나 | 안 씀 — 바인딩 = 엑셀 값 · 사용자 값만 · 검산 = `fill_empty`(빈 칸 None → 그 줄만 비움 `MS/master_formula.py:505-512 · 585`) |
|
||||
| 저장 문서가 자동값에 기대나 | 안 기댐 — 엔진이 쓴 칸을 모두 적어 저장(지금 SC 는 빈 입력값을 버리고 셈 때 자동값 `M02_Labor_Doc.py:157 · 550`) · 비워 두는 칸 = 지역 · 자재지역 · 조종원직종(프로젝트가 정함) |
|
||||
| 「입력 필요」 칸은 | 옮기기 막음(그 줄만) · 「기본」 제안 = 639 규칙(고르기 첫째 · 가드 0 · 0 을 품은 범위 0 · 표 첫 줄) · 그 밖 수 칸 = 사용자 입력(요구 642-8 「옵션값을 입력해서」) |
|
||||
| 639-1 을 묶나 | **639-1a 만 묶음**(권함) — `MS/master_auto.py` 새 `defaults`(규칙 함수 · 부르는 곳 = 새 맞춤만 · `run_line` 안 바꿈) · 639-1b 뿌리(`run_line` · B09 `_env` · SK `_defaults` · 기준 목록 · 9 길)와 639-3 화면은 따로(영향 시험 28 · 사용자 승인 G1~G5 기다림) |
|
||||
| 까닭 | 642 는 저장을 자동값 밖에 두어 홀로 섬 · 639-1b 는 M02 · B09 · B08 금액 전체를 바꾸는 일이라 묶으면 검증이 두 배 · 규칙 함수 하나만 같이 써 두 벌 규칙을 피함 |
|
||||
| 남는 위험 | 사용자가 새 SC 를 고쳐 칸을 비우면 다시 자동값 길 — 639-1b 몫 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 일감 나눔 (할 일 5)
|
||||
|
||||
### 5-1 일감
|
||||
|
||||
| 일감 | 일 | 파일(경계) | 크기 | 앞 조건 |
|
||||
|---|---|---|---|---|
|
||||
| 642-1 | 출처 풀이 옮김 · 조항 색인 · 후보 · 표지 + 블록 글 → 절 나무 · 선택값 · 상수 · 대입식 · 몫 + 글행 남김 | 새 `Clause.py` · 새 `Formula.py` · `ReadEst.py`(글행 · 절) · `Excel.py` · `Stmate.py`(부름만) | L | 없음 |
|
||||
| 642-2 | 옵션값 읽기 B1~B6 · 기호표 · 표 거꾸로 + 검산 · 판정 + 639-1a `defaults` | 새 `Bind.py` · 새 `Solve.py` · `MS/master_auto.py`(새 함수만) | L | 642-1 꼴(절 · 상수 꼴은 이 문서 2-5 대로 먼저 맞춤 · B1 · B5 · 엔진 몫부터) |
|
||||
| 642-3 | 1차 줄 판정 · 후보 · 수량 · 환산 + 유가전력 MO 이음 · 고르기 | 새 `Row.py` · `Elem.py` · `Ledger.py`(짝 꼴) · `M02_Labor_Fixed.py`(LINKS · GROUPS) · `M02_MasterTemplete_Find_Pick.ts`(MO) | M | 없음 |
|
||||
| 642-4 | 화면 껍데기 — 가운데 페이지 지움 · [불러오기] → 바로 엑셀 보기 + 오른쪽 호표 목록 · [끝내기] 머리로(옛 길로 먼저 돎) | `Hopyo_Side.ts` · `Hopyo_Sheet.ts` · `Hopyo_Wizard.ts`(지움) · `UI_Side.ts` 잇는 줄 | M | 없음 |
|
||||
| 642-5 | 만들기 · 길 — 확인 → SC · SK · 장부 · 하위 먼저 · 새 Router · main 등록 · warm · Fit.ensure 걷음 | 새 `Make.py` · 새 `Router.py` · `M02_Labor_Router.py`(hopyo 길 뺌) · `main.py`(두 줄) · `Build.py`(나눔) · `Kids.py` · `SkUnit.py` · `Sangeun.py` | L | 642-1 · 2 · 3 |
|
||||
| 642-6 | 판정 화면 — 줄 판 · 블록 판 · 복수 칩 · 입력값 칸(출처 · 입력 필요 · 엇갈림) · [확인] · [옮기기] · 칠 | 새 `Hopyo_Rows.ts` · 새 `Hopyo_Block.ts` · 새 `logic/Hopyo_Picks.ts` · `Hopyo_Api.ts` · `SheetSk.ts` · `Marks.py` | L | 642-4 · 642-5 길 꼴 |
|
||||
| 642-7 | 지움 · 시험 정리 — 3-1 지움 열 · TS 지움 · 시험 28 · 고정 시험 S2 · PLAN 784-1 · 784-3 갈음 | 3-1 · 3-3 「지움」 파일 · `resources/tester/*hopyo*` | M | 642-5 · 6 |
|
||||
|
||||
### 5-2 물결 · 창
|
||||
|
||||
- 물결 1(창 넷 병행 · 새 파일 위주 · 겹침 없음): sub1 642-1(Opus) · sub2 642-2(Opus · 642-1 꼴 받으면 B2 · B3 · B4) · sub3 642-3(Opus) · sub4 642-4(Sonnet).
|
||||
- 물결 2: sub1 642-5(Opus · 642-1 · 2 · 3 push 뒤) ∥ sub3 642-6(Opus · 642-4 뒤 · 길 꼴은 이 문서 2-9 로 먼저).
|
||||
- 물결 3: sub2 642-7(Sonnet) → 검증(5-4).
|
||||
- 같은 파일 두 창: `Excel.py`(642-1 부름 바꿈 · 642-7 지움 정리 = 차례) · `M02_Labor_Router.py`(642-5 만) · `Ledger.py`(642-3 만) · `Hopyo_Sheet.ts`(642-4 → 642-6 차례).
|
||||
- 700 줄 근처: `M02_Labor_Doc.py` 687 · `M02_Labor_Router.py` 625 · `Hopyo_Check.ts` 662(지움) · `Hopyo_Api.ts` 632 · `Hopyo_Sheet.ts` 614 — 늘리지 않음 · 새 줄은 새 파일.
|
||||
|
||||
### 5-3 지킴 시험(새 `resources/tester/` 다섯)
|
||||
|
||||
| 시험 | 고정하는 것 |
|
||||
|---|---|
|
||||
| `test_642_1_clause_formula.py` | 북부청 단산 출처 → 후보(10 → GC001140 · 1141 · 1142 · 46 → GC000198 · 24 → GC000211 · 47 → GC000206 · 207 · 39 → GF000224 · 225 · 33 준용 · 6 옛 · 3 번호 없음) · 절 나무(47 절 둘 · 6 절 넷 · 「2.」 빠짐) · 상수(10 L 6 · 경사 35 · n 42 · 6 q K f E Cm) · 대입식 분자 · 분모 · 몫(575/1750 × 90 %) |
|
||||
| `test_642_2_bind_solve.py` | 예시 1 · 2 · 3 + 단산46 · 39 입력값 기대표(2-10 · 출처 꼬리표까지) · 지어 넣은 1 · 0 = 0 개(출처 없는 값 없음) · 입력 필요 목록 · 품 같음 판정(0.67 ↔ 0.6667) · 단산10 0.547619 |
|
||||
| `test_642_3_row.py` | 북부청 415 줄 1차 갈래 수(단산 268 · 일위 1 · 별도계상 64 · 재료 78 · 기계 3 · 율 1) · MO 고정 이음 셈 · TS 짝(율 · 고정 줄 셈 거울 `test_m02_labor_calc_mirror` 꼴) |
|
||||
| `test_642_5_make.py` | 임시 storage · 예시 → SC 줄(같은 별칭 · 본뜬 차례 · 수량 = 엑셀 × 몫) · SK 더한줄 · 같은 기초 둘째 = 사본 · 입력값 = 엔진이 쓴 칸 모두 · B09 모두 고정 전후 같음(`test_707_7`) |
|
||||
| `test_642_6_screen.py` | 가운데 페이지 없음(`Hopyo_Wizard.ts` 없음) · 줄 판 · 블록 판 부품 상자만(날 `<button>` · `<input>` 0) · 칠 상태 꼴 |
|
||||
|
||||
### 5-4 검증(사용자 눈 · ORCA · 일반 계정 개인 층 · 끝나면 만든 SC · SK · HP 지움)
|
||||
|
||||
1. M02 › 일위대가 › 왼쪽 [불러오기] → 북부청 xls → 가운데 페이지 없이 엑셀 보기 + 오른쪽 호표 68.
|
||||
2. 제1호표 → 줄 여섯 1차 칩 = 2-10 표 1차 열 · 단산 줄 넷 블록 풀이 = 2차 · 옵션값 열(출처 꼬리표 · 엑셀 행 뛰기).
|
||||
3. 예시 1(제2호표 행 17) → GC001140 · 다섯 칸 · 94,227 = 엑셀 · 「입력 필요」 0.
|
||||
4. 예시 2(제1호표 행 11) → 기초 둘 · 맡은 절 표시 · 구분 「고를 것」 → 토목 → 품 같음 넷.
|
||||
5. 예시 3(제1호표 행 8) → GC000211 유형 보통 · 4회 · 높이감률 · 구멍땜 입력 필요 → 0 넣음 → 노무 38,291 = 엑셀 · 재료비 차 = 단가 차 표시.
|
||||
6. [확인] → [옮기기] → 개인 층 SC 둘(제1 · 2호표) · 줄 = 고른 것마다 · 같은 별칭 · 입력값 다 적힘 · 일위대가 화면 금액 = 서버.
|
||||
7. 단가산출표 탭 → 일위대가 밖 블록 하나 → SK · 칠 초록.
|
||||
8. 밝음 · 어두움 · 1366 · 390 사진 · 수치 판정(sessionStorage 고름 · SVG · 툴팁).
|
||||
|
||||
---
|
||||
|
||||
## 6. 브레인이 정할 것
|
||||
|
||||
| # | 정할 것 | 권함 |
|
||||
|---|---|---|
|
||||
| B1 | 차례 — 새 파일 먼저 · 화면 · 지움(앱이 도는 채로) / 먼저 지움 | 새 파일 먼저(물결 1 · 2 동안 옛 화면 돎) |
|
||||
| B2 | 639-1a(`master_auto.defaults`)를 642-2 에 묶음 | 묶음 · 639-1b · 639-3 따로 |
|
||||
| B3 | 저장 입력값 = 엔진이 쓴 칸 모두 · 지역 · 자재지역 · 조종원직종 비움 | 그대로 |
|
||||
| B4 | 품 같음 문턱 = 엑셀 자릿수 반올림 폭 · 0.5 % | 그대로 |
|
||||
| B5 | 유가전력 MO = 이번(S) · 환율 · 소요량 · 계수 줄 꼴 = 예시 나올 때 | 그대로 |
|
||||
| B6 | 율 비목 엇갈림(엑셀 재료비 칸 ↔ 우리 경비) = 우리 기초 그대로 + 표지 | 그대로 |
|
||||
| B7 | 784-1 · 784-3 갈음 · 783-3 = 새 판정 꼬리표 | 그대로 |
|
||||
| B8 | [호표 제안 모두 확인] 단추(사용자 누름 = 자동 아님) | 둠 |
|
||||
| B9 | Pick.ts(「실무 호표」 로직 추가) 지움 | 지움 |
|
||||
| B10 | hopyo 길 = 새 `M02_Hopyo_Router.py` | 옮김 |
|
||||
| B11 | HP 판 4 · 옛 HP 끝내고 다시 올림 안내 | 그대로 |
|
||||
| B12 | 고정 시험 S2(지문 해시) 지움 · S1 남김 | 그대로 |
|
||||
| B13 | 장부 짝 꼴 넓힘(고른 것 꼴 · 여럿) · M01 Alias 승인 화면 글만 고침 | 그대로 |
|
||||
|
||||
## 7. 사용자에게 물을 것(꼭 필요한 둘 · 권함으로 진행 가능)
|
||||
|
||||
| # | 물음 | 갈래 | 권함 |
|
||||
|---|---|---|---|
|
||||
| 1 | 요구 623-1 「단가산출은 모두 줄로만(기초 안 씀)」 을 요구 642 「M01 단가산출 기초 + 옵션값」 으로 바꿈 — 기초를 찾으면 기초 · 못 찾을 때만 인력 · 재료 · 기계 · 율 줄 조합 | 바꿈 / 623 그대로 | 바꿈(642 가 뒤 · 「로직 전체 삭제 무관」) |
|
||||
| 2 | 엑셀 한 줄에 기초가 둘 이상(예 철근 가공 + 조립)일 때 우리 일위대가 화면 | (가) 줄 둘로 보임(같은 이름 · 옵션 따로 고침) / (나) 한 줄 안에 묶음(펼쳐야 보임) | (가) |
|
||||
|
||||
---
|
||||
|
||||
## 덧 — EST 판별 근거(견본 = EST Plus 2 출력)
|
||||
|
||||
시트 짝 일위대가총괄표 · 일위대가 · 단가산출총괄표 · 단가산출 · 기계경비 = EST Title · Main 짝(`REA/ESTPlus2_REA_최종보고서_20261030.md:29-30`) · 총괄표 Z~AC 「당초」 칸 · 비고 「경비성단가」 · 글 속 「*단산68참조*」 · EST 화면 낱말 「단산 · 일위」 · STmate 코드 열 없음 — STmate 판별 = `M02_Hopyo_Stmate.py:65`. 총괄표 G · H · I 비목 칸 늘 0(비목 금액은 Z~AC 에만) · 일위대가 금액 차례 = 합계 · 노무 · 재료 · 경비.
|
||||
@@ -0,0 +1,50 @@
|
||||
# 요구서 642 — M02 엑셀 불러오기 다시 짬 (요구 641 · 642 · 11-04 밤)
|
||||
|
||||
원문 = `사용자요구_1104.md` 요구 641 · 642 · 조사 = 같은 폴더 `_설계_642-A_매칭파이프라인_자료모델.md`(몸통) · `_분석_642-B_경쟁사REA_매칭규칙.md` · `_분석_642-C_북부청엑셀_정보활용.md` · `_분석_642-D_불러오기화면흐름.md` · 계획 = `PLAN.md` 785.
|
||||
|
||||
## 1. 요구(요지)
|
||||
|
||||
- 엑셀 불러오기 로직 전체를 지워도 됨 — 분석 · 매칭을 사용자 정의대로 새로 짬.
|
||||
- 엑셀 = EST · STmate 두 양식 · 건설품셈 · 산림품셈 근거 · M01 단가산출 기초 = 두 품셈 DB · M02 단가산출 · 일위대가 = 사용자 자유 공간 · 내역서는 경쟁사 출력물을 단가산출 · 일위대가 단위로 가져옴.
|
||||
- 일위대가 · 단가산출 = M01 기초 + M02 단가산출 + M02 다른 일위대가(한 줄) + M01 인력 · 재료 · 유가전력 · 기계 · 소요량 · 계수 · 환율 조합(복수).
|
||||
- 찾기: 1차 = 세부행 품명 · 규격 · 비고(별도계상 = 재료) · 단가산출 줄 = 수량 그대로 + M01 기초에 옵션값 · 한 줄 여러 단가산출(복수) · 2차 = 비고 → 단산 상세 → 품셈 번호 → 기본공식 · 얽힘 조심.
|
||||
- 경쟁사 REA 분석 · 북부청 엑셀 정보 활용 · 화면 = 왼쪽에서 고르면 바로 엑셀 + 오른쪽 호표 목록(가운데 상세 페이지 없앰).
|
||||
|
||||
## 2. 조사 결론
|
||||
|
||||
- 뿌리 진단(A): 지금 맞춤은 엑셀 숫자 지문 순위 + 옵션 거꾸로 찾기(엔진 수백 번) + 조합 풀이 — 글에 적힌 품셈 번호 · 기본공식 · 선택값을 안 씀 → 자동값 1(635 · 639) · 둘째 키 옵션 틀림(638) · 엉뚱한 근거(628)가 모두 여기서 남.
|
||||
- 새 길 = 「글 먼저 · 결정적 · 찾기 없음」: ① 읽기(Book 남김) ② 1차 줄 판정 ③ 단가산출 줄 수량 그대로 ④ 2차 블록 풀이(품셈 번호 → 조항 색인 → 기본공식 꼴 → 옵션값 B1~B6 읽기 · 엔진은 후보마다 한 번 검산) ⑤ 사용자 확인(복수 · 자동 없음) ⑥ 만들기(SC · SK 개인 층).
|
||||
- 1차 실측(C): 북부청 세부행 415 = 비고 · 별도계상 · 단위 337(81 %) + 자재단가 시트 품명 · 규격 같음 78 = 100 % · 같은 EST 양식 셋 100 %. 단산 95 = 품셈 번호 91 블록(M01 같은 번호 59) · 기본공식 꼴 94 · 글 속 단가 → 쓰는 요소. 쉬운 길 = 단가표 시트로 「엑셀 사전」 먼저.
|
||||
- 경쟁사(B): 줄 갈래 거의 확정 가능(STmate 숨은 코드 · EST 비고 + 금액 칸 배치 + 원천 시트) · 품셈 번호 · 기본공식은 글로만 · 「한 줄 여러 단가산출」 = 산근 안 절 · 비율 · 산근 안 산근 · 일위 안 일위 → 맞춤 단위 = 절 · EST 금액 규칙(줄 = 수량 × 단가 소수 1 버림 1,160/1,160 · 호표 = 원 미만 버림 · 자재 = 최저가).
|
||||
- 자료 모델(A): 지금 SC · SK 꼴로 기초 + 옵션 · M02 SK · M02 SC 한 줄 · 인력 · 재료 · 기계 · 율 · 고정이 담김 · 없는 것 = 유가전력 MO(작은 일) · 환율 · 소요량 · 계수(북부청 0 줄 → 「매개값 근거」 꼬리표로 시작).
|
||||
- 화면(D): 가운데 상세 = 마법사 걸음 ② · 엑셀 보기 창 안쪽은 이미 목표 모양 → 본 칸에 바로 · 줄 확인 = 시트 아래 줄 판 · 흠 셋(안 이은 줄 0 오표시 · 맞춤 셈 멈춤 · 좁은 판 짓눌림).
|
||||
|
||||
## 3. 정함(브레인 · 사용자가 바꿀 수 있음)
|
||||
|
||||
1. 요구 623-1 「모두 줄로만(기초 안 씀)」 → 요구 642 로 바꿈: 기초를 찾으면 M01 기초 + 옵션값 · 못 찾을 때만 인력 · 재료 · 기계 · 율 줄 조합(642 가 뒤 · 원문 「옵션값을 입력해서 사용」).
|
||||
2. 엑셀 한 줄에 기초 둘 이상(철근 가공 + 조립) = 우리 일위대가에 줄 둘로 보임(같은 이름 · 옵션 따로).
|
||||
3. 차례 = 새 파일 먼저 → 화면 → 지움(물결 동안 옛 화면 돎) · 639-1a(master_auto.defaults 규칙 함수)만 묶음 · 639-1b · 639-3 따로.
|
||||
4. 저장 입력값 = 엔진이 쓴 칸 모두(지역 · 자재지역 · 조종원직종 비움) · 품 같음 = 엑셀 자릿수 반올림 폭 · 0.5 % · 유가전력 MO = 이번 · 환율 · 소요량 · 계수 = 예시 나올 때 · 율 비목 엇갈림 = 우리 기초 + 표지.
|
||||
5. 784-1 · 784-3 = 새 길로 갈음 · 783-3 = 새 판정 꼬리표 · [호표 제안 모두 확인] 단추 둠(사용자 누름) · Pick.ts 「실무 호표」 로직 추가 지움 · hopyo 길 = 새 M02_Hopyo_Router.py · HP 판 4 · 고정 시험 S2 지움 · S1 남김 · 장부 짝 꼴 넓힘.
|
||||
6. 화면: 결과 층 고름 = 왼쪽 판 작은 고름(쓸 수 있는 층 둘 이상일 때만) · 줄 확인 = 시트 아래 줄 판 · 옮기기 단추 = 오른쪽 판 아래 · [끝내기] · 안 이은 줄 = 머리 막대.
|
||||
|
||||
## 4. 일감 · 창(설계 A 5장)
|
||||
|
||||
| 일감 | 일 | 파일 | 창 · 물결 |
|
||||
| --- | --- | --- | --- |
|
||||
| 642-1 | 출처 풀이(Basis 옮김) · 조항 색인 · 블록 글 → 절 나무 · 선택값 · 상수 · 대입식 · 몫 · 글행 | 새 Clause.py · 새 Formula.py · ReadEst.py · Excel.py · Stmate.py(부름만) | sub1 · 1 |
|
||||
| 642-2 | 옵션값 읽기 B1~B6 · 기호표 · 표 거꾸로 + 검산 · 판정 + 639-1a defaults | 새 Bind.py · 새 Solve.py · master_auto.py(새 함수만) | sub2 · 1 |
|
||||
| 642-3 | 1차 줄 판정 · 후보(엑셀 사전 · 장부 · M01 · M02) · 수량 · 환산 + 유가전력 MO | 새 Row.py · Elem.py · Ledger.py · M02_Labor_Fixed.py · Find_Pick.ts | sub3 · 1 |
|
||||
| 642-4 | 화면 껍데기 — 가운데 페이지 지움 · [불러오기] → 바로 엑셀 + 오른쪽 목록 · [끝내기] 머리 · 흠 셋 | Hopyo_Side.ts · Hopyo_Sheet.ts(만들기 셋 → 새 Hopyo_SheetMake.ts) · 새 Hopyo_Import.ts · Wizard.ts 지움 | sub4 · 1 |
|
||||
| 642-5 | 만들기 · 길 — 확인 → SC · SK · 장부 · 하위 먼저 · 새 Router | 새 Make.py · 새 M02_Hopyo_Router.py · M02_Labor_Router.py(hopyo 길 뺌) · main.py · Build.py · Kids.py · SkUnit.py · Sangeun.py | sub1 · 2 |
|
||||
| 642-6 | 판정 화면 — 줄 판 · 블록 판 · 복수 칩 · 입력값 칸(출처 · 입력 필요) · [확인] · [옮기기] · 칠 | 새 Hopyo_Rows.ts · 새 Hopyo_Block.ts · 새 logic/Hopyo_Picks.ts · Hopyo_Api.ts · SheetSk.ts · Marks.py | sub3 · 2 |
|
||||
| 642-7 | 지움 · 시험 정리(설계 A 3-1 · 3-3 「지움」 · 시험 28) | 지움 파일 · resources/tester/*hopyo* | sub2 · 3 |
|
||||
|
||||
- 같은 파일 두 창: Excel.py(642-1 → 642-7) · Hopyo_Sheet.ts(642-4 → 642-6) · 그 밖 겹침 없음.
|
||||
- 700 줄 근처: M02_Labor_Doc.py 687 · M02_Labor_Router.py 625 · Hopyo_Api.ts 632 · Hopyo_Sheet.ts 614 — 늘리지 않음.
|
||||
|
||||
## 5. 지킴 · 검증
|
||||
|
||||
- 지킴 시험 다섯(설계 A 5-3): test_642_1 · 2 · 3 · 5 · 6 — 예시 1 · 2 · 3 기대표 · 지어 넣은 1 · 0 = 0 · 북부청 415 줄 1차 갈래 수 · 임시 storage 만들기 · 부품 상자만.
|
||||
- B09 · M01 빌린 이름 모두 남는 파일에(설계 A 3-4) · B09 모두 고정 전후 같음 · 기존 SC · SK 금액 그대로.
|
||||
- 검증(설계 A 5-4): 일반 계정 개인 층 · 북부청 xls → 가운데 페이지 없이 엑셀 + 호표 68 · 제1호표 1차 칩 · 블록 풀이 · 예시 1(94,227 = 엑셀 · 입력 필요 0) · 예시 2(기초 둘 · 맡은 절) · 예시 3(GC000211 보통 · 4회 · 노무 38,291 = 엑셀 · 재료 차 = 단가 차) · [확인] → [옮기기] → SC 둘 · 일위대가 밖 블록 → SK · 밝음 · 어두움 · 1366 · 390 · 만든 것 지움.
|
||||
Reference in New Issue
Block a user