- BOMItem Omit 타입 시그니처 통일 (useTemplateManagement, SectionsTab, ItemMasterContext) - HeadersInit → Record<string, string> 타입 변경 - Zustand useShallow 마이그레이션 (zustand/react/shallow) - DataTable, ListPageTemplate 제네릭 타입 제약 추가 - 설정 관리 페이지 추가 (직급, 직책, 휴가정책, 근무일정, 권한) - HR 관리 페이지 추가 (급여, 휴가) - 단가관리 페이지 리팩토링 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
5.4 KiB
5.4 KiB
조립부품(Assembly Part) 이슈 체크리스트
품목관리 - 제품(PT) 조립부품 관련 이슈 추적
이슈 요약
| # | 이슈 | 상태 | 유형 |
|---|---|---|---|
| 1 | 캔버스 드로잉 마우스 오프셋 버그 | 🔴 | 프론트엔드 |
| 2 | 상세보기 - 조립부품 세부정보/전개도 누락 | 🔴 | 프론트엔드/API |
| 3 | 수정 페이지 - 기존 데이터 로딩 안됨 | 🔴 | 프론트엔드/API |
1. 캔버스 드로잉 마우스 오프셋 버그
상태: ✅ 수정 완료
현상
- 마우스 클릭 지점과 실제 그려지는 위치가 다름
- sam-design에서는 정상 작동
- sam-react-prod에서만 오프셋 발생
원인
getMousePos()함수에서 캔버스 scale 비율 계산 누락- 캔버스 실제 해상도(600x400)와 CSS 표시 크기(
w-full)가 다름 - scale 보정 없이 좌표 계산하면 오프셋 발생
체크리스트
- 캔버스 컴포넌트 파일 위치 확인
- sam-design vs sam-react-prod 코드 비교
- getBoundingClientRect() 사용 여부 확인
- CSS transform/scale 영향 확인
- 오프셋 계산 로직 수정
- 테스트 및 검증
수정 내용
// Before (문제)
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top,
};
// After (수정)
const scaleX = canvas.width / rect.width;
const scaleY = canvas.height / rect.height;
return {
x: (e.clientX - rect.left) * scaleX,
y: (e.clientY - rect.top) * scaleY,
};
관련 파일
src/components/items/DrawingCanvas.tsx(Line 135-146)
2. 상세보기 - 조립부품 세부정보/전개도 누락
상태: 🟡 프론트 수정 완료, API 확인 필요
현상
- "조립 부품 세부 정보" 섹션 헤더만 있고 내용 없음
- "조립품 전개도 (바라시)" 섹션 자체가 없음
원인
- API 응답에서 조립부품 필드들이
attributesJSON 안에 있음 - 프론트에서
data.installation_type만 확인,attributes.installation_type확인 안함 - 전개도 섹션은
bendingDiagram이 있어야만 표시되는 조건
프론트엔드 수정 내용
-
상세 페이지 매핑 (
items/[id]/page.tsx)attributes객체에서도 조립부품 필드 추출하도록 수정installation_type,assembly_type,assembly_length,side_spec_width,side_spec_height등
-
상세보기 컴포넌트 (
ItemDetailClient.tsx)- 조립부품 세부정보 섹션: 값 없으면
-표시하도록 개선 - 전개도 섹션: 데이터 없어도 섹션 표시, "등록된 전개도가 없습니다" 메시지
- 조립부품 세부정보 섹션: 값 없으면
체크리스트
- 상세보기 페이지 컴포넌트 확인
- API 응답 구조 분석 (attributes JSON)
- 조립부품 세부정보 렌더링 로직 수정
- 전개도 섹션 항상 표시하도록 수정
- 테스트 및 검증
- 백엔드 API에서
bending_diagram반환 여부 확인 필요
관련 파일
src/app/[locale]/(protected)/items/[id]/page.tsx- 매핑 함수src/components/items/ItemDetailClient.tsx- UI 컴포넌트
백엔드 확인 필요
- 조립부품 등록 시
bending_diagram필드가 DB에 저장되는지 확인 - 조회 API 응답에
bending_diagram,attributes포함 여부 확인
3. 수정 페이지 - 기존 데이터 로딩 안됨
상태: 🟡 프론트 수정 완료, API 확인 필요
현상
- 부품 유형이 초기화됨 ("부품 유형을(를) 선택하세요")
- 기존 입력 데이터 전혀 로딩 안됨
- 조립품 전개도 미리보기 없음
- 부품 구성(BOM) 목록 로딩 안됨
원인
- 상세보기와 동일: API 응답에서 조립부품 필드들이
attributesJSON 안에 있음 mapApiResponseToFormData함수에서attributes를 확인하지 않음
프론트엔드 수정 내용
수정 페이지 매핑 (items/[id]/edit/page.tsx)
attributes객체에서도 조립부품 필드 추출하도록 수정part_type,part_usage,installation_type,assembly_type,assembly_length, 등
체크리스트
- 수정 페이지 데이터 fetch 로직 확인
- API 응답 데이터 구조 확인 (attributes JSON)
- 폼 초기값 매핑 로직 수정
- 조립부품 특화 필드 매핑 추가
- 전개도 이미지 로딩 - 백엔드 확인 필요
- BOM 목록 로딩 - 백엔드 확인 필요
- 테스트 및 검증
관련 파일
src/app/[locale]/(protected)/items/[id]/edit/page.tsx- 매핑 함수
백엔드 확인 필요
- 조립부품 등록 시
part_type,attributes필드가 DB에 저장되는지 확인 - Product 모델에서
part_type이 컬럼인지attributesJSON 안에 있는지 확인 - 조회 API 응답에
bending_diagram,bom포함 여부 확인
작업 로그
2025-12-06
- 이슈 체크리스트 생성
- 스크린샷 분석 완료
- ✅ 캔버스 오프셋 버그 수정:
DrawingCanvas.tsx- scale 비율 계산 추가 - ✅ 상세보기 페이지 수정:
items/[id]/page.tsx- attributes에서 조립부품 필드 추출ItemDetailClient.tsx- 세부정보 섹션 항상 표시, 전개도 섹션 조건 완화
- ✅ 수정 페이지 수정:
items/[id]/edit/page.tsx- attributes에서 조립부품 필드 추출
- ✅ API 요청 문서 업데이트: 조립부품 관련 백엔드 확인 사항 추가
남은 작업
- 백엔드와 조립부품 데이터 저장/반환 확인 논의
- 실제 테스트 후 검증