- 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>
3.1 KiB
3.1 KiB
품목관리 세션 체크포인트
작성일: 2025-12-09 수정일: 2025-12-09 상태: ✅ Phase 1 완료!
🎉 2025-12-09 완료 사항
백엔드 작업 완료
| 항목 | 상태 |
|---|---|
field_key 저장 방식 변경 (98_unit → unit) |
✅ 완료 |
시스템 예약어 검증 (SystemFields.php) |
✅ 완료 |
| 중복 검증 로직 | ✅ 완료 |
| 에러 메시지 한국어화 | ✅ 완료 |
프론트엔드 정리 완료
| 항목 | 삭제된 코드 | 상태 |
|---|---|---|
| Edit 모드 매핑 로직 | ~140줄 | ✅ 완료 |
fieldAliases 객체 |
25줄 | ✅ 완료 |
extractFieldName() 함수 |
7줄 | ✅ 완료 |
fieldKeyMap 생성 로직 |
25줄 | ✅ 완료 |
fieldKeyToBackendKey 변환 |
60줄 | ✅ 완료 |
| 총 삭제 | ~200줄 | ✅ |
빌드 검증
npm run build # ✅ 성공
📋 새로운 데이터 흐름
field_key 통일 완료
등록: { "unit": "EA" } → 그대로 저장
조회: DB → { "unit": "EA" } → 그대로 표시
수정: { "unit": "EA" } → 그대로 저장
※ 기존 레거시 데이터 (98_unit 형식)도 그대로 동작
코드 변경 요약
Before (복잡한 매핑):
// Edit 모드: 155줄 매핑 로직
const fieldAliases = { 'unit': '단위', ... };
const extractFieldName = (key) => { ... };
const fieldKeyMap = { ... };
// 여러 단계 변환...
After (직접 사용):
// Edit 모드: 15줄
useEffect(() => {
if (mode !== 'edit' || !structure || !initialData || isEditDataMapped) return;
resetForm(initialData); // 직접 사용!
setIsEditDataMapped(true);
}, [mode, structure, initialData, isEditDataMapped, resetForm]);
⏳ 남은 작업
파일 업로드 500 에러 (검수 중)
위치: /app/Http/Controllers/Api/V1/ItemsFileController.php (Line 7)
문제: use App\Http\Responses\ApiResponse (잘못된 경로)
수정: use App\Helpers\ApiResponse (올바른 경로)
Phase 2: 컴포넌트 분리 (선택적)
계획 문서: [PLAN-2025-12-08] dynamic-form-separation-plan.md
- 공통 컴포넌트 추출 (FileUpload, BOM, AutoItemCode)
- 품목별 컴포넌트 생성 (FG, PT, SM, RM, CS)
- DynamicFormCore 리팩토링
📋 테스트 체크리스트
등록 테스트
- FG(제품) 등록
- PT-조립부품 등록
- PT-절곡부품 등록
- SM/RM/CS 등록
수정 테스트
- 수정 페이지 진입 → 데이터 로드 확인
- 드롭다운 값 표시 확인
- 수정 후 저장 → 값 유지 확인
파일 업로드 테스트
- 절곡부품 전개도 업로드
- 조립부품 전개도 업로드
- 제품 시방서/인정서 업로드
📚 관련 문서
| 문서 | 위치 |
|---|---|
| DynamicForm 분리 계획 | [PLAN-2025-12-08] dynamic-form-separation-plan.md |
| Radix UI 버그 해결 | claudedocs/guides/[FIX-2025-12-05] radix-ui-select-controlled-mode-bug.md |
| 백엔드 field_key 검증 스펙 | sam-api/docs/specs/item-master-field-key-validation.md |