화면 저장기능 구현

This commit is contained in:
kjs
2025-09-01 18:42:59 +09:00
parent 31d25268ce
commit 3bd5a2fa14
12 changed files with 1599 additions and 256 deletions

View File

@@ -116,6 +116,27 @@ export class ScreenManagementService {
return screen ? this.mapToScreenDefinition(screen) : null;
}
/**
* 화면 정의 조회 (회사 코드 검증 포함)
*/
async getScreen(
screenId: number,
companyCode: string
): Promise<ScreenDefinition | null> {
const whereClause: any = { screen_id: screenId };
// 회사 코드가 '*'가 아닌 경우 회사별 필터링
if (companyCode !== "*") {
whereClause.company_code = companyCode;
}
const screen = await prisma.screen_definitions.findUnique({
where: whereClause,
});
return screen ? this.mapToScreenDefinition(screen) : null;
}
/**
* 화면 정의 수정
*/
@@ -572,6 +593,23 @@ export class ScreenManagementService {
);
}
/**
* 화면-메뉴 할당 해제
*/
async unassignScreenFromMenu(
screenId: number,
menuObjid: number,
companyCode: string
): Promise<void> {
await prisma.screen_menu_assignments.deleteMany({
where: {
screen_id: screenId,
menu_objid: menuObjid,
company_code: companyCode,
},
});
}
// ========================================
// 테이블 타입 연계
// ========================================