fix: 화면 복제 기능 개선 및 관련 버그 수정

- 화면 복제 기능을 개선하여 DB 구조 개편 후의 효율적인 화면 관리를 지원합니다.
- 그룹 복제 시 버튼의 `targetScreenId`가 새 화면으로 매핑되지 않는 버그를 수정하였습니다.
- 관련된 서비스 및 쿼리에서 `table_type_columns`를 사용하여 라벨 정보를 조회하도록 변경하였습니다.
- 여러 컨트롤러 및 서비스에서 `column_labels` 대신 `table_type_columns`를 참조하도록 업데이트하였습니다.
This commit is contained in:
DDD1542
2026-01-28 11:24:25 +09:00
parent 1753822211
commit 192b678bce
43 changed files with 7826 additions and 677 deletions

View File

@@ -132,7 +132,7 @@ class MasterDetailExcelService {
}
/**
* column_labels에서 Entity 관계 정보 조회
* table_type_columns에서 Entity 관계 정보 조회
* 디테일 테이블에서 마스터 테이블을 참조하는 컬럼 찾기
*/
async getEntityRelation(
@@ -144,10 +144,11 @@ class MasterDetailExcelService {
const result = await queryOne<any>(
`SELECT column_name, reference_column
FROM column_labels
FROM table_type_columns
WHERE table_name = $1
AND input_type = 'entity'
AND reference_table = $2
AND company_code = '*'
LIMIT 1`,
[detailTable, masterTable]
);
@@ -176,8 +177,8 @@ class MasterDetailExcelService {
try {
const result = await query<any>(
`SELECT column_name, column_label
FROM column_labels
WHERE table_name = $1`,
FROM table_type_columns
WHERE table_name = $1 AND company_code = '*'`,
[tableName]
);
@@ -231,7 +232,7 @@ class MasterDetailExcelService {
detailFkColumn = splitPanel.rightPanel.relation?.foreignKey;
}
// 3. relation 정보가 없으면 column_labels에서 Entity 관계 조회
// 3. relation 정보가 없으면 table_type_columns에서 Entity 관계 조회
if (!masterKeyColumn || !detailFkColumn) {
const entityRelation = await this.getEntityRelation(detailTable, masterTable);
if (entityRelation) {
@@ -322,7 +323,7 @@ class MasterDetailExcelService {
const [refTable, displayColumn] = col.name.split(".");
const alias = `ej${aliasIndex++}`;
// column_labels에서 FK 컬럼 찾기
// table_type_columns에서 FK 컬럼 찾기
const fkColumn = await this.findForeignKeyColumn(masterTable, refTable);
if (fkColumn) {
entityJoins.push({
@@ -350,7 +351,7 @@ class MasterDetailExcelService {
const [refTable, displayColumn] = col.name.split(".");
const alias = `ej${aliasIndex++}`;
// column_labels에서 FK 컬럼 찾기
// table_type_columns에서 FK 컬럼 찾기
const fkColumn = await this.findForeignKeyColumn(detailTable, refTable);
if (fkColumn) {
entityJoins.push({
@@ -455,10 +456,11 @@ class MasterDetailExcelService {
try {
const result = await query<{ column_name: string; reference_column: string }>(
`SELECT column_name, reference_column
FROM column_labels
FROM table_type_columns
WHERE table_name = $1
AND reference_table = $2
AND input_type = 'entity'
AND company_code = '*'
LIMIT 1`,
[sourceTable, referenceTable]
);