라벨명 표시기능
This commit is contained in:
@@ -105,8 +105,45 @@ export class ScreenManagementService {
|
||||
prisma.screen_definitions.count({ where: whereClause }),
|
||||
]);
|
||||
|
||||
// 테이블 라벨 정보를 한 번에 조회
|
||||
const tableNames = [
|
||||
...new Set(screens.map((s) => s.table_name).filter(Boolean)),
|
||||
];
|
||||
|
||||
let tableLabelMap = new Map<string, string>();
|
||||
|
||||
if (tableNames.length > 0) {
|
||||
try {
|
||||
const tableLabels = await prisma.table_labels.findMany({
|
||||
where: { table_name: { in: tableNames } },
|
||||
select: { table_name: true, table_label: true },
|
||||
});
|
||||
|
||||
tableLabelMap = new Map(
|
||||
tableLabels.map((tl) => [
|
||||
tl.table_name,
|
||||
tl.table_label || tl.table_name,
|
||||
])
|
||||
);
|
||||
|
||||
// 테스트: company_mng 라벨 직접 확인
|
||||
if (tableLabelMap.has("company_mng")) {
|
||||
console.log(
|
||||
"✅ company_mng 라벨 찾음:",
|
||||
tableLabelMap.get("company_mng")
|
||||
);
|
||||
} else {
|
||||
console.log("❌ company_mng 라벨 없음");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("테이블 라벨 조회 오류:", error);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
data: screens.map((screen) => this.mapToScreenDefinition(screen)),
|
||||
data: screens.map((screen) =>
|
||||
this.mapToScreenDefinition(screen, tableLabelMap)
|
||||
),
|
||||
pagination: {
|
||||
page,
|
||||
size,
|
||||
@@ -404,6 +441,8 @@ export class ScreenManagementService {
|
||||
}
|
||||
|
||||
// 메뉴 할당 확인
|
||||
// 메뉴에 할당된 화면인지 확인 (임시 주석 처리)
|
||||
/*
|
||||
const menuAssignments = await prisma.screen_menu_assignments.findMany({
|
||||
where: {
|
||||
screen_id: screenId,
|
||||
@@ -425,6 +464,7 @@ export class ScreenManagementService {
|
||||
referenceType: "menu_assignment",
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
return {
|
||||
hasDependencies: dependencies.length > 0,
|
||||
@@ -666,9 +706,22 @@ export class ScreenManagementService {
|
||||
prisma.screen_definitions.count({ where: whereClause }),
|
||||
]);
|
||||
|
||||
// 테이블 라벨 정보를 한 번에 조회
|
||||
const tableNames = [
|
||||
...new Set(screens.map((s) => s.table_name).filter(Boolean)),
|
||||
];
|
||||
const tableLabels = await prisma.table_labels.findMany({
|
||||
where: { table_name: { in: tableNames } },
|
||||
select: { table_name: true, table_label: true },
|
||||
});
|
||||
|
||||
const tableLabelMap = new Map(
|
||||
tableLabels.map((tl) => [tl.table_name, tl.table_label || tl.table_name])
|
||||
);
|
||||
|
||||
return {
|
||||
data: screens.map((screen) => ({
|
||||
...this.mapToScreenDefinition(screen),
|
||||
...this.mapToScreenDefinition(screen, tableLabelMap),
|
||||
deletedDate: screen.deleted_date || undefined,
|
||||
deletedBy: screen.deleted_by || undefined,
|
||||
deleteReason: screen.delete_reason || undefined,
|
||||
@@ -1528,12 +1581,18 @@ export class ScreenManagementService {
|
||||
// 유틸리티 메서드
|
||||
// ========================================
|
||||
|
||||
private mapToScreenDefinition(data: any): ScreenDefinition {
|
||||
private mapToScreenDefinition(
|
||||
data: any,
|
||||
tableLabelMap?: Map<string, string>
|
||||
): ScreenDefinition {
|
||||
const tableLabel = tableLabelMap?.get(data.table_name) || data.table_name;
|
||||
|
||||
return {
|
||||
screenId: data.screen_id,
|
||||
screenName: data.screen_name,
|
||||
screenCode: data.screen_code,
|
||||
tableName: data.table_name,
|
||||
tableLabel: tableLabel, // 라벨이 있으면 라벨, 없으면 테이블명
|
||||
companyCode: data.company_code,
|
||||
description: data.description,
|
||||
isActive: data.is_active,
|
||||
|
||||
Reference in New Issue
Block a user