3.7 KiB
3.7 KiB
입고등록 품목 검색 버그 수정 (2026-03-18)
날짜: 2026-03-18 작업자: R&D실 (백엔드) 대상: React 프론트엔드 API 상태: 수정 완료, develop 배포 대기
문제 현상
입고등록 화면에서 품목코드 검색 시 두 가지 문제 발생:
- 전체 품목 표시: FG(완제품), PT(부품) 등 입고 대상이 아닌 품목까지 검색됨
- 20건 제한:
per_page=50을 전송해도 항상 20건만 반환
원인
API와 React 간 파라미터 이름 불일치:
React (fetchItems) API (ItemsController)
───────────────── ────────────────────
per_page=50 ──→ ❌ 무시 size 파라미터만 읽음 (기본 20)
itemType=RM,SM,CS ──→ ❌ 무시 type / item_type만 읽음
수정 완료 항목
1. API — ItemsController.php (백엔드 수정 완료)
GET /api/v1/items 엔드포인트가 이제 다음 파라미터도 수용:
| 파라미터 | 설명 | 비고 |
|---|---|---|
per_page |
페이지당 건수 | 기존 size와 동일하게 동작 |
itemType |
품목 유형 (camelCase) | 기존 type, item_type과 동일하게 동작 |
기존
size,type,item_type파라미터는 변경 없이 그대로 동작한다 (하위호환).
2. React — ReceivingDetail.tsx (프론트엔드 수정 완료)
// 변경 전
<ItemSearchModal
open={isItemSearchOpen}
onOpenChange={setIsItemSearchOpen}
onSelectItem={handleSelectItem}
/>
// 변경 후 — 원자재/부자재/소모품만 검색
<ItemSearchModal
open={isItemSearchOpen}
onOpenChange={setIsItemSearchOpen}
onSelectItem={handleSelectItem}
itemType="RM,SM,CS"
/>
3. React — actions.ts dead code 제거
searchItems() 함수, ItemOption 인터페이스, MOCK_ITEMS 상수를 제거했다.
실제 품목검색은 ItemSearchModal → fetchItems() (lib/api/items.ts)를 통해 이루어지며,
actions.ts의 searchItems()는 어디서도 import하지 않는 미사용 코드였다.
품목 유형 필터 기준
입고등록에서 검색되는 품목:
| item_type | 한글 | 검색 여부 |
|---|---|---|
RM |
원자재 | ✅ |
SM |
부자재 | ✅ |
CS |
소모품 | ✅ |
FG |
완제품 | ❌ |
PT |
부품 | ❌ |
SF |
반제품 | ❌ |
BN |
절곡품 | ❌ |
프론트엔드 작업 사항
코드 수정은 이미 완료됨. 아래는
git pull후 확인할 내용.
확인 체크리스트
git pull origin develop
- 입고등록(
/material/receiving-management?mode=new) 진입 - 품목코드 검색 모달 열기
- 아무 글자 입력 후 검색
- 검색 결과에 RM/SM/CS만 표시되는지 확인
- FG/PT 품목이 없는지 확인
- 품목이 20건 이상일 때 모두 표시되는지 확인
수정된 파일 (React)
| 파일 | 변경 내용 |
|---|---|
src/components/material/ReceivingManagement/ReceivingDetail.tsx |
ItemSearchModal에 itemType="RM,SM,CS" prop 추가 |
src/components/material/ReceivingManagement/actions.ts |
미사용 searchItems() 함수 제거 (52줄) |
API 호출 예시 (참고용)
GET /api/v1/items?search=철판&itemType=RM,SM,CS&per_page=50
응답:
{
"success": true,
"data": {
"data": [...], // RM/SM/CS 품목만
"per_page": 50, // 50건 기준 페이징
"total": 34
}
}
관련 문서
- stock-receiving-changes-20260317.md — 입고관리 전체 변경사항 (섹션 4 업데이트됨)
최종 업데이트: 2026-03-18