부과제외(서손) 취소시 처리상태 변경 부분 수정.

main
jjh 1 year ago
parent 28939e5219
commit 7762ec95ca

@ -39,7 +39,8 @@ public interface CrdnSttsHstryMapper extends AbstractMapper {
* @return ID * @return ID
*/ */
default DataObject selectCrdnSttsHstryInfo(String crdnId) { default DataObject selectCrdnSttsHstryInfo(String crdnId) {
List<DataObject> crdnSttsHstryList = selectCrdnSttsHstrys(new CrdnSttsHstryQuery().setCrdnId(crdnId).setOrderBy("REG_DT")); List<DataObject> crdnSttsHstryList = selectCrdnSttsHstrys(new CrdnSttsHstryQuery().setCrdnId(crdnId)
.setOrderBy("REG_DT DESC, STTS_HSTRY_ID DESC"));
return !crdnSttsHstryList.isEmpty() ? crdnSttsHstryList.get(0) : null; return !crdnSttsHstryList.isEmpty() ? crdnSttsHstryList.get(0) : null;
} }

@ -110,6 +110,7 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* </ul> * </ul>
*/ */
public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) { public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
if (crdnSttsHstry.getUseYn() == null) { if (crdnSttsHstry.getUseYn() == null) {
@ -120,7 +121,7 @@ public class CrdnSttsHstryBean extends AbstractComponent {
retSuccess = crdnSttsHstryMapper.insert(crdnSttsHstry); retSuccess = crdnSttsHstryMapper.insert(crdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다."); throw new RuntimeException("단속상태이력 대장 등록에 실패하였습니다.");
} }
// 단속(TB_CRDN) 대장을 수정 한다. // 단속(TB_CRDN) 대장을 수정 한다.
@ -141,14 +142,14 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* </ul> * </ul>
*/ */
public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd) { public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회
CrdnSttsHstry newCrdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 신규 등록 CrdnSttsHstry newCrdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 신규 등록
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY) CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY)
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 조회 한다. // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 조회 한다.
infoCrdnSttsHstry = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId); DataObject infoCrdnSttsHstry = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회
// 신규 단속상태코드가 있다면.. 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다. // 신규 단속상태코드가 있다면.. 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
if (!newCrdnSttsCd.equals("") ) { if (!newCrdnSttsCd.equals("") ) {
@ -156,7 +157,7 @@ public class CrdnSttsHstryBean extends AbstractComponent {
newCrdnSttsHstry.setBfrSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 이전 상태 코드 newCrdnSttsHstry.setBfrSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 이전 상태 코드
newCrdnSttsHstry.setBfrSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 이전 상태 변경 일시 newCrdnSttsHstry.setBfrSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 이전 상태 변경 일시
newCrdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); newCrdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
newCrdnSttsHstry.setUseYn("N"); newCrdnSttsHstry.setUseYn("Y");
retSuccess = crdnSttsHstryMapper.insert(newCrdnSttsHstry); retSuccess = crdnSttsHstryMapper.insert(newCrdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
@ -165,15 +166,6 @@ public class CrdnSttsHstryBean extends AbstractComponent {
} }
} }
// 조회된 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
crdnSttsHstry.setSttsHstryId(infoCrdnSttsHstry.string("STTS_HSTRY_ID")); // 상태 이력 ID
retSuccess = crdnSttsHstryMapper.delete(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보 삭제 중 오류가 발생하였습니다.");
}
// 단속(TB_CRDN) 대장의 단속 상태 코드를 수정 한다. // 단속(TB_CRDN) 대장의 단속 상태 코드를 수정 한다.
crdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID crdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID
crdnSttsHstry.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 상태 코드 crdnSttsHstry.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 상태 코드

@ -93,7 +93,7 @@ public class Excl01Bean extends AbstractComponent {
public String createLevyExcl(LevyExcl levyExcl) { public String createLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String retMessagae = ""; // 처리 결과 메시지 String retMessage = ""; // 처리 결과 메시지
String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD)
// 단속 ID로 단속, 부과제외 정보 조회 // 단속 ID로 단속, 부과제외 정보 조회
@ -101,30 +101,30 @@ public class Excl01Bean extends AbstractComponent {
// 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
if (!infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) { if (!infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) {
retMessagae = "[F] 작업 중 이미 등록된 자료가 존재합니다."; retMessage = "[F] 작업 중 이미 등록된 자료가 존재합니다.";
return retMessagae; return retMessage;
} }
// 단속 상태 코드(CRDN_STTS_CD) 확인.. // 단속 상태 코드(CRDN_STTS_CD) 확인..
if (levyExcl.getLevyExclSeCd().equals("1") || levyExcl.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고 if (levyExcl.getLevyExclSeCd().equals("1") || levyExcl.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고
// 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고를 등록 할 수 없다. 종료.. // 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고를 등록 할 수 없다. 종료..
if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() > 50) { if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() > 50) {
retMessagae = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다."; retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다.";
return retMessagae; return retMessage;
} }
} else if (levyExcl.getLevyExclSeCd().equals("5")) { } else if (levyExcl.getLevyExclSeCd().equals("5")) {
// 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후... // 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후...
if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() < 51) { if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() < 51) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
retMessagae = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다."; retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다.";
return retMessagae; return retMessage;
} }
} }
// 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인 // 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인
if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) {
if (infoCrdnLevyExcl.string("CVLCPT_PRCS_CD").equals("00")) { if (infoCrdnLevyExcl.string("CVLCPT_PRCS_CD").equals("00")) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
retMessagae = "[F] 작업 중 단속 민원 자료가 처리 되지 않았습니다.<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.<br>"; retMessage = "[F] 작업 중 단속 민원 자료가 처리 되지 않았습니다.<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.<br>";
return retMessagae; return retMessage;
} }
} }
@ -165,9 +165,9 @@ public class Excl01Bean extends AbstractComponent {
} }
retMessagae = "[S] 작업이 정상 처리 되었습니다."; retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessagae; return retMessage;
} }
/** . /** .
@ -180,7 +180,7 @@ public class Excl01Bean extends AbstractComponent {
public String updateLevyExcl(LevyExcl levyExcl) { public String updateLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String retMessagae = ""; // 처리 결과 메시지 String retMessage = ""; // 처리 결과 메시지
// 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다.
retSuccess = levyExclMapper.update(levyExcl); retSuccess = levyExclMapper.update(levyExcl);
@ -189,9 +189,9 @@ public class Excl01Bean extends AbstractComponent {
throw new RuntimeException("부과제외 대장 수정에 실패하였습니다."); throw new RuntimeException("부과제외 대장 수정에 실패하였습니다.");
} }
retMessagae = "[S] 작업이 정상 처리 되었습니다."; retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessagae; return retMessage;
} }
/** . /** .
@ -204,22 +204,32 @@ public class Excl01Bean extends AbstractComponent {
public String removeLevyExcl(LevyExcl levyExcl) { public String removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String retMessagae = ""; // 처리 결과 메시지 String retMessage = ""; // 처리 결과 메시지
String newHstrySttsCd = ""; // 신규 상태 코드 String newHstrySttsCd = ""; // 신규 상태 코드
// 단속 ID로 단속, 부과제외 정보 조회 // 단속 ID로 단속, 부과제외 정보 조회
DataObject infoCrdnLevyExcl = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId()); ExclQuery req = new ExclQuery();
req.setLevyExclId(levyExcl.getLevyExclId());
req.setDelYn("N");
DataObject infoCrdnLevyExcl = levyExclMapper.selectCrdn(req);
// 부과제외 ID가 조회되지 않았다면 종료..
if (infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) {
retMessage = "[F] 작업 중 자료가 존재하지 않습니다.";
return retMessage;
}
// 단속 상태 코드(CRDN_STTS_CD) 확인.. // 단속 상태 코드(CRDN_STTS_CD) 확인..
if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손)
retMessagae = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.";
return retMessagae; return retMessage;
} else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고 } else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고
retMessagae = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.";
return retMessagae; return retMessage;
} else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소 } else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소
retMessagae = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.";
return retMessagae; return retMessage;
} }
// 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다.
@ -239,7 +249,7 @@ public class Excl01Bean extends AbstractComponent {
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnLevyExcl.string("CRDN_ID"), newHstrySttsCd); retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnLevyExcl.string("CRDN_ID"), newHstrySttsCd);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 삭제 중 단속 대장의 단속상태코드 변경에 실패하였습니다."); throw new RuntimeException("부과제외 삭제 중 단속 대장의 단속상태코드 수정에 실패하였습니다.");
} }
// 부과제외 구분이 비부과(서손)일 경우 // 부과제외 구분이 비부과(서손)일 경우
@ -253,12 +263,16 @@ public class Excl01Bean extends AbstractComponent {
crdn.setParkngPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인 crdn.setParkngPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인
retSuccess = levyExclMapper.updateParkngPsbltyRsltCd(crdn); retSuccess = levyExclMapper.updateParkngPsbltyRsltCd(crdn);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 삭제 중 단속 대장의 표지정보 수정에 실패하였습니다.");
}
} }
} }
retMessagae = "[S] 작업이 정상 처리 되었습니다."; retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessagae; return retMessage;
} }
} }

@ -74,7 +74,7 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
// 부과제외IDs 건수를 확인하여 1건이하면.. 종료 // 부과제외IDs 건수를 확인하여 1건이하면.. 종료
if (req.getLevyExclIDs().length < 1 ) { if (req.getLevyExclIDs().length < 1 ) {
retMessage = ""; retMessage = "작업 중 선택 자료가 존재하지 않습니다.";
return retMessage; return retMessage;
} }
@ -87,7 +87,6 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
// 부과제외 삭제 호출 // 부과제외 삭제 호출
retMessage = excl01Bean.removeLevyExcl(levyExcl); retMessage = excl01Bean.removeLevyExcl(levyExcl);
// 오류가 발생하였으면 종료.. // 오류가 발생하였으면 종료..
if (retMessage.contains("[F]")) { if (retMessage.contains("[F]")) {
return retMessage; return retMessage;

@ -43,7 +43,7 @@ public interface Levy02Service {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
boolean createRduct(Rduct rduct); String createRduct(Rduct rduct);
/** . /** .
* @param rduct * @param rduct
@ -52,7 +52,7 @@ public interface Levy02Service {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
boolean updateRduct(Rduct rduct); String updateRduct(Rduct rduct);
/** . /** .
* @param rduct * @param rduct
@ -61,7 +61,7 @@ public interface Levy02Service {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
boolean removeRduct(Rduct rduct); String removeRduct(Rduct rduct);
/** . /** .
* @param rduct * @param rduct
@ -70,6 +70,6 @@ public interface Levy02Service {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
boolean removeRducts(LevyQuery req); String removeRducts(LevyQuery req);
} }

@ -1,6 +1,5 @@
package cokr.xit.fims.levy.service.bean; package cokr.xit.fims.levy.service.bean;
import java.util.Iterator;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -41,22 +40,28 @@ public class Levy02Bean extends AbstractComponent {
* @return * @return
*/ */
public List<DataObject> getRductList(LevyQuery req) { public List<DataObject> getRductList(LevyQuery req) {
List<DataObject> dataObjectList = rductMapper.selectRductList(req); if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
Iterator<DataObject> iterator = dataObjectList.iterator();
while(iterator.hasNext()) {
DataObject dataObject = iterator.next();
String state = dataObject.string("CRDN_STTS_CD");
int advntceAmt = dataObject.number("ADVNTCE_AMT").intValue();
int ffnlgAmt = dataObject.number("FFNLG_AMT").intValue();
int minusAmt = dataObject.number("MINUS_AMT").intValue();
int adtnAmt = dataObject.number("ADTN_AMT").intValue();
int rcvmtAmt = dataObject.number("RCVMT_AMT").intValue();
dataObject.set("BLNC", crdnStngBean.getBalance(state,advntceAmt,ffnlgAmt,minusAmt,adtnAmt,rcvmtAmt));
} }
return dataObjectList; return rductMapper.selectRductList(req);
// List<DataObject> dataObjectList = rductMapper.selectRductList(req);
//
// Iterator<DataObject> iterator = dataObjectList.iterator();
// while(iterator.hasNext()) {
// DataObject dataObject = iterator.next();
// String state = dataObject.string("CRDN_STTS_CD");
// int advntceAmt = dataObject.number("ADVNTCE_AMT").intValue();
// int ffnlgAmt = dataObject.number("FFNLG_AMT").intValue();
// int minusAmt = dataObject.number("MINUS_AMT").intValue();
// int adtnAmt = dataObject.number("ADTN_AMT").intValue();
// int rcvmtAmt = dataObject.number("RCVMT_AMT").intValue();
//
// dataObject.set("BLNC", crdnStngBean.getBalance(state,advntceAmt,ffnlgAmt,minusAmt,adtnAmt,rcvmtAmt));
// }
//
// return dataObjectList;
} }
@ -103,34 +108,35 @@ public class Levy02Bean extends AbstractComponent {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
public boolean createRduct(Rduct rduct) { public String createRduct(Rduct rduct) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String retMessage = ""; // 처리 결과 메시지
// 단속 ID로 단속, 감경 정보 조회 // 단속 ID로 단속, 감경 정보 조회
DataObject infoCrdnRduct = rductMapper.selectCrdnInfo(rduct.getCrdnId()); DataObject infoCrdnRduct = rductMapper.selectCrdnInfo(rduct.getCrdnId());
// 감경 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. // 감경 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
if (!infoCrdnRduct.string("RDUCT_ID").equals("")) { if (!infoCrdnRduct.string("RDUCT_ID").equals("")) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback retMessage = "[F] 작업 중 이미 등록된 자료가 존재합니다.";
throw new RuntimeException("과태료 감경 정보가 이미 존재합니다."); return retMessage;
} }
// 단속 상태 코드(CRDN_STTS_CD) 확인하여 부과(51) 이후라면.. // 단속 상태 코드(CRDN_STTS_CD) 확인하여 부과(51) 이후라면..
if (infoCrdnRduct.number("CRDN_STTS_CD").intValue() > 51) { if (infoCrdnRduct.number("CRDN_STTS_CD").intValue() > 51) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnRduct.string("CRDN_STTS_NM") + " 상태 입니다.";
throw new RuntimeException("단속 상태가 " + infoCrdnRduct.string("CRDN_STTS_NM") + " 상태 입니다"); return retMessage;
} }
// 부과 가산금(LEVY_ADAMT)이 있다면.. // 부과 가산금(LEVY_ADAMT)이 있다면..
if (infoCrdnRduct.number("LEVY_ADAMT").intValue() > 0) { if (infoCrdnRduct.number("LEVY_ADAMT").intValue() > 0) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>부과 가산금이 존재합니다.";
throw new RuntimeException("부과 가산금이 존재하여 감경 등록에 실패하였습니다."); return retMessage;
} }
// 과태료 감경(TB_RDUCT) 대장을 등록 한다. // 과태료 감경(TB_RDUCT) 대장을 등록 한다.
retSuccess = rductMapper.insert(rduct); retSuccess = rductMapper.insert(rduct);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("감경 대장 등록에 실패하였습니다."); throw new RuntimeException("과태료 감경 대장 등록에 실패하였습니다.");
} }
int ffnlgAmt = 0; // 과태료 금액 int ffnlgAmt = 0; // 과태료 금액
@ -193,7 +199,9 @@ public class Levy02Bean extends AbstractComponent {
} }
} }
return true; retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
} }
/** . /** .
@ -203,8 +211,21 @@ public class Levy02Bean extends AbstractComponent {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
public boolean updateRduct(Rduct rduct) { public String updateRduct(Rduct rduct) {
return rductMapper.update(rduct); // 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessagae = ""; // 처리 결과 메시지
// 과태료 감경(TB_RDUCT) 대장을 수정 한다.
retSuccess = rductMapper.update(rduct);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("과태료 감경 대장 수정에 실패하였습니다.");
}
retMessagae = "[S] 작업이 정상 처리 되었습니다.";
return retMessagae;
} }
/** . /** .
@ -214,12 +235,34 @@ public class Levy02Bean extends AbstractComponent {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
public boolean removeRduct(Rduct rduct) { public String removeRduct(Rduct rduct) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String retMessage = ""; // 처리 결과 메시지
// 단속 ID로 단속, 감경 정보 조회
LevyQuery req = new LevyQuery();
req.setRductId(rduct.getRductId());
req.setDelYn("N");
// 감경(TB_RDUCT) 자료 조회 DataObject infoCrdnRduct = rductMapper.selectCrdn(req);
// 감경 ID가 조회되지 않았다면 종료..
if (infoCrdnRduct.string("RDUCT_ID").equals("")) {
retMessage = "[F] 작업 중 자료가 존재하지 않습니다.";
return retMessage;
}
// 단속 상태 코드(CRDN_STTS_CD) 확인하여 부과(51) 이후라면..
if (infoCrdnRduct.number("CRDN_STTS_CD").intValue() > 51) {
retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnRduct.string("CRDN_STTS_NM") + " 상태 입니다.";
return retMessage;
}
// 부과 가산금(LEVY_ADAMT)이 있다면..
if (infoCrdnRduct.number("LEVY_ADAMT").intValue() > 0) {
retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>부과 가산금이 존재합니다.";
return retMessage;
}
// 감경(TB_RDUCT) 대장을 삭제 한다. // 감경(TB_RDUCT) 대장을 삭제 한다.
retSuccess = rductMapper.delete(rduct); retSuccess = rductMapper.delete(rduct);
@ -228,9 +271,6 @@ public class Levy02Bean extends AbstractComponent {
throw new RuntimeException("감경 대장 삭제에 실패하였습니다."); throw new RuntimeException("감경 대장 삭제에 실패하였습니다.");
} }
// 단속 자료 조회
DataObject infoCrdnRduct = rductMapper.selectCrdnInfo(rduct.getCrdnId());
// 과태료 금액 변경 // 과태료 금액 변경
int ffnlgAmt = 0; // 과태료 금액 int ffnlgAmt = 0; // 과태료 금액
int advntceAmt = 0; // 사전통지 금액 int advntceAmt = 0; // 사전통지 금액
@ -294,7 +334,9 @@ public class Levy02Bean extends AbstractComponent {
} }
} }
return true; retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
} }
} }

@ -54,28 +54,29 @@ public class Levy02ServiceBean extends AbstractServiceBean implements Levy02Serv
} }
@Override @Override
public boolean createRduct(Rduct rduct) { public String createRduct(Rduct rduct) {
return levy02Bean.createRduct(rduct); return levy02Bean.createRduct(rduct);
} }
@Override @Override
public boolean updateRduct(Rduct rduct) { public String updateRduct(Rduct rduct) {
return levy02Bean.updateRduct(rduct); return levy02Bean.updateRduct(rduct);
} }
@Override @Override
public boolean removeRduct(Rduct rduct) { public String removeRduct(Rduct rduct) {
return levy02Bean.removeRduct(rduct); return levy02Bean.removeRduct(rduct);
} }
@Override @Override
public boolean removeRducts(LevyQuery req) { public String removeRducts(LevyQuery req) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 String retMessage = ""; // 처리 결과 메시지
// 감경 IDs 건수를 확인하여 1건이하면.. 종료 // 감경 IDs 건수를 확인하여 1건이하면.. 종료
if (req.getRductIDs().length < 1 ) { if (req.getRductIDs().length < 1 ) {
return retSuccess; retMessage = "작업 중 선택 자료가 존재하지 않습니다.";
return retMessage;
} }
// 감경 IDs 만큼 반복.. // 감경 IDs 만큼 반복..
@ -85,14 +86,15 @@ public class Levy02ServiceBean extends AbstractServiceBean implements Levy02Serv
rduct.setRductId(req.getRductIDs()[iLoop]); // 감경 ID rduct.setRductId(req.getRductIDs()[iLoop]); // 감경 ID
rduct.setDelRsn(req.getDelRsn()); // 삭제 사유 rduct.setDelRsn(req.getDelRsn()); // 삭제 사유
// 의견제출 삭제 호출 // 과태료 감경 삭제 호출
retSuccess = levy02Bean.removeRduct(rduct); retMessage = levy02Bean.removeRduct(rduct);
if (!retSuccess) { // 오류가 발생하였으면 종료..
return retSuccess; if (retMessage.contains("[F]")) {
return retMessage;
} }
} }
return true; return retMessage;
} }
} }

@ -83,11 +83,11 @@ public class Levy02Controller extends ApplicationController {
if (req.getCallPurpose().equals("create") && !rductInfo.string("RDUCT_ID").equals("")) { if (req.getCallPurpose().equals("create") && !rductInfo.string("RDUCT_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView"); ModelAndView mav = new ModelAndView("jsonView");
return mav.addObject("errorMessage", "이미 등록된 과태료 감경 정보가 있습니다."); return mav.addObject("retMessage", "이미 등록된 과태료 감경 정보가 있습니다.");
} else if (req.getCallPurpose().equals("create") && rductInfo.string("RTPYR_ID").equals("")) { } else if (req.getCallPurpose().equals("create") && rductInfo.string("RTPYR_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView"); ModelAndView mav = new ModelAndView("jsonView");
return mav.addObject("errorMessage", "납부자 정보가 없습니다."); return mav.addObject("retMessage", "납부자 정보가 없습니다.");
} else { } else {
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -113,10 +113,18 @@ public class Levy02Controller extends ApplicationController {
*/ */
@PostMapping(name = "과태료 감경 대장 등록", value = "/020/create.do") @PostMapping(name = "과태료 감경 대장 등록", value = "/020/create.do")
public ModelAndView createRduct(Rduct rduct) { public ModelAndView createRduct(Rduct rduct) {
boolean saved = levy02Service.createRduct(rduct); boolean saved = false;
String retMessage = levy02Service.createRduct(rduct);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved); .addObject("saved", saved)
.addObject("retMessage", retMessage);
} }
/** . /** .
@ -128,10 +136,18 @@ public class Levy02Controller extends ApplicationController {
*/ */
@PostMapping(name = "과태료 감경 대장 수정", value = "/020/update.do") @PostMapping(name = "과태료 감경 대장 수정", value = "/020/update.do")
public ModelAndView updateRduct(Rduct rduct) { public ModelAndView updateRduct(Rduct rduct) {
boolean saved = levy02Service.updateRduct(rduct); boolean saved = false;
String retMessage = levy02Service.updateRduct(rduct);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved); .addObject("saved", saved)
.addObject("retMessage", retMessage);
} }
/** . /** .
@ -144,10 +160,18 @@ public class Levy02Controller extends ApplicationController {
*/ */
@PostMapping(name = "과태료 감경 대장 제거", value = "/010/remove.do") @PostMapping(name = "과태료 감경 대장 제거", value = "/010/remove.do")
public ModelAndView removeRduct(Rduct req) { public ModelAndView removeRduct(Rduct req) {
boolean saved = levy02Service.removeRduct(req); boolean saved = false;
String retMessage = levy02Service.removeRduct(req);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved); .addObject("saved", saved)
.addObject("retMessage", retMessage);
} }
/** . /** .
@ -160,10 +184,18 @@ public class Levy02Controller extends ApplicationController {
*/ */
@PostMapping(name="의견제출 대장 제거", value="/010/removes.do") @PostMapping(name="의견제출 대장 제거", value="/010/removes.do")
public ModelAndView removeRducts(LevyQuery req) { public ModelAndView removeRducts(LevyQuery req) {
boolean saved = levy02Service.removeRducts(req); boolean saved = false;
String retMessage = levy02Service.removeRducts(req);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved); .addObject("saved", saved)
.addObject("retMessage", retMessage);
} }
} }

@ -124,8 +124,13 @@
SET USE_YN = 'N' /* 사용 여부 */ SET USE_YN = 'N' /* 사용 여부 */
, MDFCN_DT = #{crdnSttsHstry.lastModified} /* 수정 일시 */ , MDFCN_DT = #{crdnSttsHstry.lastModified} /* 수정 일시 */
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */ , MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */
WHERE STTS_HSTRY_ID = #{crdnSttsHstry.sttsHstryId} /* 상태 이력 ID */ WHERE USE_YN = 'Y' /* 사용 여부 */
AND USE_YN = 'Y' /* 사용 여부 */ <if test="sttsHstryId != null">
AND STTS_HSTRY_ID = #{sttsHstryId}
</if>
<if test="crdnId != null">
AND CRDN_ID = #{crdnId}
</if>
</update> </update>
<update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(crdnSttsHstryMapper.updateCrdnSttsCd) */ <update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(crdnSttsHstryMapper.updateCrdnSttsCd) */

@ -367,14 +367,16 @@
// 삭제 callback // 삭제 callback
${pageName}Control.onRemove = (selected, resp) => { ${pageName}Control.onRemove = (selected, resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle);
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); dialog.alert(showMessage);
if (resp.saved) if (resp.saved) {
${pageName}Control._load(); ${pageName}Control._load();
} }
}
// 삭제 // 삭제
${pageName}Control.remove = (params) => { ${pageName}Control.remove = (params) => {

@ -110,8 +110,12 @@
**************************************************************************/ **************************************************************************/
// 저장 callback // 저장 callback
${pageName}Control.onSave = (resp) => { ${pageName}Control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage);
if (resp.saved) { if (resp.saved) {
dialog.alert("저장됐습니다.");
dialog.close(${pageName}Control.prefix + "Dialog"); dialog.close(${pageName}Control.prefix + "Dialog");
} }
} }

@ -13,13 +13,13 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">감경 정보</label> <label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">감경 정보</label>
<!-- 버튼 우측 정렬 --> <!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateRduct--${pageName}" title="감경 등록" onclick="fnCreateRduct${pageName}();"> <button type="button" class="btn btn-primary" id="btnCreate--${pageName}${pageDataName1}" title="감경 등록" onclick="fnCreate${pageName}${pageDataName1}();">
감경 등록 감경 등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnUpdateRduct--${pageName}" title="감경 수정" onclick="fnUpdateRduct${pageName}();"> <button type="button" class="btn btn-primary" id="btnUpdate--${pageName}${pageDataName1}" title="감경 수정" onclick="fnUpdate${pageName}${pageDataName1}();">
감경 수정 감경 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnRemoveRduct--${pageName}" title="감경 삭제" onclick="fnRemoveRduct${pageName}();"> <button type="button" class="btn btn-primary" id="btnRemove--${pageName}${pageDataName1}" title="감경 삭제" onclick="fnRemove${pageName}${pageDataName1}();">
감경 삭제 감경 삭제
</button> </button>
</span> </span>
@ -77,13 +77,13 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">부과제외 정보</label> <label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">부과제외 정보</label>
<!-- 버튼 우측 정렬 --> <!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateLevyExcl--${pageName}" title="부과제외 등록" onclick="fnCreateLevyExcl${pageName}();"> <button type="button" class="btn btn-primary" id="btnCreate--${pageName}${pageDataName2}" title="부과제외 등록" onclick="fnCreate${pageName}${pageDataName2}();">
부과제외 등록 부과제외 등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnUpdateLevyExcl--${pageName}" title="부과제외 수정" onclick="fnUpdateLevyExcl${pageName}();"> <button type="button" class="btn btn-primary" id="btnUpdate--${pageName}${pageDataName2}" title="부과제외 수정" onclick="fnUpdate${pageName}${pageDataName2}();">
부과제외 수정 부과제외 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnRemoveLevyExcl--${pageName}" title="부과제외 삭제" onclick="fnRemoveLevyExcl${pageName}();"> <button type="button" class="btn btn-primary" id="btnRemove--${pageName}${pageDataName2}" title="부과제외 삭제" onclick="fnRemove${pageName}${pageDataName2}();">
부과제외 삭제 부과제외 삭제
</button> </button>
</span> </span>
@ -157,7 +157,6 @@
<th>등록사용자</th> <th>등록사용자</th>
<th>단속상태</th> <th>단속상태</th>
<th>기타내용</th> <th>기타내용</th>
<th>사용여부</th>
</tr> </tr>
</thead> </thead>
<tbody id="tbody--${pageName}${pageDataName3}"> <tbody id="tbody--${pageName}${pageDataName3}">
@ -168,7 +167,6 @@
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td> <td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
<td class="text-center" onclick="{onclick}">{CRDN_STTS_NM}</td> <td class="text-center" onclick="{onclick}">{CRDN_STTS_NM}</td>
<td class="text-center" onclick="{onclick}">{ETC_CN}</td> <td class="text-center" onclick="{onclick}">{ETC_CN}</td>
<td class="text-center" onclick="{onclick}">{USE_YN_NM}</td>
</tr> </tr>
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}${pageDataName3}"> <template id="${infoPrefix}NotFound--${pageName}${pageDataName3}">
@ -361,6 +359,11 @@
// 삭제 callback // 삭제 callback
${pageName}${pageDataName1}Control.onRemove = (resp) => { ${pageName}${pageDataName1}Control.onRemove = (resp) => {
let btnTitle = $("#btnRemove--${pageName}${pageDataName1}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
if (resp.saved) { if (resp.saved) {
fnDataRefreshInfo(); // 자료 재조회 fnDataRefreshInfo(); // 자료 재조회
} }
@ -427,6 +430,11 @@
// 삭제 callback // 삭제 callback
${pageName}${pageDataName2}Control.onRemove = (resp) => { ${pageName}${pageDataName2}Control.onRemove = (resp) => {
let btnTitle = $("#btnRemove--${pageName}${pageDataName2}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
if (resp.saved) { if (resp.saved) {
fnDataRefreshInfo(); // 자료 재조회 fnDataRefreshInfo(); // 자료 재조회
} }
@ -539,7 +547,7 @@
* function * function
**************************************************************************/ **************************************************************************/
// 감경 등록 // 감경 등록
fnCreateRduct${pageName} = () => { fnCreate${pageName}${pageDataName1} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val(); let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
@ -561,7 +569,7 @@
} }
// 감경 수정 // 감경 수정
fnUpdateRduct${pageName} = () => { fnUpdate${pageName}${pageDataName1} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val(); let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
@ -584,7 +592,7 @@
} }
// 감경 삭제 // 감경 삭제
fnRemoveRduct${pageName} = () => { fnRemove${pageName}${pageDataName1} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val(); let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
@ -612,7 +620,7 @@
} }
// 부과제외 등록 // 부과제외 등록
fnCreateLevyExcl${pageName} = () => { fnCreate${pageName}${pageDataName2} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val(); let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
@ -634,7 +642,7 @@
} }
// 부과제외 수정 // 부과제외 수정
fnUpdateLevyExcl${pageName} = () => { fnUpdate${pageName}${pageDataName2} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val(); let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
@ -657,7 +665,7 @@
} }
// 부과제외 삭제 // 부과제외 삭제
fnRemoveLevyExcl${pageName} = () => { fnRemove${pageName}${pageDataName2} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val(); let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); let taskSeCd = $("#taskSeCd--${pageNameMain}").val();

Loading…
Cancel
Save