feat(stmate-test): 단가산출근거(D코드) 재계산 — 원설계 5건 282개 1원 · 낙찰률 단가

- smt_eval.js 새 산근 평가기 — 봉화에만 맞던 옛 해석기(161/242) 대체
- 총액우선 차액 보정(Start8x.Ini CHGNM=0 · OPTNM 순서 · 소수부 십진 비교) · 비목우선은 성분 절사
- 다른 산근 참조 = 재·노·경 나눠 가져옴 · 위상순서 재계산 · 변수 대소문자 무시
- % 단위 자원(인건비의 % · 운반비 계) = 누계 밑수 · (-=)(-==) 합계 제외 · RS_ 직전 구간 · 라벨 묶음 PA010203
- 운반비 경비 귀속 = COSTN SBMOK=S — 원본 저장 금액으로 판정하던 부분 걷음
- 낙찰률 단가 = 2칸 원단가 × NAGCD 원 미만 버림(7건 127개)
- 지킴 시험 test_stmate_smt_eval.py · 장부 진행률 30.6% → 32.2%

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-13 13:05:56 +09:00
co-authored by Claude Opus 5.5
parent 520bb33909
commit f591c14356
8 changed files with 387 additions and 275 deletions
+2
View File
@@ -20,6 +20,7 @@ from smt_parser import (
extract_costn_memos,
load_stmate_catalog,
parse_dbf_bytes,
parse_ini_bytes,
parse_prjlst_smt,
rebuild_costn_with_smt,
update_prjlst_smt_bytes,
@@ -442,6 +443,7 @@ def api_load(req: LoadReq):
"boq_rows": boq_rows,
"rate_tables": rate_tables,
"set_rep_rows": set_rep_rows,
"start_ini": parse_ini_bytes(files.get("START8X.INI") or files.get("STINI.MEM") or b""),
"sim_state": sim_state,
}