4.3 KB · 수정 2026-09-21 23:27
목차

[코디] 26.9.21(일) — 견적서 목록 「추가건 엑셀」 (도어발주서 xlsm → 추가건 견적)

기록 시각: 2026-09-21 23:15 KST · devplan pfs-door-order-import.html

지시

[페페] 「Pfs 견적서 추가건 엑셀파일 → pfs 견적 양식 변환 스킬을 견적서 목록에 기능 버튼으로 추가해줘. 작업중, 작업 완료표시 필수. 예상작업시간도 게이지 표시.」

그릴링 결정 6건

# 물음 [페페] 결정
1 입력 엑셀 도어발주서 xlsm(포인 시트) — 견적서 양식 xlsx(playbook §7) 아님
2 버튼 자리·부모 지정 행별 버튼 — 그 행이 곧 부모(현장·업체·마진 자동)
3 미리보기 vs 바로 바로 등록 + 완료 요약
4 진행 표시 동기 + 클라이언트 게이지(서버 잡 안 만든다)
5 페이지·중복 페이지 칸 + 중복경고
6 배포 운영까지

무엇을 했나

로컬 build_and_register*.py 8벌(추가1~6·금강·신영)로 흩어져 있던 추가건 등록 로직을 서버 한 벌로 합치고 화면에 붙였다.

DB 스키마 변경 0 · 새 테이블 0 · 새 라우트 파일 0.

게이지 (지시 핵심)

구간 % 근거
① 업로드 중 0→40 실측 — XHR upload.progress
② 파싱·등록 중 40→95 추정 — 파일크기 기반 예상초, 「약 N초 남음(예상)」
③ 완료 100 실측 — 응답 도착

②는 추정이라고 화면에 적는다. 서버가 늦으면 95%에서 멈춘 채 기다린다(응답 전 100% 금지). 실패는 그 시점 %에서 빨강으로 굳힌다. 처리 중엔 ✕·바깥클릭·ESC 로 못 닫는다.

검증

검사 결과
로컬 scripts/_est_door_import_check.py 34/34 ALL PASS
테스트 E2E scripts/_est_door_import_live.py test 30/30 ALL PASS(테스트 DB 원상복구)
UI 실행 1회(업로드→게이지→완료) 성공 · 콘솔오류 0
버튼 실측(1600px) 7개 · 전부 13px · 줄바꿈 0 · 버튼칸 426px
사이트맵 재빌드 그룹 8 · 페이지 60 · 미반영 화면 2(운영 미배포분)

정답지 = 실제로 운영에 등록된 페이로드 5벌 + 추가건 리스트 xlsx. 추가3 7/7 · 추가4 8/8 · 추가5 9/9(+설명된 예외 1) · 추가6 5/5 · 금강 47/47 · 추가1 11/11 · 추가2 12/12.

🔑골든 대조가 실제로 결함 4건을 잡았다 — ①원본 셀 공백 2칸 ②좌날개·우날개 부재명 누락 ③엣지파 픽스(GROUP 부품) 안 접힘 ④기둥목 안 접힘. 전부 고쳐서 4벌 완전일치.

배포

master 0e21dc0(기능) + 9a73048(검사 2벌) → 운영 deploy-live 305f1ad 완료.

[페페] 채팅 「운영 배포」 로 승인. master 에 남의 미배포 커밋이 30여 개라 선별 포워드(cherry-pick 1개). C:\dev\pfs_deploy_wt 에서 reset --hard origin/deploy-live → cherry-pick → push (⚠본체에서는 deploy-live checkout 이 worktree 점유로 거부된다). 푸시 전 blob 4/4 일치 · 삭제 0 · 남의 코드 0 확인. 반영 15초.

운영 검증 = 읽기전용 8/8(쓰기 0건) · 버튼 실측 전부 13px · 줄바꿈 0 · 콘솔오류 0 · 모달·프리플라이트 동작 · 사이트맵 미반영 13→1(남은 1 = 기존 화면 밖 항목, 남의 건).

⏳ [페페]