Compare commits

...

2 Commits

Author SHA1 Message Date
SeongHyun Kim e747162058 Merge remote-tracking branch 'origin/main' into ksh 2026-01-05 13:58:56 +09:00
SeongHyun Kim 914f3d57f3 fix: TableList 카테고리 라벨 표시를 위한 멀티테넌시 fallback 로직 추가
getColumnInputTypes API에서 회사별 설정이 없을 때 기본설정() fallback 적용
table_type_columns, category_column_mapping 조회 시 DISTINCT ON + ORDER BY CASE WHEN 패턴 사용
영향 범위: 모든 TableList 컴포넌트의 카테고리 컬럼 표시
2026-01-05 13:58:13 +09:00
1 changed files with 12 additions and 6 deletions

View File

@ -3930,9 +3930,10 @@ export class TableManagementService {
`컬럼 입력타입 정보 조회: ${tableName}, company: ${companyCode}`
);
// table_type_columns에서 입력타입 정보 조회 (company_code 필터링)
// table_type_columns에서 입력타입 정보 조회
// 회사별 설정 우선, 없으면 기본 설정(*) fallback
const rawInputTypes = await query<any>(
`SELECT
`SELECT DISTINCT ON (ttc.column_name)
ttc.column_name as "columnName",
COALESCE(cl.column_label, ttc.column_name) as "displayName",
ttc.input_type as "inputType",
@ -3946,8 +3947,10 @@ export class TableManagementService {
LEFT JOIN information_schema.columns ic
ON ttc.table_name = ic.table_name AND ttc.column_name = ic.column_name
WHERE ttc.table_name = $1
AND ttc.company_code = $2
ORDER BY ttc.display_order, ttc.column_name`,
AND ttc.company_code IN ($2, '*')
ORDER BY ttc.column_name,
CASE WHEN ttc.company_code = $2 THEN 0 ELSE 1 END,
ttc.display_order`,
[tableName, companyCode]
);
@ -3961,17 +3964,20 @@ export class TableManagementService {
const mappingTableExists = tableExistsResult[0]?.table_exists === true;
// 카테고리 컬럼의 경우, 매핑된 메뉴 목록 조회
// 회사별 설정 우선, 없으면 기본 설정(*) fallback
let categoryMappings: Map<string, number[]> = new Map();
if (mappingTableExists) {
logger.info("카테고리 매핑 조회 시작", { tableName, companyCode });
const mappings = await query<any>(
`SELECT
`SELECT DISTINCT ON (logical_column_name, menu_objid)
logical_column_name as "columnName",
menu_objid as "menuObjid"
FROM category_column_mapping
WHERE table_name = $1
AND company_code = $2`,
AND company_code IN ($2, '*')
ORDER BY logical_column_name, menu_objid,
CASE WHEN company_code = $2 THEN 0 ELSE 1 END`,
[tableName, companyCode]
);