-
- {rule.isActive ? '활성' : '비활성'}
-
-
-
- {rule.conditionValue}
-
- {rule.description && (
-
- {rule.description}
-
- )}
+
+
+ {individualItems[0].items.map((item) => (
+
+
+
+ {item.code}
+
+ {item.name}
-
우선순위: {rule.priority}
-
- ))}
+ ))}
+
)}
diff --git a/src/components/process-management/actions.ts b/src/components/process-management/actions.ts
index 95cdef04..e52ae0fb 100644
--- a/src/components/process-management/actions.ts
+++ b/src/components/process-management/actions.ts
@@ -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, // 품목 상세 정보 추가
}];
}
diff --git a/src/types/process.ts b/src/types/process.ts
index 16aad75f..3f35861d 100644
--- a/src/types/process.ts
+++ b/src/types/process.ts
@@ -17,6 +17,13 @@ export type RuleType = '품목코드' | '품목명' | '품목구분';
// 매칭 방식
export type MatchingType = 'startsWith' | 'endsWith' | 'contains' | 'equals';
+// 개별 품목 정보
+export interface IndividualItem {
+ id: string;
+ code: string;
+ name: string;
+}
+
// 자동 분류 규칙
export interface ClassificationRule {
id: string;
@@ -28,6 +35,7 @@ export interface ClassificationRule {
description?: string;
isActive: boolean;
createdAt: string;
+ items?: IndividualItem[]; // 개별 품목인 경우 품목 정보
}
// 자동 분류 규칙 입력용 (id, createdAt 제외)