diff --git a/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java b/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java index cc8f2080..aadea53d 100644 --- a/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java +++ b/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java @@ -379,7 +379,7 @@ public class Crdn05Controller extends ApplicationController { } /**단속 대장을 수기 등록한다. - * @param hReq 등록 요청, crdn 단속 대장 정보, newFileList 업로드한 이미지 파일 + * @param hreq 등록 요청, crdn 단속 대장 정보, newFileList 업로드한 이미지 파일 * @return jsonView *
 {
 	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
@@ -387,7 +387,7 @@ public class Crdn05Controller extends ApplicationController {
 	 */
 	@Task
 	@RequestMapping(name="단속자료 수기 등록", value=METHOD_URL.createCrdnDataByManual)
-	public ModelAndView createCrdnDataByManual(HttpServletRequest hReq, Crdn crdn, MultipartFile[] newFileList) {
+	public ModelAndView createCrdnDataByManual(HttpServletRequest hreq, Crdn crdn, MultipartFile[] newFileList) {
 		UserInfo userInfo = currentUser();
 		ogdpBean.initUserInfo(userInfo);
 
@@ -395,10 +395,11 @@ public class Crdn05Controller extends ApplicationController {
 		crdn.setCrdnRegSeCd("01");
 		crdn.setCrdnInptSeCd(((String)userInfo.getInfo().get("instNm")).endsWith("시") ? "03" : "02"); // 03: 시청, 02: 구청
 
-		String doWarning = hReq.getParameter("doWarning");
-		if ("on".equals(doWarning)) {
+		if ("on".equals(hreq.getParameter("doWarning"))) // 계고 처리
 			crdn.setCrdnSttsCd("83");
-		}
+		if ("on".equals(hreq.getParameter("doExempt"))) // 면제차량
+			crdn.setCrdnSttsCd("81");
+
 		Map nonQueryRequest = new HashMap();
 		crdn.setCvlcptLinkYn("N");
 
diff --git a/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java b/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java
index 16fa5c25..a62db818 100644
--- a/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java
+++ b/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java
@@ -12,6 +12,7 @@ import org.assertj.core.util.Arrays;
 import cokr.xit.fims.crdn.Crdn;
 import cokr.xit.fims.crdn.CrdnQuery;
 import cokr.xit.fims.crdn.dao.CrdnStngMapper;
+import cokr.xit.fims.crdn.dao.ExmptnVhclMapper;
 import cokr.xit.fims.excl.LevyExcl;
 import cokr.xit.foundation.component.AbstractBean;
 import cokr.xit.foundation.data.DataObject;
@@ -37,6 +38,8 @@ public class TaskProcessor extends AbstractBean {
 
 	@Resource(name = "crdnStngMapper")
 	protected CrdnStngMapper crdnStngMapper;
+	@Resource(name = "exmptnVhclMapper")
+	private ExmptnVhclMapper exmptnVhclMapper;
 
 	/**모든 위반내역 코드그룹을 반환한다.
 	 * @return 모든 위반내역 코드그룹
@@ -95,7 +98,23 @@ public class TaskProcessor extends AbstractBean {
 	 * 
 	 */
 	public LevyExcl getLevyExcl(Crdn crdn) {
-		return !"83".equals(crdn.getCrdnSttsCd()) ? null : newLevyExcl(crdn, "2", "192");
+		String crdnSttsCd = crdn.getCrdnSttsCd();
+		if ("81".equals(crdnSttsCd)) {
+			CrdnQuery req = new CrdnQuery()
+				.setVhrno(crdn.getVhrno())
+				.setCrdnYmd(crdn.getCrdnYmd())
+				.setSggCd(crdn.getSggCd())
+				.setTaskSeCd(crdn.getTaskSeCd());
+			List list = exmptnVhclMapper.selectExemptionVehicleList(req);
+
+			if (!list.isEmpty()) // 비부과, 면제차량
+				return newLevyExcl(crdn, "1", "145");
+			else
+				throw new RuntimeException("비부과 사유를 알 수 없습니다.");
+		}
+		if ("83".equals(crdn.getCrdnSttsCd())) // 계고, 계고
+			return newLevyExcl(crdn, "2", "192");
+		return null;
 	}
 
 	/**주어진 구분과 사유로 부과제외 정보를 생성한다.
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 9edb3543..9d485994 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
@@ -37,26 +37,20 @@ import cokr.xit.interfaces.lvis.service.reg.BasicInfoResponse;
  */
 @Component("payerBean")
 public class PayerBean extends AbstractBean {
-
 	/** 납부자 정보 DAO */
 	@Resource(name = "payerMapper")
 	private PayerMapper payerMapper;
-
 	/** 납부자 주소 정보 DAO */
 	@Resource(name = "payerAddrMapper")
 	private PayerAddrMapper payerAddrMapper;
-
 	/** 자동차 정보 DAO */
 	@Resource(name = "vehicleInfoBean")
 	private VehicleInfoBean vehicleInfoBean;
-
 	@Resource(name = "vehicleInfoMapper")
 	private VehicleInfoMapper vehicleInfoMapper;
-
 	/** 단속 상태 이력 정보 Bean */
 	@Resource(name = "crdnSttsHstryBean")
 	private CrdnSttsHstryBean crdnSttsHstryBean;
-
 	/** 단속 납부자 이력 정보 Bean */
 	@Resource(name = "crdnPayerAddrHstryBean")
 	private CrdnPayerAddrHstryBean crdnPayerAddrHstryBean;
@@ -87,7 +81,6 @@ public class PayerBean extends AbstractBean {
 		}
 
         List payers = getPayers(req);
-
         return !payers.isEmpty() ? payers.get(0) : null;
 	}
 
@@ -109,7 +102,6 @@ public class PayerBean extends AbstractBean {
 		}
 
 		List payers = getAddrs(req);
-
 		return !payers.isEmpty() ? payers.get(0) : null;
 	}
 
@@ -126,9 +118,10 @@ public class PayerBean extends AbstractBean {
 		// 납부자 정보 조회
 		req.setOrderBy("P.RTPYR_ID DESC");
 		List payers = getPayers(req);
+		Payer loaded = payers.get(0);
 
 		// 납부자 ID 설정
-		payer.setRtpyrId(payers.get(0).getRtpyrId());
+		payer.setRtpyrId(loaded.getRtpyrId());
 
 		// 납부자 주소 정보를 조회
 		req.setRtpyrId(payer.getRtpyrId());
@@ -140,7 +133,7 @@ public class PayerBean extends AbstractBean {
             // 주소 등록
             createPayerAddr(payer);
 		} else {
-            payer.setAddrSn(payers.get(0).getAddrSn());                         // 주소 일련번호
+            payer.setAddrSn(loaded.getAddrSn());                         // 주소 일련번호
             // 주소 수정
             updatePayerAddr(payer);
         }
@@ -159,9 +152,8 @@ public class PayerBean extends AbstractBean {
 		// 납부자 등록
 		boolean rtnScs = payerMapper.insert(payer);
 		// 납부자 주소 등록
-		if (rtnScs) {
+		if (rtnScs)
 			createPayerAddr(payer);
-		}
 
 		return rtnScs;
 	}
@@ -224,32 +216,29 @@ public class PayerBean extends AbstractBean {
 	}
 
 	public Payer getVehicleOwner(BasicInfoExtRequest req) {
-		Payer payper = null;
-
 		//차적조회
 		BasicInfoExtResponse bier = vehicleInfoBean.getBasicInfo(req);
-
-		if(bier.getRecord() != null && !bier.getRecord().isEmpty()
-				&& bier.getRecord().get(0) != null) {
-			//시군구코드 세팅
-			bier.getRecord().get(0).setSggCd(req.getSigungu_code());
-			//주소 세팅
-			DataObject roadNameInfo = vehicleInfoMapper.selectRoadNmAdres(
-					bier.getRecord().get(0).getUse_strnghld_road_nm_code(),
-					bier.getRecord().get(0).getUse_strnghld_buld_main_no(),
-					bier.getRecord().get(0).getUse_strnghld_buld_sub_no());
-			if(!isEmpty(roadNameInfo)) {
-				bier.getRecord().get(0).setRoad_nm_adres(roadNameInfo.string("ROAD_NM_ADRES"));
-				bier.getRecord().get(0).setZip_code(roadNameInfo.string("ZIP"));
-			}
-
-			//납부자조회
-			payper = getPayer(bier.getRecord().get(0));
+		BasicInfoExtResponse.ExtInfo extInfo = !isEmpty(bier.getRecord()) ? bier.getRecord().get(0) : null;
+		if (extInfo == null) return null;
+
+		//시군구코드 세팅
+		extInfo.setSggCd(req.getSigungu_code());
+		//주소 세팅
+		DataObject roadNameInfo = vehicleInfoMapper.selectRoadNmAdres(
+			extInfo.getUse_strnghld_road_nm_code(),
+			extInfo.getUse_strnghld_buld_main_no(),
+			extInfo.getUse_strnghld_buld_sub_no()
+		);
+		if (!isEmpty(roadNameInfo)) {
+			extInfo.setRoad_nm_adres(roadNameInfo.string("ROAD_NM_ADRES"));
+			extInfo.setZip_code(roadNameInfo.string("ZIP"));
 		}
 
-		return payper;
+		//납부자조회
+		return getPayer(extInfo);
 	}
 
+
 	/**시군구 코드와 차량 기본정보에서 납부자 정보를 생성하거나, 등록정보에서 조회하여 반환한다.(차량번호 / 납부자 번호 / 시군구 기준)
 	 * @param basicInfo 차량 기본정보
 	 * @return 납부자 정보
@@ -262,125 +251,51 @@ public class PayerBean extends AbstractBean {
 		payer.setRtpyrInptSeCd("02");
 		payer.setAddrInptSeCd("02");
 		payer.setRtpyrSeCd(
-			Map.of(
-				"11", "01",
-				"12", "02",
-				"13", "03",
-				"14", "04",
-				"15", "05"
-			).getOrDefault(basicInfo.getMber_se_code(), "05")
+			switch (basicInfo.getMber_se_code()) {
+				case "11" -> "01";
+				case "12" -> "02";
+				case "13" -> "03";
+				case "14" -> "04";
+				case "15" -> "05";
+				default -> "05";
+			}
 		);
-		String rtpyrNo = basicInfo.getMber_se_no();
-		payer.setRtpyrNo(rtpyrNo);
+		String str = basicInfo.getMber_se_no();
+		payer.setRtpyrNo(str);
         if ("01,02".contains(payer.getRtpyrSeCd())) {
-            payer.setRtpyrBrdt(rtpyrNo.substring(0, 6));
+            payer.setRtpyrBrdt(str.substring(0, 6));
         }
 		payer.setRtpyrNm(basicInfo.getMber_nm());
 		payer.setRtpyrTelno(basicInfo.getTelno());
 		payer.setRoadNmCd(basicInfo.getUse_strnghld_road_nm_code());
-		String str = basicInfo.getUsgsrhld_undgrnd_buld_se_code();
-		if (isEmpty(str))
-			payer.setUdgdSeCd("0");
-		else
-			payer.setUdgdSeCd(basicInfo.getUsgsrhld_undgrnd_buld_se_code());
-		str = basicInfo.getUse_strnghld_buld_main_no();
-		if (!isEmpty(str))
+		payer.setUdgdSeCd(ifEmpty(basicInfo.getUsgsrhld_undgrnd_buld_se_code(), "0"));
+		if (!isEmpty(str = basicInfo.getUse_strnghld_buld_main_no()))
 			payer.setBmno(toInt(str));
-		str = basicInfo.getUse_strnghld_buld_sub_no();
-		if (!isEmpty(str))
+		if (!isEmpty(str = basicInfo.getUse_strnghld_buld_sub_no()))
 			payer.setBsno(toInt(str));
 		payer.setStdgCd(basicInfo.getUse_strnghld_legaldong_code());
 		payer.setDongCd(basicInfo.getUse_strnghld_adstrd_code());
 		payer.setMtnSeCd(basicInfo.getUse_strnghld_mntn());
-		str = basicInfo.getUse_strnghld_lnbr();
-		if (!isEmpty(str))
+		if (!isEmpty(str = basicInfo.getUse_strnghld_lnbr()))
 			payer.setMno(toInt(str));
-		str = basicInfo.getUse_strnghld_ho();
-		if (!isEmpty(str))
+		if (!isEmpty(str = basicInfo.getUse_strnghld_ho()))
 			payer.setSno(toInt(str));
-		payer.setAddr(basicInfo.getRoad_nm_adres());
+		String road_nm_adres = basicInfo.getRoad_nm_adres();
+		payer.setAddr(road_nm_adres);
 		payer.setDtlAddr(basicInfo.getUse_strnghld_adres_nm());
 		// 전체 주소
-		str = basicInfo.getUse_strnghld_adres_nm();
-		if (!isEmpty(str))
-			payer.setWholAddr(basicInfo.getRoad_nm_adres() + ", " + basicInfo.getUse_strnghld_adres_nm());
+		if (!isEmpty(str = basicInfo.getUse_strnghld_adres_nm()))
+			payer.setWholAddr(road_nm_adres + ", " + str);
 		else
-			payer.setWholAddr(basicInfo.getRoad_nm_adres());
+			payer.setWholAddr(road_nm_adres);
 
         Payer result = create(payer) ? payer : getPayerAddrInfo(payer);
-
         if (result != null)
 			result.setVehicleInfo(basicInfo);
 
 		return result;
 	}
 
-	/**시군구 코드와 차량 기본정보에서 납부자 정보를 생성하거나, 등록정보에서 조회하여 반환한다.(차량번호 / 납부자 번호 / 시군구 기준)
-	 * @param extInfo 차량 기본정보
-	 * @return 납부자 정보
-	 */
-	private Payer getPayer(BasicInfoExtResponse.ExtInfo extInfo) {
-		Payer payer = new Payer();
-
-		payer.setSggCd(extInfo.getSggCd());
-		payer.setVhrno(extInfo.getVhrno());
-		payer.setRtpyrInptSeCd("02");
-		payer.setAddrInptSeCd("02");
-		payer.setRtpyrSeCd(
-			Map.of(
-				"11", "01",
-				"12", "02",
-				"13", "03",
-				"14", "04",
-				"15", "05"
-			).getOrDefault(extInfo.getMber_se_code(), "05")
-		);
-
-		String rtpyrNo = extInfo.getMber_se_no();
-		payer.setRtpyrNo(rtpyrNo);
-        if ("01,02".contains(payer.getRtpyrSeCd())) {
-		    payer.setRtpyrBrdt(rtpyrNo.substring(0, 6));
-		}
-        payer.setRtpyrNm(extInfo.getMber_nm());
-		payer.setRtpyrTelno(extInfo.getTelno());
-		payer.setRoadNmCd(extInfo.getUse_strnghld_road_nm_code());
-		String str = extInfo.getUsgsrhld_undgrnd_buld_se_code();
-		if (str.equals(""))
-			payer.setUdgdSeCd("0");
-		else
-			payer.setUdgdSeCd(extInfo.getUsgsrhld_undgrnd_buld_se_code());
-		str = extInfo.getUse_strnghld_buld_main_no();
-		if (!isEmpty(str))
-			payer.setBmno(toInt(str));
-		str = extInfo.getUse_strnghld_buld_sub_no();
-		if (!isEmpty(str))
-			payer.setBsno(toInt(str));
-		payer.setStdgCd(extInfo.getUse_strnghld_legaldong_code());
-		payer.setDongCd(extInfo.getUse_strnghld_adstrd_code());
-		payer.setMtnSeCd(extInfo.getUse_strnghld_mntn());
-		str = extInfo.getUse_strnghld_lnbr();
-		if (!isEmpty(str))
-			payer.setMno(toInt(str));
-		str = extInfo.getUse_strnghld_ho();
-		if (!isEmpty(str))
-			payer.setSno(toInt(str));
-		payer.setAddr(extInfo.getRoad_nm_adres());
-		payer.setDtlAddr(extInfo.getUse_strnghld_adres_nm());
-		// 전체 주소
-		str = extInfo.getUse_strnghld_adres_nm();
-		if (!isEmpty(str))
-			payer.setWholAddr(extInfo.getRoad_nm_adres() + ", " + extInfo.getUse_strnghld_adres_nm());
-		else
-			payer.setWholAddr(extInfo.getRoad_nm_adres());
-
-        Payer result = create(payer) ? payer : getPayerAddrInfo(payer);
-
-        if (result != null)
-			result.setVehicleInfo(extInfo);
-
-		return result;
-	}
-
 	/**지정한 조건에 따라 납부자 정보를 반환한다.
 	 * @param req 납부자 조회 조건
 	 * @return 납부자 정보
@@ -405,46 +320,36 @@ public class PayerBean extends AbstractBean {
 	 * 
 	 */
 	public String createCrdnPayer(Payer payer) {
-		// 변수 선언
-		boolean rtnScs = false;													// DB 처리 결과
-		boolean bInstHstry = false;                                             // DB 처리 결과
-		String strTemp = "";
-
         // 생년월일
         if ("01,02".contains(payer.getRtpyrSeCd())) {
             payer.setRtpyrBrdt(payer.getRtpyrNo().substring(0, 6));
         }
 		// 지하 구분 코드
-		strTemp = payer.getUdgdSeCd();
-		if (strTemp == null || strTemp.equals("")) {
+		if (isEmpty(payer.getUdgdSeCd()))
 			payer.setUdgdSeCd("0");
-		}
 		// 전체 주소
-		strTemp = payer.getWholAddr();
-		if (strTemp == null || strTemp.equals("")) {
+		if (isEmpty(payer.getWholAddr()))
 			payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr());
-		}
 
 		// 납부자 주소 이력
 		CrdnPayerAddrHstry crdnPayerAddrHstry = new CrdnPayerAddrHstry();
 		// 단속 ID로 단속, 납부자, 주소 정보 조회
 		DataObject crdnPayerAddrInfo = payerMapper.selectCrdnInfo(payer.getCrdnId());
 
+		boolean bInstHstry = false;                                             // DB 처리 결과
 		// 주민등록번호가 동일하다면..
 		if (crdnPayerAddrInfo.string("RTPYR_NO").equals(payer.getRtpyrNo())) {
 			// 납부자 대장(TB_PAYER)에 납부자 정보를 수정한다.
-			rtnScs = update(payer);
-			if (!rtnScs) {
+			if (!update(payer))
 				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())
-                    && crdnPayerAddrInfo.string("STDG_CD").equals(payer.getStdgCd()))       {
+             && 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"));
 
@@ -473,32 +378,26 @@ public class PayerBean extends AbstractBean {
             updtPayer.setRtpyrNm(payer.getRtpyrNm());
 
             // 전화번호
-            if (result.getRtpyrTelno() != null && !result.getRtpyrTelno().equals("")) {
-        	    updtPayer.setRtpyrTelno(result.getRtpyrTelno());
-        	    updtPayer.setRtpyrId(result.getRtpyrId());
-        	}
+            String str = result.getRtpyrTelno();
+            if (!isEmpty(str))
+        	    updtPayer.setRtpyrTelno(str);
             // 휴대전화번호
-            if (result.getRtpyrMblTelno() != null && !result.getRtpyrMblTelno().equals("")) {
-                updtPayer.setRtpyrMblTelno(result.getRtpyrMblTelno());
-                updtPayer.setRtpyrId(result.getRtpyrId());
-            }
+            if (!isEmpty(str = result.getRtpyrMblTelno()))
+                updtPayer.setRtpyrMblTelno(str);
             // 이메일
-            if (result.getRtpyrEml() != null && !result.getRtpyrEml().equals("")) {
-                updtPayer.setRtpyrEml(result.getRtpyrEml());
-                updtPayer.setRtpyrId(result.getRtpyrId());
-            }
+            if (!isEmpty(str = result.getRtpyrEml()))
+                updtPayer.setRtpyrEml(str);
             // 납부자 상태 코드
-            if (result.getRtpyrSttsCd() != null && !result.getRtpyrSttsCd().equals("")) {
-                updtPayer.setRtpyrSttsCd(result.getRtpyrSttsCd());
+            if (!isEmpty(str = result.getRtpyrSttsCd()))
+                updtPayer.setRtpyrSttsCd(str);
+
+            if (!isEmpty(str))
                 updtPayer.setRtpyrId(result.getRtpyrId());
-            }
 
             // 납부자 대장(TB_PAYER)에 납부자 정보를 수정한다.
-            if (!updtPayer.getRtpyrId().equals("")) {
-                rtnScs = update(updtPayer);
-                if (!rtnScs) {
-                    throw new RuntimeException("납부자 정보 수정에 실패하였습니다.");  // 예외를 발생시켜서 DB Rollback
-                }
+            if (!isEmpty(updtPayer.getRtpyrId())) {
+                if (!update(updtPayer))
+                    throw new RuntimeException("납부자 정보 수정에 실패하였습니다.");
             }
 
         	// 납부자 번호가 다르다면 단속 납부자주소 이력을 등록한다.
@@ -507,10 +406,8 @@ public class PayerBean extends AbstractBean {
 
 		// 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장에 등록한다.
 		if (bInstHstry) {
-	        rtnScs = crdnPayerAddrHstryBean.createHstryUpdateCrdnPayerAddr(crdnPayerAddrHstry);
-	        if (!rtnScs) {
+	        if (!crdnPayerAddrHstryBean.createHstryUpdateCrdnPayerAddr(crdnPayerAddrHstry))
 	            throw new RuntimeException("납부자 등록 실행중 단속 대장에 주소 일련번호 등록에 실패하였습니다.");   // 예외를 발생시켜서 DB Rollback
-	        }
 		}
 
 		// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
@@ -521,10 +418,8 @@ public class PayerBean extends AbstractBean {
 			crdnSttsHstry.setBfrSttsChgDt(crdnPayerAddrInfo.string("CRDN_STTS_CHG_DT"));
 			crdnSttsHstry.setCrdnSttsCd("21");
 
-			rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
-			if (!rtnScs) {
+			if (!crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry))
 				throw new RuntimeException("납부자 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");	// 예외를 발생시켜서 DB Rollback
-			}
 		}
 
 		return "[S] 작업이 정상 처리 되었습니다.";
@@ -561,5 +456,4 @@ public class PayerBean extends AbstractBean {
     public DataObject getLastPayerAddrInfo(PayerQuery req) {
         return payerAddrMapper.selectLastPayerAddrInfo(req);
     }
-
-}
+}
\ No newline at end of file