diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java
index dcf09212..6c2760ae 100644
--- a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java
+++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java
@@ -326,17 +326,30 @@ public interface SndngMapper extends AbstractMapper {
*/
int selectTnocsSndngDtlSvbtc(String svbtcId);
- /**발송 상세 정보의 우편통합 발송 상세 상태 코드를 수정한다.
+ /**전자우편 발송 내역을 수정한다.
* @param params 파라미터
*
- "sndngDtl" - 발송 상세
* - "currentUser" - 현재 접속한 사용자
*
* @return 저장된 정보수
*/
- int updateEPostSndngDtlSttsCd(Map params);
+ int updateEPostSndng(Map params);
- default boolean updateEPostSndngDtlSttsCd(SndngDtl sndngDtl) {
- return sndngDtl != null && updateEPostSndngDtlSttsCd(params().set("sndngDtl", sndngDtl)) == 1;
+ default boolean updateEPostSndng(Sndng sndng) {
+ return sndng != null && updateEPostSndng(params().set("sndng", sndng)) == 1;
+ }
+
+ /**전자우편 발송상세 내역을 수정한다.
+ * @param params 파라미터
+ * - "sndngDtl" - 발송 상세
+ * - "currentUser" - 현재 접속한 사용자
+ *
+ * @return 저장된 정보수
+ */
+ int updateEPostSndngDtl(Map params);
+
+ default boolean updateEPostSndngDtl(SndngDtl sndngDtl) {
+ return sndngDtl != null && updateEPostSndngDtl(params().set("sndngDtl", sndngDtl)) == 1;
}
/**발송 상세 정보의 발송 상세 상태 코드를 수정한다.
diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java
index d3b91610..7d2230ae 100644
--- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java
+++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java
@@ -191,22 +191,21 @@ public class SndngBean extends AbstractComponent {
newCrdnSttsCd = "";
}
- // 발송 등록 구분 코드
if (sndng.getTnocs() == 1) {
- sndng.setSndngRegSeCd("02"); // 개별
+ sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별
} else {
- sndng.setSndngRegSeCd("01"); // 일괄
+ sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄
}
- // 재발송 여부
+
if (sndng.getResndYn() == null) {
- sndng.setResndYn("N");
+ sndng.setResndYn("N"); // 재발송 여부
}
- // 삭제 여부
+
if (sndng.getDelYn() == null) {
- sndng.setDelYn("N");
+ sndng.setDelYn("N"); // 삭제 여부
}
- // 발송 상태 코드
- sndng.setSndngSttsCd("00"); // 00 발송 준비
+
+ sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비
// 발송 등록
retSuccess = sndngMapper.insertSndng(sndng);
@@ -371,7 +370,7 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.deleteSndng(sndng);
}
- /**우편통합 발송 대장 정보를 등록한다.
+ /**전자우편 발송 대장 정보를 등록한다.
* @param sndng 발송 대장
* @return 저장 여부
* - 저장됐으면 true
@@ -391,7 +390,6 @@ public class SndngBean extends AbstractComponent {
// 1. 발송 대장 조회
DataObject sndngInfo = sndngMapper.selectSndngInfo(sndng.getSndngId());
- // 전자우편 접수 내역을 등록한다. ///////////////////////////////////////////////
ctpvCode = sndngInfo.string("SGG_CD").substring(0, 2); // 시도 코드
if (sndngInfo.string("SNDNG_SE_CD").equals("01")) {
@@ -459,10 +457,11 @@ public class SndngBean extends AbstractComponent {
// 3. 사용자 정보
DataObject userInfo = userBean.getUserInfo(currentUser().getId());
+
// 4. 자치단체 및 부서 정보
DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD"));
- // 전자우편 접수 등록
+ // 5. 전자우편 접수 등록
EpostRcptReg epostRcptReg = new EpostRcptReg();
epostRcptReg.setConKey(conKey); // 외부연계식별키
@@ -486,7 +485,7 @@ public class SndngBean extends AbstractComponent {
epostRcptReg.setDfpayyn("001"); // 결재방법(DFPAYYN)
epostRcptReg.setRcptKb("020"); // 내용문 유형(RCPT_KB)
epostRcptReg.setWordKb("001"); // 내용문 종류(WORD_KB)
- epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수 건수 확인 필요하다. //
+ epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수 -> 건수 확인 필요하다. /////////////////////////////
epostRcptReg.setEnvCd("003"); // 봉투 종류 - 접착식
if (ctpvCode.equals("11")) { // 서울특별시
@@ -553,15 +552,28 @@ public class SndngBean extends AbstractComponent {
epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자
epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID
- // 5. 전자우편 접수 등록
- retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg);
+ retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg); // 전자우편 접수 등록
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다.");
}
- // 전자우편 접수 상세 내역을 등록한다. ///////////////////////////////////////////////
- String infoSndngSeNm = ""; // 약식 발송 구분 명
+ // 6. 발송 내역을 수정한다.
+ Sndng mdfcnSndng = new Sndng();
+
+ mdfcnSndng.setConKey(epostRcptReg.getConKey()); // 외부연계식별키
+ mdfcnSndng.setDivKb(epostRcptReg.getDivKb()); // 취급 구분
+// mdfcnSndng.setEpostNoticeId(); // 전자우편 안내문 ID
+ mdfcnSndng.setSndngSttsCd("01"); // 발송 상태 코드(FIM049) - 01 발송 대기
+ mdfcnSndng.setSndngId(sndng.getSndngId()); // 발송 ID
+
+ retSuccess = sndngMapper.updateEPostSndng(mdfcnSndng); // 전자우편 발송 내역 수정
+ if (!retSuccess) {
+ throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 7. 전자우편 접수 상세 내역을 등록한다.
+ String infoSndngSeNm = ""; // 약식 발송 구분 명
if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도
infoSndngSeNm = "계도";
@@ -617,14 +629,14 @@ public class SndngBean extends AbstractComponent {
}
recevSubj3 = deptSggInfo.string("SGG_NM");
- // 6. 전자우편 접수 상세 등록
+ // 전자우편 접수 상세 조회
List sndngTrgts = sndngMapper.selectSndngTrgts(sndng.getSndngId());
for (int iLoop = 0; iLoop < sndngTrgts.size(); iLoop++) {
// 전자우편 접수 상세
EpostRcptDtl epostRcptDtl = new EpostRcptDtl();
- // 발송 상세 및 부과 정보 조회
+ // 발송 상세 및 단속, 납부자, 부과 정보 조회
DataObject sndngDtlInfo = sndngMapper.selectSndngDtlLevyInfo(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID"));
if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) {
@@ -948,13 +960,13 @@ public class SndngBean extends AbstractComponent {
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
- // 전자우편 접수 상세 상태 코드 수정
+ // 8. 발송상세 내역을 수정한다.
// 우편통합 발송에 사용되었던 최신 단속,부과,납부자 정보로 -> 발송상세 정보를 업데이트한다.
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setConKey(conKey); // 외부연계식별키
sndngDtl.setRgNo(rgstNmbr); // 등기 번호
- sndngDtl.setSndngDtlSttsCd("03"); // 발송 상세 상태 코드
+ sndngDtl.setSndngDtlSttsCd("03"); // 발송 상세 상태 코드(FIM050) - 03 발송
sndngDtl.setRtpyrNm(sndngDtlInfo.string("RTPYR_NM")); // 납부자 명
sndngDtl.setRtpyrBrdt(sndngDtlInfo.string("RTPYR_BRDT")); // 납부자 생년월일
sndngDtl.setRtpyrAddr(sndngDtlInfo.string("RTPYR_ADDR")); // 납부자 주소
@@ -1000,7 +1012,7 @@ public class SndngBean extends AbstractComponent {
sndngDtl.setVrActno11(sndngDtlInfo.string("VR_ACTNO11"));
sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID"));
- retSuccess = sndngMapper.updateEPostSndngDtlSttsCd(sndngDtl);
+ retSuccess = sndngMapper.updateEPostSndngDtl(sndngDtl); // 전자우편 발송상세 내역 수정
if (!retSuccess) {
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml
index 1cffdbcb..c744c4ee 100644
--- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml
+++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml
@@ -1565,7 +1565,64 @@
AND DEL_YN = 'N'
- /* 우편통합 발송 상세 상태 코드 수정(sndngMapper.updateEPostSndngDtlSttsCd) */
+ /* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */
+ UPDATE TB_SNDNG_DTL
+ SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD
+ , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd}
+
+ , MTCHG_ID = #{sndngDtl.mtchgId}
+
+ , MDFCN_DT =
+ , MDFR = #{sndngDtl.modifiedBy}
+ WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
+ AND DEL_YN = 'N'
+
+
+ /* 발송 상세의 공시송달 정보를 수정(sndngMapper.updateSndngDtlSvbtc) */
+ UPDATE TB_SNDNG_DTL
+ SET SVBTC_ID = #{sndngDtl.svbtcId}
+ , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD
+ , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd}
+ , MDFCN_DT =
+ , MDFR = #{sndngDtl.modifiedBy}
+ WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
+ AND DEL_YN = 'N'
+
+
+ /* 발송 상세의 공시송달 정보를 삭제(sndngMapper.deleteSndngDtlSvbtc) */
+ UPDATE TB_SNDNG_DTL
+ SET SVBTC_ID = NULL
+ , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD
+ , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd}
+ , MDFCN_DT =
+ , MDFR = #{sndngDtl.modifiedBy}
+ WHERE SVBTC_ID = #{sndngDtl.svbtcId}
+
+ AND SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
+
+ AND DEL_YN = 'N'
+
+
+ /* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */
+ UPDATE TB_SNDNG_DTL
+ SET DEL_YN = 'Y'
+ , DEL_DT =
+ , DLTR = #{sndngDtl.modifiedBy}
+ , DEL_RSN = #{sndngDtl.delRsn}
+ WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
+ AND DEL_YN = 'N'
+
+
+ /* 전자우편 발송 내역 수정(sndngMapper.updateEPostSndng) */
+ UPDATE TB_SNDNG
+ SET CON_KEY = #{sndngDtl.conKey}
+ , DIV_KB = #{sndngDtl.divKb}
+ , EPOST_NOTICE_ID = #{sndngDtl.epostNoticeId}
+ WHERE SNDNG_ID = #{sndngDtl.sndngDtlId}
+ AND DEL_YN = 'N'
+
+
+ /* 전자우편 발송상세 내역 수정(sndngMapper.updateEPostSndngDtl) */
UPDATE TB_SNDNG_DTL
SET CON_KEY = #{sndngDtl.conKey}
, RG_NO = #{sndngDtl.rgNo}
@@ -1620,53 +1677,7 @@
AND DEL_YN = 'N'
- /* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */
- UPDATE TB_SNDNG_DTL
- SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD
- , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd}
-
- , MTCHG_ID = #{sndngDtl.mtchgId}
-
- , MDFCN_DT =
- , MDFR = #{sndngDtl.modifiedBy}
- WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
- AND DEL_YN = 'N'
-
- /* 발송 상세의 공시송달 정보를 수정(sndngMapper.updateSndngDtlSvbtc) */
- UPDATE TB_SNDNG_DTL
- SET SVBTC_ID = #{sndngDtl.svbtcId}
- , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD
- , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd}
- , MDFCN_DT =
- , MDFR = #{sndngDtl.modifiedBy}
- WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
- AND DEL_YN = 'N'
-
-
- /* 발송 상세의 공시송달 정보를 삭제(sndngMapper.deleteSndngDtlSvbtc) */
- UPDATE TB_SNDNG_DTL
- SET SVBTC_ID = NULL
- , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD
- , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd}
- , MDFCN_DT =
- , MDFR = #{sndngDtl.modifiedBy}
- WHERE SVBTC_ID = #{sndngDtl.svbtcId}
-
- AND SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
-
- AND DEL_YN = 'N'
-
-
- /* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */
- UPDATE TB_SNDNG_DTL
- SET DEL_YN = 'Y'
- , DEL_DT =
- , DLTR = #{sndngDtl.modifiedBy}
- , DEL_RSN = #{sndngDtl.delRsn}
- WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
- AND DEL_YN = 'N'
-
/* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */
UPDATE TB_SNDNG_DTL