feat: batch KT-BC send

dev
gitea-관리자 2 years ago
parent 17dbb04d03
commit d5d147435b

@ -1,19 +1,15 @@
package kr.xit.biz.kt.service;
import egovframework.com.cmm.EgovMessageSource;
import java.util.ArrayList;
import java.util.List;
import javax.transaction.Transactional;
import kr.xit.biz.cmm.service.ICmmEnsCacheService;
import kr.xit.biz.common.ApiConstants;
import kr.xit.biz.common.ApiConstants.SignguCode;
import kr.xit.biz.ens.model.cmm.CmmEnsRequestDTO;
import kr.xit.biz.ens.model.cmm.CmmEnsRlaybsnmDTO;
import kr.xit.biz.ens.model.kt.KtCommonDTO.ErrorMsg;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtCommonResponse;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtMnsRequest;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendReqData;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendRequest;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMsgRsltReqData;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMsgRsltRequest;
import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenResponse;
@ -25,7 +21,6 @@ import kr.xit.ens.cmm.CmmEnsUtils;
import kr.xit.ens.kt.service.IKtMmsService;
import kr.xit.ens.kt.web.KtMmsInboundController;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.beans.factory.annotation.Value;
@ -100,54 +95,54 @@ public class BizKtMmsService extends EgovAbstractServiceImpl implements IBizKtMm
}
@Override
public KtCommonResponse mainSend(final KtMnsRequest reqDTO) {
List<KtMainSendReqData> mainSendReqs = new ArrayList<>();
KtMainSendReqData reqData = KtMainSendReqData.builder()
.srcKey("db")
.srcSeq("1")
.ci("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678")
.mmsDtlCnts("db")
// TODO:: mybatis에서 처리 - SHA2(teusd.unity_sndng_detail_id, 256)
//.docHash(Base64.getEncoder().encodeToString("db".getBytes(StandardCharsets.UTF_8)))
.docHash("db")
.mmsTitle("")
.url(SignguCode.TRAFFIC.getCode().equals(reqDTO.getSignguCode())? DP_CALLBACK_URL : ME_CALLBACK_URL) //distInfoCrtYn - N이면 필수
.mmsBinary("")
.fileFmat("")
.mdn("")
.distInfoCrtYn("Y")
//.infoCfrmStr("")
.build();
mainSendReqs.add(reqData);
List<List<KtMainSendReqData>> parts = ListUtils.partition(mainSendReqs, MAX_KT_SEND_CNT);
KtCommonResponse ktTokenResponse = null;
for(List<KtMainSendReqData> reqs : parts) {
ktTokenResponse = ktMmsService.mainSend(
KtMainSendRequest.builder()
.signguCode(reqDTO.getSignguCode())
.ffnlgCode(reqDTO.getFfnlgCode())
//.serviceCd("cache")
//.serviceKey("cache")
.msgCd("db")
//.msgType("2")
.makeDt("123456789012db")
.sndnExTime("123456789012db")
.exTime("123456789012db")
//.mType("4")
.sndnTotCnt(reqs.size()) //-> 요청건수 count
.mmsBinary("db")
.fileFmat("db")
.testSndnYn("N")
.reqs(reqs)
.build()
);
}
return ktTokenResponse;
}
// @Override
// public KtCommonResponse mainSend(final KtMnsRequest reqDTO) {
// List<KtMainSendReqData> mainSendReqs = new ArrayList<>();
//
// KtMainSendReqData reqData = KtMainSendReqData.builder()
// .srcKey("db")
// .srcSeq("1")
// .ci("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678")
// .mmsDtlCnts("db")
// // TODO:: mybatis에서 처리 - SHA2(teusd.unity_sndng_detail_id, 256)
// //.docHash(Base64.getEncoder().encodeToString("db".getBytes(StandardCharsets.UTF_8)))
// .docHash("db")
// .mmsTitle("")
// .url(SignguCode.TRAFFIC.getCode().equals(reqDTO.getSignguCode())? DP_CALLBACK_URL : ME_CALLBACK_URL) //distInfoCrtYn - N이면 필수
// .mmsBinary("")
// .fileFmat("")
// .mdn("")
// .distInfoCrtYn("Y")
// //.infoCfrmStr("")
// .build();
// mainSendReqs.add(reqData);
//
// List<List<KtMainSendReqData>> parts = ListUtils.partition(mainSendReqs, MAX_KT_SEND_CNT);
// KtCommonResponse ktTokenResponse = null;
//
// for(List<KtMainSendReqData> reqs : parts) {
// ktTokenResponse = ktMmsService.mainSend(
// KtMainSendRequest.builder()
// .signguCode(reqDTO.getSignguCode())
// .ffnlgCode(reqDTO.getFfnlgCode())
// //.serviceCd("cache")
// //.serviceKey("cache")
// .msgCd("db")
// //.msgType("2")
// .makeDt("123456789012db")
// .sndnExTime("123456789012db")
// .exTime("123456789012db")
// //.mType("4")
// .sndnTotCnt(reqs.size()) //-> 요청건수 count
// .mmsBinary("db")
// .fileFmat("db")
// .testSndnYn("N")
// .reqs(reqs)
// .build()
// );
// }
// return ktTokenResponse;
// }
/**
* <pre>

@ -25,7 +25,7 @@ import kr.xit.biz.ens.model.kt.KtTokenDTO.KtTokenResponse;
public interface IBizKtMmsService {
KtTokenResponse requestToken(final KtMnsRequest paramDTO);
KtCommonResponse mainSend(final KtMnsRequest reqDTO);
// KtCommonResponse mainSend(final KtMnsRequest reqDTO);
KtCommonResponse messageResult(final KtMsgRsltRequest reqDTO);
// KtCommonResponse beforeSend(final KtBefSendRequest reqDTO);

@ -4,7 +4,6 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.tags.Tag;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtCommonResponse;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtMnsRequest;
import kr.xit.biz.kt.service.IBizKtMmsService;
import kr.xit.core.model.ApiResponseDTO;
@ -73,24 +72,24 @@ public class BizKtMmsController {
return ApiResponseDTO.success(service.requestToken(paramDTO));
}
@io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
@Content(
mediaType = "application/json",
examples = {
@ExampleObject(
name = "교통시설운영처",
value = PARAM1),
@ExampleObject(
name = "승화원",
value = PARAM2)
})
})
@Operation(summary = "본문자 수신 등록 요청(BC-AG-SN-002)", description = "본문자 수신 등록 요청(BC-AG-SN-002)")
@PostMapping(value = "/mainSend", produces = MediaType.APPLICATION_JSON_VALUE)
public IApiResponse mainSend(@RequestBody final KtMnsRequest reqDTO) {
KtCommonResponse dto = service.mainSend(reqDTO);
return ApiResponseDTO.success(dto);
}
// @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, content = {
// @Content(
// mediaType = "application/json",
// examples = {
// @ExampleObject(
// name = "교통시설운영처",
// value = PARAM1),
// @ExampleObject(
// name = "승화원",
// value = PARAM2)
// })
// })
// @Operation(summary = "본문자 수신 등록 요청(BC-AG-SN-002)", description = "본문자 수신 등록 요청(BC-AG-SN-002)")
// @PostMapping(value = "/mainSend", produces = MediaType.APPLICATION_JSON_VALUE)
// public IApiResponse mainSend(@RequestBody final KtMnsRequest reqDTO) {
// KtCommonResponse dto = service.mainSend(reqDTO);
// return ApiResponseDTO.success(dto);
// }
//
// /*

@ -4,11 +4,11 @@ import java.util.List;
import java.util.Optional;
import kr.xit.biz.ens.model.EnsDTO;
import kr.xit.biz.ens.model.EnsDTO.SndngMssageParam;
import kr.xit.biz.ens.model.EnsKtBcDTO.KtBcMst;
import kr.xit.biz.ens.model.cntc.CntcDTO;
import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO.BulkStatus;
import kr.xit.biz.ens.model.kakao.KkopayDocDTO.OneTimeToken;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendReqData;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendRequest;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
/**
@ -289,7 +289,7 @@ public interface IEnsBatchMapper {
*/
<T> int updateProcessSttusSndngMst(final T t);
Optional<KtMainSendRequest> selectKtBcSendMstTgtInfo(final SndngMssageParam tgtDTO);
Optional<KtBcMst> selectKtBcMstTgtInfo(final SndngMssageParam tgtDTO);
List<KtMainSendReqData> selectKtBcSendTgts(final SndngMssageParam tgtDTO);
//----------------------------------------------------------------------
// send

@ -10,7 +10,6 @@ import javax.validation.constraints.Digits;
import javax.validation.constraints.Size;
import kr.xit.biz.common.ApiConstants;
import kr.xit.biz.ens.model.cmm.CmmEnsRequestDTO;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendRequest;
import kr.xit.core.biz.model.AuditFields;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -999,392 +998,4 @@ public class EnsDTO {
private String sndngProcessSttus = ApiConstants.SndngProcessStatus.ACCEPT.getCode();
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
public static class KtBcSendTgtInfo extends KtMainSendRequest { //KtBcSendReqData {
@Builder.Default
private String sndngTyCode = "ENS";
/**
* 릿 ID
*/
private String tmplatId;
/**
*
*/
private String tgtYn;
/**
* ID
*/
private String unitySndngMastrId;
/**
* ID
*/
private String unitySndngDetailId;
/**
*
*/
@Builder.Default
private String sndngProcessSttus = ApiConstants.SndngProcessStatus.ACCEPT.getCode();
// //-------------------------------------------------------------------
// // 필수
// //-------------------------------------------------------------------
// /**
// * <pre>
// * 서비스 코드: 필수 - 20
// * BizCenter에서 발행한 기관의 서비스 코드
// * </pre>
// */
// private String serviceCd;
//
// /**
// * <pre>
// * 서비스 코드: 필수 - 16
// * BizCenter에서 발행한 기관의 서비스 코드 인증키
// * </pre>
// */
// private String serviceKey;
//
// /**
// * <pre>
// * 문서 코드: 필수 - 5
// * 문서코드에 따라 발신번호 Mapping
// * </pre>
// */
// private String msgCd;
//
// /**
// * <pre>
// * 문발송 메시지 타입: 필수 - 1
// * RCS/xMS (RCS :1, xMS: 2)
// * </pre>
// */
// private final String msgType = "2";
//
// /**
// * <pre>
// * 발송시작일시: 필수 - 14
// * 메시지 발송 처리 시작일시(YYYYMMDDHHMiSS)
// * </pre>
// */
// private String makeDt;
//
// /**
// * <pre>
// * 발송마감시간: 필수 - 14
// * 메시지 발송에 대한 마감시간(YYYYMMDDHHMiSS)
// * </pre>
// */
// private String sndnExTime;
//
// /**
// * <pre>
// * 열람마감시간: 필수 - 14
// * 문서열람에 대한 마감시간(YYYYMMDDHHMiSS)
// * </pre>
// */
// private String exTime;
//
// /**
// * <pre>
// * 문서종류: 필수 - 3
// * 메시지타입(과금코드)
// * 3: LMS
// * 4: MMS
// * 6: RCS
// * </pre>
// */
// private final String m_type = "4";
//
// /**
// * <pre>
// * 발송요청건수: 필수 - 8
// * 발송메세지의 총 건수
// * </pre>
// */
// private Integer sndnTotCnt;
//
// private List<KtMainSendReqData> reqs;
// //-------------------------------------------------------------------
//
// /**
// * <pre>
// * 대행사 코드: max 10
// * msg_type 1(RCS 메세지인 경우)인 경우 필수
// * LG U+에서 사용되며 기관에서 등록한 대행사 코드의 값 default 'lguplus'
// * </pre>
// */
// private String agencyId;
//
// /**
// * <pre>
// * 부서 코드: max 5
// * 기관에 따른 부서 코드
// * </pre>
// */
// private String deptCd;
//
// /**
// * <pre>
// * 발송 번호: max 20
// * 문서코드 등록시 발신번호 Mapping
// * Biz.center 등록시 통신사실증명원 등록(민간)
// *
// * API에 있는 경우 API 발송 번호를 우선으로 하고, 없는 경우 문서코드 등록시 입력된 발신번호를 사용한다.
// * </pre>
// */
// private String sndTelNo;
//
// /**
// * <pre>
// * 메세지발송구분: max 1
// * 3: 하이브리드
// *
// * 값이 null인 경우 default 1(OPT_OUT 본문)로 P/F 전송 됨
// * 마케팅수신동의 고객인 경우 5 또는 7 코드를 전송해야 함.
// * </pre>
// */
// private final String optType = "1";
//
// /**
// * <pre>
// * RCS 브랜드홈 값 : max 30
// * msg_type 1(RCS 메시지)인 경우 필수
// * </pre>
// */
// private String brandId;
//
// /**
// * <pre>
// * 토큰확인대체여부 : Y|N
// * Y 인경우 본인인증시 열람확인처리
// * </pre>
// */
// private String tknRpmtYn;
//
// /**
// * <pre>
// * 열람확인대체여부 : Y|N
// * Y 인경우 토큰인증시 열람확인처리
// * </pre>
// */
// private String rdngRpmtYn;
//
// /**
// * <pre>
// * MMS 바이너리 : 가변 - MMS 필수
// * 이미지 등 Binary (용량 : 300KB 이내)
// * </pre>
// */
// private String mmsBinary;
//
// /**
// * <pre>
// * MMS 바이너리 파일포맷(확장자) : 10
// * MMS 바이너리 값이 있는 경우 필수
// * </pre>
// */
// private String fileFmat;
//
// /**
// * <pre>
// * 마케팅 수신 동의 : 1
// * Y : 동의, N : 비동의 (NULL인 경우 비동의 처리)
// * </pre>
// */
// private String mktnRcveCsyn;
//
// /**
// * <pre>
// * 송신자 플랫폼 ID : max 25
// * 타 중계기관(포스토피아)에서 발송 요청인 경우 필수
// * 송신중계자(포스토피아) 플랫폼 ID
// * </pre>
// */
// private String sndPlfmId;
//
// /**
// * <pre>
// * 송신 공인전자주소 : max 100
// * 타 중계기관(포스토피아)에서 발송 요청인 경우 필수
// * 중계자 전자유통정보 등록을 위한 송신 공인전자주소
// * </pre>
// */
// private String sndNpost;
//
// /**
// * <pre>
// * 송신일시 : 14(YYYYMMDDHHMISS)
// * 타 중계기관(포스토피아)에서 발송 요청인 경우 필수
// * 중계자간의 발송시 유통정보의 송신일시는 송신중계자의 송신일시로 적용
// * </pre>
// */
// private String sndDate;
//
// /**
// * <pre>
// * 다회선 사용자 처리구분 : 1
// * 1 : 다회선 모두 발송
// * 2 : 다회선 발송 제외(default) (NULL 일경우 동일취급)
// * 3 : 다회선 중 임의 1회선 발송
// * </pre>
// */
// private String multiMblPrcType;
//
// /**
// * <pre>
// * 테스트 발송여부 : 1
// * Y : 테스트 발송 (KISA 연동, 통계, 이력 제외)
// * N : 실발송(NULL일경우 동일 취급)
// * </pre>
// */
// private String testSndnYn;
//
// /**
// * <pre>
// * 수신거부해제 여부 : 1
// * Y : 해제 (수신거부 시 수신거부 해제)
// * N : 미해제(NULL일경우 동일취급)
// * </pre>
// */
// private String rcvRfrlYn;
//
//
// /**
// * <pre>
// * 재열람 일수 : max 3
// * 값이 있을 경우 발송시작일시+재열람 일수 동안 재열람
// * 값이 없을 경우 열람마감이후 열람 불가
// * </pre>
// */
// private String reopenDay;
}
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// @SuperBuilder
// public static class KtBcSendReqData {
// //-------------------------------------------------------------------
// // 필수
// //-------------------------------------------------------------------
// /**
// * 관리키 : 고객메시지 건별 Unique key
// */
// private String srcKey;
//
// /**
// * 리스트순번 : max 8자리
// */
// private String srcSeq;
//
// /**
// * 개인식별코드 : 88 자리
// */
// private String ci;
//
// /**
// * <pre>
// * MMS 상세내용 : max 4000
// * URL 없음
// * {#INFO_CFRM_STR}, {#RCVE_RF_STR} 문자열이 없는 경우 요청 거부 처리 함.
// * 단, 유통정보미생성여부가 'Y'인 경우 {#RCVE_RF_STR} 문자열만 체크.
// * </pre>
// */
// private String mmsDtlCnts;
//
// /**
// * 문서해시 : max 100
// */
// private String docHash;
// //-------------------------------------------------------------------
//
// /**
// * <pre>
// * MMS 제목 : max 40
// * utf-8 한글20자
// * </pre>
// */
// private String mmsTitle;
//
// /**
// * <pre>
// * RCS 상세내용 : max 4000 - RCS|Binary 전송시 필수
// * RCS 메시지 fallback 시 mms_dtl_cnts를 사용하며
// * RCS title은 mms_title 항목을 함께 사용한다.
// * </pre>
// */
// private String rcsDtlCnts;
//
// /**
// * <pre>
// * 연결 URL : max 1000
// * dist_info_crt_yn의 값이 'Y'가 아닌 경우 필수
// * </pre>
// */
// @Setter
// private String url;
//
// /**
// * <pre>
// * MMS 바이너리 : 가변 - MMS 필수
// * 이미지 등 Binary (용량 : 300KB 이내)
// * </pre>
// */
// private String mmsBinary;
//
// /**
// * <pre>
// * MMS 바이너리 파일포맷(확장자) : 10
// * MMS 바이너리 값이 있는 경우 필수
// * </pre>
// */
// private String fileFmat;
//
// /**
// * <pre>
// * 개인휴대전화번호 : 11 자리
// * 특정 MDN으로 발송할 경우
// * </pre>
// */
// private String mdn;
//
// /**
// * <pre>
// * 유통정보 미생성여부 : Y|N
// * Y : 본문자 발송 중 안내문확인하기 문구 및 URL이 표기 되지 않아야 함.(KISA 유통정보 생성 하지 않음)
// * N Or NULL인 경우 안내문확인하기 문구 및 URL이 표기
// * </pre>
// */
// private String distInfoCrtYn;
//
// /**
// * <pre>
// * 안내문 확인하기 치환문구 : max 50
// * 안내문 확인하기 예약어로써 API에 추가 될 {#INFO_CFRM_STR} 항목에 있는 문구를 치환 하여 사용 한다.
// * 항목이 NULL인 경우 default로 아래 문구를 사용 한다.
// * ‘○ 안내문 확인하기 :
// * RCS 버튼명 사용이 가능(한글은 최대 17자 권고)
// * </pre>
// */
// private String infoCfrmStr;
//
// /**
// * <pre>
// * 수신거부 및 수신 휴대폰 지정하기 치환문구 : max 50
// * 수신거부 및 수신 휴대폰 지정하기 예약어로써 API에 추가 될 {#RCVE_RF_STR} 항목에 있는 문구를 치환하여 사용 한다.
// * 항목이 NULL인 경우 default로 아래 문구를 사용 한다.
// * "○ 수신거부 및 수신 휴대폰 지정하기 : "
// * RCS 버튼명 사용이 가능(한글은 최대 17자 권고)
// * </pre>
// */
// private String rcveRfStr;
// }
}

@ -0,0 +1,70 @@
package kr.xit.biz.ens.model;
import kr.xit.biz.common.ApiConstants;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* <pre>
* description : tb_ens_ Entity DTO
*
* packageName : kr.xit.biz.ens.model
* fileName : EnsDTO
* author : limju
* date : 2023-08-31
* ======================================================================
*
* ----------------------------------------------------------------------
* 2023-08-31 limju
*
* </pre>
*/
public class EnsKtBcDTO {
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
public static class KtBcMst extends KtMainSendRequest { //KtBcSendReqData {
@Builder.Default
private String sndngTyCode = "ENS";
/**
* 릿 ID
*/
private String tmplatId;
/**
*
*/
private String tgtYn;
/**
* ID
*/
private String unitySndngMastrId;
/**
* ID
*/
private String unitySndngDetailId;
/**
* ID
*/
private String sndngMastrId;
/**
*
*/
@Builder.Default
private String sndngProcessSttus = ApiConstants.SndngProcessStatus.ACCEPT.getCode();
}
}

@ -19,6 +19,7 @@ import kr.xit.biz.common.ApiConstants.SndngSeCode;
import kr.xit.biz.ens.mapper.IEnsBatchMapper;
import kr.xit.biz.ens.model.EnsDTO;
import kr.xit.biz.ens.model.EnsDTO.SendKakaoTgt;
import kr.xit.biz.ens.model.EnsKtBcDTO.KtBcMst;
import kr.xit.biz.ens.model.cntc.CntcDTO;
import kr.xit.biz.ens.model.kakao.KkopayDocAttrDTO.Receiver;
import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO;
@ -30,7 +31,6 @@ import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO.BulkStatusResponses;
import kr.xit.biz.ens.model.kakao.KkopayDocBulkDTO.PropertyBulk;
import kr.xit.biz.ens.model.kt.KtCommonDTO.KtCommonResponse;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendReqData;
import kr.xit.biz.ens.model.kt.KtMmsSendDTO.KtMainSendRequest;
import kr.xit.core.exception.BizRuntimeException;
import kr.xit.core.model.ApiResponseDTO;
import kr.xit.core.spring.util.ApiWebClientUtil;
@ -619,7 +619,7 @@ public class EnsBatchService extends EgovAbstractServiceImpl implements IEnsBatc
* make
* 1. : {@link IEnsBatchMapper#insertSndngMst insertSndngMst}
* - tb_ens_sndng_mastr
* 2. : {@link #insertEnsDetailByTry}
* 2. : {@link #makeEnsDetailByTry}
* - KAKAO - tb_ens_kakao_my_doc
* - E_GREEN - tb_ens_post_sndng
* - SMS - tb_ens_sms_sndng
@ -638,7 +638,7 @@ public class EnsBatchService extends EgovAbstractServiceImpl implements IEnsBatc
}
// 2. detail
int insCnt = insertEnsDetailByTry(dto);
int insCnt = makeEnsDetailByTry(dto);
if (insCnt != dto.getSndngCo()) {
throw BizRuntimeException.create(
String.format("[make]상세 데이타 생성 실패-발송건수[%d]와 생성건수[%d] 불일치", dto.getSndngCo(),
@ -672,7 +672,7 @@ public class EnsBatchService extends EgovAbstractServiceImpl implements IEnsBatc
* @return int
* </pre>
*/
private int insertEnsDetailByTry(final EnsDTO.SndngMssageParam dto) {
private int makeEnsDetailByTry(final EnsDTO.SndngMssageParam dto) {
String[] tryVal = {
Checks.checkVal(dto.getTry1(), ""),
Checks.checkVal(dto.getTry2(), ""),
@ -945,14 +945,14 @@ public class EnsBatchService extends EgovAbstractServiceImpl implements IEnsBatc
private void sendBulkKtBc(final EnsDTO.SndngMssageParam tgtDTO) {
final String url = apiHost + apiKtBcBulkSend;
KtMainSendRequest infoDto = mapper.selectKtBcSendMstTgtInfo(tgtDTO)
KtBcMst mstDTO = mapper.selectKtBcMstTgtInfo(tgtDTO)
.orElseThrow(() -> BizRuntimeException.create("KT BC 본문자 수신 등록 대상이 존재 하지 않습니다 "));
List<KtMainSendReqData> sendReqs = mapper.selectKtBcSendTgts(tgtDTO);
//TODO :: KKO 기준 작성 필요
final List<BulkSendReq> bulkList = new ArrayList<>();
final List<String> mstIdList = new ArrayList<>();
final List<String> mstIdList = List.of(mstDTO.getSndngMastrId());
// setKtBcSendBulks(list, bulkList, mstIdList);
@ -969,11 +969,11 @@ public class EnsBatchService extends EgovAbstractServiceImpl implements IEnsBatc
List<ApiResponseDTO> apiResults = partitions.stream()
.map(bulkSendList -> {
infoDto.setReqs(bulkSendList);
mstDTO.setReqs(bulkSendList);
return apiWebClient.exchange(
url,
HttpMethod.POST,
infoDto,
mstDTO,
ApiResponseDTO.class,
getHeadeMap());
}

@ -35,8 +35,6 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/batch/ens/v1")
public class EnsBatchController {
private static final String SNDNG_PROCESS_STTUS = "sndngProcessSttus";
private final IEnsBatchService service;
@Operation(summary = "통합문서 접수", description = "통합문서 접수")

@ -648,8 +648,8 @@
WHERE tess.sndng_mastr_id = #{sndngMastrId}
</select>
<select id="selectKtBcSendMstTgtInfo" resultType="kr.xit.biz.ens.model.EnsDTO$KtBcSendTgtInfo">
/** ens-mysql-mapper|selectKtBcSendMstTgtInfo-Kt 본문자 수신 대상 정보 조회|julim */
<select id="selectKtBcMstTgtInfo" resultType="kr.xit.biz.ens.model.EnsKtBcDTO$KtBcMst">
/** ens-mysql-mapper|selectKtBcMstTgtInfo-Kt 본문자 수신 대상 정보 조회|julim */
SELECT tesm.sndng_mastr_id /* 발송마스터 ID */
, tesm.unity_sndng_mastr_id /* 통합발송마스터 ID */
, tesm.signgu_code /* 시군구 코드 */

Loading…
Cancel
Save