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 파라미터 * * @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 파라미터 + * + * @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