|
|
|
|
@ -3,6 +3,7 @@ package kr.xit.biz.ens.service;
|
|
|
|
|
import static kr.xit.core.support.utils.JsonUtils.toObjByObj;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import kr.xit.biz.common.ApiConstants;
|
|
|
|
|
import kr.xit.biz.common.ApiConstants.SndngSeCode;
|
|
|
|
|
@ -14,6 +15,7 @@ import kr.xit.biz.ens.model.cntc.CntcDTO;
|
|
|
|
|
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;
|
|
|
|
|
import kr.xit.biz.ens.model.pplus.PplusDTO.PpStatusResMapping;
|
|
|
|
|
import kr.xit.biz.ens.model.pplus.PplusDTO.PpStatusResponse;
|
|
|
|
|
import kr.xit.core.exception.BizRuntimeException;
|
|
|
|
|
import kr.xit.core.model.ApiResponseDTO;
|
|
|
|
|
@ -64,6 +66,7 @@ public class EnsBatchStatusService extends EgovAbstractServiceImpl implements IE
|
|
|
|
|
|
|
|
|
|
private final ApiWebClientUtil apiWebClient;
|
|
|
|
|
private final IEnsBatchMapper mapper;
|
|
|
|
|
private final EnsBatchExtractService extractService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <pre>
|
|
|
|
|
@ -197,15 +200,81 @@ public class EnsBatchStatusService extends EgovAbstractServiceImpl implements IE
|
|
|
|
|
CmmEnsBizUtils.getHeadeMap());
|
|
|
|
|
|
|
|
|
|
if(apiResult.getData() != null) {
|
|
|
|
|
PpStatusResponse resDTO = JsonUtils.toObjByObj(apiResult.getData(), PpStatusResponse.class);
|
|
|
|
|
final PpStatusResponse resDTO = JsonUtils.toObjByObj(apiResult.getData(), PpStatusResponse.class);
|
|
|
|
|
final String unitySndngMstId = resDTO.get연계식별키();
|
|
|
|
|
// 확인불가 -> 일반 오류상태 msg
|
|
|
|
|
//출력대기 -> 제작 전단계
|
|
|
|
|
//출력/봉입/우체국접수중 -> 제작 중
|
|
|
|
|
//제작발송완료 -> 제작 후 우체국접수, 후불결제시 과금대상
|
|
|
|
|
//접수취소 -> 제작 취소
|
|
|
|
|
final String processSttus = resDTO.get상태();
|
|
|
|
|
// 일반|등기|준등기|익일특급|선택등기
|
|
|
|
|
final String dlvr = resDTO.get배달();
|
|
|
|
|
|
|
|
|
|
if("OK".equals(resDTO.get결과())){
|
|
|
|
|
//String start
|
|
|
|
|
|
|
|
|
|
// 실패 처리
|
|
|
|
|
if(Arrays.asList("확인불가","접수취소").contains(processSttus)){
|
|
|
|
|
extractService.updatePplusSndngMstFailStatus(unitySndngMstId, "send-fail", resDTO.get결과(), processSttus, "[send] Post Plus 발송(Accept)요청 실패");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PpStatusResMapping resMapDTO = PpStatusResMapping.builder()
|
|
|
|
|
.unitySndngMastrId(unitySndngMstId)
|
|
|
|
|
.processSttus(processSttus)
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
// 일반우편
|
|
|
|
|
if("일반".equals(dlvr)){
|
|
|
|
|
if("제작발송완료".equals(processSttus)) resMapDTO.setDlvrSttus("배달");
|
|
|
|
|
mapper.updatePplusSndStatus(resMapDTO);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// post plus 상태 변경
|
|
|
|
|
mapper.updatePplusSndStatus(resMapDTO);
|
|
|
|
|
|
|
|
|
|
// 제작발송완료 -> 종적추적
|
|
|
|
|
if("제작발송완료".equals(processSttus)){
|
|
|
|
|
//TODO 종적추적
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
//TODO :: 실패처리가 필요한 경우 추가
|
|
|
|
|
// 에러메세지 - resDTO.get비고()
|
|
|
|
|
extractService.updatePplusSndngMstFailStatus(unitySndngMstId, "send-fail", resDTO.get결과(), resDTO.get비고(), "[send] Post Plus 발송(Accept)요청 실패");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void processOk(){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|