From d30965b8559a014c4bac9088793fc66ff0920fa9 Mon Sep 17 00:00:00 2001 From: "Jonguk. Lim" Date: Tue, 10 Sep 2024 11:01:10 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=B9=B4=EC=B9=B4=EC=98=A4=ED=86=A1=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=98=EC=98=81=20-=20send=20=20=20=20?= =?UTF-8?q?=20=20=20-=20SendDetailKkoTalkDTO=20=ED=81=B4=EB=9E=98=EC=8A=A4?= =?UTF-8?q?=20=EB=B6=84=EB=A6=AC=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kkotalk/AcceptByKkoTalkEventListener.java | 6 +- .../support/kkotalk/AcceptDataByKkoTalk.java | 24 ++++---- .../kkomydoc/code/KkoMydocStatusCd.java | 6 +- .../kkotalk/domain/SendDetailKkoTalk.java | 1 - .../kkotalk/mapper/IKkoTalkMapper.java | 14 ++--- .../ens/modules/kkotalk/model/KkotalkDTO.java | 38 ------------- .../kkotalk/model/SendDetailKkoTalkDTO.java | 57 +++++++++++++++++++ .../service/support/KkoTalkAcceptor.java | 6 +- .../kkotalk/service/support/KkoTalkMaker.java | 5 +- .../service/support/KkoTalkSender.java | 20 +++---- .../kkotalk/web/KkotalkApiController.java | 26 ++++----- .../kkotalk/web/KkotalkController.java | 4 +- .../modules/iup-kkotalk-mapper.xml | 14 ++--- 13 files changed, 113 insertions(+), 108 deletions(-) create mode 100644 src/main/java/cokr/xit/ens/modules/kkotalk/model/SendDetailKkoTalkDTO.java diff --git a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptByKkoTalkEventListener.java b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptByKkoTalkEventListener.java index dd6bf22..c201b2b 100644 --- a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptByKkoTalkEventListener.java +++ b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptByKkoTalkEventListener.java @@ -24,7 +24,7 @@ import lombok.extern.slf4j.*; @Slf4j @Component @RequiredArgsConstructor -public class AcceptByKkoTalkEventListener implements AcceptDataEventListener { +public class AcceptByKkoTalkEventListener implements AcceptDataEventListener { private final ApplicationEventPublisher applicationEventPublisher; private final KkoTalkService kkoTalkService; @@ -42,7 +42,7 @@ public class AcceptByKkoTalkEventListener implements AcceptDataEventListener resultInfo = (Map) responseVO.getResultInfo(); Long sendMastId = (Long) resultInfo.get("sendMastId"); - List sendDetails = (List) resultInfo.get("sendDetails"); + List sendDetails = (List) resultInfo.get("sendDetails"); if (EnsErrCd.OK.equals(responseVO.getErrCode())) { Map sendDetailIdMap = convertSendDetailIdMap(sendDetails); this.acceptSuccess(ev.getIntgrnSendDetails(), POST_SE_CD, sendDetailIdMap); @@ -88,7 +88,7 @@ public class AcceptByKkoTalkEventListener implements AcceptDataEventListener convertSendDetailIdMap(List sendDetails) { + public Map convertSendDetailIdMap(List sendDetails) { Map sendDetailIdMap = sendDetails.stream() .map(row -> { diff --git a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptDataByKkoTalk.java b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptDataByKkoTalk.java index cd7487c..3330a74 100644 --- a/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptDataByKkoTalk.java +++ b/src/main/java/cokr/xit/ens/modules/common/ctgy/intgrnnoti/service/support/kkotalk/AcceptDataByKkoTalk.java @@ -1,20 +1,16 @@ package cokr.xit.ens.modules.common.ctgy.intgrnnoti.service.support.kkotalk; -import java.time.format.DateTimeFormatter; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import java.time.format.*; +import java.util.*; +import java.util.stream.*; -import cokr.xit.ens.core.model.EnsBillAcptReqDTO; -import cokr.xit.ens.core.utils.CmmnUtil; -import cokr.xit.ens.core.utils.crypto.AES256; -import cokr.xit.ens.core.utils.crypto.Crypto; -import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.IntgrnSendDetail; -import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.IntgrnSendMast; -import cokr.xit.ens.modules.common.ctgy.intgrnnoti.service.support.AcceptData; -import cokr.xit.ens.modules.kkomydoc.model.config.XitProperty; -import cokr.xit.ens.modules.kkotalk.model.KkotalkApiDTO; -import cokr.xit.ens.modules.kkotalk.model.KkotalkDTO; +import cokr.xit.ens.core.model.*; +import cokr.xit.ens.core.utils.*; +import cokr.xit.ens.core.utils.crypto.*; +import cokr.xit.ens.modules.common.ctgy.intgrnnoti.domain.*; +import cokr.xit.ens.modules.common.ctgy.intgrnnoti.service.support.*; +import cokr.xit.ens.modules.kkomydoc.model.config.*; +import cokr.xit.ens.modules.kkotalk.model.*; import cokr.xit.ens.modules.kkotalk.model.config.Document; // FIXME: 카카오톡 신규 추가 diff --git a/src/main/java/cokr/xit/ens/modules/kkomydoc/code/KkoMydocStatusCd.java b/src/main/java/cokr/xit/ens/modules/kkomydoc/code/KkoMydocStatusCd.java index ce42f49..4e9762d 100644 --- a/src/main/java/cokr/xit/ens/modules/kkomydoc/code/KkoMydocStatusCd.java +++ b/src/main/java/cokr/xit/ens/modules/kkomydoc/code/KkoMydocStatusCd.java @@ -1,9 +1,7 @@ package cokr.xit.ens.modules.kkomydoc.code; -import cokr.xit.ens.modules.common.code.IntgrnDtlStatCd; -import cokr.xit.ens.modules.common.code.IntgrnDtlStatMapperType; -import lombok.Getter; -import lombok.RequiredArgsConstructor; +import cokr.xit.ens.modules.common.code.*; +import lombok.*; /** *
    diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/domain/SendDetailKkoTalk.java b/src/main/java/cokr/xit/ens/modules/kkotalk/domain/SendDetailKkoTalk.java index 2c4b07d..9387140 100644 --- a/src/main/java/cokr/xit/ens/modules/kkotalk/domain/SendDetailKkoTalk.java +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/domain/SendDetailKkoTalk.java @@ -169,7 +169,6 @@ public class SendDetailKkoTalk extends BaseEntity { private String mkTmpltMsgJsonData; @Enumerated(EnumType.STRING) - @Column(name = "status", nullable = false, length = 30) @Setter private KkoTalkStatusCd status; diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/mapper/IKkoTalkMapper.java b/src/main/java/cokr/xit/ens/modules/kkotalk/mapper/IKkoTalkMapper.java index c0fd595..ed03c4d 100644 --- a/src/main/java/cokr/xit/ens/modules/kkotalk/mapper/IKkoTalkMapper.java +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/mapper/IKkoTalkMapper.java @@ -25,17 +25,17 @@ import cokr.xit.ens.modules.kkotalk.model.*; // FIXME: 카카오톡 신규 추가 @Mapper public interface IKkoTalkMapper { - void saveSndDtlKkoTalk(KkotalkDTO.SendDetailKkoTalkDTO sendDetailKkoTalk); - void updateSndDtlKkoTalk(KkotalkDTO.SendDetailKkoTalkDTO sendDetailKkoTalk); - void updateKakaotalkSendBulksResult(KkotalkDTO.SendDetailKkoTalkDTO sendDetailKkoTalk); + void saveSndDtlKkoTalk(SendDetailKkoTalkDTO sendDetailKkoTalk); + void updateSndDtlKkoTalk(SendDetailKkoTalkDTO sendDetailKkoTalk); + void updateKakaotalkSendBulksResult(SendDetailKkoTalkDTO sendDetailKkoTalk); - List findAllBySendMastId(Long sendMastId); + List findAllBySendMastId(Long sendMastId); - List findAllFetchBySendMastId(Long sendMastId); - Optional findFetchByExternalIdAndEnvelopeId(Map map); + List findAllFetchBySendMastId(Long sendMastId); + Optional findFetchByExternalIdAndEnvelopeId(Map map); - List findAllBySendMastAndEnvlopeIdIsNotNull(SendMast sendMast); + List findAllBySendMastAndEnvlopeIdIsNotNull(SendMast sendMast); Optional findByExternalId(String externalId); } diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/model/KkotalkDTO.java b/src/main/java/cokr/xit/ens/modules/kkotalk/model/KkotalkDTO.java index 1ba3507..029cf68 100644 --- a/src/main/java/cokr/xit/ens/modules/kkotalk/model/KkotalkDTO.java +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/model/KkotalkDTO.java @@ -1,14 +1,11 @@ package cokr.xit.ens.modules.kkotalk.model; -import java.time.*; import java.util.*; import javax.validation.*; import javax.validation.constraints.*; import cokr.xit.ens.core.model.*; -import cokr.xit.ens.modules.common.domain.support.*; -import cokr.xit.ens.modules.kkotalk.code.*; import cokr.xit.ens.modules.kkotalk.model.config.*; import io.swagger.v3.oas.annotations.media.*; import lombok.*; @@ -122,39 +119,4 @@ public class KkotalkDTO extends KkotalkApiDTO { @Valid private List documents; } - - @SuperBuilder - @Data - @ToString - @Schema(name = "SendDetailKkoTalkDTO") - @NoArgsConstructor - @AllArgsConstructor - @EqualsAndHashCode(callSuper = true) - public static class SendDetailKkoTalkDTO extends Envelope { - private String envelopeId; - private String link; - private KkoTalkStatusCd status; - private String sentAt; - private String receivedAt; - private String readAt; - private String authenticatedAt; - private String ottVerifiedAt; - private String isNotificationUnavailable; - private String userNotifiedAt; - private String distributionReceivedAt; - private String mkJid; - private String mkTmpltMsgJsonData; - - private Long sendDetailId; - private Long sendMastId; - private String errorCode; - private String errorMessage; - private FieldError error; - private String mkBillUseYn; - private String billUid; - - // Add created and updated timestamps from BaseEntity if needed - private LocalDateTime registAt; - private LocalDateTime lastUpdtDt; - } } diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/model/SendDetailKkoTalkDTO.java b/src/main/java/cokr/xit/ens/modules/kkotalk/model/SendDetailKkoTalkDTO.java new file mode 100644 index 0000000..0561b3e --- /dev/null +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/model/SendDetailKkoTalkDTO.java @@ -0,0 +1,57 @@ +package cokr.xit.ens.modules.kkotalk.model; + +import java.time.*; + +import cokr.xit.ens.modules.common.domain.support.*; +import io.swagger.v3.oas.annotations.media.*; +import lombok.*; +import lombok.experimental.*; + +/** + *
    + * description :
    + * packageName : cokr.xit.ens.modules.kkotalk.model
    + * fileName    : SendDetailKkoTalkDTO
    + * author      : limju
    + * date        : 2024 9월 10
    + * ======================================================================
    + * 변경일         변경자        변경 내용
    + * ----------------------------------------------------------------------
    + * 2024 9월 10   limju       최초 생성
    + *
    + * 
    + */ +@SuperBuilder +@Data +@ToString +@Schema(name = "SendDetailKkoTalkDTO") +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SendDetailKkoTalkDTO extends KkotalkApiDTO.Envelope { + private String envelopeId; + private String link; + private String status; + private String sentAt; + private String receivedAt; + private String readAt; + private String authenticatedAt; + private String ottVerifiedAt; + private String isNotificationUnavailable; + private String userNotifiedAt; + private String distributionReceivedAt; + private String mkJid; + private String mkTmpltMsgJsonData; + + private Long sendDetailId; + private Long sendMastId; + private String errorCode; + private String errorMessage; + private FieldError error; + private String mkBillUseYn; + private String billUid; + + // Add created and updated timestamps from BaseEntity if needed + private LocalDateTime registAt; + private LocalDateTime lastUpdtDt; +} diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkAcceptor.java b/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkAcceptor.java index 907781c..2b46b60 100644 --- a/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkAcceptor.java +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkAcceptor.java @@ -139,7 +139,7 @@ public class KkoTalkAcceptor implements EnsPhaseProcSupport, Kk sendMastRepository.save(sendMast); Gson gson = new GsonBuilder().disableHtmlEscaping().create(); - List sendDetails = new ArrayList<>(); + List sendDetails = new ArrayList<>(); List> sendDetailMblPages = new ArrayList<>(); List bills = new ArrayList<>(); final String prefixBillUid = sendMast.getPostSe().getCode() + "-" + IdGenerator.getCurrentTimeSec(); @@ -174,7 +174,7 @@ public class KkoTalkAcceptor implements EnsPhaseProcSupport, Kk XitProperty xitProperty = Optional.ofNullable(document.getXit_property()).orElse(XitProperty.builder().build()); - KkotalkDTO.SendDetailKkoTalkDTO sendDetail = KkotalkDTO.SendDetailKkoTalkDTO.builder() + SendDetailKkoTalkDTO sendDetail = SendDetailKkoTalkDTO.builder() .sendMastId(sendMast.getSendMastId()) .title(document.getTitle()) .link(document.getContent() != null? document.getContent().getLink(): null) @@ -232,7 +232,7 @@ public class KkoTalkAcceptor implements EnsPhaseProcSupport, Kk sendDetailMblPageRepository.saveAll( sendDetailMblPages.stream() .map(data -> { - KkotalkDTO.SendDetailKkoTalkDTO sendDetail = (KkotalkDTO.SendDetailKkoTalkDTO) data.get("sendDetail"); + SendDetailKkoTalkDTO sendDetail = (SendDetailKkoTalkDTO) data.get("sendDetail"); return SendDetailMblPage.builder() .postSe(PostSeCd.kkoTalk.getCode()) .sendDetailId(sendDetail.getSendDetailId()) diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkMaker.java b/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkMaker.java index 19a8170..ec803f5 100644 --- a/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkMaker.java +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkMaker.java @@ -38,7 +38,6 @@ import lombok.extern.slf4j.*; public class KkoTalkMaker extends MakeProcTemplate { private final ApplicationEventPublisher applicationEventPublisher; private final SendMastRepository sendMastRepository; - //private final SendDetailKkoMydocRepository sendDetailKkoMydocRepository; private final IKkoTalkMapper kkoTalkMapper; private final OrgMngService orgMngService; private final TmpltMngStrategyKkoTalk tmpltMngService; @@ -50,7 +49,7 @@ public class KkoTalkMaker extends MakeProcTemplate { public EnsResponseVO execute(Long sendMastId) { AES256 aes256 = new AES256(Crypto.AES256.getKey()); SendMast sendMast = null; - List sendDetails = null; + List sendDetails = null; EnsResponseVO respVO = null; try { if (CmmnUtil.isEmpty(sendMastId)) @@ -199,7 +198,7 @@ public class KkoTalkMaker extends MakeProcTemplate { * @param vo * @return */ - private String createHash(KkotalkDTO.SendDetailKkoTalkDTO vo) { + private String createHash(SendDetailKkoTalkDTO vo) { String hash = null; try { String text = vo.getExternalId() diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkSender.java b/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkSender.java index bcd3cb4..1484f92 100644 --- a/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkSender.java +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/service/support/KkoTalkSender.java @@ -58,7 +58,7 @@ public class KkoTalkSender extends SendProcTemplate { public EnsResponseVO execute(Long sendMastId) { SendMast sendMast = null; - List sendDetails = null; + List sendDetails = null; EnsResponseVO respVO = null; try { if (CmmnUtil.isEmpty(sendMastId)) @@ -116,7 +116,7 @@ public class KkoTalkSender extends SendProcTemplate { list.stream() .forEach(row -> { - row.setStatus(KkoTalkStatusCd.SENT_FAIL); + row.setStatus(KkoTalkStatusCd.SENT_FAIL.getCode()); row.setError( FieldError.initBuilder() .errorCode(e.getErrCd().getCode()) @@ -130,7 +130,7 @@ public class KkoTalkSender extends SendProcTemplate { list.stream() .forEach(row -> { - row.setStatus(KkoTalkStatusCd.SENT_FAIL); + row.setStatus(KkoTalkStatusCd.SENT_FAIL.getCode()); row.setError( FieldError.initBuilder() .errorCode(EnsErrCd.SEND500.getCode()) @@ -219,10 +219,10 @@ public class KkoTalkSender extends SendProcTemplate { * @param list * @return */ - private List makeMessage(List list) { + private List makeMessage(List list) { final List bulkList = new ArrayList<>(); - for (KkotalkDTO.SendDetailKkoTalkDTO sendTgtDTO : list) { + for (SendDetailKkoTalkDTO sendTgtDTO : list) { KkotalkApiDTO.Envelope bulkReqDTO = null; if (StringUtils.isNotEmpty(sendTgtDTO.getCi())) { @@ -279,14 +279,14 @@ public class KkoTalkSender extends SendProcTemplate { * @param row SendDetailKkoTalkDTO * @param map Map */ - private void modifyTalkSendRsltByExtDocUuid(KkotalkDTO.SendDetailKkoTalkDTO row, Map map) { + private void modifyTalkSendRsltByExtDocUuid(SendDetailKkoTalkDTO row, Map map) { KkoTalkApiRespVO apiRespVO = map.get(row.getExternalId()); if (CmmnUtil.isEmpty(apiRespVO.getErrorCode())) { - row.setStatus(KkoTalkStatusCd.SENT); + row.setStatus(KkoTalkStatusCd.SENT.getCode()); row.setEnvelopeId(String.valueOf(apiRespVO.getData())); row.setError(FieldError.initBuilder().build()); } else { - row.setStatus(KkoTalkStatusCd.valueOfEnum(apiRespVO.getErrorCode())); + row.setStatus(KkoTalkStatusCd.valueOfEnum(apiRespVO.getErrorCode()).getCode()); row.setError(FieldError.initBuilder() .errorCode(EnsErrCd.SEND630.getCode()) .errorMessage(String.format("%s %s", apiRespVO.getErrorCode(), apiRespVO.getErrorMessage())) @@ -298,7 +298,7 @@ public class KkoTalkSender extends SendProcTemplate { } - private Map toResultInfo(KkotalkDTO.SendDetailKkoTalkDTO row) { + private Map toResultInfo(SendDetailKkoTalkDTO row) { Map m = new HashMap<>(); m.put("envelopeId", row.getEnvelopeId()); m.put("externalId", row.getExternalId()); @@ -317,7 +317,7 @@ public class KkoTalkSender extends SendProcTemplate { * @param respMsg * @return */ - private List toSendDetailReqHist(List list, String sendMsg, String respMsg) { + private List toSendDetailReqHist(List list, String sendMsg, String respMsg) { List sendMsgList = JsonUtils.toObjectList(sendMsg, Map.class); Map mSendDetailIds = list.stream() .map(row -> { diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkApiController.java b/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkApiController.java index dea8c87..02a4025 100644 --- a/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkApiController.java +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkApiController.java @@ -1,22 +1,16 @@ package cokr.xit.ens.modules.kkotalk.web; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.*; +import org.springframework.web.bind.annotation.*; -import cokr.xit.ens.core.aop.ApiResponseDTO; -import cokr.xit.ens.core.aop.IApiResponse; -import cokr.xit.ens.modules.kkotalk.model.KkotalkApiDTO; -import cokr.xit.ens.modules.kkotalk.model.KkotalkDTO; -import cokr.xit.ens.modules.kkotalk.service.support.KkoTalkApiService; -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 lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import cokr.xit.ens.core.aop.*; +import cokr.xit.ens.modules.kkotalk.model.*; +import cokr.xit.ens.modules.kkotalk.service.support.*; +import io.swagger.v3.oas.annotations.*; +import io.swagger.v3.oas.annotations.media.*; +import io.swagger.v3.oas.annotations.tags.*; +import lombok.*; +import lombok.extern.slf4j.*; /** *
    diff --git a/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkController.java b/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkController.java
    index 10ac30d..64cd656 100644
    --- a/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkController.java
    +++ b/src/main/java/cokr/xit/ens/modules/kkotalk/web/KkotalkController.java
    @@ -146,7 +146,7 @@ public class KkotalkController {
             Map paramMap = new HashMap<>();
             paramMap.put("envelopeId", envelopeId);
             paramMap.put("externalId", externalId);
    -        KkotalkDTO.SendDetailKkoTalkDTO sendDetail = talkMapper.findFetchByExternalIdAndEnvelopeId(paramMap)
    +        SendDetailKkoTalkDTO sendDetail = talkMapper.findFetchByExternalIdAndEnvelopeId(paramMap)
                 .orElseThrow(() -> new EnsException(EnsErrCd.ERR404, "문서를 찾을 수 없습니다."));
     
             EnsResponseVO responseVO = service.tokenVerify("getOrgCd()", envelopeId, token, externalId);
    @@ -170,7 +170,7 @@ public class KkotalkController {
             Map paramMap = new HashMap<>();
             paramMap.put("envelopeId", envelopeId);
             paramMap.put("externalId", null);
    -        KkotalkDTO.SendDetailKkoTalkDTO sendDetail = talkMapper.findFetchByExternalIdAndEnvelopeId(paramMap)
    +        SendDetailKkoTalkDTO sendDetail = talkMapper.findFetchByExternalIdAndEnvelopeId(paramMap)
                 .orElseThrow(() -> new EnsException(EnsErrCd.ERR404, "문서를 찾을 수 없습니다."));
     
             EnsResponseVO responseVO = service.readCmplt("getOrgCd()", envelopeId);
    diff --git a/src/main/resources/mybatis-mapper/modules/iup-kkotalk-mapper.xml b/src/main/resources/mybatis-mapper/modules/iup-kkotalk-mapper.xml
    index f29fe15..2a7963d 100644
    --- a/src/main/resources/mybatis-mapper/modules/iup-kkotalk-mapper.xml
    +++ b/src/main/resources/mybatis-mapper/modules/iup-kkotalk-mapper.xml
    @@ -6,7 +6,7 @@
         
         
         
    -    
    +    
             /** iup-kkotalk-mapper|saveSndDtlKkoTalk-카카오톡발송상세생성|julim  */
             INSERT INTO ens_snd_dtl_kko_talk (
                 send_detail_id,
    @@ -55,7 +55,7 @@
             )
         
     
    -    
    +    
             /** iup-kkotalk-mapper|updateSndDtlKkoTalk-카카오톡발송상세변경|julim  */
             UPDATE ens_snd_dtl_kko_talk
                SET title = #{title}
    @@ -74,7 +74,7 @@
              WHERE send_detail_id = #{sendDetailId}
         
     
    -    
    +    
             /** iup-kkotalk-mapper|updateKakaotalkSendBulksResult-카카오톡 문서요청 결과 반영|limju  */
             UPDATE ens_snd_dtl_kko_talk
                SET external_id = #{externalId}
    @@ -95,14 +95,14 @@
         , bill_uid = #{billUid}
         , send_mast_id = #{sendMastId}
     -->
    -    
             /** iup-kkotalk-mapper|findAllBySendMastId-카카오톡발송대상 조회|julim  */
             
               FROM ens_snd_dtl_kko_talk
              WHERE send_mast_id = #{sendMastId}
         
     
    -    
             /** iup-kkotalk-mapper|findAllBySendMastAndEnvlopeIdIsNotNull-카카오톡 발송 결과 대상?? 조회|julim  */
             
               FROM ens_snd_dtl_kko_talk
    @@ -110,14 +110,14 @@
                AND envelope_id IS NOT NULL
         
     
    -    
             /** iup-kkotalk-mapper|findAllFetchBySendMastId-카카오톡 발송 결과 대상?? 조회|julim  */
             
             FROM ens_snd_dtl_kko_talk
             WHERE send_mast_id = #{sendMastId}
         
     
    -    
             /** iup-kkotalk-mapper|findFetchByExternalIdAndEnvelopeId-카카오톡 발송 결과 대상?? 조회|julim  */
             
             FROM ens_snd_dtl_kko_talk