ums 설정 추가
This commit is contained in:
+12
@@ -14,6 +14,8 @@ import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Service
|
||||
@Transactional(transactionManager = "transactionManagerForEMS")
|
||||
public class MessageRequestService
|
||||
@@ -53,6 +55,16 @@ public class MessageRequestService
|
||||
return repository.findAll(predicate, fixed);
|
||||
}
|
||||
|
||||
/** 특정 일자에 SMS/KAKAO 로 발송 요청된 건수 (UMS 일련번호 채번용). */
|
||||
public long countSmsKakaoRequestsOnDate(LocalDate date) {
|
||||
QMessageRequest q = QMessageRequest.messageRequest;
|
||||
BooleanBuilder predicate = new BooleanBuilder();
|
||||
predicate.and(q.messageType.in("SMS", "KAKAO"));
|
||||
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) {
|
||||
MessageRequest entity = getById(id);
|
||||
|
||||
@@ -8,6 +8,7 @@ import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
import java.security.SecureRandom;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -18,8 +19,10 @@ import org.springframework.stereotype.Service;
|
||||
import com.eactive.apim.portal.common.util.PhoneNumberUtil;
|
||||
import com.eactive.apim.portal.portalproperty.service.PortalPropertyService;
|
||||
import com.eactive.apim.portal.template.entity.MessageRequest;
|
||||
import com.eactive.eai.common.util.StringUtil;
|
||||
import com.eactive.eai.common.util.SystemUtil;
|
||||
import com.eactive.eai.rms.data.entity.man.monitoringProperty.service.MonitoringPropertyService;
|
||||
import com.eactive.eai.rms.data.entity.onl.apim.messagerequest.MessageRequestService;
|
||||
import com.eactive.eai.rms.ext.djb.ums.vo.EmailDataVO;
|
||||
import com.eactive.eai.rms.ext.djb.ums.vo.SmsDataVO;
|
||||
import com.eactive.eai.rms.ext.djb.ums.vo.StdHeadVO;
|
||||
@@ -39,12 +42,15 @@ public class UmsService {
|
||||
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 final MonitoringPropertyService propertyService;
|
||||
private final MessageRequestService messageRequestService;
|
||||
|
||||
public UmsService(MonitoringPropertyService propertyService) {
|
||||
public UmsService(MonitoringPropertyService propertyService, MessageRequestService messageRequestService) {
|
||||
this.propertyService = propertyService;
|
||||
this.messageRequestService = messageRequestService;
|
||||
}
|
||||
|
||||
public boolean send(MessageRequest messageRequest) throws Exception {
|
||||
@@ -168,17 +174,16 @@ public class UmsService {
|
||||
|
||||
// 스윙챗 알림 데이터
|
||||
SwingDataVO swiDataVO = new SwingDataVO();
|
||||
swiDataVO.setNotiCode("CNO_FEP_HMP_0002");
|
||||
swiDataVO.setNotiCode("CNO_FEP_APIM_0002"); //0001:긴급, 0002:중요
|
||||
swiDataVO.setNotiTitle("알림");
|
||||
swiDataVO.setNotiContent(messageRequest.getMessage());
|
||||
|
||||
// 스윙챗 알림 데이터
|
||||
List<SwingReceiverDataVO> swiReDataVOList = new ArrayList<SwingReceiverDataVO>();
|
||||
SwingReceiverDataVO receiver = new SwingReceiverDataVO();
|
||||
receiver.setType("");
|
||||
receiver.setType("PSN");
|
||||
receiver.setCompanyCode("CB");
|
||||
receiver.setCode(messageRequest.getMessengerId());
|
||||
receiver.setPrdNm("");
|
||||
receiver.setCode(messageRequest.getMessengerId());
|
||||
swiReDataVOList.add(receiver);
|
||||
|
||||
swiDataVO.setReceiverInfo(swiReDataVOList);
|
||||
@@ -200,22 +205,22 @@ public class UmsService {
|
||||
// Sms 데이터
|
||||
SmsDataVO dataVO = new SmsDataVO();
|
||||
dataVO.setSnd_dman_dt(jsonData[0]);
|
||||
dataVO.setSnd_dman_id("");
|
||||
dataVO.setSnd_dman_id(this.getSndDmanId(messageRequest.getMessageType()));
|
||||
dataVO.setSnd_dvcd("EAI");
|
||||
dataVO.setMsg_titl("");
|
||||
dataVO.setMsg_titl(StringUtil.chunkString(messageRequest.getSubject(), 40, false)); // MS949 40byte 초과시 절단
|
||||
dataVO.setMsg_ctnt(messageRequest.getMessage());
|
||||
dataVO.setRecvr_no(PhoneNumberUtil.digitsOnly(messageRequest.getPhone()));
|
||||
dataVO.setSndn_no("15880079"); //발신번호
|
||||
dataVO.setSnd_empno(""); //요청자
|
||||
dataVO.setSnd_emp_dprm_cd(""); //요청부서코드
|
||||
dataVO.setSnd_empno("APIM"); //요청자
|
||||
dataVO.setSnd_emp_dprm_cd("132"); //요청부서코드
|
||||
if ("SMS".equals(messageRequest.getMessageType())) {
|
||||
dataVO.setLtrs_snd_tycd("1"); // 1:SMS 2:LMS/MMS
|
||||
dataVO.setMsg_snd_tycd("0000"); // 알림톡 메세지 종류 0000:SMS, 1000:LMS, 1008:알림톡, ....
|
||||
} else if ("KAKAO".equals(messageRequest.getMessageType())) {
|
||||
dataVO.setLtrs_snd_tycd("2"); // 1:SMS 2:LMS/MMS
|
||||
dataVO.setMsg_snd_tycd("1008"); // 알림톡 메세지 종류 0000:SMS, 1000:LMS, 1008:알림톡, ....
|
||||
dataVO.setAlmtk_snd_prfl_key(""); // 플러스친구아이디
|
||||
dataVO.setAlmtk_tmplt_cd(""); // 템플릿코드
|
||||
dataVO.setAlmtk_snd_prfl_key(propertyService.getPropertyValue("Monitoring", "djb.ums.sms.almtk_snd_prtl_key", "")); // 플러스친구아이디
|
||||
dataVO.setAlmtk_tmplt_cd(BZWK_DVCD + TEAM_DVCD + SUB_BZWK_CD + "001"); // 템플릿코드
|
||||
dataVO.setAlmtk_err_ltrs_snd_yn("Y"); // 오류자문자발송여부
|
||||
dataVO.setAlmtk_btn_trnm_tycd("2"); // 카카오버튼전송방식 1-format string 2-JSON 3-XML
|
||||
}
|
||||
@@ -256,8 +261,8 @@ public class UmsService {
|
||||
dataVO.setRecvr_nm(messageRequest.getUsername()); // 수신자명(필수)
|
||||
dataVO.setTmplt_mpng_info(messageRequest.getMessage()); // 탬플릿매핑정보
|
||||
dataVO.setTmplt_mpng_rptt_info(""); // 탬플릿매핑반복정보
|
||||
dataVO.setSnd_empno(""); // 발신자ID(필수)
|
||||
dataVO.setSnd_emp_dprm_cd(""); // 발신자부서코드(필수)
|
||||
dataVO.setSnd_empno("APIM"); // 발신자ID(필수)
|
||||
dataVO.setSnd_emp_dprm_cd("132"); // 발신자부서코드(필수)
|
||||
dataVO.setBzwk_cd(BZWK_DVCD); // 업무구분코드
|
||||
dataVO.setSub_bzwk_cd(SUB_BZWK_CD); // 업무세부코드
|
||||
dataVO.setSys_dvcd(SYS_DVCD);
|
||||
@@ -334,4 +339,24 @@ public class UmsService {
|
||||
}
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
private String getSndDmanId(String messageType) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
String yyyymmdd = sdf.format(new Date());
|
||||
|
||||
String uuid = SYS_DVCD + BZWK_DVCD + SUB_BZWK_CD + 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);
|
||||
|
||||
return uuid;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user