From 3b99197157a2e6a418ca2e77d92522ef5343cecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 17 Mar 2026 20:33:15 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20[receiving]=20=EC=9B=90=EC=9E=90?= =?UTF-8?q?=EC=9E=AC=EB=A1=9C=ED=8A=B8=EB=B2=88=ED=98=B8=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=EC=B1=84=EB=B2=88=20=ED=94=84=EB=A1=A0=ED=8A=B8?= =?UTF-8?q?=EC=97=94=EB=93=9C=20=EC=9A=94=EC=B2=AD=EC=84=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INDEX.md | 1 + plans/receiving-lot-auto-generate-request.md | 76 ++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 plans/receiving-lot-auto-generate-request.md diff --git a/INDEX.md b/INDEX.md index dc55fec..385dc9f 100644 --- a/INDEX.md +++ b/INDEX.md @@ -285,6 +285,7 @@ DB 도메인별: | [stock-production-react-request.md](plans/stock-production-react-request.md) | 재고생산관리 React 구현 요청서 (수주 화면 단순화, API 스펙 포함) | | [bending-lot-react-request.md](plans/bending-lot-react-request.md) | 절곡품 LOT 재고생산 React 구현 요청서 (캐스케이딩 드롭다운, LOT 자동생성, 취소 복원) | | [barobill-react-improvement-request.md](plans/barobill-react-improvement-request.md) | 바로빌 React 개선 요청서 (동기화 버튼, 인증서/잔액 표시, 계좌/카드 목록, Server Action 6개) | +| [receiving-lot-auto-generate-request.md](plans/receiving-lot-auto-generate-request.md) | 입고등록 원자재로트번호 자동채번 적용 요청 (읽기전용 변경, API 자동생성) | ### frontend/integration/ — 프론트엔드 개발 가이드 diff --git a/plans/receiving-lot-auto-generate-request.md b/plans/receiving-lot-auto-generate-request.md new file mode 100644 index 0000000..74e6f29 --- /dev/null +++ b/plans/receiving-lot-auto-generate-request.md @@ -0,0 +1,76 @@ +# 입고등록 — 원자재로트번호 자동채번 적용 요청 + +**날짜:** 2026-03-17 +**요청자:** R&D실 (백엔드) +**대상:** React 프론트엔드 + +--- + +## 변경 요약 + +입고등록 화면의 **원자재로트번호** 필드를 **읽기 전용(자동채번)**으로 변경한다. + +--- + +## 대상 화면 + +``` +URL: /material/receiving-management/new/mode-new + /material/receiving-management/[id]?mode=edit +컴포넌트: ReceivingDetail.tsx +``` + +--- + +## 변경 내용 + +### 원자재로트번호 (`lot_no`) 필드 + +| 항목 | 변경 전 | 변경 후 | +|------|--------|--------| +| 입력 방식 | 사용자 직접 입력 (프론트 `generateLotNo()` 호출) | **읽기 전용** (API 자동 생성) | +| 신규 등록 시 | 프론트에서 랜덤 생성 후 전송 | `lot_no` 미전송 → API가 자동 채번 | +| 저장 후 표시 | — | API 응답의 `lot_no` 값을 표시 | +| 수정 모드 | 편집 가능 | **읽기 전용** (기존 값 표시) | + +### UI 처리 + +``` +✅ input 요소에 readOnly 또는 disabled 속성 적용 +✅ 배경색을 회색(비활성) 처리하여 자동생성임을 시각적으로 표현 +✅ 신규 등록 시 placeholder: "저장 시 자동 생성" 또는 빈 값 +✅ 저장 후 API 응답에서 lot_no를 받아 화면에 표시 +❌ 프론트의 generateLotNo() 함수 호출 제거 (또는 미사용 처리) +``` + +### API 동작 + +``` +POST /api/v1/receivings (신규 등록) + → lot_no 미전송 시 API가 채번규칙 기반 자동 생성 + → 응답: { "data": { "lot_no": "260317-01", ... } } + +PUT /api/v1/receivings/{id} (수정) + → lot_no 변경 불가 (프론트에서 전송하지 않음) + +POST /api/v1/receivings/{id}/process (입고처리) + → lot_no 미전송 시 API가 자동 생성 + → 응답에 최종 lot_no 포함 +``` + +### 채번 형식 + +``` +YYMMDD-NN (일별 시퀀스, 01부터 시작) +예: 260317-01, 260317-02, ... + 260318-01 (다음날 리셋) +``` + +> 채번 형식은 MNG 채번규칙 관리에서 테넌트별로 변경 가능. 프론트는 형식에 의존하지 않고 API 응답값을 그대로 표시하면 된다. + +--- + +## 참고 + +- API 변경 커밋: `feat: [receiving] 원자재로트번호 채번규칙 연동` +- 채번규칙 문서: `docs/rules/numbering-rules.md`