From 1fd0e035c2e2b2a5a5b982f2a0c014d44393b33f Mon Sep 17 00:00:00 2001 From: hjjeong Date: Mon, 9 Mar 2026 16:36:25 +0900 Subject: [PATCH] =?UTF-8?q?ERP=20=EC=82=AC=EC=9B=90=20=EB=8F=99=EA=B8=B0?= =?UTF-8?q?=ED=99=94=20=EC=8B=9C=20=EC=9D=B4=EB=A9=94=EC=9D=BC/=EC=A0=84?= =?UTF-8?q?=ED=99=94=EB=B2=88=ED=98=B8=20=EB=88=84=EB=9D=BD=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - EmployeeApiClient: API 요청에 extraColumns 추가 (emalAdd, outemalAdd, emgcTel, tel, joinDt) - BatchService: 급여이메일(emalAdd) 우선, 없으면 외부이메일(outemalAdd) fallback 처리, tel 매핑 추가 - batch.xml: upsertEmployee에 user_id, tel 컬럼 추가, ON CONFLICT (sabun) 기준 upsert Made-with: Cursor --- src/com/pms/api/EmployeeApiClient.java | 3 ++- src/com/pms/mapper/batch.xml | 11 ++++++++--- src/com/pms/service/BatchService.java | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/com/pms/api/EmployeeApiClient.java b/src/com/pms/api/EmployeeApiClient.java index cceaaaf..6de1e59 100644 --- a/src/com/pms/api/EmployeeApiClient.java +++ b/src/com/pms/api/EmployeeApiClient.java @@ -206,9 +206,10 @@ public class EmployeeApiClient { json.append(",\"pId\":\"\""); json.append("}"); - // body 섹션 + // body 섹션 - extraColumns로 이메일/전화번호 등 추가 필드 요청 json.append(",\"body\":{"); json.append("\"coCd\":\"").append(escapeJson(coCd)).append("\""); + json.append(",\"extraColumns\":[\"emalAdd\",\"outemalAdd\",\"emgcTel\",\"tel\",\"joinDt\"]"); json.append("}"); json.append("}"); diff --git a/src/com/pms/mapper/batch.xml b/src/com/pms/mapper/batch.xml index 0dd50f5..d85c107 100644 --- a/src/com/pms/mapper/batch.xml +++ b/src/com/pms/mapper/batch.xml @@ -114,9 +114,10 @@ data_type = #{data_type} - + INSERT INTO user_info ( + user_id, sabun, empseq, user_password, @@ -128,6 +129,7 @@ position_name, rank, email, + tel, cell_phone, user_type, user_type_name, @@ -136,6 +138,7 @@ data_type, regdate ) VALUES ( + #{sabun}, #{sabun}, #{empseq}, #{user_password}, @@ -147,11 +150,12 @@ #{position_name}, #{rank}, #{email}, + #{tel}, #{cell_phone}, #{user_type}, #{user_type_name}, #{status}, - CASE + CASE WHEN #{end_date} IS NULL OR #{end_date} = '' THEN NULL ELSE TO_TIMESTAMP(#{end_date}, 'YYYYMMDD') END, @@ -168,11 +172,12 @@ position_name = #{position_name}, rank = #{rank}, email = #{email}, + tel = #{tel}, cell_phone = #{cell_phone}, user_type = #{user_type}, user_type_name = #{user_type_name}, status = #{status}, - end_date = CASE + end_date = CASE WHEN #{end_date} IS NULL OR #{end_date} = '' THEN NULL ELSE TO_TIMESTAMP(#{end_date}, 'YYYYMMDD') END, diff --git a/src/com/pms/service/BatchService.java b/src/com/pms/service/BatchService.java index 12280b0..8c49553 100644 --- a/src/com/pms/service/BatchService.java +++ b/src/com/pms/service/BatchService.java @@ -776,21 +776,17 @@ public class BatchService extends BaseService { System.out.println("===================================="); for (Map emp : empList) { - // 처음 10건만 로그 출력 if (processCount < 10) { System.out.println("[사원 " + (processCount + 1) + "]"); - System.out.println(" - USER_ID: " + emp.get("user_id")); + System.out.println(" - SABUN: " + emp.get("sabun")); System.out.println(" - USER_NAME: " + emp.get("user_name")); - System.out.println(" - USER_NAME_ENG: " + emp.get("user_name_eng")); - System.out.println(" - DEPT_CODE: " + emp.get("dept_code")); System.out.println(" - DEPT_NAME: " + emp.get("dept_name")); System.out.println(" - EMAIL: " + emp.get("email")); System.out.println(" - CELL_PHONE: " + emp.get("cell_phone")); - System.out.println(" - STATUS: " + emp.get("status")); + System.out.println(" - TEL: " + emp.get("tel")); System.out.println("---"); } - - // UPSERT 실행 + sqlSession.insert("batch.upsertEmployee", emp); processCount++; } @@ -1314,7 +1310,13 @@ public class BatchService extends BaseService { emp.put("position_code", extractJsonValue(json, "hclsCd")); // 직급코드 (hclsCd) emp.put("position_name", extractJsonValue(json, "hclsNm")); // 직급명 (hclsNm) emp.put("rank", extractJsonValue(json, "hrspNm")); // 직책명 (hrspNm - 사원, 대리 등) - emp.put("email", extractJsonValue(json, "emalAdd")); // 이메일 (emalAdd) + // 이메일: 급여이메일(emalAdd) 우선, 없으면 외부이메일(outemalAdd) 사용 + String email = extractJsonValue(json, "emalAdd"); + if (email == null || email.isEmpty()) { + email = extractJsonValue(json, "outemalAdd"); + } + emp.put("email", email); + emp.put("tel", extractJsonValue(json, "tel")); // 전화번호 (tel) emp.put("cell_phone", extractJsonValue(json, "emgcTel")); // 휴대폰 (emgcTel) emp.put("user_type", extractJsonValue(json, "enrlFg")); // 사용자유형 (enrlFg - J01:재직) emp.put("user_type_name", extractJsonValue(json, "enrlNm")); // 사용자유형명 (enrlNm)