# POP 변경사항 리뷰 — 공정실행 + 재고이동

# POP 변경사항 리뷰

2026-04-10 | 공정실행 다중품목 + 재고이동 리디자인

1. 공정실행 — 다중품목 지원 구현 완료
PC에서 1개 작업지시에 여러 품목을 넣으면, POP에서도 품목별로 공정을 분리해서 보여줍니다.
BEFORE — 첫 번째 품목만 표시
작업지시 CODE-00002
1. 제조반_계량
투입 100 → 양품 90
90 EA
2. 제조반_배합
투입 40 → 양품 20
20 EA
3. 제조반_포장
투입 20 → 양품 20
20 EA
⚠️ 욕조N_CTG28 (제품) 265개 + 원재료 2종이 있지만
첫 번째 품목만 공정 생성됨
AFTER — 품목별 공정 그룹
작업지시 CODE-00002
📦 욕조N_CTG28_반투명 (F_CRT01_265) — 제품 265개
1. 제조반_계량
투입 100 → 양품 90
90
2. 제조반_배합
투입 40 → 양품 20
20
3. 제조반_포장
투입 20 → 양품 20
20
📦 반제품 가 (별도 라우팅 있을 경우)
1. 혼합
투입 50 → 양품 45
45
✅ 각 품목이 독립된 공정 세트를 가짐 (batch_id로 구분)

### 기술 변경 요약

- `syncWorkInstructions`: `LIMIT 1` 제거 → work_instruction_detail 전체 순회
- qty > 0 AND routing 있는 detail마다 공정 세트 독립 생성
- `work_order_process.batch_id` = item_number 저장 → 품목별 공정 구분
- WorkOrderList: 카드에 품목명(품목코드) 표시, batch_id 기준 형제 공정 필터링
- ProcessWork: 공정 상세에서 batch_id로 품목 구분 표시

2. 재고이동 — 창고 탭 리디자인 구현 완료
아코디언 → 재고조정과 동일한 탭 버튼 패턴. 좌우 분할 + 이동 대기열.
BEFORE — 아코디언 접기/펼치기
▶ 맹동창고
6건
▶ 외주창고
3건
▶ 테스트
4건
⚠️ 품목 많아지면 찾기 힘듦
AFTER — 탭 선택 + flat 리스트
전체 맹동창고 외주창고 테스트
DEMO-PROD-001 / 데모페일 20L
맹동창고
31
→
793_CTG30_회색 / F_CRT01_040
25EA/BOX / 맹동창고
400
→
ESBC-500 / R_PLAST_024
180Kg/Drum / 테스트 · WH-001
500
→
창고 탭 선택
→
품목 [→] 터치
→
도착 창고 모달
→
수량 키패드
→
대기열 추가
→
이동 확정
3. 재고이동 공정 탭 — 공정/설비 필터 구현 중
"공정/설비 = 가상 창고" 개념. 공정명과 설비로 필터해서 해당 공정의 품목 현황을 봅니다.
BEFORE — 작업지시번호로 선택
CODE-00002 CODE-00005 CODE-00006
⚠️ 작업지시 100개 쌓이면?
어떤 번호가 뭔지 모름
AFTER — 공정명 + 설비로 필터
공정
제조반_계량 ▼
설비
전체 ▼
제조반_계량 공정에 있는 품목들
페일_PE용기 / P_OTH06_038
WI: CODE-00002 · 투입100 · 양품90
대기 50
→ 이동
페일_PE용기 / P_OTH06_038
WI: CODE-00005 · 투입50 · 양품50
입고완료
데모페일 20L / DEMO-PROD-001
WI: CODE-00006 · 투입30 · 양품30
입고완료

### 공정 탭 수량 계산법

- 대기수량 = N공정 양품 - (N+1)공정 투입. 예: 계량 양품90 - 배합 투입40 = `대기 50EA`
- 공정중 = 투입 - 양품 - 불량. 예: 투입100 - 양품90 - 불량0 = `공정중 10EA`
- 미입고 = 마지막 공정 양품 > 0 AND 창고 미배정 → `⚠️ 미입고` 경고
- 입고완료 = target_warehouse_id 있음 → 정상

### "공정 = 가상 창고" 비유

- 창고를 선택하면 → 그 창고 안의 품목들이 보이듯
- 공정을 선택하면 → 그 공정에서 처리 중인 품목들이 보인다
- 설비를 추가 선택하면 → 더 좁혀짐 (1호기에서 계량 중인 것만)
- 대기수량이 있는 품목 = "아직 다음 공정으로 안 넘어간 것" → [→ 이동] 가능

4. 재고조정 — 임시저장 + 상태관리 구현 완료
cart_items 테이블로 임시저장. 상태별 관리 (saved/cancelled/confirmed).
BEFORE — 임시저장 없음
조정 작업 중 화면 이탈하면
모든 데이터 사라짐
AFTER — 임시저장 + 상태 관리
임시저장 버튼
saved
X 버튼 (개별 취소)
cancelled
초기화 버튼
전체 cancelled
일괄확정 버튼
confirmed
✅ 페이지 새로고침해도 saved 데이터 복원됨
Generated 2026-04-10 | POP 재고관리 리뷰