Files
sam-react-prod/claudedocs/item-master/[NEXT-2025-11-26] item-master-pending-integration.md
byeongcheolryu 65a8510c0b fix: 품목기준관리 실시간 동기화 수정
- BOM 항목 추가/수정/삭제 시 섹션탭 즉시 반영
- 섹션 복제 시 UI 즉시 업데이트 (null vs undefined 이슈 해결)
- 항목 수정 기능 추가 (useTemplateManagement)
- 실시간 동기화 문서 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-27 22:19:50 +09:00

3.4 KiB

품목기준관리 - 백엔드 통합 대기 작업

작성일: 2025-11-26 상태: 백엔드 통합 작업 대기 중


현재 상황 요약

해결된 이슈

  1. 섹션 순서 변경 422 에러

    • 원인: 백엔드가 items 필드를 기대하는데 프론트가 section_orders 전송
    • 수정 파일:
      • src/types/item-master-api.ts - SectionReorderRequest.items로 변경
      • src/contexts/ItemMasterContext.tsx - reorderSections 함수 수정
  2. response.data.map is not a function 에러

    • 원인: 백엔드 응답이 배열이 아닌 경우 처리 누락
    • 수정: 배열/비배열 응답 모두 처리하도록 조건문 추가
  3. 불러오기 다이얼로그에 마스터 항목 미표시

    • 수정 파일:
      • src/components/items/ItemMasterDataManagement/dialogs/ImportFieldDialog.tsx
      • src/components/items/ItemMasterDataManagement.tsx
    • 변경 내용: 마스터 항목 / 독립 필드 탭 분리

백엔드 통합 대기 중인 이슈

데이터 동기화 문제

현상:

  • 계층구조에서 섹션 내 항목 생성 시 → 마스터항목 탭, 속성 탭, 불러오기에도 표시됨
  • 원인: GET /v1/item-master/fields API가 모든 필드를 반환 (독립 필드만 반환해야 함)

백엔드 요청 사항:

  1. GET /v1/item-master/fieldssection_id IS NULL인 필드만 반환
  2. 마스터 항목 + 섹션 필드 통합 구조 검토

현재 데이터 구조 (분리됨)

item_master_fields 테이블 (마스터 항목)
├─ 항목 탭에서 생성/관리
├─ 속성 탭 서브탭으로 표시
└─ 불러오기 시 "복사"하여 새 필드 생성

item_fields 테이블 (실제 필드)
├─ section_id != null → 섹션 필드 (계층구조/섹션 탭)
└─ section_id = null → 독립 필드 (불러오기에서 "연결")

예상되는 통합 구조 (백엔드 작업 중)

통합된 필드 테이블
├─ is_master = true → 마스터 필드 (템플릿)
├─ section_id != null → 섹션 필드
└─ section_id = null, is_master = false → 독립 필드

→ 마스터 필드 수정 시 연결된 모든 필드에 반영

프론트엔드 수정 필요 사항 (백엔드 통합 후)

1. API 응답 구조 변경 대응

  • InitResponse 타입 수정 (통합된 필드 구조)
  • transformers.ts 변환 로직 수정

2. Context 수정

  • itemMasterFields vs independentFields 통합 가능성
  • 필드 CRUD 함수 통합

3. UI 수정

  • ImportFieldDialog 탭 구조 재검토 (통합되면 탭 불필요할 수 있음)
  • 데이터 동기화 로직 단순화

관련 파일 목록

수정된 파일 (2025-11-26)

  • src/types/item-master-api.ts
  • src/contexts/ItemMasterContext.tsx
  • src/lib/api/error-handler.ts
  • src/components/items/ItemMasterDataManagement.tsx
  • src/components/items/ItemMasterDataManagement/dialogs/ImportFieldDialog.tsx

참고할 파일

  • src/lib/api/item-master.ts - API 호출 함수
  • src/lib/api/transformers.ts - 응답 변환 함수
  • src/components/items/ItemMasterDataManagement/hooks/useTabManagement.ts - 속성 탭 생성 로직

다음 작업 체크리스트

  • 백엔드 통합 API 완료 확인
  • 새 API 응답 구조 확인 및 타입 수정
  • Context 데이터 구조 통합
  • ImportFieldDialog 통합 여부 결정
  • 테스트: 마스터 항목 수정 → 연결된 필드 동기화 확인