|
|
|
@ -8,6 +8,10 @@ import javax.annotation.Resource;
|
|
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.fims.cmmn.CrdnPayerHstry;
|
|
|
|
|
import cokr.xit.fims.cmmn.CrdnSttsHstry;
|
|
|
|
|
import cokr.xit.fims.cmmn.service.bean.CrdnPayerHstryBean;
|
|
|
|
|
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
|
|
|
|
|
import cokr.xit.fims.payer.Payer;
|
|
|
|
|
import cokr.xit.fims.payer.PayerQuery;
|
|
|
|
|
import cokr.xit.fims.payer.dao.PayerMapper;
|
|
|
|
@ -35,6 +39,14 @@ public class PayerBean extends AbstractComponent {
|
|
|
|
|
@Resource(name = "vehicleInfoBean")
|
|
|
|
|
private VehicleInfoBean vehicleInfoBean;
|
|
|
|
|
|
|
|
|
|
/** 단속 상태 이력 정보 Bean */
|
|
|
|
|
@Resource(name = "crdnSttsHstryBean")
|
|
|
|
|
private CrdnSttsHstryBean crdnSttsHstryBean;
|
|
|
|
|
|
|
|
|
|
/** 단속 납부자 이력 정보 Bean */
|
|
|
|
|
@Resource(name = "crdnPayerHstryBean")
|
|
|
|
|
private CrdnPayerHstryBean crdnPayerHstryBean;
|
|
|
|
|
|
|
|
|
|
/**지정한 조건에 따라 납부자 목록을 조회하여 반환한다.
|
|
|
|
|
* @param req 납부자 조회 조건
|
|
|
|
|
* @return 납부자 목록
|
|
|
|
@ -149,25 +161,155 @@ public class PayerBean extends AbstractComponent {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 부과제외 ID의 부과제외 정보를 반환한다.<br />
|
|
|
|
|
* @param req 부과제외 조회 조건
|
|
|
|
|
* @return 부과제외 정보
|
|
|
|
|
* @param req 납부자 조회 조건
|
|
|
|
|
* @return 납부자 정보
|
|
|
|
|
*/
|
|
|
|
|
public DataObject getCrdnPayerInfo(PayerQuery req) {
|
|
|
|
|
return payerMapper.selectCrdnPayerInfo(req);
|
|
|
|
|
public DataObject getPayerInfo(PayerQuery req) {
|
|
|
|
|
return payerMapper.selectPayerInfo(req);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 단속 ID의 단속 정보를 반환한다.<br />
|
|
|
|
|
* @param crndId 단속 ID
|
|
|
|
|
* @param req 납부자 조회 조건
|
|
|
|
|
* @return 단속 정보
|
|
|
|
|
*/
|
|
|
|
|
public DataObject getCrdnInfo(PayerQuery req) {
|
|
|
|
|
DataObject dataCrdn = payerMapper.selectCrdn(req); // 단속 조회
|
|
|
|
|
|
|
|
|
|
if (req.getCallPurpose().equals("create")) {
|
|
|
|
|
dataCrdn.set("LEVY_EXCL_YMD", dataCrdn.get("TODAY")); // 부과 제외 일자
|
|
|
|
|
return dataCrdn;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**납부자 정보를 등록한다.
|
|
|
|
|
* @param payer 납부자
|
|
|
|
|
* @return 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public String createPayer(Payer payer) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
String retMessage = "[F] "; // 처리 결과 메시지
|
|
|
|
|
|
|
|
|
|
// 단속 ID로 단속 정보 조회
|
|
|
|
|
DataObject infoCrdn = payerMapper.selectCrdnInfo(payer.getCrdnId());
|
|
|
|
|
|
|
|
|
|
// 납부자 조회 조건
|
|
|
|
|
PayerQuery req = new PayerQuery();
|
|
|
|
|
req.setVhrno(payer.getVhrno());
|
|
|
|
|
req.setRtpyrNo(payer.getRtpyrNo());
|
|
|
|
|
req.setOrderBy("RTPYR_ID DESC");
|
|
|
|
|
|
|
|
|
|
List<Payer> infoPayer = payerMapper.selectPayers(req);
|
|
|
|
|
|
|
|
|
|
if (infoPayer.size() == 0) {
|
|
|
|
|
DataObject params = new DataObject()
|
|
|
|
|
.set("roadNmCd", payer.getRoadNmCd())
|
|
|
|
|
.set("udgdSeCd", payer.getUdgdSeCd())
|
|
|
|
|
.set("bmno", payer.getBmno())
|
|
|
|
|
.set("bsno", payer.getBsno());
|
|
|
|
|
|
|
|
|
|
DataObject info = payerMapper.selectAddrInfo(params);
|
|
|
|
|
|
|
|
|
|
if (info != null) {
|
|
|
|
|
payer.setAddrSeCd("02");
|
|
|
|
|
payer.setZip(info.string("ZIP"));
|
|
|
|
|
payer.setBldgMngNo(info.string("BLDG_MNG_NO"));
|
|
|
|
|
payer.setStdgCd(info.string("STDG_CD"));
|
|
|
|
|
payer.setDongCd(info.string("DONG_CD"));
|
|
|
|
|
}
|
|
|
|
|
payer.setWholAddr(payer.getAddr() + " " + payer.getDtlAddr()); // 전체 주소
|
|
|
|
|
|
|
|
|
|
retSuccess = payerMapper.insert(payer);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 등록에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
payer.setRtpyrId(infoPayer.get(0).getRtpyrId());
|
|
|
|
|
|
|
|
|
|
retSuccess = payerMapper.update(payer);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 등록에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return dataCrdn;
|
|
|
|
|
// 단속 대장의 납부자 ID 수정
|
|
|
|
|
retSuccess = payerMapper.updateCrdnPayer(payer);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 등록 실행중 단속 대장에 납부자ID 등록에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
|
|
|
|
|
CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry();
|
|
|
|
|
crdnPayerHstry.setCrdnId(payer.getCrdnId());
|
|
|
|
|
crdnPayerHstry.setRtpyrId(payer.getRtpyrId());
|
|
|
|
|
|
|
|
|
|
retSuccess = crdnPayerHstryBean.create(crdnPayerHstry);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태코드 변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
|
|
|
|
|
if (infoCrdn.number("CRDN_STTS_CD").intValue() < 21) { // 차적조회완료
|
|
|
|
|
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
|
|
|
|
|
crdnSttsHstry.setCrdnId(infoCrdn.string("CRDN_ID"));
|
|
|
|
|
crdnSttsHstry.setBfrSttsCd(infoCrdn.string("CRDN_STTS_CD"));
|
|
|
|
|
crdnSttsHstry.setBfrSttsChgDt(infoCrdn.string("CRDN_STTS_CHG_DT"));
|
|
|
|
|
crdnSttsHstry.setCrdnSttsCd("21");
|
|
|
|
|
|
|
|
|
|
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
retMessage = "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
|
|
|
|
|
return retMessage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**납부자 정보를 등록한다.
|
|
|
|
|
* @param payer 납부자
|
|
|
|
|
* @return 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public String updatePayer(Payer payer) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
String retMessage = "[F] "; // 처리 결과 메시지
|
|
|
|
|
|
|
|
|
|
DataObject params = new DataObject()
|
|
|
|
|
.set("roadNmCd", payer.getRoadNmCd())
|
|
|
|
|
.set("udgdSeCd", payer.getUdgdSeCd())
|
|
|
|
|
.set("bmno", payer.getBmno())
|
|
|
|
|
.set("bsno", payer.getBsno());
|
|
|
|
|
|
|
|
|
|
DataObject info = payerMapper.selectAddrInfo(params);
|
|
|
|
|
|
|
|
|
|
if (info != null) {
|
|
|
|
|
payer.setAddrSeCd("02");
|
|
|
|
|
payer.setZip(info.string("ZIP"));
|
|
|
|
|
payer.setBldgMngNo(info.string("BLDG_MNG_NO"));
|
|
|
|
|
payer.setStdgCd(info.string("STDG_CD"));
|
|
|
|
|
payer.setDongCd(info.string("DONG_CD"));
|
|
|
|
|
}
|
|
|
|
|
payer.setWholAddr(payer.getAddr() + " " + payer.getDtlAddr()); // 전체 주소
|
|
|
|
|
|
|
|
|
|
retSuccess = payerMapper.update(payer);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("납부자 수정에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
retMessage = "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
|
|
|
|
|
return retMessage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|