Merge branch 'dev' into feature/screen-management
This commit is contained in:
@@ -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")
|
||||
}
|
||||
|
||||
@@ -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}`,
|
||||
|
||||
Reference in New Issue
Block a user