2026-10-13 세션 — 한샘 GS 안산 성포 MH 도어발주서 «포인검토» 탭(도면 대조) — 기록: [코디]
지시
[페페] 「지난번 원주 단구 도어 규격표 검토처럼 안산 성포 도어발주서도 검토 진행해줘.」(26.10.13(화)) — 총괄 세션이 작업자로 배정.
선례 = session-2026-10-12-wonju-danggu-door-review.md(같은 방식·같은 표기 · B안 = 원본은 두고 같은 폴더에 별도 파일 게시).
대상 = \\192.168.0.101\공유폴더\2026현장\진행중\10월\한샘 GS 안산 성포동 MH\한샘 GS안산 성포mh 도어발주서.xlsm(578,763 B · 26.10.12 14:16 KST 저장 · sha1 29a24cbd… · 잠금 ~$ 없음 · 후보 1개).
참고도면 = 같은 폴더 최신 제작도면 01.[한샘]_261006_GS건설 안산 성포동_주방_건립타입 제작도면(84OA상부장사이즈수정) (1).dwg(sha1 3885baca… = 26.10.8 견적표기 때 변환본과 같음 → DXF·덤프 재사용). 봉적 가공도는 성포 폴더에 없음.
결정
- 원주와 같다: 새 탭
포인검토(「포인」 바로 뒤) · 복제 = Excel COM(Session 1 숨김, schtasks /IT · 창 장부 W177 oneoff → 해제) · 복제본만 P~T 숨김·W~AE 좁힘 · 검토 = U(짧게·빨강/주황 채움)·V(도면 근거) · 범례 U8·U9 · 기준 AF1~AF8 · 빠진 항목 블록 AF10~AK12. 템플릿 병합 함정(Q4:Y7·AB3:AD3) 성포 양식에도 그대로 있음 확인. - 타입 매칭(도면 시트 제목) = 전시부스 → 84㎡A (확장-기본) A·B벽 + 84㎡A (확장) C벽 · 84A/99A/104/OT84 → 각 «확장-Style Up» 입면(A·B·B'·B"/A'·A") + «확장» C벽(냉장고·특화수납장).
- 정상으로 본 것(표시 안 함): 도어 18T(사양서 CORE 15T = [페페] 26.10.4 규칙) · 「비규격 N」 자리를 N 으로 발주(하부 60·상부 40/35 → 100, 전시부스 B" 720 → 750, OT84 A" 705 → 850 — 현장재단) · 코너 ㄱ자 하부EP 앞판 = 싱크벽 휠라 + 10(55→65, 60→70) · 레그룸 뒤판 +1(510→511, 630→631) · 칼라 범례(하부 IV075EMT/GY123MT · 99A 키큰장 GK102-G8 · 상부 EP P9GA4T · 유리장 H2041B-L1) 일치.
- 경첩 좌우 = 입면 열림표시(점선 V) 꼭짓점 쪽 — 「90°힌지」 표기·PUSH 위치(반대쪽)로 검증. 230dpi 렌더로는 99A B" 를 잘못 읽어 도어 줄만 380~520dpi 로 다시 그렸다.
검토 결과(발주값은 안 고침)
- 빨강(불일치·오기 의심) 9행: 64(전시부스 메지판 123 ← 도면 키큰장 쪽 「145(벽마감)」, 123 은 「123(조절)」 값) · 136(84A 메지판 140 ← 「145(벽마감)」, 두 장 다 140) · 180(84A 아일랜드ep 840×950 ← B" FIX 840 「비규격 950」·높이 860 → 950×860 의심) · 276·279(99A 상부 ㄱ자 EP 100 좌·60 우 ← 도면 비규격 100 은 오른쪽 끝 → 좌우 반대) · 303(99A 메지판 127 ← 「130(벽마감)」) · 376(104 섬 앞 325 도어 좌 ← 도면 우경첩) · 519(OT84 코너장 450 도어 좌 ← 도면 우경첩 + 「90°힌지」 코너 쪽) · 591(OT84 상부 ㄱ자 머리 「100*550」 인데 부재 ep 35×550 ← 도면 B 상부 끝 40 = 비규격 100).
- 주황(확인요) 11행: 22·23(전시부스 키큰도어 270 ↔ 도면 271) · 521·522(OT84 키큰도어 270 ↔ 271) · 383(104 키큰도어 470 ↔ 471) · 54(전시부스 걸레받이 엣지 4 — 다른 타입 2) · 56(전시부스 B" 키큰 FIX 130×2390 — 도면 「20T* FIX」 표기) · 246(99A 걸레받이 146 — 다른 타입 143) · 384(104 오븐찬넬 596×50 — 다른 타입 50×596) · 555(OT84 아일랜드FIX 850 — 입면 「비규격 850」 ↔ 평면 「비규격 750」) · 589(OT84 상부EP 350×550 — 20 틈 3곳에 332×2 + 350×1 로 개수는 맞으나 대칭인 코너박스 양옆 중 한 곳만 350).
- 빠진 항목(확인요) 1: OT84 「하부코너ep 150×710」 — 「하부EP …710/60674 ㄱ자」 와 1:1 짝(성포 전시부스·84A 1:1 · 원주 전시부스·84C 2:2 · 99A·104 둘 다 없음)인데 OT84 만 ㄱ자 70*710 좌 1개에 150 없음. 정확한 자리는 도면 치수로 특정 못 함 · furniture-expert 자문 = 누락 가능성 높음(단정 못 함).
- 일치: 5타입 도어·서랍 앞판·플랩·식세기 마이다 폭·높이·수량·좌우(위 2건 제외) · 냉장고장 상부 도어(926/821×407)·보강대(1860/1650 · 지판연장 681.5→681)·키큰ep 720×2310 · 키큰EP 앞판(70·80·90·60·100)·메지판(위 3건 제외) · 섬 끝·뒤 FIX(760·880·1030·705·460·840×2) · 특화수납장 도어(495×730·580·667 · 104 만 좌, 84A·99A 우) · 칼라.
산출물
- 로컬 결과
C:\dev\order-automation\ansan-seongpo_2026-10-13\out\한샘 GS안산 성포mh 도어발주서.xlsm(780,519 B · sha1309cd7b6…). - NAS 게시(B안, 09:19 KST) =
\\192.168.0.101\공유폴더\2026현장\진행중\10월\한샘 GS 안산 성포동 MH\한샘 GS안산 성포mh 포인검토.xlsm(780,519 B · sha1309cd7b669f1e4ead48052017b7f86fed83d65d1되읽기 일치 · 임시명_upload_tmp_seongpo_review.xlsm→ rename · 원본 크기·mtime 전후 동일 · 원본 sha1 = 스냅샷 · 잠금 없음 · 「도어」 없는 이름이라 door_order_sync 스캔 대상 아님). - 원본 백업 = 로컬
C:\dev\order-automation\ansan-seongpo_2026-10-13\input\한샘 GS안산 성포mh 도어발주서.xlsm(sha129a24cbd…). - 작업 폴더
C:\dev\order-automation\ansan-seongpo_2026-10-13\—s0_fetch.py(스냅샷·잠금 확인 ·input\) ·s3_build_review.py(→review.json·review_rows.csv) ·s4_com_review.py·s4_run.py(COM) ·s5_verify.py·s5b_parts_by_sheet.py(검증) ·s6_pdf.py(LibreOffice 육안) ·s8_publish_copy.py(잠금·원본 sha1·덮어쓰기 가드) ·work\_q.py(DXF 덤프 질의) ·work\_dump_poin.py·_consist.py(포인탭 덤프·자체 정합) ·work\_render.py·boxes_all.json·boxes_zoom.json(시트·도어 확대 PNGwork\png\) ·work\_vba_diff.py.
검증
- 원본 탭 5개(마감재 작성·포인·월드·양식·Sheet1) 셀 값/수식·표시형식 diff 0 · 병합·행높이·열너비·인쇄영역 동일(
s5_verify.py). - zip 파트 91 → 105, 추가 14개 전부 새 탭 것(sheet·rels·drawing·vml·printerSettings·ctrlProp 9) · 시트 이름 기준 대조 = 원본 탭 도형 이름·앵커·DEVMODE·ctrlProp·vml 전부 동일(
s5b_parts_by_sheet.py). - VBA = 모듈 15개 소스 동일 + 빈 문서모듈
Sheet6(Attribute 8줄) 추가 ·Form02_Field는VB_BaseGUID 1줄만 재생성(work\_vba_diff.py) — 원주와 같은 양상. - parse_poin 원본 = 결과(355품목 · 17쪽 · error None · source_sheet 「포인·월드」 · 현장 「GS안산 성포MH」).
- 새 탭 = 포인 A1:O1080 값 diff 0 · P~T 값 diff 0 · 인쇄영역 A1:O1080 · P~T 숨김(COM·시트 XML
<col 16-18 hidden>·S·T) · 활성 탭 「포인」 유지 · LibreOffice PDF(인쇄영역) 29쪽에 검토 글자 0 → 블록 밖 확인 · 1~2쪽 전체영역 PDF 로 범례·검토·빠진 항목 블록 육안(work\png\pdf_full_p1.png). - Excel·LibreOffice 잔존 프로세스 0 · 예약작업\Cody\seongpo_review_com실행 후 삭제(창 장부 W177 claim → 해제).
함정
- 경첩 좌우는 입면 열림표시 꼭짓점 쪽 — 230dpi 시트 렌더로 99A B" 를 좌2우1 로 잘못 읽었다가 520dpi 확대로 좌1우2(발주와 일치) 확인. 「90°힌지」 표기·PUSH(반대쪽)로 규칙 검증.
- 「비규격 N」 은 현장재단용 큰 치수 — EP·FIX 는 N 으로 발주가 정상이라 표시 대상 아님. 12T 벽마감 메지판은 실치수로 발주하는 게 이 양식 관례(104·OT84·나머지 1장씩 일치) → 어긋난 3장만 빨강.
- 「(조절)」 치수가 「(벽마감)」 바로 옆에 있어 옮겨 적기 쉽다(전시부스 123).
- ㄱ자 EP 좌/우 = 설치 위치 — 타입 간 복사로 비규격 쪽이 뒤집혔다(99A) · 묶음 머리와 부재 폭 불일치(OT84 100/35)는
work\_consist.py자체 정합 검사로 먼저 잡힌다. rm으로 지난 PDF 를 지우려다 ruleguarddanger-delete-unapproved에 막힘 → 덮어쓰기로 처리(LibreOffice 는 같은 이름 덮어씀).- devplan 페이지에 절(h2)을 새로 넣으려다 ruleguard
web-designer-required에 막힘 → 기존 「남은 것」 목록에 한 줄만 추가.
다음
- ~~⏳[페페] 확인요 목록: 빨강 9(64·136·180·276·279·303·376·519·591) · 주황 11 · 빠진 1(OT84 하부코너ep 150×710). 탭 이관(원본 반영)은 사람이 직접(B안).~~ → 같은 날 [페페] 「확인사항 추천대로 진행. 비고 남기기.」 = 아래 「반영(26.10.13)」.
- devplan =
C:\dev\devplan\pfs-gs-ansan-matspec.html「8. 남은 것」에 1줄.
반영(26.10.13) — 기록: [코디]
[페페] 「확인사항 추천대로 진행. 비고 남기기.」 → 총괄 세션 배정. 빨강 9 + 빠진 1 = 추천값으로 NAS 원본 「포인」 탭에 반영 · 주황 11 = 값 그대로 비고만 「확인요」.
반영 표(「포인」 탭 · 쪽-번호 = parse_poin 키)
| 행 | 품목 | 칸 | 이전 → 새 | 근거(도면 10/6 제작도면) |
|---|---|---|---|---|
| 64 | 전시부스 메지판(2-17) | F 가로 | 123 → 145 | C벽 키큰장 쪽 「145(벽마감)」 · 123 은 옆 「123(조절)」 |
| 136 | 84A 메지판(4-17) | F | 140 → 145 | C벽 특화수납장 쪽 「145(벽마감)」 |
| 303 | 99A 메지판(9-4) | F | 127 → 130 | C벽 냉장고 쪽 「130(벽마감)」 |
| 180 | 84A 아일랜드ep(5-25) | F·H | 840×950 → 950×860 | B" 섬 뒤 벽쪽 FIX 「비규격 950」 · FIX 높이 860 |
| 276 | 99A 상부ep 100 ㄱ자 머리(8-13) | L 좌/우 | 좌 → 우 | A벽 상부 비규격 100 = 오른쪽 끝 |
| 279 | 99A 상부ep 60 ㄱ자 머리(8-16) | L | 우 → 좌 | 왼쪽 끝 60 (276 과 맞바꿈) |
| 376 | 104 하부도어 321×710(11-5) | I·J | 좌1 우0 → 좌0 우1 | 섬 앞 오른쪽 끝 325 — 열림표시 꼭짓점 오른쪽 |
| 519 | OT84 하부도어 446×710(15-4) | I·J | 좌1 우0 → 좌0 우1 | 코너장 450 — 꼭짓점 오른쪽 + 「90°힌지」 코너 쪽 |
| 591 | OT84 ep(17-4) | F | 35 → 100 | B벽 상부 오른쪽 끝 40 = 「비규격 100」 · 590 머리 100*550 |
| 540 | 추가 OT84 하부코너ep(15-25) | B·D·E·F·H·K·O | 빈 줄(B 「.」) → IV075EMT 하부코너ep 18 150×710 합1 엣지4 | 528 하부EP 70710/60674 ㄱ자의 짝(전시부스 30·84A 98 과 같은 값) · 바코드 *14191525* |
- 추가 행 위치 = 행 삽입 대신 15쪽 25번 빈 줄(540행): 쪽 = 36행 고정 블록이고 A 번호·T 바코드가 ROW() 수식(쪽2자리+번호2자리)이라, 528 바로 뒤에 넣으면 531~539 9품목 번호·바코드가 전부 밀린다. 540 = 같은 OT84 15쪽(ㄱ자 528 과 같은 쪽)·같은 칼라·서식 동일(30·539행과 글꼴·테두리·표시형식 전수 같음). K 는 30·98행처럼 숫자 1(템플릿 수식 SUM(I,J) 면 0 이 된다). |
||||
| - 비고 21건 = U 열(블록 밖 · 인쇄영역 A1:O1080 밖 · parse_poin 은 A~T 만 읽음) — 수정 9·추가 1 = 파랑 「26.10.13 도면대로 수정: 이전→새(근거)」 / 확인요 11 = 주황 「26.10.13 도면 ○○ — 확인요 · 발주 ○○ 그대로」(22·23·521·522 = 271 · 383 = 471 · 56 = 20T FIX · 246 = 걸레받이 146 · 384 = 오븐찬넬 596×50 · 555 = 850/750 · 589 = 상부EP 350 · 54 = 걸레받이 엣지 4). | ||||
⚠「포인」에 「비고」 열(L:N)이 있지만 거기는 생산 지시(양면·상하110·ㄱ자 좌/우) 칸이고 parse_poin 이 note 로 읽어 운영 스티커에 실린다 → 변경 이력을 넣으면 스티커·인쇄물에 섞여 U 로 뺐다. |
산출물
- NAS 원본 교체(09:55:42 KST)
\\192.168.0.101\공유폴더\2026현장\진행중\10월\한샘 GS 안산 성포동 MH\한샘 GS안산 성포mh 도어발주서.xlsm= 580,687 B · sha14da7bb98735e3ab3bfddbcd1b64dc21e75228a79(되읽기 일치) · 임시명_upload_tmp_seongpo_fix.xlsm→ replace. - NAS 백업
…\한샘 GS안산 성포mh 발주서_백업_20261013.xlsm= 578,763 B · sha129a24cbd738b0383853904bebb1f4455f0d473c9(= 반영 전 원본) — ⚠지시 이름…도어발주서_백업_…에서 「도어」를 뺐다:*도어*.xls[mx]는 door_order_sync 스캔 대상이라 수정 전 값이 운영 스티커 DB 에 별도 파일로 올라간다. - 로컬 = 반영본
C:\dev\order-automation\ansan-seongpo_2026-10-13\fix\fix.xlsm· 원본 백업…\input\한샘 GS안산 성포mh 도어발주서.xlsm(sha129a24cbd…). - 스크립트(같은 작업 폴더)
f0_precheck.py(잠금·스냅샷 대조) ·f1_spec.py(→fix\fix.json이전값·새값·비고) ·f2_run.py+f2_com_fix.py(Excel COM Session 1 · 이전값 대조 후 쓰기) ·f3_verify.py(→fix\verify_fix.json) ·f4_pdf.py(LibreOffice 육안) ·f5_publish.py(백업·교체 가드).
검증
- 착수 전 NAS 원본 = 스냅샷(578,763 B · 26.10.12 14:16:09 · sha1
29a24cbd…) ·~$잠금 없음 — 교체 직전 재확인도 같음. - 「포인」 diff = 정확히 edits 19셀 + U 21셀(예상 밖 0 · 빠짐 0) · 계산값 diff = 그 셀 + 540 P~T(대기·바코드)뿐 · 서식 diff = U 21셀뿐 · 병합·행높이·열너비·인쇄영역·쪽나눔 동일.
- 다른 탭 4개(마감재 작성·월드·양식·Sheet1) 수식/값·계산값·서식 diff 0 · 시트 이름 기준 도형 이름·앵커·DEVMODE·ctrlProp·vml 동일(
s5b_parts_by_sheet.py) · zip 파트 이름 목록 동일(바뀐 파트 = Excel 재저장분: 시트 XML 스타일 번호·drawing creationId·workbook absPath 등). - VBA 모듈 15개 소스 동일(
work\_vba_diff.py출력 0줄). - parse_poin 355 → 356 · 17쪽 · error None · 변경 = 2-17·4-17·5-25·8-13·8-16·9-4·17-4 + 추가 15-25 — 정확히 반영분(376·519 경첩 좌우는 parse_poin 이 안 읽는 칸이라 목록에 없음).
- LibreOffice PDF(인쇄영역 29쪽) 에 「26.10.13·도면대로·확인요」 0 · 하부코너ep 3회(30·98·540) · 15쪽 A505:AF540 한 장 육안(
fix\png\full_p15.png) = 25번 새 행·U 비고 위치 정상. - Excel 잔존 0 · LibreOffice 잔존 0 · 예약작업
\Cody\seongpo_fix_com실행 후 삭제(창 장부 W178 claim → 해제).
스티커 동기화(확인만 · DB 직접 안 씀)
- 구조 = 미니PC 상주
door_sync_watch(pid 8152 · 하트비트 정상)가 5분마다door_order_sync.py all --if-changed→ NAS mtime|size 가 상태 파일과 다르면 파싱 → SSM 으로 운영→테스트door_order_fileupsert +door_order_item교체(사람이 건field_no연결은 안 건드림) → reconcile. - 실측 = 교체 1분 51초 뒤 자동 주기(09:57:33 KST 로그
C:\dev\pfs\orderpaper-sync\_door_sync_watch.log)가 운영·테스트 둘 다UPSERT ins=0 upd=1 items=356·RECONCILE removed=0 restored=0 alive=244· 상태 파일 2개 =2026-10-13 09:55:42|580687— 같은 파일 키(경로+이름)라 기존 행 갱신, 백업은 「도어」 없는 이름이라 스캔 밖(alive 244 그대로).
함정
- 「포인」 L:N 「비고」 = 생산 지시 + 스티커 note — 변경 이력·검토 글은 블록 밖(U~)에.
- 백업·임시 파일 이름에 「도어」 금지(door_order_sync 스캔
*도어*.xls[mx]· 월 폴더 재귀). - 품목 추가는 행 삽입 금지 — 36행 쪽 블록 · A 번호/T 바코드가
ROW()수식이라 뒤 품목 바코드가 밀린다 → 같은 쪽 빈 줄(B 「.」 자리) 사용.
관계
- 주제 그룹: orderpaper
- 관련 문서: rules(pfs), session-2026-10-12-wonju-danggu-door-review, session-2026-09-07-gs-ansan-seongpo-estimate