|
|
|
|
@ -143,8 +143,9 @@ public class PayerBean extends AbstractBean {
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean create(Payer payer) {
|
|
|
|
|
return payerMapper.insert(payer) // 납부자 등록
|
|
|
|
|
&& createPayerAddr(payer); // 납부자 주소 등록
|
|
|
|
|
boolean created = payerMapper.insert(payer); // 납부자 등록
|
|
|
|
|
createPayerAddr(payer, created); // 주소 등록
|
|
|
|
|
return created;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**납부자 정보를 수정한다.
|
|
|
|
|
@ -166,7 +167,18 @@ public class PayerBean extends AbstractBean {
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean createPayerAddr(Payer payer) {
|
|
|
|
|
// 납부자 주소 등록
|
|
|
|
|
return createPayerAddr(payer, true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private boolean createPayerAddr(Payer payer, boolean newPayer) {
|
|
|
|
|
if (!newPayer) {
|
|
|
|
|
PayerQuery req = new PayerQuery().setRtpyrSeCd(payer.getRtpyrSeCd());
|
|
|
|
|
req.setRtpyrNo(payer.getRtpyrNo());
|
|
|
|
|
Payer loaded = payerMapper.selectPayer(req);
|
|
|
|
|
payer.setRtpyrId(loaded.getRtpyrId());
|
|
|
|
|
// payer.setAddrSn(loaded.getAddrSn());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DataObject params = new DataObject()
|
|
|
|
|
.set("roadNmCd", payer.getRoadNmCd())
|
|
|
|
|
.set("udgdSeCd", payer.getUdgdSeCd())
|
|
|
|
|
@ -180,7 +192,6 @@ public class PayerBean extends AbstractBean {
|
|
|
|
|
payer.setStdgCd(info.string("STDG_CD"));
|
|
|
|
|
payer.setDongCd(info.string("DONG_CD"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return payerAddrMapper.insertPayerAddr(payer) == 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -360,75 +371,59 @@ public class PayerBean extends AbstractBean {
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public String createCrdnPayer(Payer payer) {
|
|
|
|
|
// 생년월일
|
|
|
|
|
if ("01,02".contains(payer.getRtpyrSeCd())) {
|
|
|
|
|
payer.setRtpyrBrdt(payer.getRtpyrNo().substring(0, 6));
|
|
|
|
|
}
|
|
|
|
|
// 지하 구분 코드
|
|
|
|
|
if ("01,02".contains(payer.getRtpyrSeCd()))
|
|
|
|
|
payer.setRtpyrBrdt(payer.getRtpyrNo().substring(0, 6)); // 생년월일
|
|
|
|
|
if (isEmpty(payer.getUdgdSeCd()))
|
|
|
|
|
payer.setUdgdSeCd("0");
|
|
|
|
|
// 전체 주소
|
|
|
|
|
payer.setUdgdSeCd("0"); // 지하 구분 코드
|
|
|
|
|
if (isEmpty(payer.getWholAddr()))
|
|
|
|
|
payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr());
|
|
|
|
|
payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr()); // 전체 주소
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 이력
|
|
|
|
|
CrdnPayerAddrHstry crdnPayerAddrHstry = new CrdnPayerAddrHstry();
|
|
|
|
|
// 단속 ID로 단속, 납부자, 주소 정보 조회
|
|
|
|
|
DataObject crdnPayerAddrInfo = payerMapper.selectCrdnInfo(payer.getCrdnId());
|
|
|
|
|
String crdnId = payer.getCrdnId();
|
|
|
|
|
DataObject crdnPayerAddrInfo = payerMapper.selectCrdnInfo(crdnId);
|
|
|
|
|
|
|
|
|
|
boolean bInstHstry = false; // DB 처리 결과
|
|
|
|
|
boolean bInstHstry = false;
|
|
|
|
|
Payer result = null;
|
|
|
|
|
// 주민등록번호가 동일하다면..
|
|
|
|
|
if (crdnPayerAddrInfo.string("RTPYR_NO").equals(payer.getRtpyrNo())) {
|
|
|
|
|
if (crdnPayerAddrInfo != null && equals(crdnPayerAddrInfo.get("RTPYR_NO"), payer.getRtpyrNo())) {
|
|
|
|
|
// 납부자 대장(TB_PAYER)에 납부자 정보를 수정한다.
|
|
|
|
|
if (!update(payer))
|
|
|
|
|
throw new RuntimeException("납부자 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 정보 수정에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 주소가 변경되었는지 확인
|
|
|
|
|
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())) {
|
|
|
|
|
if (equals(crdnPayerAddrInfo.get("ADDR_INPT_SE_CD"), payer.getAddrInptSeCd())
|
|
|
|
|
&& equals(crdnPayerAddrInfo.get("ZIP"), payer.getZip())
|
|
|
|
|
&& equals(crdnPayerAddrInfo.get("ADDR"), payer.getAddr())
|
|
|
|
|
&& equals(crdnPayerAddrInfo.get("DTL_ADDR"), payer.getDtlAddr())
|
|
|
|
|
&& equals(crdnPayerAddrInfo.get("ROAD_NM_CD"), payer.getRoadNmCd())
|
|
|
|
|
&& equals(crdnPayerAddrInfo.get("STDG_CD"), payer.getStdgCd())) {
|
|
|
|
|
// 주소 일련번호 설정
|
|
|
|
|
payer.setAddrSn(crdnPayerAddrInfo.string("ADDR_SN"));
|
|
|
|
|
|
|
|
|
|
// 납부자 번호와 주소가 같다면 단속 납부자주소 이력을 등록하지 않는다.
|
|
|
|
|
bInstHstry = false;
|
|
|
|
|
} else {
|
|
|
|
|
Payer result = getPayerAddrInfo(payer);
|
|
|
|
|
|
|
|
|
|
crdnPayerAddrHstry.setCrdnId(payer.getCrdnId());
|
|
|
|
|
crdnPayerAddrHstry.setRtpyrId(result.getRtpyrId());
|
|
|
|
|
crdnPayerAddrHstry.setAddrSn(result.getAddrSn());
|
|
|
|
|
|
|
|
|
|
result = getPayerAddrInfo(payer);
|
|
|
|
|
// 납부자 번호가 같고, 주소가 다르다면 단속 납부자주소 이력을 등록한다.
|
|
|
|
|
bInstHstry = true; // 이력 등록 여부
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Payer result = create(payer) ? payer : getPayerAddrInfo(payer);
|
|
|
|
|
result = create(payer) ? payer : getPayerAddrInfo(payer);
|
|
|
|
|
|
|
|
|
|
// 단속 대장의 납부자ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
|
|
|
|
|
crdnPayerAddrHstry.setCrdnId(payer.getCrdnId());
|
|
|
|
|
crdnPayerAddrHstry.setRtpyrId(result.getRtpyrId());
|
|
|
|
|
crdnPayerAddrHstry.setAddrSn(result.getAddrSn());
|
|
|
|
|
|
|
|
|
|
Payer updtPayer = new Payer();
|
|
|
|
|
updtPayer.setRtpyrId("");
|
|
|
|
|
updtPayer.setRtpyrNm(payer.getRtpyrNm());
|
|
|
|
|
|
|
|
|
|
// 전화번호
|
|
|
|
|
String str = result.getRtpyrTelno();
|
|
|
|
|
String str = result.getRtpyrTelno(); // 전화번호
|
|
|
|
|
if (!isEmpty(str))
|
|
|
|
|
updtPayer.setRtpyrTelno(str);
|
|
|
|
|
// 휴대전화번호
|
|
|
|
|
if (!isEmpty(str = result.getRtpyrMblTelno()))
|
|
|
|
|
if (!isEmpty(str = result.getRtpyrMblTelno())) // 휴대전화번호
|
|
|
|
|
updtPayer.setRtpyrMblTelno(str);
|
|
|
|
|
// 이메일
|
|
|
|
|
if (!isEmpty(str = result.getRtpyrEml()))
|
|
|
|
|
if (!isEmpty(str = result.getRtpyrEml())) // 이메일
|
|
|
|
|
updtPayer.setRtpyrEml(str);
|
|
|
|
|
// 납부자 상태 코드
|
|
|
|
|
if (!isEmpty(str = result.getRtpyrSttsCd()))
|
|
|
|
|
if (!isEmpty(str = result.getRtpyrSttsCd())) // 납부자 상태 코드
|
|
|
|
|
updtPayer.setRtpyrSttsCd(str);
|
|
|
|
|
|
|
|
|
|
if (!isEmpty(str))
|
|
|
|
|
@ -445,10 +440,8 @@ public class PayerBean extends AbstractBean {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장에 등록한다.
|
|
|
|
|
if (bInstHstry) {
|
|
|
|
|
if (!crdnPayerAddrHstryBean.createHstryUpdateCrdnPayerAddr(crdnPayerAddrHstry))
|
|
|
|
|
throw new RuntimeException("납부자 등록 실행중 단속 대장에 주소 일련번호 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
if (bInstHstry)
|
|
|
|
|
createAddrHistory(result);
|
|
|
|
|
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
|
|
|
|
|
if (toInt(crdnPayerAddrInfo.get("CRDN_STTS_CD")) < 21) { // 납부자 등록 완료
|
|
|
|
|
@ -459,12 +452,16 @@ public class PayerBean extends AbstractBean {
|
|
|
|
|
crdnSttsHstry.setCrdnSttsCd("21");
|
|
|
|
|
|
|
|
|
|
if (!crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry))
|
|
|
|
|
throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void createAddrHistory(Payer payer) {
|
|
|
|
|
crdnPayerAddrHstryBean.createHstryUpdateCrdnPayerAddr(CrdnPayerAddrHstry.create(payer));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 조건에 따라 납부자 이력 목록을 조회하여 반환한다.
|
|
|
|
|
* @param req 납부자 조회 조건
|
|
|
|
|
* @return 납부자 변경 이력 목록
|
|
|
|
|
|