From d31568b1bdbdfcc5c52a78ac98235759b9f0dc16 Mon Sep 17 00:00:00 2001 From: DDD1542 Date: Wed, 4 Mar 2026 22:46:02 +0900 Subject: [PATCH] feat: Enhance menu and screen synchronization services with new fields - Added `menu_icon` and `screen_group_id` fields to the `Menu` interface in `menuCopyService.ts` to support additional menu attributes. - Updated the SQL insert statements in both `menuCopyService.ts` and `menuScreenSyncService.ts` to include the new fields, ensuring that menu icons and screen group IDs are properly handled during menu creation and synchronization. - These enhancements improve the flexibility and functionality of the menu management system, allowing for richer menu configurations. --- backend-node/src/services/menuCopyService.ts | 18 +++++++++++------- .../src/services/menuScreenSyncService.ts | 5 +++-- ...conflict-20260205-175409-RZBZWHP.properties | 6 ++++++ 3 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 backend/gradle/wrapper/gradle-wrapper.sync-conflict-20260205-175409-RZBZWHP.properties diff --git a/backend-node/src/services/menuCopyService.ts b/backend-node/src/services/menuCopyService.ts index e91124af..4a53b0ff 100644 --- a/backend-node/src/services/menuCopyService.ts +++ b/backend-node/src/services/menuCopyService.ts @@ -56,6 +56,8 @@ interface Menu { lang_key_desc: string | null; screen_code: string | null; menu_code: string | null; + menu_icon: string | null; + screen_group_id: number | null; } /** @@ -2106,26 +2108,28 @@ export class MenuCopyService { objid, menu_type, parent_obj_id, menu_name_kor, menu_name_eng, seq, menu_url, menu_desc, writer, status, system_name, company_code, lang_key, lang_key_desc, screen_code, menu_code, - source_menu_objid - ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17)`, + source_menu_objid, menu_icon, screen_group_id + ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19)`, [ newObjId, menu.menu_type, - newParentObjId, // 재매핑 + newParentObjId, menu.menu_name_kor, menu.menu_name_eng, menu.seq, menu.menu_url, menu.menu_desc, userId, - 'active', // 복제된 메뉴는 항상 활성화 상태 + 'active', menu.system_name, - targetCompanyCode, // 새 회사 코드 + targetCompanyCode, menu.lang_key, menu.lang_key_desc, - menu.screen_code, // 그대로 유지 + menu.screen_code, menu.menu_code, - sourceMenuObjid, // 원본 메뉴 ID (최상위만) + sourceMenuObjid, + menu.menu_icon, + menu.screen_group_id, ] ); diff --git a/backend-node/src/services/menuScreenSyncService.ts b/backend-node/src/services/menuScreenSyncService.ts index 68529c47..9bda49d0 100644 --- a/backend-node/src/services/menuScreenSyncService.ts +++ b/backend-node/src/services/menuScreenSyncService.ts @@ -334,8 +334,8 @@ export async function syncScreenGroupsToMenu( INSERT INTO menu_info ( objid, parent_obj_id, menu_name_kor, menu_name_eng, seq, menu_type, company_code, writer, regdate, status, screen_group_id, menu_desc, - menu_url, screen_code - ) VALUES ($1, $2, $3, $4, $5, 1, $6, $7, NOW(), 'active', $8, $9, $10, $11) + menu_url, screen_code, menu_icon + ) VALUES ($1, $2, $3, $4, $5, 1, $6, $7, NOW(), 'active', $8, $9, $10, $11, $12) RETURNING objid `; await client.query(insertMenuQuery, [ @@ -350,6 +350,7 @@ export async function syncScreenGroupsToMenu( group.description || null, menuUrl, screenCode, + group.icon || null, ]); // screen_groups에 menu_objid 업데이트 diff --git a/backend/gradle/wrapper/gradle-wrapper.sync-conflict-20260205-175409-RZBZWHP.properties b/backend/gradle/wrapper/gradle-wrapper.sync-conflict-20260205-175409-RZBZWHP.properties new file mode 100644 index 00000000..5fe7c7bc --- /dev/null +++ b/backend/gradle/wrapper/gradle-wrapper.sync-conflict-20260205-175409-RZBZWHP.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists \ No newline at end of file