diff --git a/src/main/java/cokr/xit/fims/cmmn/dao/CrdnPayerHstryMapper.java b/src/main/java/cokr/xit/fims/cmmn/dao/CrdnPayerHstryMapper.java index 1f2917db..396ceab2 100644 --- a/src/main/java/cokr/xit/fims/cmmn/dao/CrdnPayerHstryMapper.java +++ b/src/main/java/cokr/xit/fims/cmmn/dao/CrdnPayerHstryMapper.java @@ -5,6 +5,7 @@ import java.util.Map; import org.egovframe.rte.psl.dataaccess.mapper.Mapper; +import cokr.xit.fims.cmmn.CrdnPayerAddrHstry; import cokr.xit.fims.cmmn.CrdnPayerHstry; import cokr.xit.fims.cmmn.CrdnPayerHstryQuery; import cokr.xit.foundation.component.AbstractMapper; @@ -62,18 +63,16 @@ public interface CrdnPayerHstryMapper extends AbstractMapper { * * @return 저장된 정보수 */ - int insertCrdnPayerAddrHstry(Map params); + int insertCrdnPayerAddrHstry(CrdnPayerAddrHstry crdnPayerAddrHstry); - /**단속 납부자 주소 이력 정보를 등록한다. - * @param crdnPayerHstry 단속 납부자 이력 - * @return 저장 여부 - * - */ - default boolean insertCrdnPayerAddrHstry(CrdnPayerHstry crdnPayerHstry) { - return crdnPayerHstry != null && insertCrdnPayerAddrHstry(params().set("crdnPayerAddrHstry", crdnPayerHstry)) == 1; - } + /**단속(TB_CRDN) 대장의 납부자 ID를 수정한다. + * @param params 파라미터 + * + * @return 저장된 정보수 + */ + int updateCrdnPayerAddr(CrdnPayerAddrHstry crdnPayerAddrHstry); /**단속(TB_CRDN) 대장의 납부자 ID를 수정한다. * @param params 파라미터 diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerHstryBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerHstryBean.java index dcb255ca..5ce5fd3a 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerHstryBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerHstryBean.java @@ -6,6 +6,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Component; +import cokr.xit.fims.cmmn.CrdnPayerAddrHstry; import cokr.xit.fims.cmmn.CrdnPayerHstry; import cokr.xit.fims.cmmn.CrdnPayerHstryQuery; import cokr.xit.fims.cmmn.dao.CrdnPayerHstryMapper; @@ -56,58 +57,38 @@ public class CrdnPayerHstryBean extends AbstractBean { return crdnPayerHstryMapper.insertCrdnPayerHstry(crdnPayerHstry); } - /**단속 납부자 주소 이력 정보를 등록한다. - * @param crdnPayerHstry 단속 납부자 이력 - * @return 저장 여부 - * - */ - public boolean createCrdnPayerAddrHstry(CrdnPayerHstry crdnPayerHstry) { - return crdnPayerHstryMapper.insertCrdnPayerAddrHstry(crdnPayerHstry); - } - - /**단속 납부자 이력 정보를 등록하고, 단속 대장의 납부자 정보를 수정한다. - * @param crdnPayerHstry 단속 납부자 이력 - * @return 저장 여부 - * - */ + /**단속 납부자 이력 정보를 등록하고, 단속 대장의 납부자 정보를 수정한다. + * @param crdnPayerHstry 단속 납부자 이력 + * @return 저장 여부 + * + */ public boolean updateCrdnPayer(CrdnPayerHstry crdnPayerHstry) { return crdnPayerHstryMapper.updateCrdnPayer(crdnPayerHstry); } - /**단속 납부자 이력 및 주소 이력 정보를 등록하고, 단속 대장의 납부자 정보를 수정한다. - * @param crdnPayerHstry 단속 납부자 이력 - * @return 저장 여부 - * - */ - public boolean createHstryUpdateCrdnPayer(CrdnPayerHstry crdnPayerHstry) { - boolean rtnScs = false; // DB 처리 결과 - - // 단속 납부자 이력 정보를 등록한다. - rtnScs = createCrdnPayerHstry(crdnPayerHstry); - if (!rtnScs) { - throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 단속 납부자 주소 이력 정보를 등록한다. - rtnScs = createCrdnPayerAddrHstry(crdnPayerHstry); - if (!rtnScs) { - throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 단속 대장의 납부자 ID, 주소 일련번호를 변경한다. - rtnScs = updateCrdnPayer(crdnPayerHstry); - if (!rtnScs) { - throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - return rtnScs; - } + /**단속 납부자 주소 이력 정보를 등록한다. + * @param crdnPayerAddrHstry 단속 납부자 주소 이력 + * @return 저장 여부 + * + */ + public int createCrdnPayerAddrHstry(CrdnPayerAddrHstry crdnPayerAddrHstry) { + return crdnPayerHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry); + } + + /**단속 대장의 납부자 주소 정보를 수정한다. + * @param crdnPayerAddrHstry 단속 납부자 주소 이력 + * @return 저장 여부 + * + */ + public int updateCrdnPayerAddr(CrdnPayerAddrHstry crdnPayerAddrHstry) { + return crdnPayerHstryMapper.updateCrdnPayerAddr(crdnPayerAddrHstry); + } /**단속 납부자 주소 이력 정보를 등록하고, 단속 대장의 납부자 정보를 수정한다. * @param crdnPayerHstry 단속 납부자 이력 @@ -116,22 +97,22 @@ public class CrdnPayerHstryBean extends AbstractBean { *
  • 그렇지 않으면 false
  • * */ - public boolean createHstryUpdateCrdnPayerAddr(CrdnPayerHstry crdnPayerHstry) { - boolean rtnScs = false; // DB 처리 결과 - - // 단속 납부자 주소 이력 정보를 등록한다. - rtnScs = createCrdnPayerAddrHstry(crdnPayerHstry); - if (!rtnScs) { - throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 단속 대장의 납부자 ID, 주소 일련번호를 변경한다. - rtnScs = updateCrdnPayer(crdnPayerHstry); - if (!rtnScs) { - throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - return rtnScs; - } + public boolean createHstryUpdateCrdnPayerAddr(CrdnPayerAddrHstry crdnPayerAddrHstry) { + int rtnNocs = -1; // 처리 결과 건수 + + // 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장을 등록한다. + rtnNocs = crdnPayerHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry); + if (rtnNocs != 1) { + throw new RuntimeException("납부자주소 이력 대장 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 단속 대장(TB_CRDN)을 수정한다. + rtnNocs = updateCrdnPayerAddr(crdnPayerAddrHstry); + if (rtnNocs != 1) { + throw new RuntimeException("단속 대장에 납부자, 주소 정보 수정 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return true; + } } diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java index fe11aa9a..06b3d45a 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java @@ -21,7 +21,7 @@ import org.springframework.stereotype.Component; import cokr.xit.base.file.FileInfo; import cokr.xit.base.file.service.bean.FileBean; import cokr.xit.fims.cmmn.CmmnUtil; -import cokr.xit.fims.cmmn.CrdnPayerHstry; +import cokr.xit.fims.cmmn.CrdnPayerAddrHstry; import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.service.bean.CrdnPayerHstryBean; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; @@ -162,18 +162,14 @@ public class CrdnBean extends AbstractBean { //단속납부자이력(TB_CRDN_PAYER_HSTRY) 대장 등록 if(!ifEmpty(crdn.getRtpyrId(), () -> "").equals("")) { - CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry(); - crdnPayerHstry.setCrdnId(crdn.getCrdnId()); - crdnPayerHstry.setRtpyrId(crdn.getRtpyrId()); - crdnPayerHstry.setAddrSn(crdn.getAddrSn()); - result = crdnPayerHstryBean.createCrdnPayerHstry(crdnPayerHstry); - if (!result) { - throw new RuntimeException("단속자료 등록 중 단속 납부자 이력 등록에 실패하였습니다."); - } + CrdnPayerAddrHstry crdnPayerAddrHstry = new CrdnPayerAddrHstry(); + crdnPayerAddrHstry.setCrdnId(crdn.getCrdnId()); + crdnPayerAddrHstry.setRtpyrId(crdn.getRtpyrId()); + crdnPayerAddrHstry.setAddrSn(crdn.getAddrSn()); // 단속 대장의 납부자ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다. - result = crdnPayerHstryBean.createCrdnPayerAddrHstry(crdnPayerHstry); - if (!result) { + int effected = crdnPayerHstryBean.createCrdnPayerAddrHstry(crdnPayerAddrHstry); + if(effected != 1) { throw new RuntimeException("단속자료 등록 중 단속 납부자주소 이력 등록에 실패하였습니다."); } } diff --git a/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java b/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java index 50d7fe55..793b8c99 100644 --- a/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java +++ b/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java @@ -8,7 +8,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Component; -import cokr.xit.fims.cmmn.CrdnPayerHstry; +import cokr.xit.fims.cmmn.CrdnPayerAddrHstry; import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.service.bean.CrdnPayerHstryBean; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; @@ -406,6 +406,7 @@ public class PayerBean extends AbstractBean { public String createCrdnPayer(Payer payer) { // 변수 선언 boolean rtnScs = false; // DB 처리 결과 + boolean bInstHstry = false; // DB 처리 결과 String strTemp = ""; // 생년월일 @@ -423,6 +424,9 @@ public class PayerBean extends AbstractBean { payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr()); } + // 납부자 주소 이력 + CrdnPayerAddrHstry crdnPayerAddrHstry = new CrdnPayerAddrHstry(); + // 단속 ID로 단속, 납부자, 주소 정보 조회 DataObject crdnPayerAddrInfo = payerMapper.selectCrdnInfo(payer.getCrdnId()); @@ -434,42 +438,46 @@ public class PayerBean extends AbstractBean { throw new RuntimeException("납부자 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - // 주소가 변경되었는지 확인 - if (crdnPayerAddrInfo.string("ADDR_INPT_SE_CD").equals(payer.getAddrInptSeCd()) - && crdnPayerAddrInfo.string("ZIP").equals(payer.getZip()) - && crdnPayerAddrInfo.string("ADDR").equals(payer.getAddr()) - && crdnPayerAddrInfo.string("DTL_ADDR").equals(payer.getDtlAddr()) - && crdnPayerAddrInfo.string("ROAD_NM_CD").equals(payer.getRoadNmCd())) { + // 주소가 변경되었는지 확인 + if (crdnPayerAddrInfo.string("ADDR_INPT_SE_CD").equals(payer.getAddrInptSeCd()) + && crdnPayerAddrInfo.string("ZIP").equals(payer.getZip()) + && crdnPayerAddrInfo.string("ADDR").equals(payer.getAddr()) + && crdnPayerAddrInfo.string("DTL_ADDR").equals(payer.getDtlAddr()) + && crdnPayerAddrInfo.string("ROAD_NM_CD").equals(payer.getRoadNmCd()) + && crdnPayerAddrInfo.string("STDG_CD").equals(payer.getStdgCd())) { // 주소 일련번호 설정 payer.setAddrSn(crdnPayerAddrInfo.string("ADDR_SN")); + + // 납부자 번호와 주소가 같다면 단속 납부자주소 이력을 등록하지 않는다. + bInstHstry = false; } else { Payer result = getPayerAddrInfo(payer); - CrdnPayerHstry crdnPayerAddrHstry = new CrdnPayerHstry(); crdnPayerAddrHstry.setCrdnId(payer.getCrdnId()); crdnPayerAddrHstry.setRtpyrId(result.getRtpyrId()); crdnPayerAddrHstry.setAddrSn(result.getAddrSn()); - // 납부자 주소 변경 이력 생성 - rtnScs = crdnPayerHstryBean.createHstryUpdateCrdnPayerAddr(crdnPayerAddrHstry); - if (!rtnScs) { - throw new RuntimeException("납부자 등록 실행중 단속 대장에 주소 일련번호 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - + // 납부자 번호가 같고, 주소가 다르다면 단속 납부자주소 이력을 등록한다. + bInstHstry = true; // 이력 등록 여부 } } else { Payer result = create(payer) ? payer : getPayerAddrInfo(payer); // 단속 대장의 납부자ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다. - CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry(); - crdnPayerHstry.setCrdnId(payer.getCrdnId()); - crdnPayerHstry.setRtpyrId(result.getRtpyrId()); - crdnPayerHstry.setAddrSn(result.getAddrSn()); - - rtnScs = crdnPayerHstryBean.createHstryUpdateCrdnPayer(crdnPayerHstry); - if (!rtnScs) { - throw new RuntimeException("납부자 등록 실행중 단속 대장에 납부자 ID 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } + crdnPayerAddrHstry.setCrdnId(payer.getCrdnId()); + crdnPayerAddrHstry.setRtpyrId(result.getRtpyrId()); + crdnPayerAddrHstry.setAddrSn(result.getAddrSn()); + + // 납부자 번호가 다르다면 단속 납부자주소 이력을 등록한다. + bInstHstry = true; // 이력 등록 여부 + } + + // 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장에 등록한다. + if (bInstHstry) { + rtnScs = crdnPayerHstryBean.createHstryUpdateCrdnPayerAddr(crdnPayerAddrHstry); + if (!rtnScs) { + throw new RuntimeException("납부자 등록 실행중 단속 대장에 주소 일련번호 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } } // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. @@ -513,5 +521,4 @@ public class PayerBean extends AbstractBean { return payerAddrMapper.selectPayerAddrHstrys(req); } - } diff --git a/src/main/resources/sql/mapper/fims/cmmn/crdnPayerHstry-mapper.xml b/src/main/resources/sql/mapper/fims/cmmn/crdnPayerHstry-mapper.xml index b54fa819..46b79d74 100644 --- a/src/main/resources/sql/mapper/fims/cmmn/crdnPayerHstry-mapper.xml +++ b/src/main/resources/sql/mapper/fims/cmmn/crdnPayerHstry-mapper.xml @@ -81,6 +81,15 @@ ) + /* 단속 납부자 수정(crdnPayerHstryMapper.updateCrdnPayer) */ + UPDATE TB_CRDN + SET RTPYR_ID = #{rtpyrId} + , ADDR_SN = #{addrSn} + , MDFCN_DT = + , MDFR = #{modifiedBy} + WHERE CRDN_ID = #{crdnId} + + /* 단속 납부자 주소 이력 등록(crdnPayerHstryMapper.insertCrdnPayerAddrHstry) */ @@ -108,7 +117,7 @@ ) - /* 단속 납부자 수정(crdnPayerHstryMapper.updateCrdnPayer) */ + /* 단속 납부자 수정(crdnPayerHstryMapper.updateCrdnPayer) */ UPDATE TB_CRDN SET RTPYR_ID = #{rtpyrId} , ADDR_SN = #{addrSn} diff --git a/src/main/resources/sql/mapper/fims/payer-mapper.xml b/src/main/resources/sql/mapper/fims/payer-mapper.xml index 7f97c195..2395544c 100644 --- a/src/main/resources/sql/mapper/fims/payer-mapper.xml +++ b/src/main/resources/sql/mapper/fims/payer-mapper.xml @@ -259,6 +259,7 @@ , PA.ADDR , PA.DTL_ADDR , PA.ROAD_NM_CD + , PA.STDG_CD FROM TB_CRDN C LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN) diff --git a/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml b/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml index 409aa4da..c985a740 100644 --- a/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml +++ b/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml @@ -218,27 +218,22 @@ , CPAH.RTPYR_ID , CPAH.ADDR_SN , CPAH.REG_DT - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CPAH.RGTR) AS RGTR_NM - , (SELECT GET_CODE_NM('FIM087', PA.ADDR_INPT_SE_CD) FROM DUAL) AS ADDR_INPT_SE_NM - , (SELECT GET_CODE_NM('FIM013', PA.ADDR_SE_CD) FROM DUAL) AS ADDR_SE_NM + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CPAH.RGTR) AS RGTR_NM + , P.RTPYR_SE_CD + , (GET_CODE_NM('FIM011', P.RTPYR_SE_CD)) AS RTPYR_SE_NM + , P.RTPYR_NM + , (GET_CODE_NM('FIM087', PA.ADDR_INPT_SE_CD)) AS ADDR_INPT_SE_NM + , (GET_CODE_NM('FIM013', PA.ADDR_SE_CD)) AS ADDR_SE_NM , PA.ZIP , PA.ADDR , PA.DTL_ADDR , PA.ROAD_NM_CD - , PA.UDGD_SE_CD - , PA.BMNO - , PA.BSNO , PA.BLDG_MNG_NO , PA.STDG_CD , PA.DONG_CD - , PA.MTN_SE_CD - , PA.MNO - , PA.SNO - , PA.SPCL_DONG - , PA.SPCL_HO - , PA.SPCL_ADDR , PA.WHOL_ADDR FROM TB_CRDN_PAYER_ADDR_HSTRY CPAH + INNER JOIN TB_PAYER P ON (CPAH.RTPYR_ID = P.RTPYR_ID) INNER JOIN TB_PAYER_ADDR PA ON (CPAH.RTPYR_ID = PA.RTPYR_ID AND CPAH.ADDR_SN = PA.ADDR_SN)