전자우편 등록시 발송 대장 수정 쿼리 추가.

main
jjh 12 months ago
parent 1375de8cfb
commit 4d38952891

@ -326,17 +326,30 @@ public interface SndngMapper extends AbstractMapper {
*/ */
int selectTnocsSndngDtlSvbtc(String svbtcId); int selectTnocsSndngDtlSvbtc(String svbtcId);
/** . /** .
* @param params * @param params
* <ul><li>"sndngDtl" - </li> * <ul><li>"sndngDtl" - </li>
* <li>"currentUser" - </li> * <li>"currentUser" - </li>
* </ul> * </ul>
* @return * @return
*/ */
int updateEPostSndngDtlSttsCd(Map<String, Object> params); int updateEPostSndng(Map<String, Object> params);
default boolean updateEPostSndngDtlSttsCd(SndngDtl sndngDtl) { default boolean updateEPostSndng(Sndng sndng) {
return sndngDtl != null && updateEPostSndngDtlSttsCd(params().set("sndngDtl", sndngDtl)) == 1; return sndng != null && updateEPostSndng(params().set("sndng", sndng)) == 1;
}
/** .
* @param params
* <ul><li>"sndngDtl" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateEPostSndngDtl(Map<String, Object> params);
default boolean updateEPostSndngDtl(SndngDtl sndngDtl) {
return sndngDtl != null && updateEPostSndngDtl(params().set("sndngDtl", sndngDtl)) == 1;
} }
/** . /** .

@ -191,22 +191,21 @@ public class SndngBean extends AbstractComponent {
newCrdnSttsCd = ""; newCrdnSttsCd = "";
} }
// 발송 등록 구분 코드
if (sndng.getTnocs() == 1) { if (sndng.getTnocs() == 1) {
sndng.setSndngRegSeCd("02"); // 개별 sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별
} else { } else {
sndng.setSndngRegSeCd("01"); // 일괄 sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄
} }
// 재발송 여부
if (sndng.getResndYn() == null) { if (sndng.getResndYn() == null) {
sndng.setResndYn("N"); sndng.setResndYn("N"); // 재발송 여부
} }
// 삭제 여부
if (sndng.getDelYn() == null) { if (sndng.getDelYn() == null) {
sndng.setDelYn("N"); sndng.setDelYn("N"); // 삭제 여부
} }
// 발송 상태 코드
sndng.setSndngSttsCd("00"); // 00 발송 준비 sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비
// 발송 등록 // 발송 등록
retSuccess = sndngMapper.insertSndng(sndng); retSuccess = sndngMapper.insertSndng(sndng);
@ -371,7 +370,7 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.deleteSndng(sndng); return sndngMapper.deleteSndng(sndng);
} }
/** . /** .
* @param sndng * @param sndng
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
@ -391,7 +390,6 @@ public class SndngBean extends AbstractComponent {
// 1. 발송 대장 조회 // 1. 발송 대장 조회
DataObject sndngInfo = sndngMapper.selectSndngInfo(sndng.getSndngId()); DataObject sndngInfo = sndngMapper.selectSndngInfo(sndng.getSndngId());
// 전자우편 접수 내역을 등록한다. ///////////////////////////////////////////////
ctpvCode = sndngInfo.string("SGG_CD").substring(0, 2); // 시도 코드 ctpvCode = sndngInfo.string("SGG_CD").substring(0, 2); // 시도 코드
if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { if (sndngInfo.string("SNDNG_SE_CD").equals("01")) {
@ -459,10 +457,11 @@ public class SndngBean extends AbstractComponent {
// 3. 사용자 정보 // 3. 사용자 정보
DataObject userInfo = userBean.getUserInfo(currentUser().getId()); DataObject userInfo = userBean.getUserInfo(currentUser().getId());
// 4. 자치단체 및 부서 정보 // 4. 자치단체 및 부서 정보
DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD")); DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD"));
// 전자우편 접수 등록 // 5. 전자우편 접수 등록
EpostRcptReg epostRcptReg = new EpostRcptReg(); EpostRcptReg epostRcptReg = new EpostRcptReg();
epostRcptReg.setConKey(conKey); // 외부연계식별키 epostRcptReg.setConKey(conKey); // 외부연계식별키
@ -486,7 +485,7 @@ public class SndngBean extends AbstractComponent {
epostRcptReg.setDfpayyn("001"); // 결재방법(DFPAYYN) epostRcptReg.setDfpayyn("001"); // 결재방법(DFPAYYN)
epostRcptReg.setRcptKb("020"); // 내용문 유형(RCPT_KB) epostRcptReg.setRcptKb("020"); // 내용문 유형(RCPT_KB)
epostRcptReg.setWordKb("001"); // 내용문 종류(WORD_KB) epostRcptReg.setWordKb("001"); // 내용문 종류(WORD_KB)
epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수 건수 확인 필요하다. // epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수 -> 건수 확인 필요하다. /////////////////////////////
epostRcptReg.setEnvCd("003"); // 봉투 종류 - 접착식 epostRcptReg.setEnvCd("003"); // 봉투 종류 - 접착식
if (ctpvCode.equals("11")) { // 서울특별시 if (ctpvCode.equals("11")) { // 서울특별시
@ -553,14 +552,27 @@ public class SndngBean extends AbstractComponent {
epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자 epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자
epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID
// 5. 전자우편 접수 등록 retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg); // 전자우편 접수 등록
retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다."); throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다.");
} }
// 전자우편 접수 상세 내역을 등록한다. /////////////////////////////////////////////// // 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 = ""; // 약식 발송 구분 명 String infoSndngSeNm = ""; // 약식 발송 구분 명
if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도 if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도
@ -617,14 +629,14 @@ public class SndngBean extends AbstractComponent {
} }
recevSubj3 = deptSggInfo.string("SGG_NM"); recevSubj3 = deptSggInfo.string("SGG_NM");
// 6. 전자우편 접수 상세 등록 // 전자우편 접수 상세 조회
List<DataObject> sndngTrgts = sndngMapper.selectSndngTrgts(sndng.getSndngId()); List<DataObject> sndngTrgts = sndngMapper.selectSndngTrgts(sndng.getSndngId());
for (int iLoop = 0; iLoop < sndngTrgts.size(); iLoop++) { for (int iLoop = 0; iLoop < sndngTrgts.size(); iLoop++) {
// 전자우편 접수 상세 // 전자우편 접수 상세
EpostRcptDtl epostRcptDtl = new EpostRcptDtl(); EpostRcptDtl epostRcptDtl = new EpostRcptDtl();
// 발송 상세 및 부과 정보 조회 // 발송 상세 및 단속, 납부자, 부과 정보 조회
DataObject sndngDtlInfo = sndngMapper.selectSndngDtlLevyInfo(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID")); DataObject sndngDtlInfo = sndngMapper.selectSndngDtlLevyInfo(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID"));
if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) { if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) {
@ -948,13 +960,13 @@ public class SndngBean extends AbstractComponent {
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
// 전자우편 접수 상세 상태 코드 수정 // 8. 발송상세 내역을 수정한다.
// 우편통합 발송에 사용되었던 최신 단속,부과,납부자 정보로 -> 발송상세 정보를 업데이트한다. // 우편통합 발송에 사용되었던 최신 단속,부과,납부자 정보로 -> 발송상세 정보를 업데이트한다.
SndngDtl sndngDtl = new SndngDtl(); SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setConKey(conKey); // 외부연계식별키 sndngDtl.setConKey(conKey); // 외부연계식별키
sndngDtl.setRgNo(rgstNmbr); // 등기 번호 sndngDtl.setRgNo(rgstNmbr); // 등기 번호
sndngDtl.setSndngDtlSttsCd("03"); // 발송 상세 상태 코드 sndngDtl.setSndngDtlSttsCd("03"); // 발송 상세 상태 코드(FIM050) - 03 발송
sndngDtl.setRtpyrNm(sndngDtlInfo.string("RTPYR_NM")); // 납부자 명 sndngDtl.setRtpyrNm(sndngDtlInfo.string("RTPYR_NM")); // 납부자 명
sndngDtl.setRtpyrBrdt(sndngDtlInfo.string("RTPYR_BRDT")); // 납부자 생년월일 sndngDtl.setRtpyrBrdt(sndngDtlInfo.string("RTPYR_BRDT")); // 납부자 생년월일
sndngDtl.setRtpyrAddr(sndngDtlInfo.string("RTPYR_ADDR")); // 납부자 주소 sndngDtl.setRtpyrAddr(sndngDtlInfo.string("RTPYR_ADDR")); // 납부자 주소
@ -1000,7 +1012,7 @@ public class SndngBean extends AbstractComponent {
sndngDtl.setVrActno11(sndngDtlInfo.string("VR_ACTNO11")); sndngDtl.setVrActno11(sndngDtlInfo.string("VR_ACTNO11"));
sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID")); sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID"));
retSuccess = sndngMapper.updateEPostSndngDtlSttsCd(sndngDtl); retSuccess = sndngMapper.updateEPostSndngDtl(sndngDtl); // 전자우편 발송상세 내역 수정
if (!retSuccess) { if (!retSuccess) {
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }

@ -1565,7 +1565,64 @@
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="updateEPostSndngDtlSttsCd" parameterType="map">/* 우편통합 발송 상세 상태 코드 수정(sndngMapper.updateEPostSndngDtlSttsCd) */ <update id="updateSndngDtlSttsCd" parameterType="map">/* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */
UPDATE TB_SNDNG_DTL
SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
<if test="sndngDtl.mtchgId != null">
, MTCHG_ID = #{sndngDtl.mtchgId} <!-- 매칭 ID -->
</if>
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
AND DEL_YN = 'N'
</update>
<update id="updateSndngDtlSvbtc" parameterType="map">/* 발송 상세의 공시송달 정보를 수정(sndngMapper.updateSndngDtlSvbtc) */
UPDATE TB_SNDNG_DTL
SET SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
AND DEL_YN = 'N'
</update>
<update id="deleteSndngDtlSvbtc" parameterType="map">/* 발송 상세의 공시송달 정보를 삭제(sndngMapper.deleteSndngDtlSvbtc) */
UPDATE TB_SNDNG_DTL
SET SVBTC_ID = NULL <!-- 공시송달 ID -->
, BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
<if test="sndngDtl.sndngDtlId != null">
AND SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
</if>
AND DEL_YN = 'N'
</update>
<update id="deleteSndngDtl" parameterType="map">/* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */
UPDATE TB_SNDNG_DTL
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{sndngDtl.modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{sndngDtl.delRsn} <!-- 삭제 사유 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
AND DEL_YN = 'N'
</update>
<update id="updateEPostSndng" parameterType="map">/* 전자우편 발송 내역 수정(sndngMapper.updateEPostSndng) */
UPDATE TB_SNDNG
SET CON_KEY = #{sndngDtl.conKey} <!-- 외부연계식별키 -->
, DIV_KB = #{sndngDtl.divKb} <!-- 취급 구분 -->
, EPOST_NOTICE_ID = #{sndngDtl.epostNoticeId} <!-- 전자우편 안내문 ID -->
WHERE SNDNG_ID = #{sndngDtl.sndngDtlId}
AND DEL_YN = 'N'
</update>
<update id="updateEPostSndngDtl" parameterType="map">/* 전자우편 발송상세 내역 수정(sndngMapper.updateEPostSndngDtl) */
UPDATE TB_SNDNG_DTL UPDATE TB_SNDNG_DTL
SET CON_KEY = #{sndngDtl.conKey} <!-- 외부연계식별키 --> SET CON_KEY = #{sndngDtl.conKey} <!-- 외부연계식별키 -->
, RG_NO = #{sndngDtl.rgNo} <!-- 공시송달 ID --> , RG_NO = #{sndngDtl.rgNo} <!-- 공시송달 ID -->
@ -1620,53 +1677,7 @@
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="updateSndngDtlSttsCd" parameterType="map">/* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */
UPDATE TB_SNDNG_DTL
SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
<if test="sndngDtl.mtchgId != null">
, MTCHG_ID = #{sndngDtl.mtchgId} <!-- 매칭 ID -->
</if>
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
AND DEL_YN = 'N'
</update>
<update id="updateSndngDtlSvbtc" parameterType="map">/* 발송 상세의 공시송달 정보를 수정(sndngMapper.updateSndngDtlSvbtc) */
UPDATE TB_SNDNG_DTL
SET SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
AND DEL_YN = 'N'
</update>
<update id="deleteSndngDtlSvbtc" parameterType="map">/* 발송 상세의 공시송달 정보를 삭제(sndngMapper.deleteSndngDtlSvbtc) */
UPDATE TB_SNDNG_DTL
SET SVBTC_ID = NULL <!-- 공시송달 ID -->
, BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
<if test="sndngDtl.sndngDtlId != null">
AND SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
</if>
AND DEL_YN = 'N'
</update>
<update id="deleteSndngDtl" parameterType="map">/* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */
UPDATE TB_SNDNG_DTL
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{sndngDtl.modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{sndngDtl.delRsn} <!-- 삭제 사유 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
AND DEL_YN = 'N'
</update>
<update id="createSndbk" parameterType="map">/* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */ <update id="createSndbk" parameterType="map">/* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */
UPDATE TB_SNDNG_DTL UPDATE TB_SNDNG_DTL

Loading…
Cancel
Save