feat(WEB): 수주관리 Phase 2 타입 정의 확장 및 공정관리 개별 품목 표시 수정

- Order, OrderItem 인터페이스에 상세 페이지용 필드 추가
- OrderFormData, OrderItemFormData에 수정 페이지용 필드 추가
- 변환 함수에서 새 필드 매핑 처리
- 공정관리 개별 품목을 ID 대신 품목명으로 표시
This commit is contained in:
2026-01-08 20:57:49 +09:00
parent ba36c0ec19
commit fde8726e14
4 changed files with 87 additions and 29 deletions

View File

@@ -3,7 +3,7 @@
import { isNextRedirectError } from '@/lib/utils/redirect-error';
import { serverFetch } from '@/lib/api/fetch-wrapper';
import type { Process, ProcessFormData, ClassificationRule } from '@/types/process';
import type { Process, ProcessFormData, ClassificationRule, IndividualItem } from '@/types/process';
// ============================================================================
// API 타입 정의
@@ -107,13 +107,22 @@ function transformApiToFrontend(apiData: ApiProcess): Process {
function transformProcessItemsToRules(processItems: ApiProcessItem[]): ClassificationRule[] {
if (processItems.length === 0) return [];
const activeItems = processItems.filter(pi => pi.is_active);
if (activeItems.length === 0) return [];
// 모든 품목 ID를 쉼표로 구분하여 하나의 규칙으로 통합
const itemIds = processItems
.filter(pi => pi.is_active)
const itemIds = activeItems
.map(pi => String(pi.item_id))
.join(',');
if (!itemIds) return [];
// 품목 상세 정보 추출 (code, name 포함)
const items: IndividualItem[] = activeItems
.filter(pi => pi.item) // item 정보가 있는 것만
.map(pi => ({
id: String(pi.item!.id),
code: pi.item!.code,
name: pi.item!.name,
}));
return [{
id: `individual-${Date.now()}`,
@@ -122,9 +131,10 @@ function transformProcessItemsToRules(processItems: ApiProcessItem[]): Classific
matchingType: 'equals',
conditionValue: itemIds,
priority: 0,
description: `개별 품목 ${processItems.length}`,
description: `개별 품목 ${activeItems.length}`,
isActive: true,
createdAt: new Date().toISOString(),
items, // 품목 상세 정보 추가
}];
}