|
|
|
|
@ -12,6 +12,8 @@ import kr.xit.biz.ens.mapper.IEnsBatchMapper;
|
|
|
|
|
import kr.xit.biz.ens.model.EnsDTO;
|
|
|
|
|
import kr.xit.biz.ens.model.cmm.SndngMssageParam;
|
|
|
|
|
import kr.xit.biz.ens.model.cntc.CntcDTO;
|
|
|
|
|
import kr.xit.biz.ens.model.epost.EPostDTO.EpostTraceRequest;
|
|
|
|
|
import kr.xit.biz.ens.model.epost.EPostDTO.EpostTraceResponse;
|
|
|
|
|
import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO.BulkStatusRequests;
|
|
|
|
|
import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO.BulkStatusResponses;
|
|
|
|
|
import kr.xit.biz.ens.model.pplus.PplusDTO.PpStatusRequest;
|
|
|
|
|
@ -56,9 +58,11 @@ public class EnsBatchStatusService extends EgovAbstractServiceImpl implements IE
|
|
|
|
|
private String apiHost;
|
|
|
|
|
@Value("${contract.kakao.api.bulkstatus}")
|
|
|
|
|
private String apiKkoBulkStatus;
|
|
|
|
|
|
|
|
|
|
@Value("${contract.pplus.api.bulkstatus}")
|
|
|
|
|
private String apiPplusBulkStatus;
|
|
|
|
|
@Value("${contract.epost.api.trace}")
|
|
|
|
|
private String apiEpostTrace;
|
|
|
|
|
|
|
|
|
|
@Value("${contract.kakao.bulk-max-cnt}")
|
|
|
|
|
private int bulkKkoMaxCnt;
|
|
|
|
|
|
|
|
|
|
@ -231,33 +235,15 @@ public class EnsBatchStatusService extends EgovAbstractServiceImpl implements IE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(Arrays.asList("등기","준등기","익일특급").contains(processSttus)){
|
|
|
|
|
int dlvCnt = Integer.valueOf(resDTO.get발송건수());
|
|
|
|
|
|
|
|
|
|
int startRgistNo = Integer.parseInt(resDTO.get시작등기번호());
|
|
|
|
|
int endRgistNo = Integer.parseInt(resDTO.get종료등기번호());
|
|
|
|
|
|
|
|
|
|
if(endRgistNo != (startRgistNo + dlvCnt -1)) {
|
|
|
|
|
throw BizRuntimeException.create(
|
|
|
|
|
String.format("등기번호 오류(시작등기번호[%s]~종료등기번호[%s] 발송건수[%s])", startRgistNo, endRgistNo, dlvCnt)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 등기번호 update
|
|
|
|
|
for(int idx = 1; idx <= dlvCnt; idx++){
|
|
|
|
|
mapper.updatePplusRgistNo(
|
|
|
|
|
PpStatusResMapping.builder()
|
|
|
|
|
.unitySndngMastrId(unitySndngMstId)
|
|
|
|
|
.rgistNo(String.valueOf(startRgistNo++))
|
|
|
|
|
.sn(idx)
|
|
|
|
|
.build());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 등기번호 set
|
|
|
|
|
setPostPlusRgistNo(resDTO, unitySndngMstId);
|
|
|
|
|
// post plus 상태 변경
|
|
|
|
|
mapper.updatePplusSndStatus(resMapDTO);
|
|
|
|
|
|
|
|
|
|
// 제작발송완료 -> 종적추적
|
|
|
|
|
if("제작발송완료".equals(processSttus)){
|
|
|
|
|
//TODO 종적추적
|
|
|
|
|
epostTrace(unitySndngMstId, reqDTO);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -270,4 +256,64 @@ public class EnsBatchStatusService extends EgovAbstractServiceImpl implements IE
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Post plus 등기번호 set
|
|
|
|
|
* 등기번호가 없는 경우만
|
|
|
|
|
* -> 반복 호출시 최초에만 등록 하도록
|
|
|
|
|
* @param resDTO
|
|
|
|
|
* @param unitySndngMstId
|
|
|
|
|
*/
|
|
|
|
|
private void setPostPlusRgistNo(PpStatusResponse resDTO, String unitySndngMstId) {
|
|
|
|
|
if(mapper.selectCountRgistNo(resDTO.get시작등기번호()) == 0) {
|
|
|
|
|
int dlvCnt = Integer.valueOf(resDTO.get발송건수());
|
|
|
|
|
int startRgistNo = Integer.parseInt(resDTO.get시작등기번호());
|
|
|
|
|
int endRgistNo = Integer.parseInt(resDTO.get종료등기번호());
|
|
|
|
|
|
|
|
|
|
if(endRgistNo != (startRgistNo + dlvCnt - 1)) {
|
|
|
|
|
throw BizRuntimeException.create(
|
|
|
|
|
String.format("등기번호 오류(시작등기번호[%s]~종료등기번호[%s] 발송건수[%s])",
|
|
|
|
|
startRgistNo, endRgistNo, dlvCnt)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 등기번호 update
|
|
|
|
|
for(int idx = 1; idx <= dlvCnt; idx++) {
|
|
|
|
|
mapper.updatePplusRgistNo(
|
|
|
|
|
PpStatusResMapping.builder()
|
|
|
|
|
.unitySndngMastrId(unitySndngMstId)
|
|
|
|
|
.rgistNo(String.valueOf(startRgistNo++))
|
|
|
|
|
.sn(idx)
|
|
|
|
|
.build());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void epostTrace(final String unitySndngMstId, final SndngMssageParam reqDTO){
|
|
|
|
|
final List<String> rgistNos = mapper.selectPplusRgistNos(unitySndngMstId);
|
|
|
|
|
//final List<String> rgistNos = List.of("1900472677718","1900472677695");
|
|
|
|
|
if(!rgistNos.isEmpty()){
|
|
|
|
|
final String url = apiHost + apiEpostTrace;
|
|
|
|
|
|
|
|
|
|
rgistNos.forEach( rgistNo -> {
|
|
|
|
|
ApiResponseDTO apiResult = apiWebClient.exchange(
|
|
|
|
|
url,
|
|
|
|
|
HttpMethod.POST,
|
|
|
|
|
EpostTraceRequest.builder()
|
|
|
|
|
.signguCode(reqDTO.getSignguCode())
|
|
|
|
|
.ffnlgCode(reqDTO.getFfnlgCode())
|
|
|
|
|
.rgist(rgistNo)
|
|
|
|
|
.build(),
|
|
|
|
|
ApiResponseDTO.class,
|
|
|
|
|
CmmEnsBizUtils.getHeadeMap());
|
|
|
|
|
|
|
|
|
|
if(apiResult.getData() != null) {
|
|
|
|
|
final EpostTraceResponse resDTO = JsonUtils.toObjByObj(apiResult.getData(),
|
|
|
|
|
EpostTraceResponse.class);
|
|
|
|
|
//final String unitySndngMstId = resDTO.get연계식별키();
|
|
|
|
|
System.out.println(""+resDTO);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|