From d908de7f669bd3f54c69947daa37466866c87e5a Mon Sep 17 00:00:00 2001 From: SeongHyun Kim Date: Mon, 8 Dec 2025 19:10:07 +0900 Subject: [PATCH] =?UTF-8?q?fix(numbering-rule):=20=EC=B1=84=EB=B2=88?= =?UTF-8?q?=EA=B7=9C=EC=B9=99=20=EC=A0=80=EC=9E=A5=20=EC=8B=9C=20allocateN?= =?UTF-8?q?umberingCode=EB=A1=9C=20=EC=8B=A4=EC=A0=9C=20=EC=88=9C=EB=B2=88?= =?UTF-8?q?=20=ED=95=A0=EB=8B=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - generateNumberingCode를 allocateNumberingCode로 변경 (순번 실제 증가) - saveSingleRow/saveMultipleRows/saveWithMultiTable 모두 적용 - NumberingRuleCard: 파트 타입 변경 시 defaultAutoConfig 적용 - NumberingRuleDesigner: 저장 시 partsWithDefaults로 기본값 병합 - sequenceLength/numberLength 기본값 4에서 3으로 변경 - 불필요한 console.log 제거 --- .../controllers/tableManagementController.ts | 12 -- .../src/services/numberingRuleService.ts | 8 +- .../numbering-rule/NumberingRuleCard.tsx | 15 +- .../numbering-rule/NumberingRuleDesigner.tsx | 21 +++ .../UniversalFormModalComponent.tsx | 129 ++++++++---------- .../UniversalFormModalConfigPanel.tsx | 6 +- 6 files changed, 101 insertions(+), 90 deletions(-) diff --git a/backend-node/src/controllers/tableManagementController.ts b/backend-node/src/controllers/tableManagementController.ts index e4a67d3b..2dfe0770 100644 --- a/backend-node/src/controllers/tableManagementController.ts +++ b/backend-node/src/controllers/tableManagementController.ts @@ -2010,8 +2010,6 @@ export async function multiTableSave( mainSubItem.company_code = companyCode; } - logger.info(`서브 테이블 ${tableName} 메인 데이터 저장 준비:`, JSON.stringify(mainSubItem)); - // 먼저 기존 데이터 존재 여부 확인 (user_id + is_primary 조합) const checkQuery = ` SELECT * FROM "${tableName}" @@ -2027,9 +2025,6 @@ export async function multiTableSave( if (companyCode !== "*") { checkParams.push(companyCode); } - - logger.info(`서브 테이블 ${tableName} 기존 데이터 확인 - 쿼리: ${checkQuery}`); - logger.info(`서브 테이블 ${tableName} 기존 데이터 확인 - 파라미터: ${JSON.stringify(checkParams)}`); const existingResult = await client.query(checkQuery, checkParams); @@ -2061,13 +2056,9 @@ export async function multiTableSave( updateParams.push(companyCode); } - logger.info(`서브 테이블 ${tableName} 메인 데이터 UPDATE - 쿼리: ${updateQuery}`); - logger.info(`서브 테이블 ${tableName} 메인 데이터 UPDATE - 값: ${JSON.stringify(updateParams)}`); - const updateResult = await client.query(updateQuery, updateParams); subTableResults.push({ tableName, type: "main", data: updateResult.rows[0] }); } else { - logger.info(`서브 테이블 ${tableName} 메인 데이터 - 업데이트할 컬럼 없음, 기존 데이터 유지`); subTableResults.push({ tableName, type: "main", data: existingResult.rows[0] }); } } else { @@ -2082,9 +2073,6 @@ export async function multiTableSave( RETURNING * `; - logger.info(`서브 테이블 ${tableName} 메인 데이터 INSERT - 쿼리: ${insertQuery}`); - logger.info(`서브 테이블 ${tableName} 메인 데이터 INSERT - 값: ${JSON.stringify(mainSubValues)}`); - const insertResult = await client.query(insertQuery, mainSubValues); subTableResults.push({ tableName, type: "main", data: insertResult.rows[0] }); } diff --git a/backend-node/src/services/numberingRuleService.ts b/backend-node/src/services/numberingRuleService.ts index 83b4f63b..5272547a 100644 --- a/backend-node/src/services/numberingRuleService.ts +++ b/backend-node/src/services/numberingRuleService.ts @@ -897,13 +897,13 @@ class NumberingRuleService { switch (part.partType) { case "sequence": { // 순번 (현재 순번으로 미리보기, 증가 안 함) - const length = autoConfig.sequenceLength || 4; + const length = autoConfig.sequenceLength || 3; return String(rule.currentSequence || 1).padStart(length, "0"); } case "number": { // 숫자 (고정 자릿수) - const length = autoConfig.numberLength || 4; + const length = autoConfig.numberLength || 3; const value = autoConfig.numberValue || 1; return String(value).padStart(length, "0"); } @@ -957,13 +957,13 @@ class NumberingRuleService { switch (part.partType) { case "sequence": { // 순번 (자동 증가 숫자) - const length = autoConfig.sequenceLength || 4; + const length = autoConfig.sequenceLength || 3; return String(rule.currentSequence || 1).padStart(length, "0"); } case "number": { // 숫자 (고정 자릿수) - const length = autoConfig.numberLength || 4; + const length = autoConfig.numberLength || 3; const value = autoConfig.numberValue || 1; return String(value).padStart(length, "0"); } diff --git a/frontend/components/numbering-rule/NumberingRuleCard.tsx b/frontend/components/numbering-rule/NumberingRuleCard.tsx index 83fcd3a2..8d362f5d 100644 --- a/frontend/components/numbering-rule/NumberingRuleCard.tsx +++ b/frontend/components/numbering-rule/NumberingRuleCard.tsx @@ -48,7 +48,20 @@ export const NumberingRuleCard: React.FC = ({ - updateSaveConfig({ + updateSaveConfig({ customApiSave: { ...config.saveConfig.customApiSave, multiTable: { @@ -893,7 +893,7 @@ export function UniversalFormModalConfigPanel({ config, onChange }: UniversalFor
{table.label || table.name} {table.label && {table.name}} -
+ ))}