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 3ddf6f81..2addbfed 100644
--- a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java
+++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java
@@ -255,4 +255,18 @@ public interface SndngMapper extends AbstractMapper {
return sndngDtl != null && deleteSndngDtl(params().set("sndngDtl", sndngDtl)) == 1;
}
+ /**발송 상세 정보의 발송 상세 상태 코드를 수정한다.
+ * @param params 파라미터
+ *
- "sndngDtl" - 발송 상세
+ * - "currentUser" - 현재 접속한 사용자
+ *
+ * @return 저장된 정보수
+ */
+ int updateSndngDtlSttsCd(Map params);
+
+ default boolean updateSndngDtlSttsCd(SndngDtl sndngDtl) {
+ return sndngDtl != null && updateSndngDtlSttsCd(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 f9254778..25d5b43c 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
@@ -659,9 +659,9 @@ public class SndngBean extends AbstractComponent {
// 계도장, 사전통지서는 최초 과태료 금액을 출력한다.
if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) {
- pcptax = sndngDtlInfo.number("FFNLG_CRDN_AMT").intValue(); // 본세 = 과태료 단속 금액
+ pcptax = sndngDtlInfo.number("FFNLG_AMT").intValue(); // 본세 = 과태료 단속 금액
adamt = 0; // 가산금 = 0
- sumAmt = sndngDtlInfo.number("FFNLG_CRDN_AMT").intValue(); // 합계 금액 = 과태료 단속 금액
+ sumAmt = sndngDtlInfo.number("FFNLG_AMT").intValue(); // 합계 금액 = 과태료 단속 금액
afterPcptax = 0; // 납기후 본세
afterAdamt = 0; // 납기후 가산금
afterSumAmt = 0; // 납기후 합계 금액
@@ -671,13 +671,13 @@ public class SndngBean extends AbstractComponent {
sumAmt = sndngDtlInfo.number("SUM_AMT").intValue(); // 합계 금액
if (sndngDtlInfo.string("SGG_CD").equals("50110")) {
- afterPcptax = 0; // 납기후 본세
- afterAdamt = 0; // 납기후 가산금
- afterSumAmt = 0; // 납기후 합계 금액
+ afterPcptax = 0; // 납기후 본세
+ afterAdamt = 0; // 납기후 가산금
+ afterSumAmt = 0; // 납기후 합계 금액
} else {
- afterPcptax = sndngDtlInfo.number("PCPTAX").intValue(); // 납기후 본세
+ afterPcptax = sndngDtlInfo.number("PCPTAX").intValue(); // 납기후 본세
afterAdamt = sndngDtlInfo.number("DUDT_AFTR_AMT").intValue() - sndngDtlInfo.number("PCPTAX").intValue(); // 납기후 가산금
- afterSumAmt = sndngDtlInfo.number("DUDT_AFTR_AMT").intValue(); // 납기후 금액
+ afterSumAmt = sndngDtlInfo.number("DUDT_AFTR_AMT").intValue(); // 납기후 금액
}
}
@@ -728,10 +728,9 @@ public class SndngBean extends AbstractComponent {
}
// band2 = 부과구분코드 + 합계금액 + 납기일자 + "0"
band2 = levySeCd
- + String.format("%011d", sndngDtlInfo.string("SUM_AMT"))
+ + String.format("%011d", sumAmt)
+ sndngDtlInfo.string("DUDT_YMD")
+ "0";
-
ocrVrfcCode = getOcrVrfcCode("23571", band1 + band2, 53);
band2 = band2 + ocrVrfcCode;
@@ -741,7 +740,7 @@ public class SndngBean extends AbstractComponent {
+ "00"
+ "0000000000"
+ "00"
- + String.format("%011d", sndngDtlInfo.string("SUM_AMT"))
+ + String.format("%011d", sumAmt)
+ "00";
ocrVrfcCode = getOcrVrfcCode("35712", band3, 36);
@@ -749,7 +748,7 @@ public class SndngBean extends AbstractComponent {
// 0=납기후 수납가능, 1=납기후 수납불가, 2=납기 무관, 7~9=납기후 수납가능
band4 = sndngDtlInfo.string("DUDT_YMD").substring(4, 5)
+ "1"
- + "000000000000";
+ + String.format("%012d", afterSumAmt);
ocrVrfcCode = getOcrVrfcCode("57123", band3 + band4, 52);
band4 = band4 + ocrVrfcCode;
@@ -849,22 +848,18 @@ public class SndngBean extends AbstractComponent {
}
// 과태료금액
epostRcptDtl.setRecevFinePrice(sndngDtlInfo.string("FFNLG_AMT"));
- // 납부 금액
- epostRcptDtl.setRecevPayPrice(sndngDtlInfo.string("SUM_AMT"));
+ // 납부금액
+ epostRcptDtl.setRecevPayPrice(String.valueOf(sumAmt));
// 납부기한
epostRcptDtl.setRecevPayDt(sndngDtlInfo.string("DUDT_YMD_MASK_KOR"));
// 납기내기한
epostRcptDtl.setRecevPayInDate(sndngDtlInfo.string("DUDT_YMD_MASK"));
// 납기내금액
- if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 계도장, 사전통지서는 최초 과태료 금액을 출력
- epostRcptDtl.setRecevPayInPrice(sndngDtlInfo.string("FFNLG_AMT"));
- } else {
- epostRcptDtl.setRecevPayInPrice(sndngDtlInfo.string("PCPTAX"));
- }
+ epostRcptDtl.setRecevPayInPrice(String.valueOf(pcptax));
// 납기내가산금
- epostRcptDtl.setRecevPayInAddPrice(sndngDtlInfo.string("ADAMT"));
+ epostRcptDtl.setRecevPayInAddPrice(String.valueOf(adamt));
// 납기내합계금액
- epostRcptDtl.setRecevPayInDefaultPrice(sndngDtlInfo.string("SUM_AMT"));
+ epostRcptDtl.setRecevPayInDefaultPrice(String.valueOf(sumAmt));
// 납기후기한
epostRcptDtl.setRecevPayOutDate(sndngDtlInfo.string("DUDT_AFTR_YMD_MASK"));
// 납기후금액
@@ -900,8 +895,6 @@ public class SndngBean extends AbstractComponent {
// 계도장, 사전통지서에는 사진을 출력한다.
if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) {
-// if (prtGubun = GOJI_GUBUN_INSTRUCT) or (prtGubun = GOJI_GUBUN_PRE) then //사전통지서엔 사진출력
-// begin
// cutFileName := FieldByName('MM_CODE').AsString;
// qryPutDetail.ParamByName('RECEV_PHOTO_CNT').AsString := FieldByName('MM_IMAGECNT').AsString;
// if FieldByName('MM_IMAGECNT').AsInteger > 0 then
@@ -920,7 +913,6 @@ public class SndngBean extends AbstractComponent {
// begin
// qryPutDetail.ParamByName('RECEV_PHOTO_FILE4').AsString := cutFileName + 'D.jpg';
// end;
-// end;
}
// 전자우편 접수 상세
@@ -930,37 +922,19 @@ public class SndngBean extends AbstractComponent {
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다.");
}
-// if isStateUpdate then
-// begin
-//
-// Edit;
-//
-// fData.CleanPark.qryGojiPrt_SetState2.ParamByName('GP_CON_KEY').AsString := im_con_key; // 2017.09.28
-//
-// if (cdD.FieldByName('GP_REGIST_NO').AsString <> '') and
-// (regist_gubun = '0') then
-// begin
-// // 등기번호가 있는데 일반일 경우 등기번호 업데이트 X
-// fData.CleanPark.qryGojiPrt_SetState2.ParamByName('GP_REGIST_NO').AsString := cdD.FieldByName('GP_REGIST_NO').AsString;
-// end
-// else
-// begin
-// fData.CleanPark.qryGojiPrt_SetState2.ParamByName('GP_REGIST_NO').AsString := im_regt_no; // 등기번호
-// cdD.FieldByName('GP_REGIST_NO').AsString := im_regt_no;
-// end;
-//
-// fData.CleanPark.qryGojiPrt_SetState2.ParamByName('GP_STATE').AsString := GOJI_PRT_GUBUN_POST; // 발송
-// fData.CleanPark.qryGojiPrt_SetState2.ParamByName('GP_CODE').AsString := FieldByName('GP_CODE').AsString;
-// fData.CleanPark.qryGojiPrt_SetState2.ExecSQL;
-//
-// FieldByName('GP_STATE').AsString := GOJI_PRT_GUBUN_POST;
-// Post;
-// end;
-//
-// Inc(up_cnt);
-//
-// Next;
-// end; // while not eof do begin
+ // 전자우편 접수 상세 상태 코드 수정.
+ SndngDtl sndngDtl = new SndngDtl();
+
+ sndngDtl.setConKey(conKey);
+ sndngDtl.setRgNo(rgstNmbr);
+ sndngDtl.setSndngDtlSttsCd("03");
+ sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID"));
+
+ retSuccess = sndngMapper.updateSndngDtlSttsCd(sndngDtl);
+ if (!retSuccess) {
+ // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
+ throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다.");
+ }
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
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 829dc2fe..8643fd23 100644
--- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml
+++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml
@@ -1381,4 +1381,16 @@
AND DEL_YN = 'N'
+
+ /* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */
+ UPDATE TB_SNDNG_DTL
+ SET CON_KEY = #{sndngDtl.conKey}
+ , RG_NO = #{sndngDtl.rgNo}
+ , 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'
+