From 0d6b018ec45ac493f75a0b3cf0f7b09957df188f Mon Sep 17 00:00:00 2001 From: dohyeons Date: Mon, 3 Nov 2025 16:59:01 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=80=EC=84=9C=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/controllers/departmentController.ts | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/backend-node/src/controllers/departmentController.ts b/backend-node/src/controllers/departmentController.ts index 34de0800..deb729ae 100644 --- a/backend-node/src/controllers/departmentController.ts +++ b/backend-node/src/controllers/departmentController.ts @@ -114,12 +114,19 @@ export async function createDepartment(req: AuthenticatedRequest, res: Response) return; } - // 부서 코드 생성 (DEPT_숫자) + // 회사 이름 조회 + const company = await queryOne(` + SELECT company_name FROM company_mng WHERE company_code = $1 + `, [companyCode]); + + const companyName = company?.company_name || companyCode; + + // 부서 코드 생성 (전역 카운트: DEPT_1, DEPT_2, ...) const codeResult = await queryOne(` SELECT COALESCE(MAX(CAST(SUBSTRING(dept_code FROM 6) AS INTEGER)), 0) + 1 as next_number FROM dept_info - WHERE company_code = $1 AND dept_code LIKE 'DEPT_%' - `, [companyCode]); + WHERE dept_code ~ '^DEPT_[0-9]+$' + `); const nextNumber = codeResult?.next_number || 1; const deptCode = `DEPT_${nextNumber}`; @@ -130,14 +137,19 @@ export async function createDepartment(req: AuthenticatedRequest, res: Response) dept_code, dept_name, company_code, - parent_dept_code - ) VALUES ($1, $2, $3, $4) + company_name, + parent_dept_code, + status, + regdate + ) VALUES ($1, $2, $3, $4, $5, $6, NOW()) RETURNING * `, [ deptCode, dept_name.trim(), companyCode, + companyName, parent_dept_code || null, + 'active', ]); logger.info("부서 생성 성공", { deptCode, dept_name });