Merge branch 'dev' into feature/screen-management

This commit is contained in:
kjs
2025-09-18 21:35:16 +09:00
8 changed files with 1676 additions and 24 deletions

View File

@@ -3952,7 +3952,7 @@ model layout_standards {
}
model table_relationships {
relationship_id Int @id
relationship_id Int @id @default(autoincrement())
relationship_name String? @db.VarChar(200)
from_table_name String? @db.VarChar(100)
from_column_name String? @db.VarChar(100)
@@ -3968,6 +3968,9 @@ model table_relationships {
updated_date DateTime? @db.Timestamp(6)
updated_by String? @db.VarChar(50)
diagram_id Int?
// 역방향 관계
bridges data_relationship_bridge[]
}
model data_relationship_bridge {
@@ -3990,6 +3993,9 @@ model data_relationship_bridge {
to_key_value String? @db.VarChar(500)
to_record_id String? @db.VarChar(100)
// 관계 정의
relationship table_relationships? @relation(fields: [relationship_id], references: [relationship_id])
@@index([connection_type], map: "idx_data_bridge_connection_type")
@@index([company_code, is_active], map: "idx_data_bridge_company_active")
}

View File

@@ -821,7 +821,7 @@ export class DataflowService {
relationships.forEach((rel) => {
const diagramId = rel.diagram_id;
if (!diagramMap.has(diagramId)) {
if (diagramId && !diagramMap.has(diagramId)) {
diagramMap.set(diagramId, {
diagramId: diagramId,
diagramName: rel.relationship_name, // 첫 번째 관계의 이름을 사용
@@ -837,15 +837,19 @@ export class DataflowService {
});
}
const diagram = diagramMap.get(diagramId);
diagram.tableCount.add(rel.from_table_name);
diagram.tableCount.add(rel.to_table_name);
diagram.relationshipCount++;
if (diagramId) {
const diagram = diagramMap.get(diagramId);
if (diagram) {
diagram.tableCount.add(rel.from_table_name || "");
diagram.tableCount.add(rel.to_table_name || "");
}
diagram.relationshipCount++;
// 최신 업데이트 시간 유지
if (rel.updated_date && rel.updated_date > diagram.updatedAt) {
diagram.updatedAt = rel.updated_date;
diagram.updatedBy = rel.updated_by;
// 최신 업데이트 시간 유지
if (rel.updated_date && rel.updated_date > diagram.updatedAt) {
diagram.updatedAt = rel.updated_date;
diagram.updatedBy = rel.updated_by;
}
}
});
@@ -1110,10 +1114,14 @@ export class DataflowService {
}
// diagram_id로 모든 관계 조회
return this.getDiagramRelationshipsByDiagramId(
companyCode,
targetRelationship.diagram_id
);
if (targetRelationship.diagram_id) {
return this.getDiagramRelationshipsByDiagramId(
companyCode,
targetRelationship.diagram_id
);
} else {
throw new Error("관계에 diagram_id가 없습니다.");
}
} catch (error) {
logger.error(
`DataflowService: relationship_id로 관계도 관계 조회 실패 - ${relationshipId}`,