From 0576fd4c6ecacf04551c0fd7fdb662495795613d Mon Sep 17 00:00:00 2001 From: eastargh Date: Fri, 31 Jul 2026 17:12:26 +0900 Subject: [PATCH] =?UTF-8?q?UMS=20=EB=B0=9C=EC=86=A1=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messagerequest/MessageRequestService.java | 11 ++++ .../rms/ext/djb/ums/service/UmsService.java | 57 +++++++++++-------- 2 files changed, 45 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/messagerequest/MessageRequestService.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/messagerequest/MessageRequestService.java index f7a5d76..686bb0b 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/messagerequest/MessageRequestService.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/messagerequest/MessageRequestService.java @@ -64,6 +64,17 @@ public class MessageRequestService predicate.and(q.requestDate.loe(date.atTime(23, 59, 59))); return repository.count(predicate); } + + /** 특정 일자에 EMAIL 로 발송 요청된 건수 (UMS 일련번호 채번용). */ + public long countEmailRequestsOnDate(LocalDate date) { + QMessageRequest q = QMessageRequest.messageRequest; + BooleanBuilder predicate = new BooleanBuilder(); + predicate.and(q.messageType.in("EMAIL")); + predicate.and(q.requestDate.goe(date.atStartOfDay())); + predicate.and(q.requestDate.loe(date.atTime(23, 59, 59))); + return repository.count(predicate); + } + /** PENDING 상태인 건만 FAILED 로 전환한다. */ public void updateStatusToFailedIfPending(String id) { diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java b/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java index 963a45c..322990f 100644 --- a/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java +++ b/src/main/java/com/eactive/eai/rms/ext/djb/ums/service/UmsService.java @@ -39,10 +39,11 @@ public class UmsService { private static final Gson gson = new Gson(); - private static final String SYS_DVCD = "API"; //시스템코드 - private static final String BZWK_DVCD = "99"; //업무구분코드 - private static final String SUB_BZWK_CD = "9019"; //세부구분코드 - private static final String TEAM_DVCD = "00"; //팀구분코드 TODO: 변경해야함 + private static final String SYS_DVCD = "API"; //시스템코드 + private static final String BZWK_DVCD = "99"; //업무구분코드 + private static final String BZWK_DCLS_DVCD = "9019"; //세부구분코드 + private static final String SUB_BZWK_CD = "999"; //서브업무코드 TODO: 변경할것 + private static final String TEAM_DVCD = "99"; //팀구분코드 TODO: 변경해야함 private final MonitoringPropertyService propertyService; @@ -225,12 +226,12 @@ public class UmsService { } else { dataVO.setAlmtk_snd_prfl_key(propertyService.getPropertyValue("Monitoring", "djb.ums.sms.almtk_snd_prtl_key.public", "")); // 제주은행 플러스친구아이디 } - dataVO.setAlmtk_tmplt_cd(BZWK_DVCD + TEAM_DVCD + SUB_BZWK_CD + "001"); // 템플릿코드 + dataVO.setAlmtk_tmplt_cd(BZWK_DVCD + TEAM_DVCD + BZWK_DCLS_DVCD + "001"); // 템플릿코드 dataVO.setAlmtk_err_ltrs_snd_yn("Y"); // 오류자문자발송여부 dataVO.setAlmtk_btn_trnm_tycd("2"); // 카카오버튼전송방식 1-format string 2-JSON 3-XML } dataVO.setSms_trnm_bzwk_dvcd(BZWK_DVCD); //업무구분코드 - dataVO.setSms_bzwk_dcls_dvcd(SUB_BZWK_CD); //업무세분코드 + dataVO.setSms_bzwk_dcls_dvcd(BZWK_DCLS_DVCD); //업무세분코드 dataVO.setSms_sys_dvcd("83"); //시스템코드 dataVO.setTx_dt(jsonData[0]); //거래일자 dataVO.setTx_tktm(jsonData[1].substring(0,6)); //거래시간 @@ -253,15 +254,15 @@ public class UmsService { // 이메일 데이터 EmailDataVO dataVO = new EmailDataVO(); - dataVO.setUms_evnt_id(""); // TODO: UMS이벤트ID(필수) + dataVO.setUms_evnt_id(propertyService.getPropertyValue("Monitoring", "djb.ums.email.ums_evnt_id", "")); // UMS이벤트ID(필수) dataVO.setSnd_dman_dt(jsonData[0]); - dataVO.setSnd_dman_id(""); + dataVO.setSnd_dman_id(this.getSndDmanId(messageRequest.getMessageType())); dataVO.setSnd_dman_sno("1"); dataVO.setEmail_titl(messageRequest.getSubject()); // 메일제목 - dataVO.setCstno(""); // TODO: 고객번호(필수) - dataVO.setSendr_emaddr(""); // TODO: 발신자 이메일 - dataVO.setSendr_nm(""); // TODO: 발신자 이름 - dataVO.setSndbk_emaddr(""); // TODO: 리턴 이메일 + dataVO.setCstno(propertyService.getPropertyValue("Monitoring", "djb.ums.email.cstno", "")); // 고객번호(필수) + dataVO.setSendr_emaddr(propertyService.getPropertyValue("Monitoring", "djb.ums.email.sendr_emaddr", "")); // 발신자 이메일 + dataVO.setSendr_nm(propertyService.getPropertyValue("Monitoring", "djb.ums.email.sendr_nm", "")); // 발신자 이름 + dataVO.setSndbk_emaddr(propertyService.getPropertyValue("Monitoring", "djb.ums.email.sndbk_emaddr", "")); // 리턴 이메일 dataVO.setRecvr_emaddr(messageRequest.getEmail()); // 수신자 이메일(필수) dataVO.setRecvr_nm(messageRequest.getUsername()); // 수신자명(필수) dataVO.setTmplt_mpng_info(messageRequest.getMessage()); // 탬플릿매핑정보 @@ -270,7 +271,7 @@ public class UmsService { dataVO.setSnd_emp_dprm_cd("132"); // 발신자부서코드(필수) dataVO.setBzwk_cd(BZWK_DVCD); // 업무구분코드 dataVO.setSub_bzwk_cd(SUB_BZWK_CD); // 업무세부코드 - dataVO.setSys_dvcd(SYS_DVCD); + dataVO.setSys_dvcd(SYS_DVCD); // 시스템구분코드 dataVO.setTx_dt(jsonData[0]); // 거래일자 dataVO.setTx_tktm(jsonData[1].substring(0,6)); // 거래시간 @@ -349,19 +350,29 @@ public class UmsService { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String yyyymmdd = sdf.format(new Date()); - String uuid = SYS_DVCD + BZWK_DVCD + SUB_BZWK_CD + yyyymmdd + "O" ; + String uuid = ""; - if ("SMS".equals(messageType)) { - uuid += "S"; - } else if ("LMS".equals(messageType)) { - uuid += "L"; - } else if ("KAKAO".equals(messageType)) { - uuid += "K"; + if ("EMAIL".equals(messageType)) { + uuid = SYS_DVCD + BZWK_DVCD + SUB_BZWK_CD + yyyymmdd + "O" + "E" ; + + long seq = messageRequestService.countEmailRequestsOnDate(LocalDate.now()) + 1; + uuid += String.format("%013d", seq); + + } else { + uuid = SYS_DVCD + BZWK_DVCD + BZWK_DCLS_DVCD + yyyymmdd + "O" ; + + if ("SMS".equals(messageType)) { + uuid += "S"; + } else if ("LMS".equals(messageType)) { + uuid += "L"; + } else if ("KAKAO".equals(messageType)) { + uuid += "K"; + } + + long seq = messageRequestService.countSmsKakaoRequestsOnDate(LocalDate.now()) + 1; + uuid += String.format("%014d", seq); } - long seq = messageRequestService.countSmsKakaoRequestsOnDate(LocalDate.now()) + 1; - uuid += String.format("%014d", seq); - return uuid; } }