refactor: apply naming convention for MCI interface IO objects (CLCNNB00001_I, CUST_INQ_001_I) and separate layers
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 24s
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 24s
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io
|
||||
* @className CLCNNB00001_I
|
||||
* @description 보장분석결과조회 MCI 요청 전문
|
||||
* @author 0986406
|
||||
* @create 2026.09.01
|
||||
*/
|
||||
@Data
|
||||
public class CLCNNB00001_I {
|
||||
|
||||
@JsonProperty("unfcPrbuIrcoAddu")
|
||||
private UnfcPrbuIrcoAdduDto unfcPrbuIrcoAddu;
|
||||
|
||||
@JsonProperty("dalScCd")
|
||||
private String dalScCd;
|
||||
|
||||
@JsonProperty("cstSucoRltyCd")
|
||||
private String cstSucoRltyCd;
|
||||
|
||||
@JsonProperty("csNo")
|
||||
private String csNo;
|
||||
|
||||
@JsonProperty("rdreNo")
|
||||
private String rdreNo;
|
||||
|
||||
@JsonProperty("unfcPvsCalReqYn")
|
||||
private String unfcPvsCalReqYn;
|
||||
|
||||
@JsonProperty("kcisPymmTnnrRequest")
|
||||
private String kcisPymmTnnrRequest;
|
||||
|
||||
@JsonProperty("lmovYn")
|
||||
private String lmovYn;
|
||||
|
||||
@JsonProperty("genPsthApvTrgtYn")
|
||||
private String genPsthApvTrgtYn;
|
||||
|
||||
@JsonProperty("ircoLmovEcpbTrgtYn")
|
||||
private String ircoLmovEcpbTrgtYn;
|
||||
|
||||
@JsonProperty("digCalYn")
|
||||
private String digCalYn;
|
||||
|
||||
@JsonProperty("prbuIciDigCalYn")
|
||||
private String prbuIciDigCalYn;
|
||||
|
||||
@JsonProperty("sucoIspaBasDto")
|
||||
private SucoIspaBasDto sucoIspaBasDto;
|
||||
|
||||
@Data
|
||||
public static class UnfcPrbuIrcoAdduDto {
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class SucoIspaBasDto {
|
||||
@JsonProperty("ccnDalTypCd")
|
||||
private String ccnDalTypCd;
|
||||
|
||||
@JsonProperty("nwcnptCursCd")
|
||||
private String nwcnptCursCd;
|
||||
|
||||
@JsonProperty("induAsctScCd")
|
||||
private String induAsctScCd;
|
||||
|
||||
@JsonProperty("cepeOgnzNo")
|
||||
private String cepeOgnzNo;
|
||||
|
||||
@JsonProperty("cepePrafNo")
|
||||
private String cepePrafNo;
|
||||
|
||||
@JsonProperty("clmoOgnzNo")
|
||||
private String clmoOgnzNo;
|
||||
|
||||
@JsonProperty("clmoPrafNo")
|
||||
private String clmoPrafNo;
|
||||
|
||||
@JsonProperty("sucoYmd")
|
||||
private String sucoYmd;
|
||||
|
||||
@JsonProperty("ispDt")
|
||||
private String ispDt;
|
||||
|
||||
@JsonProperty("contYmd")
|
||||
private String contYmd;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io
|
||||
* @className CLCNNB00001_O
|
||||
* @description 보장분석결과조회 MCI 응답 전문
|
||||
* @author 0986406
|
||||
* @create 2026.09.01
|
||||
*/
|
||||
@Data
|
||||
public class CLCNNB00001_O {
|
||||
// 응답 전문 필드 정의 (필요에 따라 추가)
|
||||
private Object resultData;
|
||||
}
|
||||
@@ -47,8 +47,41 @@ public class MciCfpaClient {
|
||||
* @return 출력 객체
|
||||
*/
|
||||
public Object callCfpa0001(Onnba3011Request inDto) throws Exception {
|
||||
// 인터페이스 IO 객체 생성 및 매핑
|
||||
CLCNNB00001_I mciReq = new CLCNNB00001_I();
|
||||
mciReq.setDalScCd(inDto.getDalScCd());
|
||||
mciReq.setCstSucoRltyCd(inDto.getCstSucoRltyCd());
|
||||
mciReq.setCsNo(inDto.getCsNo());
|
||||
mciReq.setRdreNo(inDto.getRdreNo());
|
||||
mciReq.setUnfcPvsCalReqYn(inDto.getUnfcPvsCalReqYn());
|
||||
mciReq.setKcisPymmTnnrRequest(inDto.getKcisPymmTnnrRequest());
|
||||
mciReq.setLmovYn(inDto.getLmovYn());
|
||||
mciReq.setGenPsthApvTrgtYn(inDto.getGenPsthApvTrgtYn());
|
||||
mciReq.setIrcoLmovEcpbTrgtYn(inDto.getIrcoLmovEcpbTrgtYn());
|
||||
mciReq.setDigCalYn(inDto.getDigCalYn());
|
||||
mciReq.setPrbuIciDigCalYn(inDto.getPrbuIciDigCalYn());
|
||||
|
||||
if (inDto.getUnfcPrbuIrcoAddu() != null) {
|
||||
mciReq.setUnfcPrbuIrcoAddu(new CLCNNB00001_I.UnfcPrbuIrcoAdduDto());
|
||||
}
|
||||
|
||||
if (inDto.getSucoIspaBasDto() != null) {
|
||||
CLCNNB00001_I.SucoIspaBasDto sucoIspa = new CLCNNB00001_I.SucoIspaBasDto();
|
||||
sucoIspa.setCcnDalTypCd(inDto.getSucoIspaBasDto().getCcnDalTypCd());
|
||||
sucoIspa.setNwcnptCursCd(inDto.getSucoIspaBasDto().getNwcnptCursCd());
|
||||
sucoIspa.setInduAsctScCd(inDto.getSucoIspaBasDto().getInduAsctScCd());
|
||||
sucoIspa.setCepeOgnzNo(inDto.getSucoIspaBasDto().getCepeOgnzNo());
|
||||
sucoIspa.setCepePrafNo(inDto.getSucoIspaBasDto().getCepePrafNo());
|
||||
sucoIspa.setClmoOgnzNo(inDto.getSucoIspaBasDto().getClmoOgnzNo());
|
||||
sucoIspa.setClmoPrafNo(inDto.getSucoIspaBasDto().getClmoPrafNo());
|
||||
sucoIspa.setSucoYmd(inDto.getSucoIspaBasDto().getSucoYmd());
|
||||
sucoIspa.setIspDt(inDto.getSucoIspaBasDto().getIspDt());
|
||||
sucoIspa.setContYmd(inDto.getSucoIspaBasDto().getContYmd());
|
||||
mciReq.setSucoIspaBasDto(sucoIspa);
|
||||
}
|
||||
|
||||
// 인터페이스 호출
|
||||
Transfer<Object> resTransfer = mci.callTo(INTERFACE_CODE, inDto, Object.class);
|
||||
Transfer<CLCNNB00001_O> resTransfer = mci.callTo(INTERFACE_CODE, mciReq, CLCNNB00001_O.class);
|
||||
|
||||
// 응답 검증
|
||||
validateResponse(resTransfer);
|
||||
@@ -59,7 +92,7 @@ public class MciCfpaClient {
|
||||
return resTransfer.getBody();
|
||||
}
|
||||
|
||||
private void validateResponse(Transfer<Object> resTransfer) {
|
||||
private void validateResponse(Transfer<?> resTransfer) {
|
||||
log.info("응답 검증 로직 수행");
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io
|
||||
* @className CUST_INQ_001_I
|
||||
* @description 고객 정보 조회 샘플 MCI 요청 전문
|
||||
* @author 0986406
|
||||
* @create 2026.09.01
|
||||
*/
|
||||
@Data
|
||||
public class CUST_INQ_001_I {
|
||||
private String customerId;
|
||||
private String inquiryType;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io
|
||||
* @className CUST_INQ_001_O
|
||||
* @description 고객 정보 조회 샘플 MCI 응답 전문
|
||||
* @author 0986406
|
||||
* @create 2026.09.01
|
||||
*/
|
||||
@Data
|
||||
public class CUST_INQ_001_O {
|
||||
private Object resultData;
|
||||
}
|
||||
@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
|
||||
import io.shinhanlife.dap.mcc.dto.*;
|
||||
|
||||
public interface SampleMciToolService {
|
||||
Object inquiryCustomerInfo(io.shinhanlife.dap.mcc.service.impl.SampleMciToolServiceImpl.SampleMciReqDto req);
|
||||
Object inquiryCustomerInfo(io.shinhanlife.dap.mcc.service.impl.SampleMciToolServiceImpl.SampleMciRequest req);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.shinhanlife.dap.mcc.service.impl;
|
||||
|
||||
import io.shinhanlife.dap.mcc.infra.itrf.mci.sample.io.CUST_INQ_001_I;
|
||||
import io.shinhanlife.dap.common.adapter.sender.ShinhanMciSender;
|
||||
import io.shinhanlife.dap.common.integration.mci.dto.MciRequestWrapper;
|
||||
import io.shinhanlife.dap.common.integration.mci.dto.ShinhanCommonHeaderDto;
|
||||
@@ -39,7 +40,7 @@ public class SampleMciToolServiceImpl implements SampleMciToolService {
|
||||
|
||||
// AI가 인식할 파라미터 DTO
|
||||
@Data
|
||||
public static class SampleMciReqDto {
|
||||
public static class SampleMciRequest {
|
||||
private String customerId;
|
||||
private String inquiryType;
|
||||
}
|
||||
@@ -53,13 +54,12 @@ public class SampleMciToolServiceImpl implements SampleMciToolService {
|
||||
prompt = "고객 정보를 조회해줘.",
|
||||
mappingId = "CUST_INQ_001"
|
||||
)
|
||||
@Override
|
||||
public Object inquiryCustomerInfo(SampleMciReqDto req) {
|
||||
public Object inquiryCustomerInfo(SampleMciRequest req) {
|
||||
log.info("[MCI Tool] 고객 정보 조회 요청 수신. 고객ID: {}", req.getCustomerId());
|
||||
|
||||
try {
|
||||
// 1. MCI 전문 통신을 위한 Wrapper 객체 생성
|
||||
MciRequestWrapper<SampleMciReqDto> wrapper = new MciRequestWrapper<>();
|
||||
MciRequestWrapper<CUST_INQ_001_I> wrapper = new MciRequestWrapper<>();
|
||||
|
||||
// 2. 공통 헤더 세팅 (인터페이스 ID, 서비스 ID 등 업무에 맞게 설정)
|
||||
ShinhanCommonHeaderDto header = new ShinhanCommonHeaderDto();
|
||||
@@ -67,8 +67,11 @@ public class SampleMciToolServiceImpl implements SampleMciToolService {
|
||||
header.setRcvSvcId("INQ9040");
|
||||
wrapper.setTgrmCmnnhddValu(header);
|
||||
|
||||
// 3. 비즈니스 데이터(Body) 세팅
|
||||
wrapper.setBody(req);
|
||||
// 3. 비즈니스 데이터(Body) 세팅 (인터페이스 IO 매핑)
|
||||
CUST_INQ_001_I mciReq = new CUST_INQ_001_I();
|
||||
mciReq.setCustomerId(req.getCustomerId());
|
||||
mciReq.setInquiryType(req.getInquiryType());
|
||||
wrapper.setBody(mciReq);
|
||||
|
||||
// 4. ShinhanMciSender를 통해 실제 연동 수행 및 응답 수신
|
||||
log.info("[MCI Tool] ShinhanMciSender 연동 시작... (URL: {})", mciTargetUrl);
|
||||
|
||||
Reference in New Issue
Block a user