|
|
|
@ -1,6 +1,8 @@
|
|
|
|
|
package kr.xit.biz.ens.service;
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import kr.xit.biz.common.ApiConstants;
|
|
|
|
|
import kr.xit.biz.common.ApiConstants.SignguCode;
|
|
|
|
|
import kr.xit.biz.common.ApiConstants.SndngSeCode;
|
|
|
|
@ -48,100 +50,73 @@ public class EnsBatchMakeService extends EgovAbstractServiceImpl implements IEns
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* make(생성) 처리 - 문서 중개자별 생성
|
|
|
|
|
* - 통합발송마스터의 발송처리 상태 'accept-ok', 'sending1', 'sending2' 대상
|
|
|
|
|
* - 발송처리 상태 'sending1,2'이면 발송일시2,3(sndng_dt_2,3)이 현재일 이전 대상
|
|
|
|
|
* - 처리 완료 : 발송마스터, 발송상세(문서중개자별 상세 테이블) 생성
|
|
|
|
|
* 연계마스터, 통합발송마스터의 발송처리 상태 'make-ok'
|
|
|
|
|
* - 실패 : 연계마스터, 통합발송마스터의 발송처리 상태 'make-fail1,2,3'
|
|
|
|
|
*
|
|
|
|
|
* 1. 통합 발송 생성 대상 조회
|
|
|
|
|
* - 발송처리상태가 접수(accept-ok)인 데이타
|
|
|
|
|
* - 발송처리상태가 1차, 2차 전송상태(sending1, sending2)인 데이타
|
|
|
|
|
* -> {@link IEnsBatchMapper#selectMakeTgts selectMakeTgts}
|
|
|
|
|
* - tb_ens_unity_sndng_mastr
|
|
|
|
|
*
|
|
|
|
|
* 2. 생성 : {@link #makeMstStatusUpdate}
|
|
|
|
|
* 2-1. 발송마스터 생성 : tb_ens_sndng_mastr
|
|
|
|
|
* 2-2. 문서 중개자별 발송 상세 생성
|
|
|
|
|
* 2-3. 연계/통합 발송마스터상태 변경
|
|
|
|
|
* - 발송처리상태 - make-ok
|
|
|
|
|
* 1차 발송 : try_seq - 1,
|
|
|
|
|
* 발송구분 - 템플릿관리테이블 try1
|
|
|
|
|
* 2차 발송 : try_seq - 2
|
|
|
|
|
* 발송구분 - 템플릿관리테이블 try2
|
|
|
|
|
* 발송건수 - 2차대상발송건수 조회({@link IEnsBatchMapper#selectSendOkTgts selectSendOkTgts})
|
|
|
|
|
* @param reqDTO BatchEnsRequest
|
|
|
|
|
* @param reqDTO
|
|
|
|
|
* @return Map<String, List<SndngMssageParam>> 'tty1', 'tty2', 'tty3'에 대상 put
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param reqDTO
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
|
|
|
|
public void make(final EnsDTO.BatchEnsRequest reqDTO) {
|
|
|
|
|
@Transactional(readOnly = true)
|
|
|
|
|
public Map<String, List<SndngMssageParam>> findMakes(final EnsDTO.BatchEnsRequest reqDTO) {
|
|
|
|
|
final Map<String, List<SndngMssageParam>> tgtMap = new HashMap<>();
|
|
|
|
|
final String sndngProcessSttus2 = ApiConstants.SndngProcessStatus.SENDING1.getCode();
|
|
|
|
|
final String sndngProcessSttus3 = ApiConstants.SndngProcessStatus.SENDING2.getCode();
|
|
|
|
|
|
|
|
|
|
final List<SndngMssageParam> list = mapper.selectMakeTgts(reqDTO);
|
|
|
|
|
final List<SndngMssageParam> list2 = mapper.selectMakeTgts(sndngProcessSttus2);
|
|
|
|
|
|
|
|
|
|
for (SndngMssageParam dto : list) {
|
|
|
|
|
MDC.put(UNITY_SNDNG_MST_ID, dto.getUnitySndngMastrId());
|
|
|
|
|
MDC.put(SNDNG_PROCESS_STTUS, "make-fail1");
|
|
|
|
|
|
|
|
|
|
dto.setSignguCode(reqDTO.getSignguCode());
|
|
|
|
|
dto.setFfnlgCode(reqDTO.getFfnlgCode());
|
|
|
|
|
dto.setProfile(ApiConstants.PROFILE);
|
|
|
|
|
dto.setSndngProcessSttus(reqDTO.getSndngProcessSttus());
|
|
|
|
|
dto.setNewSndngProcessSttus(ApiConstants.SndngProcessStatus.MAKE_OK.getCode());
|
|
|
|
|
//FIXME: try1,try2,tr3이 있는 경우 try1 이전에 try2,3이 실행될 수 있는 경우???
|
|
|
|
|
dto.setTrySeq(1);
|
|
|
|
|
dto.setSndngSeCode(dto.getTry1());
|
|
|
|
|
|
|
|
|
|
makeMstStatusUpdate(dto);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (SndngMssageParam dto : list2) {
|
|
|
|
|
MDC.put(UNITY_SNDNG_MST_ID, dto.getUnitySndngMastrId());
|
|
|
|
|
MDC.put(SNDNG_PROCESS_STTUS, "make-fail2");
|
|
|
|
|
tgtMap.put("tty1", mapper.selectMakeTgts(reqDTO));
|
|
|
|
|
tgtMap.put("tty2", mapper.selectMakeTgts(sndngProcessSttus2));
|
|
|
|
|
//tgtMap.put("tty3", mapper.selectMakeTgts(sndngProcessSttus3));
|
|
|
|
|
return tgtMap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dto.setSignguCode(reqDTO.getSignguCode());
|
|
|
|
|
dto.setFfnlgCode(reqDTO.getFfnlgCode());
|
|
|
|
|
dto.setProfile(ApiConstants.PROFILE);
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* 2차 or 3차 발송 대상이 있는지 확인하여
|
|
|
|
|
* 없으면 발송마스터, 통합발송 마스터 send-ok 처리
|
|
|
|
|
* 2차 or 3차 발송 대상이 있으면 true return
|
|
|
|
|
* @param dto SndngMssageParam
|
|
|
|
|
* @return boolean 2차 or 3차 발송 대상이 있으면 true
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
|
|
|
|
public boolean makeIsNext(final SndngMssageParam dto) {
|
|
|
|
|
MDC.put(UNITY_SNDNG_MST_ID, dto.getUnitySndngMastrId());
|
|
|
|
|
MDC.put(SNDNG_PROCESS_STTUS, "make-fail2");
|
|
|
|
|
dto.setProfile(ApiConstants.PROFILE);
|
|
|
|
|
|
|
|
|
|
//try2 발송 대상이 있는지 확인
|
|
|
|
|
final int sendCnt = mapper.selectSendOkTgts(dto);
|
|
|
|
|
//try2 발송 대상이 있는지 확인
|
|
|
|
|
final int sendCnt = mapper.selectSendOkTgts(dto);
|
|
|
|
|
|
|
|
|
|
//없으면 연계 발송 마스터, 통합 발송 마스터 send-ok
|
|
|
|
|
if (sendCnt == 0) {
|
|
|
|
|
dto.setNewSndngProcessSttus(ApiConstants.SndngProcessStatus.SEND_OK.getCode());
|
|
|
|
|
//없으면 연계 발송 마스터, 통합 발송 마스터 send-ok
|
|
|
|
|
if (sendCnt == 0) {
|
|
|
|
|
dto.setNewSndngProcessSttus(ApiConstants.SndngProcessStatus.SEND_OK.getCode());
|
|
|
|
|
|
|
|
|
|
if (mapper.updateProcessSttusCntcSndngMst(dto) != 1) {
|
|
|
|
|
throw BizRuntimeException.create("[make]연계 발송 마스터 상태변경 실패");
|
|
|
|
|
}
|
|
|
|
|
if (mapper.updateProcessSttusUnitySndngMst(dto) != 1) {
|
|
|
|
|
throw BizRuntimeException.create("[make]통합 발송 마스터 상태변경 실패");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//있으면 make
|
|
|
|
|
dto.setSndngProcessSttus(sndngProcessSttus2);
|
|
|
|
|
dto.setNewSndngProcessSttus(ApiConstants.SndngProcessStatus.MAKE_OK.getCode());
|
|
|
|
|
dto.setTrySeq(2);
|
|
|
|
|
dto.setSndngCo(sendCnt);
|
|
|
|
|
dto.setSndngSeCode(dto.getTry2());
|
|
|
|
|
|
|
|
|
|
makeMstStatusUpdate(dto);
|
|
|
|
|
if (mapper.updateProcessSttusCntcSndngMst(dto) != 1) {
|
|
|
|
|
throw BizRuntimeException.create("[make]연계 발송 마스터 상태변경 실패");
|
|
|
|
|
}
|
|
|
|
|
if (mapper.updateProcessSttusUnitySndngMst(dto) != 1) {
|
|
|
|
|
throw BizRuntimeException.create("[make]통합 발송 마스터 상태변경 실패");
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//TODO:: GS 인증 시험에서 카카오, E-GREEN만 있어서 3단계는 필요 시 구현
|
|
|
|
|
//있으면 make
|
|
|
|
|
dto.setSndngProcessSttus(ApiConstants.SndngProcessStatus.SENDING1.getCode());
|
|
|
|
|
dto.setNewSndngProcessSttus(ApiConstants.SndngProcessStatus.MAKE_OK.getCode());
|
|
|
|
|
dto.setTrySeq(2);
|
|
|
|
|
dto.setSndngCo(sendCnt);
|
|
|
|
|
dto.setSndngSeCode(dto.getTry2());
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//*************************************************************************
|
|
|
|
|
// private method
|
|
|
|
|
//*************************************************************************
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
|
// make
|
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* make 처리
|
|
|
|
@ -159,7 +134,9 @@ public class EnsBatchMakeService extends EgovAbstractServiceImpl implements IEns
|
|
|
|
|
* @param dto SndngMssageParam
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
private void makeMstStatusUpdate(SndngMssageParam dto) {
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
|
|
|
|
public void make(SndngMssageParam dto) {
|
|
|
|
|
// 1. master
|
|
|
|
|
if (mapper.insertSndngMst(dto) != 1) {
|
|
|
|
|
throw BizRuntimeException.create("[make]데이타 생성(마스터) 실패");
|
|
|
|
@ -182,6 +159,14 @@ public class EnsBatchMakeService extends EgovAbstractServiceImpl implements IEns
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//*************************************************************************
|
|
|
|
|
// private method
|
|
|
|
|
//*************************************************************************
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
|
// make
|
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
* make 상세 데이타 생성 : 문서 중개자별 상세 데이타 생셩
|
|
|
|
@ -211,7 +196,10 @@ public class EnsBatchMakeService extends EgovAbstractServiceImpl implements IEns
|
|
|
|
|
final String seCode = tryVal[dto.getTrySeq() - 1];
|
|
|
|
|
|
|
|
|
|
return switch (SndngSeCode.compare(seCode)) {
|
|
|
|
|
case KAKAO -> mapper.insertKakaoMyDocs(dto);
|
|
|
|
|
case KAKAO -> {
|
|
|
|
|
if(true) throw BizRuntimeException.create("####make error#######");
|
|
|
|
|
yield mapper.insertKakaoMyDocs(dto);
|
|
|
|
|
}
|
|
|
|
|
case E_GREEN -> mapper.insertPostSndng(dto);
|
|
|
|
|
case SMS -> mapper.insertSmsSndng(dto);
|
|
|
|
|
case KT_BC -> {
|
|
|
|
|