diff --git a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptMainBean.java b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptMainBean.java
index 8068e8e3..f5c8a67c 100644
--- a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptMainBean.java
+++ b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptMainBean.java
@@ -11,6 +11,8 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Component;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import cokr.xit.base.code.dao.CodeMapper;
import cokr.xit.base.code.service.CodeQuery;
import cokr.xit.base.user.ManagedUser;
@@ -90,7 +92,7 @@ public class CrdnCvlcptMainBean extends AbstractComponent {
return crdnCvlcptMapper.updateCvlcptProcessSection(params) == 1 ? true : false;
}
- /** 국민신문고 답변전송 인터페이스 테이블에 자료를 등록한다.
+ /** 답변전송 인터페이스 테이블에 자료를 등록한다.
* @param isSendBack 반송여부, cvlcptLinkId 민원 연계 ID
* @return 저장 여부
*
- 저장됐으면 true
@@ -103,47 +105,71 @@ public class CrdnCvlcptMainBean extends AbstractComponent {
DataObject cvlcptInfo = crdnCvlcptMapper.selectCivilComplaintProcessInfo(cvlcptLinkId);
//전송 인터페이스 테이블 등록
- Petition petition = new Petition();
- petition.setInterfaceSeqN(cvlcptInfo.string("CVLCPT_LINK_ID")); //민원연계키
-
- petition.setSysGubunC("EC010008"); //시스템 구분("EC010008")
- petition.setPetiAncCodeV(cvlcptInfo.string("PETI_ANC_CODE_V")); //민원 기관 코드(최초신청기관코드)
-
- petition.setPetiGubunC(isSendBack ? "140" : "180"); //민원구분
- petition.setSendYnC(isSendBack? "1" : "2"); // 송신 여부
-
- petition.setPetiNoC(cvlcptInfo.string("CVLCPT_APLY_NO")); //민원 신청 번호
- petition.setCivilNoC(cvlcptInfo.string("CVLCPT_RCPT_NO"));//민원 접수 번호
- petition.setPetiTitleV(cvlcptInfo.string("CVLCPT_APLY_TTL_NM")); //민원제목
- petition.setCivilGistV(cvlcptInfo.string("CVLCPT_GIST")); //민원요지
- petition.setCivilAbstractL(cvlcptInfo.string("CVLCPT_PRCS_SUMRY")); //민원 처리 요약
- petition.setAncCodeV(cvlcptInfo.string("CVLCPT_PRCS_NSTT_CD")); //기관 코드
- petition.setPcdDeptV(cvlcptInfo.string("CVLCPT_PRCS_DEPT_CD")); //처리 부서 코드
- petition.setPcdAncCodeV(cvlcptInfo.string("CVLCPT_PRCS_DEPT_CD")); //민원 실 처리 기관 코드
- petition.setPcdDeptNmV(cvlcptInfo.string("CVLCPT_PRCS_DEPT_NM")); //민원 처리 부서명
- petition.setDutyIdV(cvlcptInfo.string("CVLCPT_PRCS_PIC_NM")); //민원 처리 담당자 명
- petition.setPcdEmailV(cvlcptInfo.string("CVLCPT_PRCS_PIC_EMAIL")); //담당자 이메일
- petition.setPcdTelV(cvlcptInfo.string("CVLCPT_PRCS_PIC_TELNO")); //담당자 전화번호
- petition.setPcdRstContL(cvlcptInfo.string("CVLCPT_PRCS_RSLT_CN")); //민원 처리 결과
- petition.setDoRegD(cvlcptInfo.string("CVLCPT_PRCS_CMPTN_DT")); //민원 처리 완료 일자
-
- petition.setRegD((new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date())); // 등록 일자
-
- //not use
- petition.setPcdRstContAttachYnC("N"); //민원 처리 결과 첨부 여부
- petition.setPcdGubunV(""); //처리 구분1
- petition.setPcdGubun2V("");//처리 구분2
- petition.setPcdGubun3V("");//처리 구분3
-
- //DB --> XML
- petition.setApplyGubunC("N"); //완료구분
- petition.setSendD(""); //송신 일자
- petition.setApplyD(""); //적용 일자
- petition.setSendInterfaceSeqN("");//전송인터페이스키
- petition.setSendStatus("");//전송상태
- petition.setSendStatusMsg("");//전송상태메시지
-
- return smgSenderBean.createReply(petition);
+ final ObjectMapper mapper = new ObjectMapper();
+ Map cvlcptLink = new HashMap<>();
+ this.setLinkObj(cvlcptLink, cvlcptInfo, isSendBack);
+ boolean result = false;
+
+ if(!cvlcptInfo.string("INTERFACE_SEQ_N").equals("")) {
+
+ Petition petition = mapper.convertValue(cvlcptLink, Petition.class);
+ result = smgSenderBean.createReply(petition);
+
+ } else if(!cvlcptInfo.string("DTL_ID").equals("")) {
+
+ result = false;
+ } else {
+ throw new RuntimeException("[F]민원 연계 오류");
+ }
+
+ return result;
+ }
+
+ public void setLinkObj(Map cvlcptLink, DataObject cvlcptInfo, boolean isSendBack) {
+
+ if(!cvlcptInfo.string("INTERFACE_SEQ_N").equals("")) {
+
+ cvlcptLink.put("interfaceSeqN", cvlcptInfo.string("CVLCPT_LINK_ID"));
+ cvlcptLink.put("sysGubunC", "EC010008"); //시스템 구분("EC010008")
+ cvlcptLink.put("petiAncCodeV", cvlcptInfo.string("PETI_ANC_CODE_V")); //민원 기관 코드(최초신청기관코드)
+ cvlcptLink.put("petiGubunC", isSendBack ? "140" : "180");
+ cvlcptLink.put("sendYnC", isSendBack ? "1" : "2");
+
+ cvlcptLink.put("petiNoC", cvlcptInfo.string("CVLCPT_APLY_NO"));//민원 신청 번호
+ cvlcptLink.put("civilNoC", cvlcptInfo.string("CVLCPT_RCPT_NO"));//민원 접수 번호
+ cvlcptLink.put("petiTitleV", cvlcptInfo.string("CVLCPT_APLY_TTL_NM"));//민원제목
+ cvlcptLink.put("civilGistV", cvlcptInfo.string("CVLCPT_GIST"));//민원요지
+ cvlcptLink.put("civilAbstractL", cvlcptInfo.string("CVLCPT_PRCS_SUMRY"));//민원 처리 요약
+ cvlcptLink.put("ancCodeV", cvlcptInfo.string("CVLCPT_PRCS_NSTT_CD"));//기관 코드
+ cvlcptLink.put("pcdDeptV", cvlcptInfo.string("CVLCPT_PRCS_DEPT_CD"));//처리 부서 코드
+ cvlcptLink.put("pcdAncCodeV", cvlcptInfo.string("CVLCPT_PRCS_DEPT_CD"));//민원 실 처리 기관 코드
+ cvlcptLink.put("pcdDeptNmV", cvlcptInfo.string("CVLCPT_PRCS_DEPT_NM"));//민원 처리 부서명
+ cvlcptLink.put("dutyIdV", cvlcptInfo.string("CVLCPT_PRCS_PIC_NM"));//민원 처리 담당자 명
+ cvlcptLink.put("pcdEmailV", cvlcptInfo.string("CVLCPT_PRCS_PIC_EMAIL"));//담당자 이메일
+ cvlcptLink.put("pcdTelV", cvlcptInfo.string("CVLCPT_PRCS_PIC_TELNO"));//담당자 전화번호
+ cvlcptLink.put("pcdRstContL", cvlcptInfo.string("CVLCPT_PRCS_RSLT_CN"));//민원 처리 결과
+ cvlcptLink.put("doRegD", cvlcptInfo.string("CVLCPT_PRCS_CMPTN_DT"));//민원 처리 완료 일자
+
+ cvlcptLink.put("regD", (new SimpleDateFormat("yyyyMMddHHmmss")).format(new Date())); // 등록 일자
+ //not use
+ cvlcptLink.put("pcdRstContAttachYnC", "N");//민원 처리 결과 첨부 여부
+ cvlcptLink.put("pcdGubunV", "");//처리 구분1
+ cvlcptLink.put("pcdGubun2V", "");//처리 구분2
+ cvlcptLink.put("pcdGubun3V", "");//처리 구분3
+ //DB --> XML
+ cvlcptLink.put("applyGubunC", "N");//완료구분
+ cvlcptLink.put("sendD", "");//송신 일자
+ cvlcptLink.put("applyD", "");//적용 일자
+ cvlcptLink.put("sendInterfaceSeqN", "");//전송인터페이스키
+ cvlcptLink.put("sendStatus", "");//전송상태
+ cvlcptLink.put("sendStatusMsg", "");//전송상태메시지
+
+ } else if(!cvlcptInfo.string("DTL_ID").equals("")) {
+
+ } else {
+ throw new RuntimeException("[F]민원 연계 오류");
+ }
+
}
/**답변 내용을 초기화한다.
@@ -160,6 +186,7 @@ public class CrdnCvlcptMainBean extends AbstractComponent {
return crdnCvlcptMapper.initCvlcptPrcsRsltCn(crdnCvlcpt) == 1 ? true : false;
}
+
/**지정한 민원 자료의 답변 예정 문구를 반환한다.
* @param crdnId 단속 ID
* @return 답변 예정 문구
diff --git a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java
index b53832dd..325466e4 100644
--- a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java
+++ b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java
@@ -215,7 +215,8 @@ public class CrdnCvlcptServiceBean extends AbstractServiceBean implements CrdnCv
throw new RuntimeException("반송 처리 중 단속민원답변 수정에 실패하였습니다.");
}
- if(crdnInfo.string("LINK_TBL_NM").equals("TB_ESB_INTERFACE")) {
+ if(crdnInfo.string("LINK_TBL_NM").equals("TB_ESB_INTERFACE")
+ || crdnInfo.string("LINK_TBL_NM").equals("TB_SA_CVLCPT_DTL")) {
boolean result = crdnCvlcptMainBean.insertTransmitInfo(true, crdnInfo.string("CVLCPT_LINK_ID"));
if (!result) {
throw new RuntimeException("반송 처리 중 전송자료 등록에 실패하였습니다.");
@@ -371,7 +372,8 @@ public class CrdnCvlcptServiceBean extends AbstractServiceBean implements CrdnCv
if(processType.equals("answerExecute")) {
- if(targetDataList.get(i).string("LINK_TBL_NM").equals("TB_ESB_INTERFACE")) {
+ if(targetDataList.get(i).string("LINK_TBL_NM").equals("TB_ESB_INTERFACE")
+ || targetDataList.get(i).string("LINK_TBL_NM").equals("TB_SA_CVLCPT_DTL")) {
boolean result = crdnCvlcptMainBean.insertTransmitInfo(false, targetDataList.get(i).string("CVLCPT_LINK_ID"));
if (!result) {
throw new RuntimeException("민원 전송 상태 변경 중 전송자료 등록에 실패하였습니다.");
diff --git a/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml b/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml
index 4c993ccb..1977d661 100644
--- a/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml
+++ b/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml
@@ -547,6 +547,8 @@ UPDATE TB_CRDN_CVLCPT