제어관리 데이터 저장기능

This commit is contained in:
kjs
2025-09-26 13:52:32 +09:00
parent 2a4e379dc4
commit 9454e3a81f
17 changed files with 1417 additions and 781 deletions

View File

@@ -52,22 +52,45 @@ export default function DataFlowList({ onDesignDiagram }: DataFlowListProps) {
const response = await DataFlowAPI.getJsonDataFlowDiagrams(currentPage, 20, searchTerm, companyCode);
// JSON API 응답을 기존 형식으로 변환
const convertedDiagrams = response.diagrams.map((diagram) => ({
diagramId: diagram.diagram_id,
relationshipId: diagram.diagram_id, // 호환성을 위해 추가
diagramName: diagram.diagram_name,
connectionType: "json-based", // 새로운 JSON 기반 타입
relationshipType: "multi-relationship", // 다중 관계 타입
relationshipCount: diagram.relationships?.relationships?.length || 0,
tableCount: diagram.relationships?.tables?.length || 0,
tables: diagram.relationships?.tables || [],
companyCode: diagram.company_code, // 회사 코드 추가
createdAt: new Date(diagram.created_at || new Date()),
createdBy: diagram.created_by || "SYSTEM",
updatedAt: new Date(diagram.updated_at || diagram.created_at || new Date()),
updatedBy: diagram.updated_by || "SYSTEM",
lastUpdated: diagram.updated_at || diagram.created_at || new Date().toISOString(),
}));
const convertedDiagrams = response.diagrams.map((diagram) => {
// relationships 구조 분석
const relationships = diagram.relationships || {};
// 테이블 정보 추출
const tables: string[] = [];
if (relationships.fromTable?.tableName) {
tables.push(relationships.fromTable.tableName);
}
if (
relationships.toTable?.tableName &&
relationships.toTable.tableName !== relationships.fromTable?.tableName
) {
tables.push(relationships.toTable.tableName);
}
// 관계 수 계산 (actionGroups 기준)
const actionGroups = relationships.actionGroups || [];
const relationshipCount = actionGroups.reduce((count: number, group: any) => {
return count + (group.actions?.length || 0);
}, 0);
return {
diagramId: diagram.diagram_id,
relationshipId: diagram.diagram_id, // 호환성을 위해 추가
diagramName: diagram.diagram_name,
connectionType: relationships.connectionType || "data_save", // 실제 연결 타입 사용
relationshipType: "multi-relationship", // 다중 관계 타입
relationshipCount: relationshipCount || 1, // 최소 1개는 있다고 가정
tableCount: tables.length,
tables: tables,
companyCode: diagram.company_code, // 회사 코드 추가
createdAt: new Date(diagram.created_at || new Date()),
createdBy: diagram.created_by || "SYSTEM",
updatedAt: new Date(diagram.updated_at || diagram.created_at || new Date()),
updatedBy: diagram.updated_by || "SYSTEM",
lastUpdated: diagram.updated_at || diagram.created_at || new Date().toISOString(),
};
});
setDiagrams(convertedDiagrams);
setTotal(response.pagination.total || 0);