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