26.9.4(금) 세션 — 넥서스→한샘 자동전환 재검토 + 신영 광주 추가2·추가3 한샘 전용 견적 작성
지시
[페페] ①「넥서스 표기 파일·현장들을 한샘 자동전환 하는 시스템이 구축됐는지 한번 더 검토. 아직 한샘 표기가 익숙치 않다」
②「NAS 2026현장\견적\09월\넥서스\넥서스 신영 광주 챔피언스시티 MH 견적서 추가2,3.xlsx 를 pfs 한샘 견적서로
반영해서 작성. 일단 금액을 최대한 맞추고 내가 재검토할 테니 완벽하지 않아도 된다. 빠른 작업 우선. 운영배포 진행」
(작업 중 추가) 「내용 추가를 놓쳤다. 추가2 탭을 파일에 추가했다. 이 부분도 같이」
그릴링 — 갈림길 2개, 페페 결정
「한샘 견적서」가 ①기존 견적계통의 한샘(구 넥서스) 건인지 ②한샘 전용 모듈(/estimate/hansem) 인지 갈렸다.
사실을 먼저 깔고 물었다 — 추가2·추가3 는 기존 계통에 이미 있었다(742=890,000 · 754=1,106,000,
NAS 엑셀과 셀단위 대조 금액 100% 일치, 페페가 26.7.30·8.19 직접 등록). 즉 ①은 이미 끝나 있었다.
→ 페페 결정 = ②한샘 전용 모듈에 새로 작성. (「금액을 최대한 맞춰」가 곧 단가표가 달라 금액이 안 맞는다는 뜻이었다.)
현장명 7건은 → 「앞으로 들어올 것만 자동전환」(기존은 이력 보존).
① 넥서스→한샘 자동전환 현황 (검토 결과)
| 경로 | 자동전환 | 근거 |
|---|---|---|
| 거래처 마스터 | ✅ | 운영 company 335건 중 '넥서스' 0건 · company_no 1 = 한샘 |
| 원부자재발주서 파일명 | ✅ | orderpaper-sync/orderpaper_parse.py _COMPANY_ALIAS={'넥서스':'한샘','한샘넥서스':'한샘'} · 인식목록엔 옛 이름 유지(옛 파일명도 파싱) |
| 도어발주서 셀 H6 | ✅ | door_order_parse.py 가 같은 alias 재사용 |
| 견적서 출력 업체명 | ✅ | _decorate_company_name() → 실측 /api/estimate/print/excel/740 종합 A6 = (주)한샘 |
| 현장명(field.name) | ❌→✅ 신설 | 운영에 '넥서스' 7건 잔존 → 등록·수정 경로에 정규화 추가(아래) |
| 견적서 xlsx 취급 | ❌ | 자동 경로 없음(수작업·선례 스크립트) |
카톡방 이름 넥서스*포인 … |
❌ | poin-agent 가 방 이름 원문 사용 |
통화 STT 파일명 넥서스장동욱차장 |
❌ | tools/stt/stt.py parse_peer 원문 반환 |
월마감 템플릿 nexus_*.xlsx |
— | 의도적 유지(실물 파일) |
- 잔존 현장 7건(안 바꿈, 페페 결정) = 411 넥서스 DP가구 연고건 · 483 넥서스 통합매장전시 · 994 넥서스 모니터 받침대 · 1486 넥서스 목동 · 1554 넥서스 · 2057 넥서스 서랍 · 2076 넥서스 요청건. 업체는 7건 모두 이미 '한샘' 이다.
결정·매핑 (②)
한샘 양식 = 평형 × 가구블록(상부장·키큰장·FIX PANEL…) 구조 → 추가·AS 품목이 그대로 안 들어간다.
금액식 = 단가 × 유형배수 × (길이mm/10) × 적용률. 길이는 실치수로 두고 등급·적용률을 역산했다.
| 원본 | 금액 | 한샘 블록 | 근거 |
|---|---|---|---|
| EP·도장 휠라(세로 판재) | 키큰 FIX PANEL K/39 ×0.5 | 필러·엔드패널의 제자리 | |
| 오븐EP·ㄷ자 EP(하부) | 하부 FIX PANEL K/18 ×0.5 | ||
| 냉장고장 915 ×2 | 273,000×2 | 키큰장 K/32 ×1.0 | 마감 04 PUR(시트별도) = 기존 754 의 finishing_material 13 |
| 손잡이 피스·물류비·운임 | 예비블록 S/46 ×1.0 | 가구 아님. 길이=목표/400·적용률 1.0 → 정확히 일치 |
- 마감 = 원본 비고가 「도장」이면 08 무광도장, 그 외 04 PUR(시트별도). 등급은 A~D 중 반올림 오차 최소를 고름.
- 부모 없음(
parent_estimate_no=null) — 한샘 모듈엔 신영 광주 본건이 없다. 평형 슬롯 1개(추가2/추가3).
산출물
- 신규
C:\dev\order-automation\build_and_register_hansem_shinyoung_add23.py(DRY/VERIFY=1/REGISTER=1×ENV=test|prod, 현장·동명중복 사전게이트 + 등록 후 왕복검증 + 엑셀 다운로드·저장). 페이로드 =C:\dev\order-automation\payloads\payload_hansem_shinyoung_추가{2,3}.json, 산출 엑셀 = 같은 폴더hansem_prod_{4,5}_추가{2,3}.xlsx. - 운영 등록 완료 — 1차는 분리 2건(4=추가2 889,996 · 5=추가3 1,106,020) → 페페 후속 지시 「한 목록으로 탭만 구분해
통합」 으로 한샘 견적 4 한 건으로 합쳤다(5 삭제).
= 「신영 광주 챔피언스시티 MH — 추가2·추가3」 · 현장 1973(MH) · 2026-08-19 · 김영민 부장 ·
평형 슬롯(=엑셀 탭)
추가2·추가32개 · 상세 13줄 · 총액 1,996,017원(원본 1,996,000 · +17원). 🔑한샘 모듈의 「탭」 = 평형 슬롯(hansem_estimate_type) — types 2개면 엑셀에<이름> 내역서-주/수가 두 벌 생기고 갑지A19~A21이 각각을 참조한다. 남는 3번째 슬롯은 양식 원래 이름84B로 남고 금액 0(기존 동작). ⚠마스터가 하나라 현장·견적일·담당자는 한 값 — 추가3 의 AS 현장(2158)은 비고로만 남겼다. 스크립트는 멱등하다: 이름 접두신영 광주 챔피언스시티 MH — 추가로 기존 건을 찾아 최소 번호에 덮어쓰고 나머지는 삭제(판 스냅샷book_no는 수정에서 안 바뀐다). - pfs 코드 2건(아래) → master
feb9292·0c88afe→ 운영dfd1435(파일단위 포워드 3개). - 신규
C:\dev\pfs\scripts\test_field_name_alias.py(8케이스).
🔴 부수확 — 진짜 버그 1건 (한샘 엑셀 금액 무음 누락)
양식은 원본 현장이 쓰던 칸 수만큼만 단가 LOOKUP 수식을 갖고 있다(실측: 내역서-수 예비블록 C 한 칸뿐).
PFS 는 단가행을 안 건드리므로 그 다음 칸에 넣은 줄의 금액이 엑셀에서 0 이 된다. 서버 총액은 정상이라 목록만 보면 안 걸린다.
이번 배치에서 실제로 2칸(추가2 운임 220,000 · 추가3 물류비 200,000)이 걸렸다.
→ hansem_excel._ensure_price_formula() 신설: 값 쓰는 칸에 수식 없으면 같은 블록 수식을 열만 재투영해 복제
($절대참조·*0.5 배수 보존). 이 버그는 이번 건뿐 아니라 앞으로 칸 수를 넘는 모든 한샘 견적에 걸렸을 것이다.
검증
- 엑셀 판독 교차검증 — 추가2 품목합 470,000 = p2 공급가액 = p1 「가구」행 / +운임 420,000 = p1 합계 890,000. 추가3 품목합 906,000 = p2 = p1 「추가3」행 / +물류비 200,000 = 1,106,000. (스크립트가 오차 100원 초과면 중단)
- 테스트 선행 등록(견적 2·3) → 코드 배포 후 엑셀 zip 구조 검증: 블록별
값칸 ⊆ 단가수식칸— 배포 전 예비블록값칸 CD / 수식 C(⚠) → 배포 후 CD/CD OK. 운영도 동일 확인(4·5 전 블록 OK). - 등록 후 왕복 —
GET /api/hansem/estimate/{4,5}전 줄(블록·칸·마감·등급·길이·적용률·금액) 대조, 서버총액 = 빌드총액(±2원 = 서버가 실수합을 마지막에 한 번 반올림하는 차이). - 현장명 정규화 E2E(테스트) —
POST /api/field/로 「넥서스 코디 자동전환 검증」 생성 → 「한샘 …」으로 저장 확인 → 소프트삭제 → 현장수 원복(1973→1974→1973). 단위검사 8케이스 PASS. - 사이트맵 재빌드 = 그룹 8 · 페이지 57 · 미반영 1(남의 분 kakao_board 등, 내 3파일은
git diff origin/deploy-live origin/master에 없다).
알려진 차이·한계 (페페 재검토용)
- 총액 오차 -4원(추가2) / +21원(추가3) — 적용률이 소수 4자리라 반올림 잔차. 페페 「완벽하지 않아도 괜찮다」 범위로 두었다. 0원으로 붙이려면 예비블록에 「단수조정」 칸 1개(길이 1·적용률=잔차/400)를 더하면 된다.
- 운임·물류비·부속을 「예비블록」에 넣었다 — 양식의 「추가분견적」 탭이 제자리인데 모듈이 아직 그 탭을 안 쓴다(2차 미착수).
- 적용률이 1을 넘는 줄이 하나 있다(ㄷ자 EP 1.6458) — 한샘 단가로는 200,000 이 안 나와서다. 의미상 어색하니 페페 판단.
- 운영 현장 E2E 는 안 돌렸다(운영 현장 테이블에 소프트삭제 행을 남기지 않으려고). 배포 반영 증거 = 운영 엑셀이 수정본 크기(861,682/861,684 bytes)로 바뀐 것 + 두 파일이 같은 커밋.
- 기존 견적계통 742·754 는 그대로 뒀다(중복 아님 — 계통이 다르다). 754 는 부모 740(field 1973)과 달리 field 2158(AS)이다.
다음
- ⏳페페 =
/estimate/hansem/list에서 4·5 육안 + 엑셀 열어 금액 검산(엑셀 총액은 파일 안 수식이 낸다). - ⏳한샘 모듈 2차(미착수) 중 추가분견적 탭 주입이 이 건의 정식 해법 — 할지 페페 판단.
관계
- 주제 그룹: pfs-estimate · pfs-hansem
- 관련:
projects/pfs/rules.md🆕 4건,projects/pfs/playbook.md§7,projects/pfs/session-2026-07-30-shinyoung-add1-estimate.md(같은 현장 기존 계통 선례)