2026-06-24 세션 — orderpaper 재고관리 엑셀→운영 재고량 시드 + 동기화 신규항목 발주량 복사
domain:webdev domain:ui svc:pfs-orderpaper — 기존 재고관리 엑셀의 재고량을 운영 orderpaper.stock에 맥락매핑 + 동기화 신규항목 발주량 복사.
논의·배경
페페: 기존에 쓰던 재고관리 엑셀(.xlsm)을 운영 데이터에 맥락 매핑해 재고량 기입, 미매칭은 0. 앞으로 동기화 신규항목은 발주량을 재고량에 복사. - 추가 명확화(세션 중): RDS에 매핑 안 되는 엑셀 데이터는 신규 생성하지 않음(매핑만). 운영엔 26년 데이터만 존재, 엑셀 25년 이전 자료는 가져오지 않음.
대안/결정
- 엑셀 구조:
RawData시트(2581행)가 실제 재고 데이터. 컬럼 = 주문일·가구업체·현장명·자재명(코드)·양면/단면·PB/MDF·두께·발주수량·남은수량(I열=재고량)·업체들·상태·비고. → 재고량 = '남은 수량'. - 운영 구조: item_name=자재코드(E/S) 또는 보드명(R, 코드는 spec에), spec=규격, qty 발주량(단위포함 "500m"). 전부 2026년. 활성행 1158(처음 덤프 1000→재동기화로 증가).
- 매핑 키(페페 AskUserQuestion 확정): ① 현장+자재코드(+발주량) 우선 → 없으면 자재코드만(전사 재고) — 191행(비0 187). ② 중복 시 최근 주문건의 남은수량. 자재코드는 운영 item_name+spec에서 코드형 토큰 추출, 엑셀 자재명과 정규화 비교. 현장명·발주량 정규화(공백제거·숫자).
- 미매칭 처리: 전부 0(신규 INSERT 없음). 운영 행에만 UPDATE.
- 동기화 신규항목: INSERT 시 stock=qty(초기 재고=발주량). ON DUPLICATE(재동기화)엔 stock 미포함 → 사용자입력·시드 재고 보존(qty 변경이 재고를 덮지 않음).
산출물
- 분석/적용 스크립트(untracked,
pfs/scripts/):_op_dump_prod.py(운영 압축덤프),_mm_join_analyze.py(조인·매칭 실측),_mm_apply_prod.py(전체 0→매칭 187건 CASE 기입, 멱등·prod 가드),_mm_sync_insert_test.py(테스트 검증),_op_sample_prod.py/_mm_stock_probe_prod.py(probe). - 코드(master
dede794):orderpaper-sync/orderpaper_sync.py·orderpaper_upload_load.py— INSERT에 stock 컬럼=qty 추가, ON DUPLICATE 미포함. 로컬 사이드카(orderpaper_sync_server.py) 호출 경로라 웹 배포 불필요. - 운영 DB:
orderpaper.stock187행 = 엑셀 남은수량, 971행 = 0.
검증
- Part A(운영 DB):
_mm_apply_prod.py실행 — DB=pfs, active 1158, set_zero 후 nonzero 187 적용 0 miss, VERIFY stock>0=187·stock=0=971·null 없음. 운영 웹페이지 Playwright: OP_ALL 589(숨김현장 제외) 전부 stock 보유(null 0), no1 stock=5(발주9)·no317 stock=14(발주38) 등 엑셀값 일치, 소수 3.5 보존. - Part B(코드): 테스트 DB 합성행 — 신규 INSERT qty=77m→stock=77m, 재동기화 qty=99m→qty갱신·stock 77m 보존, RESULT PASS, 합성행 cleanup. (MySQL VALUES() deprecation 경고는 기존 코드 잔재, 동작 정상.)
커밋/다음
- master
dede794(sync/upload 코드). Part A는 운영 DB 직접 기입(SSM)이라 커밋 없음(재적용 스크립트만 보존). - 다음: 재고량/발주량 운영 실사용 관찰. 동기화 후 신규항목 stock=qty 실제 반영 1회 눈확인 권장(다음 자동동기화 라운드).
관계
- 직전: [session-2026-06-24-orderpaper-material-mgmt-finalize], [session-2026-06-24-orderpaper-material-mgmt-tab].
- 불변핵심: 운영/테스트 stock 컬럼 존재 + 시드 완료 + 동기화 qty→stock(handoff.md). SSM aws CLI=
pfs/.venv/Scripts.