1. 개별총정보 - 부과제외 등록, 수정, 삭제 기능 수정.

2. 부과제외 삭제 수정.
main
jjh 1 year ago
parent 88863a374d
commit c210e3afa9

@ -73,6 +73,6 @@ public interface CrdnSttsHstryService {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
boolean removeHstryUpdateCrdnSttsCd(String crdnId); boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd);
} }

@ -25,6 +25,7 @@ import cokr.xit.fims.cmmn.dao.CrdnSttsHstryMapper;
*/ */
@Component("crdnSttsHstryBean") @Component("crdnSttsHstryBean")
public class CrdnSttsHstryBean extends AbstractComponent { public class CrdnSttsHstryBean extends AbstractComponent {
/** 단속 상태 이력 정보 DAO */ /** 단속 상태 이력 정보 DAO */
@Resource(name = "crdnSttsHstryMapper") @Resource(name = "crdnSttsHstryMapper")
private CrdnSttsHstryMapper crdnSttsHstryMapper; private CrdnSttsHstryMapper crdnSttsHstryMapper;
@ -61,6 +62,10 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* </ul> * </ul>
*/ */
public boolean create(CrdnSttsHstry crdnSttsHstry) { public boolean create(CrdnSttsHstry crdnSttsHstry) {
if (crdnSttsHstry.getUseYn() == null) {
crdnSttsHstry.setUseYn("Y");
}
return crdnSttsHstryMapper.insert(crdnSttsHstry); return crdnSttsHstryMapper.insert(crdnSttsHstry);
} }
@ -107,21 +112,25 @@ public class CrdnSttsHstryBean extends AbstractComponent {
public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) { public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) {
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
// 단속상태이력 정보를 등록한다. if (crdnSttsHstry.getUseYn() == null) {
crdnSttsHstry.setUseYn("Y");
}
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
retSuccess = crdnSttsHstryMapper.insert(crdnSttsHstry); retSuccess = crdnSttsHstryMapper.insert(crdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 등록 중 오류가 발생하였습니다."); throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다.");
} }
// 단속상태이력 정보를 등록한다. // 단속(TB_CRDN) 대장을 수정 한다.
retSuccess = crdnSttsHstryMapper.updateCrdn(crdnSttsHstry); retSuccess = crdnSttsHstryMapper.updateCrdn(crdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다."); throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다.");
} }
return retSuccess; return true;
} }
/** , . /** , .
@ -131,37 +140,65 @@ public class CrdnSttsHstryBean extends AbstractComponent {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
public boolean removeHstryUpdateCrdnSttsCd(String crdnId) { public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd) {
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회 정보
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(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); infoCrdnSttsHstry = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId);
// 단속상태이력(TB_CRDN_STTS_HSTRY) // 신규 단속상태코드가 있다면.. 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
if (!newCrdnSttsCd.equals("") ) {
newCrdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID
newCrdnSttsHstry.setBfrSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 이전 상태 코드
newCrdnSttsHstry.setBfrSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 이전 상태 변경 일시
newCrdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
newCrdnSttsHstry.setUseYn("N");
retSuccess = crdnSttsHstryMapper.insert(newCrdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("신규 단속상태이력 정보 등록 중 오류가 발생하였습니다.");
}
}
// 조회된 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
crdnSttsHstry.setSttsHstryId(infoCrdnSttsHstry.string("STTS_HSTRY_ID")); // 상태 이력 ID crdnSttsHstry.setSttsHstryId(infoCrdnSttsHstry.string("STTS_HSTRY_ID")); // 상태 이력 ID
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryMapper.delete(crdnSttsHstry); retSuccess = crdnSttsHstryMapper.delete(crdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 삭제 중 오류가 발생하였습니다."); 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")); // 상태 코드
crdnSttsHstry.setCrdnSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 상태 변경 일시 crdnSttsHstry.setCrdnSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 상태 변경 일시
// 단속(TB_CRDN) 상태 코드를 수정 한다.
retSuccess = crdnSttsHstryMapper.updateCrdn(crdnSttsHstry); retSuccess = crdnSttsHstryMapper.updateCrdn(crdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 등록 중 오류가 발생하였습니다."); throw new RuntimeException("단속 대장에 단속상태코드 변경 중 오류가 발생하였습니다.");
}
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
newCrdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID
newCrdnSttsHstry.setBfrSttsCd(newCrdnSttsCd); // 이전 상태 코드
newCrdnSttsHstry.setBfrSttsChgDt(newCrdnSttsHstry.getCreatedAt()); // 이전 상태 변경 일시
newCrdnSttsHstry.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 단속 상태 코드
newCrdnSttsHstry.setUseYn("Y");
retSuccess = crdnSttsHstryMapper.insert(newCrdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("이전 단속상태이력 정보 등록 중 오류가 발생하였습니다.");
} }
return retSuccess; return true;
} }
} }

@ -61,8 +61,8 @@ public class CrdnSttsHstryServiceBean extends AbstractServiceBean implements Crd
} }
@Override @Override
public boolean removeHstryUpdateCrdnSttsCd(String crdnId) { public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String newCrdnSttsCd) {
return crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnId); return crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnId, newCrdnSttsCd);
} }
} }

@ -46,7 +46,9 @@ public class Excl01Bean extends AbstractComponent {
* @return * @return
*/ */
public List<DataObject> getLevyExclList(ExclQuery req) { public List<DataObject> getLevyExclList(ExclQuery req) {
req.setOrderBy("LEVY_EXCL_ID"); // 정렬 if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return levyExclMapper.selectLevyExclList(req); return levyExclMapper.selectLevyExclList(req);
} }
@ -56,7 +58,9 @@ public class Excl01Bean extends AbstractComponent {
* @return * @return
*/ */
public List<DataObject> getLevyExcls(ExclQuery req) { public List<DataObject> getLevyExcls(ExclQuery req) {
req.setOrderBy("LEVY_EXCL_ID DESC"); // 정렬 if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT DESC");
}
return levyExclMapper.selectLevyExcls(req); return levyExclMapper.selectLevyExcls(req);
} }
@ -66,6 +70,10 @@ public class Excl01Bean extends AbstractComponent {
* @return * @return
*/ */
public DataObject getLevyExclInfo(ExclQuery req) { public DataObject getLevyExclInfo(ExclQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("LEVY_EXCL_ID DESC");
}
return levyExclMapper.selectLevyExclInfo(req); return levyExclMapper.selectLevyExclInfo(req);
} }
@ -74,13 +82,10 @@ public class Excl01Bean extends AbstractComponent {
* @return * @return
*/ */
public DataObject getCrdnInfo(ExclQuery req) { public DataObject getCrdnInfo(ExclQuery req) {
DataObject dataCrdn = levyExclMapper.selectCrdn(req); // 등록(단속 조회) DataObject dataCrdn = levyExclMapper.selectCrdn(req); // 단속 조회
// 등록 호출시.. 부과제외 등록시 기본값 셋팅
if (req.getCallPurpose() == null || req.getCallPurpose().equals("create")) {
dataCrdn.set("LEVY_EXCL_YMD", dataCrdn.get("TODAY")); // 부과 제외 일자 dataCrdn.set("LEVY_EXCL_YMD", dataCrdn.get("TODAY")); // 부과 제외 일자
dataCrdn.set("LEVY_EXCL_SE_CD", req.getLevyExclSeCd()); // 부과 제외 구분 코드 dataCrdn.set("LEVY_EXCL_SE_CD", req.getLevyExclSeCd()); // 부과 제외 구분 코드
}
return dataCrdn; return dataCrdn;
} }
@ -362,6 +367,7 @@ public class Excl01Bean extends AbstractComponent {
public boolean removeLevyExcl(LevyExcl levyExcl) { public boolean removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String newHstrySttsCd = ""; // 신규 상태 코드
ExclQuery req = new ExclQuery(); ExclQuery req = new ExclQuery();
@ -374,11 +380,11 @@ public class Excl01Bean extends AbstractComponent {
// 단속 상태 코드(CRDN_STTS_CD) 확인.. // 단속 상태 코드(CRDN_STTS_CD) 확인..
if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손)
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); throw new RuntimeException("현재 단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
} else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고 } else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고
throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); throw new RuntimeException("현재 단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
} else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소 } else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소
throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); throw new RuntimeException("현재 단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다.");
} }
// 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다.
@ -388,8 +394,14 @@ public class Excl01Bean extends AbstractComponent {
throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다."); throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다.");
} }
if (infoLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손)
newHstrySttsCd = "91";
} else if (infoLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고
newHstrySttsCd = "93";
}
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoLevyExcl.string("CRDN_ID")); retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoLevyExcl.string("CRDN_ID"), newHstrySttsCd);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 삭제 중 단속상태 변경에 실패하였습니다."); throw new RuntimeException("부과제외 삭제 중 단속상태 변경에 실패하였습니다.");

@ -41,10 +41,15 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
@Override @Override
public DataObject getLevyExclInfo(ExclQuery req) { public DataObject getLevyExclInfo(ExclQuery req) {
if (req.getLevyExclId() != null) { if (req.getCallPurpose() == null) {
return excl01Bean.getLevyExclInfo(req); // req.setCallPurpose("view");
} else { req.setCallPurpose("create"); // 추후 삭제
}
if (req.getCallPurpose().equals("create")) {
return excl01Bean.getCrdnInfo(req); return excl01Bean.getCrdnInfo(req);
} else {
return excl01Bean.getLevyExclInfo(req);
} }
} }

@ -48,7 +48,9 @@ public class Excl02Bean extends AbstractComponent {
* @return * @return
*/ */
public List<DataObject> getOpnnSbmsnList(ExclQuery req) { public List<DataObject> getOpnnSbmsnList(ExclQuery req) {
req.setOrderBy("OPNN_ID"); // 정렬 if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return opnnSbmsnMapper.selectOpnnSbmsnList(req); return opnnSbmsnMapper.selectOpnnSbmsnList(req);
} }
@ -58,7 +60,10 @@ public class Excl02Bean extends AbstractComponent {
* @return * @return
*/ */
public List<DataObject> getOpnnSbmsns(ExclQuery req) { public List<DataObject> getOpnnSbmsns(ExclQuery req) {
req.setOrderBy("OPNN_ID DESC"); // 정렬 if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT DESC");
}
return opnnSbmsnMapper.selectOpnnSbmsns(req); return opnnSbmsnMapper.selectOpnnSbmsns(req);
} }
@ -67,6 +72,10 @@ public class Excl02Bean extends AbstractComponent {
* @return * @return
*/ */
public DataObject getOpnnSbmsnInfo(ExclQuery req) { public DataObject getOpnnSbmsnInfo(ExclQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("OPNN_ID DESC");
}
return opnnSbmsnMapper.selectOpnnSbmsnInfo(req.getOpnnId()); return opnnSbmsnMapper.selectOpnnSbmsnInfo(req.getOpnnId());
} }
@ -77,11 +86,8 @@ public class Excl02Bean extends AbstractComponent {
public DataObject getCrdnInfo(ExclQuery req) { public DataObject getCrdnInfo(ExclQuery req) {
DataObject dataCrdn = opnnSbmsnMapper.selectCrdn(req); // 단속ID로 단속, 의견제출 조회 DataObject dataCrdn = opnnSbmsnMapper.selectCrdn(req); // 단속ID로 단속, 의견제출 조회
// 등록 호출시.. 초기 데이터 설정
if (req.getCallPurpose().equals("create")) { // 의견제출 등록시 기본값 셋팅
dataCrdn.set("RCPT_YMD", dataCrdn.string("TODAY")); // 접수 일자 dataCrdn.set("RCPT_YMD", dataCrdn.string("TODAY")); // 접수 일자
dataCrdn.set("RCPT_NO", dataCrdn.string("NEW_RCPT_NO")); // 접수 번호 dataCrdn.set("RCPT_NO", dataCrdn.string("NEW_RCPT_NO")); // 접수 번호
}
return dataCrdn; return dataCrdn;
} }
@ -284,7 +290,7 @@ public class Excl02Bean extends AbstractComponent {
// 단속 상태 코드가 의견제출 접수(31) 또는 의견제출 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다. // 단속 상태 코드가 의견제출 접수(31) 또는 의견제출 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다.
if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) { if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID")); retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID"), "92");
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("의견제출 삭제 중 단속상태 변경에 실패하였습니다."); throw new RuntimeException("의견제출 삭제 중 단속상태 변경에 실패하였습니다.");

@ -42,18 +42,14 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
@Override @Override
public DataObject getOpnnSbmsnInfo(ExclQuery req) { public DataObject getOpnnSbmsnInfo(ExclQuery req) {
if (req.getLevyExclId() != null) { if (req.getCallPurpose() == null) {
return excl02Bean.getOpnnSbmsnInfo(req); req.setCallPurpose("view");
} else {
DataObject opnnSbmsnInfo = excl02Bean.getCrdnInfo(req);
// 등록(create)으로 실행했는데 의견제출 ID가 존재한다면 이미 등록되었으므로 오류로 처리..
if (req.getCallPurpose() == "create" && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("의견제출 대장에 정보가 이미 존재합니다.");
} }
return opnnSbmsnInfo; if (req.getCallPurpose().equals("create")) {
return excl02Bean.getCrdnInfo(req);
} else {
return excl02Bean.getOpnnSbmsnInfo(req);
} }
} }

@ -34,7 +34,9 @@ public class Excl03Bean extends AbstractComponent {
* @return * @return
*/ */
public List<DataObject> getCrackdownReRegistrationList(ExclQuery req) { public List<DataObject> getCrackdownReRegistrationList(ExclQuery req) {
req.setOrderBy("RE_REG_ID"); // 정렬 if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT");
}
return crdnReRegMapper.selectCrdnReRegList(req); return crdnReRegMapper.selectCrdnReRegList(req);
} }

@ -80,14 +80,15 @@ public class Excl01Controller extends ApplicationController {
public ModelAndView getLevyExclInfo(String saveCallbackFuncName, String savedCallbackFuncName, ExclQuery req) { public ModelAndView getLevyExclInfo(String saveCallbackFuncName, String savedCallbackFuncName, ExclQuery req) {
DataObject levyExclInfo = excl01Service.getLevyExclInfo(req); DataObject levyExclInfo = excl01Service.getLevyExclInfo(req);
if (req.getLevyExclId() == null && !levyExclInfo.string("LEVY_EXCL_ID").equals("")) { // 등록을 호출하였지만 등록된 부과제외 ID가 있는지 확인.
if (req.getCallPurpose() == "create" && !levyExclInfo.string("LEVY_EXCL_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView"); ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("message", "등록된 부과제외 정보가 있습니다."); return mav
.addObject("message", "이미 등록된 부과제외 정보가 있습니다.")
return mav; .addObject("errorMessage", "이미 등록된 부과제외 정보가 있습니다.")
} ;
} else {
boolean json = jsonResponse(); boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info"); ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info");
@ -107,6 +108,7 @@ public class Excl01Controller extends ApplicationController {
.addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) .addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo))
; ;
} }
}
/** . /** .
* @param levyExcl * @param levyExcl

@ -90,13 +90,13 @@ public class Excl02Controller extends ApplicationController {
public ModelAndView getOpnnSbmsnInfo(ExclQuery req) { public ModelAndView getOpnnSbmsnInfo(ExclQuery req) {
DataObject opnnSbmsnInfo = excl02Service.getOpnnSbmsnInfo(req); DataObject opnnSbmsnInfo = excl02Service.getOpnnSbmsnInfo(req);
// 등록으로 실행했는데 의견제출 ID가 존재한다면 이미 등록되었으므로 오류로 처리.. // 등록을 호출하였지만 등록된 의견제출 ID가 있는지 확인.
if (req.getOpnnId() == null && !opnnSbmsnInfo.string("OPNN_ID").equals("")) { if (req.getCallPurpose() == "create" && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView"); ModelAndView mav = new ModelAndView("jsonView");
mav.addObject("message", "등록된 의견제출 정보가 있습니다."); return mav
.addObject("errorMessage", "이미 등록된 의견제출 정보가 있습니다.")
return mav; ;
} else { } else {
boolean json = jsonResponse(); boolean json = jsonResponse();

@ -170,14 +170,14 @@ public class Sprt02Controller extends ApplicationController {
} }
sndb01Query.setCrdnId(req.getCrdnId()); sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn(req.getDelYn()); sndb01Query.setDelYn(req.getDelYn());
sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_YMD DESC"); sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_DTL_ID DESC");
List<?> sndngDtl = sndb01Service.getSndngDtls(sndb01Query); List<?> sndngDtl = sndb01Service.getSndngDtls(sndb01Query);
// 공시송달 정보 // 공시송달 정보
sndb01Query.setCrdnId(req.getCrdnId()); sndb01Query.setCrdnId(req.getCrdnId());
sndb01Query.setDelYn(req.getDelYn()); sndb01Query.setDelYn(req.getDelYn());
sndb01Query.setOrderBy("SV.REG_DT DESC"); sndb01Query.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC");
List<?> svbtc = sndb01Service.getSvbtcs(sndb01Query); List<?> svbtc = sndb01Service.getSvbtcs(sndb01Query);
@ -235,14 +235,14 @@ public class Sprt02Controller extends ApplicationController {
// 단속 상태 이력 // 단속 상태 이력
CrdnSttsHstryQuery crdnSttsHstryQuery = new CrdnSttsHstryQuery(); CrdnSttsHstryQuery crdnSttsHstryQuery = new CrdnSttsHstryQuery();
crdnSttsHstryQuery.setCrdnId(req.getCrdnId()); crdnSttsHstryQuery.setCrdnId(req.getCrdnId());
crdnSttsHstryQuery.setOrderBy("CSH.REG_DT DESC"); crdnSttsHstryQuery.setOrderBy("CSH.REG_DT DESC, CSH.STTS_HSTRY_ID DESC");
List<?> crdnSttsHstry = crdnSttsHstryService.getCrdnSttsHstrys(crdnSttsHstryQuery); List<?> crdnSttsHstry = crdnSttsHstryService.getCrdnSttsHstrys(crdnSttsHstryQuery);
// 단속 납부자 이력 // 단속 납부자 이력
CrdnPayerHstryQuery crdnPayerHstryQuery = new CrdnPayerHstryQuery(); CrdnPayerHstryQuery crdnPayerHstryQuery = new CrdnPayerHstryQuery();
crdnPayerHstryQuery.setCrdnId(req.getCrdnId()); crdnPayerHstryQuery.setCrdnId(req.getCrdnId());
crdnPayerHstryQuery.setOrderBy("CPH.REG_DT DESC"); crdnPayerHstryQuery.setOrderBy("CPH.REG_DT DESC, CPH.CHG_HSTRY_ID DESC");
List<?> crdnPayerHstry = crdnPayerHstryService.getCrdnPayerHstrys(crdnPayerHstryQuery); List<?> crdnPayerHstry = crdnPayerHstryService.getCrdnPayerHstrys(crdnPayerHstryQuery);
@ -253,6 +253,7 @@ public class Sprt02Controller extends ApplicationController {
return mav return mav
.addObject("pageName", "sprt02050") .addObject("pageName", "sprt02050")
.addObject("pageNameMain", "sprt02010") .addObject("pageNameMain", "sprt02010")
.addObject("pageDataName1", "Rduct") // dataset1
.addObject("rduct", json ? rduct : toJson(rduct)) // 감경 정보 .addObject("rduct", json ? rduct : toJson(rduct)) // 감경 정보
.addObject("pageDataName2", "LevyExcl") // dataset2 .addObject("pageDataName2", "LevyExcl") // dataset2
.addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외 정보 .addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외 정보

@ -103,7 +103,7 @@
, #{crdnSttsHstry.crdnSttsCd} /* 단속 상태 코드 */ , #{crdnSttsHstry.crdnSttsCd} /* 단속 상태 코드 */
, #{crdnSttsHstry.taskDtlId} /* 업무 상세 ID */ , #{crdnSttsHstry.taskDtlId} /* 업무 상세 ID */
, #{crdnSttsHstry.etcCn} /* 기타 내용 */ , #{crdnSttsHstry.etcCn} /* 기타 내용 */
, 'Y' /* 삭제 여부 */ , #{crdnSttsHstry.useYn} /* 단속 상태 변경 일시 */
, #{crdnSttsHstry.createdAt} /* 등록 일시 */ , #{crdnSttsHstry.createdAt} /* 등록 일시 */
, #{crdnSttsHstry.createdBy} /* 등록자 */ , #{crdnSttsHstry.createdBy} /* 등록자 */
, #{crdnSttsHstry.lastModified} /* 수정 일시 */ , #{crdnSttsHstry.lastModified} /* 수정 일시 */
@ -125,6 +125,7 @@
, MDFCN_DT = #{crdnSttsHstry.lastModified} /* 수정 일시 */ , MDFCN_DT = #{crdnSttsHstry.lastModified} /* 수정 일시 */
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */ , MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */
WHERE STTS_HSTRY_ID = #{crdnSttsHstry.sttsHstryId} /* 상태 이력 ID */ WHERE STTS_HSTRY_ID = #{crdnSttsHstry.sttsHstryId} /* 상태 이력 ID */
AND USE_YN = 'Y' /* 사용 여부 */
</update> </update>
<update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(crdnSttsHstryMapper.updateCrdnSttsCd) */ <update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(crdnSttsHstryMapper.updateCrdnSttsCd) */

@ -354,7 +354,7 @@
, data : { crdnId : crdnId } , data : { crdnId : crdnId }
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : ${pageName}Control.prefixed("dialog") id : "totalInfoMainDialog"
, title : "개별총정보" , title : "개별총정보"
, content : resp , content : resp
, size : "xxl" , size : "xxl"
@ -438,7 +438,7 @@
resp = resp.replace(/infoPrefix/g, this.prefix) resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName) .replace(/prefixName/g, this.prefixName)
dialog.open({ dialog.open({
id : ${pageName}Control.prefixed("dialog") id : ${pageName}Control.prefixed("Dialog")
, title : ${pageName}Control.prefixName + " 정보" , title : ${pageName}Control.prefixName + " 정보"
, content : resp , content : resp
, size : ${pageName}Control.infoSize , size : ${pageName}Control.infoSize

@ -43,7 +43,7 @@
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label> <label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<input type="text" class="form-control w-px-400" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" data-maxlengthb="1000" /> <input type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" data-maxlengthb="1000" />
</div> </div>
</div> </div>
</form> </form>
@ -56,7 +56,7 @@
<span class="container-page-btn"> <span class="container-page-btn">
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary" id="btnSave--${pageName}" title="저장" onclick="fnBtnSave${pageName}()">저장</button> <button type="button" class="btn btn-primary" id="btnSaveLevyExcl--${pageName}" title="저장" onclick="fnSaveLevyExcl${pageName}()">저장</button>
</span> </span>
</span> </span>
</div> </div>
@ -105,7 +105,7 @@
${pageName}Control.onSave = (resp) => { ${pageName}Control.onSave = (resp) => {
if (resp.saved) { if (resp.saved) {
dialog.alert("저장됐습니다."); dialog.alert("저장됐습니다.");
dialog.close(${pageName}Control.prefix + "dialog"); dialog.close(${pageName}Control.prefix + "Dialog");
if ("${savedCallbackFuncName}" != "") { if ("${savedCallbackFuncName}" != "") {
${savedCallbackFuncName}(resp.saved); ${savedCallbackFuncName}(resp.saved);
@ -177,7 +177,7 @@
* function * function
**************************************************************************/ **************************************************************************/
// 저장 // 저장
function fnBtnSave${pageName}() { function fnSaveLevyExcl${pageName}() {
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;

@ -191,7 +191,7 @@
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ var ${pageName}Control = new DatasetControl({
prefix : "totalInfoOpnnSbmsn" prefix : "totalInfoOpnnSbmsn"
, prefixName : "의견제출 정보" , prefixName : "의견제출"
, keymapper : info => info ? info.OPNN_ID : "" , keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsn , dataGetter : obj => obj.opnnSbmsn
, formats : { , formats : {
@ -218,9 +218,9 @@
let dialogTitle = ""; let dialogTitle = "";
if (params.callPurpose == "create") { if (params.callPurpose == "create") {
dialogTitle = "의견제출 등록"; dialogTitle = ${pageName}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") { } else if (params.callPurpose == "update") {
dialogTitle = "의견제출 수정"; dialogTitle = ${pageName}Control.prefixName + " 수정";
} else { } else {
return; return;
} }
@ -268,23 +268,31 @@
, title : "의견제출 답변 처리" , title : "의견제출 답변 처리"
, content : resp , content : resp
, size : "lg" , size : "lg"
, onClose : () => { fnDataRefreshInfo(params.crdnId); } // callback 자료 조회 , onClose : () => { fnDataRefreshInfo(); } // callback 자료 조회
}); });
} }
}); });
} }
// 재조회 // 재조회
fnDataRefreshInfo = (crdnId) => { fnDataRefreshInfo = () => {
// 단속 ID 확인 let crdnId = $("#crdnId--${pageNameMain}").val();
if (crdnId == undefined || crdnId == null || crdnId == "") {
crdnId = $("#crdnId--${pageName}").val(); // 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
} }
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({ ajax.get({
url : wctx.url("/sprt/sprt02/030/info.do") url : wctx.url("/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json , headers: { Accept: "application/json; charset=utf-8" } // json
, data : { crdnId : crdnId } , data : params || {}
, success : resp => { , success : resp => {
${pageName}Control.dataset.clear(); ${pageName}Control.dataset.clear();
${pageName}Control.setData([resp.opnnSbmsn]); // Dataset 셋팅 ${pageName}Control.setData([resp.opnnSbmsn]); // Dataset 셋팅

@ -13,56 +13,56 @@
<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="btnRductCreate--${pageName}" title="감경 등록" onclick="fnBtnRductCreate${pageName}();"> <button type="button" class="btn btn-primary" id="btnCreateRduct--${pageName}" title="감경 등록" onclick="fnCreateRduct${pageName}();">
감경 등록 감경 등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnRductUpdate--${pageName}" title="감경 수정" onclick="fnBtnRductUpdate${pageName}();"> <button type="button" class="btn btn-primary" id="btnUpdateRduct--${pageName}" title="감경 수정" onclick="fnUpdateRduct${pageName}();">
감경 수정 감경 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnRductRemove--${pageName}" title="감경 삭제" onclick="fnBtnRductRemove${pageName}();"> <button type="button" class="btn btn-primary" id="btnRemoveRduct--${pageName}" title="감경 삭제" onclick="fnRemoveRduct${pageName}();">
감경 삭제 감경 삭제
</button> </button>
</span> </span>
</div> <!-- <div class="container-page-btn"> --> </div> <!-- <div class="container-page-btn"> -->
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}${pageDataName1}" name="frmEdit${pageDataName1}">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" /> <input type="hidden" id="rductId--${pageName}${pageDataName1}" name="rductId" data-map="RDUCT_ID" />
<div class="row g-1"> <div class="row g-1">
<!-- 감경 일자 --> <!-- 감경 일자 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 일자</label> <label for="rductYmd--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 일자</label>
<input type="text" class="form-control w-30" id="rductYmd--${pageName}" name="rductYmd" data-map="RDUCT_YMD" readonly /> <input type="text" class="form-control w-30" id="rductYmd--${pageName}${pageDataName1}" name="rductYmd" data-map="RDUCT_YMD" readonly />
</div> </div>
<!-- --> <!-- -->
<div class="col-md-6"> <div class="col-md-6">
</div> </div>
<!-- 감경 사유 명 --> <!-- 감경 사유 명 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductRsnNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 사유</label> <label for="rductRsnNm--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 사유</label>
<input type="text" class="form-control w-30" id="rductRsnNm--${pageName}" name="rductRsnNm" data-map="RDUCT_RSN_NM" readonly /> <input type="text" class="form-control w-30" id="rductRsnNm--${pageName}${pageDataName1}" name="rductRsnNm" data-map="RDUCT_RSN_NM" readonly />
</div> </div>
<!-- 감경 금액 --> <!-- 감경 금액 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 금액</label> <label for="rductAmt--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경 금액</label>
<input type="text" class="form-control w-30 text-end" id="rductAmt--${pageName}" name="rductAmt" data-map="RDUCT_AMT" readonly /> <input type="text" class="form-control w-30 text-end" id="rductAmt--${pageName}${pageDataName1}" name="rductAmt" data-map="RDUCT_AMT" readonly />
</div> </div>
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label> <label for="etcCn--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly> <textarea type="text" class="form-control w-80" id="etcCn--${pageName}${pageDataName1}" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly>
</textarea> </textarea>
</div> </div>
<!-- 등록 일시 --> <!-- 등록 일시 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="regDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록 일시</label> <label for="regDt--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록 일시</label>
<input type="text" class="form-control w-45" id="regDt--${pageName}" name="regDt" data-map="REG_DT" readonly /> <input type="text" class="form-control w-45" id="regDt--${pageName}${pageDataName1}" name="regDt" data-map="REG_DT" readonly />
</div> </div>
<!-- 등록자 --> <!-- 등록자 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rgtrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록자</label> <label for="rgtrNm--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록자</label>
<input type="text" class="form-control w-40" id="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly /> <input type="text" class="form-control w-40" id="rgtrNm--${pageName}${pageDataName1}" name="rgtrNm" data-map="RGTR_NM" readonly />
</div> </div>
</div> <!-- <div class="row g-1"> --> </div> <!-- <div class="row g-1"> -->
</form> </form>
@ -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="btnLevyExclCreate--${pageName}" title="부과제외 등록" onclick="fnBtnLevyExclCreate${pageName}();"> <button type="button" class="btn btn-primary" id="btnCreateLevyExcl--${pageName}" title="부과제외 등록" onclick="fnCreateLevyExcl${pageName}();">
부과제외 등록 부과제외 등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnLevyExclUpdate--${pageName}" title="부과제외 수정" onclick="fnBtnLevyExclUpdate${pageName}();"> <button type="button" class="btn btn-primary" id="btnUpdateLevyExcl--${pageName}" title="부과제외 수정" onclick="fnUpdateLevyExcl${pageName}();">
부과제외 수정 부과제외 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnLevyExclRemove--${pageName}" title="부과제외 삭제" onclick="fnBtnLevyExclRemove${pageName}();"> <button type="button" class="btn btn-primary" id="btnRemoveLevyExcl--${pageName}" title="부과제외 삭제" onclick="fnRemoveLevyExcl${pageName}();">
부과제외 삭제 부과제외 삭제
</button> </button>
</span> </span>
@ -238,15 +238,18 @@
**************************************************************************/ **************************************************************************/
// URL // URL
var ${pageName}PrefixUrl = "/sprt/sprt02"; var ${pageName}PrefixUrl = "/sprt/sprt02";
var ${pageName}${pageDataName1}PrefixUrl = "/levy/levy02";
var ${pageName}${pageDataName2}PrefixUrl = "/excl/excl01";
// FormFields // FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}"); var ${pageName}${pageDataName1}Fields = new FormFields("#frmEdit--${pageName}${pageDataName1}");
var ${pageName}${pageDataName2}Fields = new FormFields("#frmEdit--${pageName}${pageDataName2}"); var ${pageName}${pageDataName2}Fields = new FormFields("#frmEdit--${pageName}${pageDataName2}");
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
// 감경 Dataset // 감경 Dataset
var ${pageName}Control = new DatasetControl({ var ${pageName}${pageDataName1}Control = new DatasetControl({
prefix : "rduct" prefix : "rduct"
, prefixName : "감경" , prefixName : "감경"
, keymapper : info => info ? info.RDUCT_ID : "" , keymapper : info => info ? info.RDUCT_ID : ""
@ -316,18 +319,163 @@
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// 감경 선택 자료 변경 이벤트 // 감경 선택 자료 변경 이벤트
${pageName}Control.onCurrentChange = item => { ${pageName}${pageDataName1}Control.onCurrentChange = item => {
${pageName}Fields.set(item); ${pageName}Fields.set(item);
} }
// 감경 dialog
${pageName}${pageDataName1}Control.getInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = ${pageName}${pageDataName1}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}${pageDataName1}Control.prefixName + " 수정";
} else {
return;
}
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}${pageDataName1}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
if ((typeof resp) != "string") {
if (resp.errorMessage != "") {
dialog.alert(resp.errorMessage);
return;
}
}
dialog.open({
id : ${pageName}${pageDataName2}Control.prefixed("Dialog")
, title : dialogTitle
, content : resp
, size : "lg"
, init : () => { }
, onClose : () => { fnDataRefreshInfo(); } // callback 자료 재조회
});
}
});
}
// 부과제외 선택 자료 변경 이벤트 // 부과제외 선택 자료 변경 이벤트
${pageName}${pageDataName2}Control.onCurrentChange = item => { ${pageName}${pageDataName2}Control.onCurrentChange = item => {
${pageName}${pageDataName2}Fields.set(item); ${pageName}${pageDataName2}Fields.set(item);
// 계고는 수정하지 않는다..
let levyExclSeCd = item.data.LEVY_EXCL_SE_CD;
if (levyExclSeCd == "2") {
$("#btnUpdateLevyExcl--${pageName}").prop("disabled", true);
} else {
$("#btnUpdateLevyExcl--${pageName}").prop("disabled", false);
}
}
// 부과제외 dialog
${pageName}${pageDataName2}Control.getInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = ${pageName}${pageDataName2}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}${pageDataName2}Control.prefixName + " 수정";
} else {
return;
}
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}${pageDataName2}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
if ((typeof resp) != "string") {
if (resp.errorMessage != "") {
dialog.alert(resp.errorMessage);
return;
}
}
dialog.open({
id : ${pageName}${pageDataName2}Control.prefixed("Dialog")
, title : dialogTitle
, content : resp
, size : "lg"
, init : () => { }
, onClose : () => { fnDataRefreshInfo(); } // callback 자료 재조회
});
}
});
}
// 삭제 callback
${pageName}${pageDataName2}Control.onRemove = (resp) => {
if (resp.saved) {
fnDataRefreshInfo(); // 자료 재조회
}
}
// 삭제
${pageName}${pageDataName2}Control.remove = (params) => {
ajax.post({
url : wctx.url("/" + params.taskSeCd + ${pageName}${pageDataName2}PrefixUrl + "/010/remove.do")
, data : params || {}
, success : resp => ${pageName}${pageDataName2}Control.onRemove(resp) // 삭제 callback
});
} }
/************************************************************************** /**************************************************************************
* *
**************************************************************************/ **************************************************************************/
// 자료 재조회
fnDataRefreshInfo = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") {
return;
}
let params = {
callPurpose : "view"
, crdnId : crdnId
, delYn : "N"
};
ajax.get({
url : wctx.url("/sprt/sprt02/050/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {}
, success : resp => {
${pageName}${pageDataName3}Dataset.clear();
${pageName}${pageDataName4}Dataset.clear();
// 감경 정보 Data 셋팅
let rduct = resp.rduct;
if (rduct) {
${pageName}${pageDataName1}Control.setData([rduct]);
} else {
$("#frmEdit--${pageName}${pageDataName1}")[0].reset();
}
// 부과제외 정보 Data 셋팅
let levyExcl = resp.levyExcl;
if (levyExcl) {
${pageName}${pageDataName2}Control.setData([levyExcl]);
} else {
$("#frmEdit--${pageName}${pageDataName2}")[0].reset();
}
// 처리 상태 이력 Data 셋팅
${pageName}${pageDataName3}Dataset.setData(resp.crdnSttsHstryList);
// 주소 변동 이력 Data 셋팅
${pageName}${pageDataName4}Dataset.setData(resp.crdnPayerHstryList);
}
});
}
// 단속 상태 이력 DataTables에 click 이벤트 // 단속 상태 이력 DataTables에 click 이벤트
renderList${pageName}${pageDataName3} = () => { renderList${pageName}${pageDataName3} = () => {
let ${infoPrefix}List = ${pageName}${pageDataName3}Dataset; let ${infoPrefix}List = ${pageName}${pageDataName3}Dataset;
@ -377,33 +525,91 @@
* function * function
**************************************************************************/ **************************************************************************/
// 감경 등록 // 감경 등록
fnBtnRductCreate${pageName} = () => { fnCreateRduct${pageName} = () => {
} }
// 감경 수정 // 감경 수정
fnBtnRductUpdate${pageName} = () => { fnUpdateRduct${pageName} = () => {
} }
// 감경 삭제 // 감경 삭제
fnBtnRductRemove${pageName} = () => { fnRemoveRduct${pageName} = () => {
} }
// 부과제외 등록 // 부과제외 등록
fnBtnLevyExclCreate${pageName} = () => { fnCreateLevyExcl${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (crdnId == undefined || crdnId == "") {
return;
}
let params = {
callPurpose : "create"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, levyExclSeCd : "1"
};
${pageName}${pageDataName2}Control.getInfo(params);
} }
// 부과제외 수정 // 부과제외 수정
fnBtnLevyExclUpdate${pageName} = () => { fnUpdateLevyExcl${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
let levyExclId = ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID");
// 부과 제외 ID 가 없다면.. return
if (levyExclId == undefined || levyExclId == "") {
return;
}
let params = {
callPurpose : "update"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, levyExclId : levyExclId
};
${pageName}${pageDataName2}Control.getInfo(params);
} }
// 부과제외 삭제 // 부과제외 삭제
fnBtnLevyExclRemove${pageName} = () => { fnRemoveLevyExcl${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
let levyExclId = ${pageName}${pageDataName2}Control.dataset.getValue("LEVY_EXCL_ID");
// 민원 상담 ID 가 없다면.. return
if (levyExclId == undefined || levyExclId == "") {
return;
}
let params = {
callPurpose : "remove"
, crdnId : crdnId
, sggCd : sggCd
, taskSeCd : taskSeCd
, levyExclId : levyExclId
};
dialog.alert({
content : "선택한 " + ${pageName}${pageDataName2}Control.prefixName + " 내용을 삭제하시겠습니까?"
, onOK : () => {
${pageName}${pageDataName2}Control.remove(params);
}
});
} }
/************************************************************************** /**************************************************************************
@ -419,13 +625,13 @@
// 감경 정보 Control 셋팅 // 감경 정보 Control 셋팅
let rduct = ${rduct}; let rduct = ${rduct};
if (rduct) { if (rduct) {
${pageName}Control.setData([${rduct}]); ${pageName}${pageDataName1}Control.setData([rduct]);
} }
// 부과제외 정보 Control 셋팅 // 부과제외 정보 Control 셋팅
let levyExcl = ${levyExcl}; let levyExcl = ${levyExcl};
if (levyExcl) { if (levyExcl) {
${pageName}${pageDataName2}Control.setData([${levyExcl}]); ${pageName}${pageDataName2}Control.setData([levyExcl]);
} }
// 처리 상태 이력 Dataset 셋팅 // 처리 상태 이력 Dataset 셋팅

@ -331,8 +331,11 @@
// 화면 초기 설정 // 화면 초기 설정
initForm${pageName}(); initForm${pageName}();
// Dataset 셋팅 // 부과 정보 Control 셋팅
${pageName}Control.setData([${levy}]); let levy = ${levy};
if (levy) {
${pageName}${pageDataName1}Control.setData([levy]); // Dataset 셋팅
}
}); });
// #sourceURL=sprt02060-info.jsp // #sourceURL=sprt02060-info.jsp

@ -124,15 +124,25 @@
$("#dscsnCn--${pageName}").val(item.data.DSCSN_CN); // 상담 내용 $("#dscsnCn--${pageName}").val(item.data.DSCSN_CN); // 상담 내용
}; };
// 민원 상담 내용 dialog // 민원 상담 내용 Dialog
${pageName}Control.getInfo = (params) => { ${pageName}Control.getInfo = (params) => {
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = ${pageName}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}Control.prefixName + " 수정";
} else {
return;
}
ajax.get({ ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do") url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do")
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : ${pageName}Control.prefixed("Dialog") id : ${pageName}Control.prefixed("Dialog")
, title : "민원상담 내용" , title : dialogTitle
, content : resp , content : resp
, size : "lg" , size : "lg"
, init : () => { } , init : () => { }
@ -154,10 +164,29 @@
ajax.post({ ajax.post({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/010/remove.do") url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/010/remove.do")
, data : params || {} , data : params || {}
, success : resp => ${pageName}Control.onRemove(resp) , success : resp => ${pageName}Control.onRemove(resp) // 삭제 callback
}); });
} }
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
renderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CVLCPT_DSCSN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
}
// 자료 재조회 // 자료 재조회
fnDataRefreshInfo = () => { fnDataRefreshInfo = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
@ -187,25 +216,6 @@
}); });
} }
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
renderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CVLCPT_DSCSN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
}
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 초기 셋팅
**************************************************************************/ **************************************************************************/

Loading…
Cancel
Save