1. 개별총정보 - 처리상세정보 - 주소 변동 이력 수정.

2. 사전감경부과, 과태료 감경 관리, 부과관리 수정.
3. 기타 소스 정리.
main
jjh 6 months ago
parent ff4b8f66e1
commit af88334393

@ -78,7 +78,7 @@ public class CrdnPayerHstryBean extends AbstractBean {
return crdnPayerHstryMapper.updateCrdnPayer(crdnPayerHstry); return crdnPayerHstryMapper.updateCrdnPayer(crdnPayerHstry);
} }
/** , . /** , .
* @param crdnPayerHstry * @param crdnPayerHstry
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
@ -94,7 +94,38 @@ public class CrdnPayerHstryBean extends AbstractBean {
throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
// 단속 대장 납부자ID를 변경한다. // 단속 납부자 주소 이력 정보를 등록한다.
rtnScs = createCrdnPayerAddrHstry(crdnPayerHstry);
if (!rtnScs) {
throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 대장의 납부자 ID, 주소 일련번호를 변경한다.
rtnScs = updateCrdnPayer(crdnPayerHstry);
if (!rtnScs) {
throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return rtnScs;
}
/** , .
* @param crdnPayerHstry
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean createHstryUpdateCrdnPayerAddr(CrdnPayerHstry crdnPayerHstry) {
boolean rtnScs = false; // DB 처리 결과
// 단속 납부자 주소 이력 정보를 등록한다.
rtnScs = createCrdnPayerAddrHstry(crdnPayerHstry);
if (!rtnScs) {
throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 대장의 납부자 ID, 주소 일련번호를 변경한다.
rtnScs = updateCrdnPayer(crdnPayerHstry); rtnScs = updateCrdnPayer(crdnPayerHstry);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속 납부자 이력 정보를 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback

@ -48,18 +48,7 @@ public interface CrdnReRegMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int insertCrdnReReg(Map<String, Object> params); int insertCrdnReReg(CrdnReReg crdnReReg);
/** .
* @param crdnReReg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insertCrdnReReg(CrdnReReg crdnReReg) {
return crdnReReg != null && insertCrdnReReg(params().set("crdnReReg", crdnReReg)) == 1;
}
/** . /** .
* @param params * @param params
@ -68,17 +57,6 @@ public interface CrdnReRegMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int deleteCrdnReReg(Map<String, ?> params); int deleteCrdnReReg(CrdnReReg crdnReReg);
/** .
* @param crdnReReg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean deleteCrdnReReg(CrdnReReg crdnReReg) {
return crdnReReg != null && deleteCrdnReReg(params().set("crdnReReg", crdnReReg)) == 1;
}
} }

@ -7,7 +7,6 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.foundation.component.AbstractMapper; import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;

@ -1,7 +1,6 @@
package cokr.xit.fims.excl.dao; package cokr.xit.fims.excl.dao;
import java.util.List; import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
@ -48,18 +47,7 @@ public interface OpnnDlbrMbrMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int insertOpnnDlbrMbr(Map<String, Object> params); int insertOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr);
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insertOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
return opnnDlbrMbr != null && insertOpnnDlbrMbr(params().set("opnnDlbrMbr", opnnDlbrMbr)) == 1;
}
/** . /** .
* @param params * @param params
@ -68,17 +56,6 @@ public interface OpnnDlbrMbrMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateOpnnDlbrMbr(Map<String, Object> params); int updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr);
/** .
* @param opnnDlbrMbr
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
return opnnDlbrMbr != null && updateOpnnDlbrMbr(params().set("opnnDlbrMbr", opnnDlbrMbr)) == 1;
}
} }

@ -47,7 +47,7 @@ public interface OpnnSbmsnMapper extends AbstractMapper {
} }
// 기본 정렬 // 기본 정렬
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("C.CRDN_ID, OS.OPNN_ID DESC"); req.setOrderBy("OS.OPNN_ID DESC");
} }
List<DataObject> opnnSbmsns = selectOpnnSbmsns(req); List<DataObject> opnnSbmsns = selectOpnnSbmsns(req);
@ -68,18 +68,7 @@ public interface OpnnSbmsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int insertOpnnSbmsn(Map<String, Object> params); int insertOpnnSbmsn(OpnnSbmsn opnnSbmsn);
/** .
* @param opnnSbmsn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insertOpnnSbmsn(OpnnSbmsn opnnSbmsn) {
return opnnSbmsn != null && insertOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1;
}
/** . /** .
* @param params * @param params
@ -88,18 +77,7 @@ public interface OpnnSbmsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateOpnnSbmsn(Map<String, Object> params); int updateOpnnSbmsn(OpnnSbmsn opnnSbmsn);
/** .
* @param opnnSbmsn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateOpnnSbmsn(OpnnSbmsn opnnSbmsn) {
return opnnSbmsn != null && updateOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1;
}
/** . /** .
* @param params * @param params
@ -108,18 +86,7 @@ public interface OpnnSbmsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateOpnnSbmsnAnswer(Map<String, Object> params); int updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn);
/** .
* @param opnnSbmsn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) {
return opnnSbmsn != null && updateOpnnSbmsnAnswer(params().set("opnnSbmsn", opnnSbmsn)) == 1;
}
/** . /** .
* @param params * @param params
@ -128,18 +95,7 @@ public interface OpnnSbmsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int deleteOpnnSbmsn(Map<String, ?> params); int deleteOpnnSbmsn(OpnnSbmsn opnnSbmsn);
/** .
* @param opnnSbmsn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean deleteOpnnSbmsn(OpnnSbmsn opnnSbmsn) {
return opnnSbmsn != null && deleteOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1;
}
/** . /** .
* @param params * @param params
@ -148,10 +104,6 @@ public interface OpnnSbmsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateCrdnOpnnSbmsnYn(Map<String, Object> params); int updateCrdnOpnnSbmsnYn(Crdn crdn);
default boolean updateCrdnOpnnSbmsnYn(Crdn crdn) {
return crdn != null && updateCrdnOpnnSbmsnYn(params().set("crdn", crdn)) == 1;
}
} }

@ -93,10 +93,6 @@ public class CrdnReRegBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String createCrdnReReg(CrdnReReg crdnReReg) { public String createCrdnReReg(CrdnReReg crdnReReg) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = ""; // 처리 결과 메시지
// 단속 ID로 단속(TB_CRDN) 정보 조회 // 단속 ID로 단속(TB_CRDN) 정보 조회
DataObject crdnInfo = crdnReRegMapper.selectCrdnInfo(crdnReReg.getBfrCrdnId()); DataObject crdnInfo = crdnReRegMapper.selectCrdnInfo(crdnReReg.getBfrCrdnId());
@ -122,12 +118,11 @@ public class CrdnReRegBean extends AbstractBean {
} }
} }
// 재등록 단속 정보(TB_CRDN)
Crdn crdn = new Crdn();
// 현재 날짜 구하기 // 현재 날짜 구하기
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
// 재등록 단속 정보(TB_CRDN)
Crdn crdn = new Crdn();
crdn.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드 crdn.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드
crdn.setTaskSeCd(crdnInfo.string("TASK_SE_CD")); // 업무 구분 코드 crdn.setTaskSeCd(crdnInfo.string("TASK_SE_CD")); // 업무 구분 코드
crdn.setCrdnRegSeCd("03"); // 단속 등록 구분 코드(FIM026) - 재 등록 crdn.setCrdnRegSeCd("03"); // 단속 등록 구분 코드(FIM026) - 재 등록
@ -171,7 +166,7 @@ public class CrdnReRegBean extends AbstractBean {
crdn.setTowngYn(crdnInfo.string("TOWNG_YN")); // 견인 여부 crdn.setTowngYn(crdnInfo.string("TOWNG_YN")); // 견인 여부
// 단속 대장 입력 // 단속 대장 입력
rtnScs = crdnBean.create(null, crdn, fileInfoList); boolean rtnScs = crdnBean.create(null, crdn, fileInfoList);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -180,14 +175,12 @@ public class CrdnReRegBean extends AbstractBean {
crdnReReg.setCrdnId(crdn.getCrdnId()); crdnReReg.setCrdnId(crdn.getCrdnId());
crdnReReg.setCrdnRegSeCd("03"); crdnReReg.setCrdnRegSeCd("03");
rtnScs = crdnReRegMapper.insertCrdnReReg(crdnReReg); int rtnNocs = crdnReRegMapper.insertCrdnReReg(crdnReReg);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("재부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("재부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
} }

@ -110,7 +110,6 @@ public class LevyExclBean extends AbstractBean {
*/ */
public String createLevyExcl(LevyExcl levyExcl) { public String createLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // 처리 결과
int rtnNocs = -1; // 처리 결과 건수 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
@ -195,7 +194,7 @@ public class LevyExclBean extends AbstractBean {
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setTaskDtlId(levyExcl.getLevyExclId()); crdnSttsHstry.setTaskDtlId(levyExcl.getLevyExclId());
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("부과제외 등록 작업 중 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 등록 작업 중 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -213,19 +212,13 @@ public class LevyExclBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String updateLevyExcl(LevyExcl levyExcl) { public String updateLevyExcl(LevyExcl levyExcl) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지
// 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다.
rtnNocs = levyExclMapper.updateLevyExcl(levyExcl); int rtnNocs = levyExclMapper.updateLevyExcl(levyExcl);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("부과제외 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** . /** .
@ -237,7 +230,6 @@ public class LevyExclBean extends AbstractBean {
*/ */
public String removeLevyExcl(LevyExcl levyExcl) { public String removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과
int rtnNocs = -1; // 처리 결과 건수 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
@ -263,7 +255,7 @@ public class LevyExclBean extends AbstractBean {
// 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다.
rtnNocs = levyExclMapper.deleteLevyExcl(levyExcl); rtnNocs = levyExclMapper.deleteLevyExcl(levyExcl);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("부과제외 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에 부과제외 이력삭제 및 부과제외삭제 이력을 등록 한다. // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에 부과제외 이력삭제 및 부과제외삭제 이력을 등록 한다.
@ -271,12 +263,12 @@ public class LevyExclBean extends AbstractBean {
if (levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 임시 if (levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 임시
throw new RuntimeException("부과취소는 부과제외 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과취소는 부과제외 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} else if (levyExclInfo.string("CRDN_STTS_CD").equals("81")) { } else if (levyExclInfo.string("CRDN_STTS_CD").equals("81")) {
deltCrdnSttsCd = "91"; // 비부과(서손) 삭제 deltCrdnSttsCd = "91"; // 비부과(서손) 삭제
} else if (("83,84").contains(levyExclInfo.string("CRDN_STTS_CD"))) { } else if (("83,84").contains(levyExclInfo.string("CRDN_STTS_CD"))) {
deltCrdnSttsCd = "93"; // 계고 삭제 deltCrdnSttsCd = "93"; // 계고 삭제
} }
rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(levyExclInfo.string("CRDN_ID"), levyExclInfo.string("CRDN_STTS_CD"), deltCrdnSttsCd, levyExcl.getDelRsn(), true); boolean rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(levyExclInfo.string("CRDN_ID"), levyExclInfo.string("CRDN_STTS_CD"), deltCrdnSttsCd, levyExcl.getDelRsn(), true);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("부과제외 삭제 작업 중 단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 삭제 작업 중 단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }

@ -84,16 +84,13 @@ public class OpnnDlbrMbrBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String createOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) { public String createOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
String rtnMsg = ""; // 처리 결과 메시지 // 의견제출 심의 회원 정보를 등록한다.
int rtnNocs = opnnDlbrMbrMapper.insertOpnnDlbrMbr(opnnDlbrMbr);
boolean rtnScs = opnnDlbrMbrMapper.insertOpnnDlbrMbr(opnnDlbrMbr); if (rtnNocs != 1) {
if (!rtnScs) { throw new RuntimeException("의견제출 심의의원 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("의견제출 심의의원 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** . /** .
@ -104,16 +101,13 @@ public class OpnnDlbrMbrBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) { public String updateOpnnDlbrMbr(OpnnDlbrMbr opnnDlbrMbr) {
String rtnMsg = ""; // 처리 결과 메시지 // 의견제출 심의 회원 정보를 수정한다.
int rtnNocs = opnnDlbrMbrMapper.updateOpnnDlbrMbr(opnnDlbrMbr);
boolean rtnScs = opnnDlbrMbrMapper.updateOpnnDlbrMbr(opnnDlbrMbr); if (rtnNocs != 1) {
if (!rtnScs) { throw new RuntimeException("의견제출 심의의원 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("의견제출 심의의원 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
} }

@ -119,7 +119,7 @@ public class OpnnSbmsnBean extends AbstractBean {
*/ */
public String createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) { public String createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
// 단속 ID로 단속, 의견제출 정보 조회 // 단속 ID로 단속, 의견제출 정보 조회
@ -140,8 +140,8 @@ public class OpnnSbmsnBean extends AbstractBean {
// 의견제출 대장을 등록 한다. // 의견제출 대장을 등록 한다.
opnnSbmsn.setOpnnSbmsnSttsCd("00"); // 의견 제출 상태 코드 00:접수 opnnSbmsn.setOpnnSbmsnSttsCd("00"); // 의견 제출 상태 코드 00:접수
rtnScs = opnnSbmsnMapper.insertOpnnSbmsn(opnnSbmsn); // 의견제출 등록 rtnNocs = opnnSbmsnMapper.insertOpnnSbmsn(opnnSbmsn); // 의견제출 등록
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("의견제출 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -163,7 +163,7 @@ public class OpnnSbmsnBean extends AbstractBean {
crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId());
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다.
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("의견제출 등록 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 등록 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -174,8 +174,8 @@ public class OpnnSbmsnBean extends AbstractBean {
crdn.setCrdnId(crdnOpnnSbmsnInfo.string("CRDN_ID")); crdn.setCrdnId(crdnOpnnSbmsnInfo.string("CRDN_ID"));
crdn.setOpnnSbmsnYn("Y"); crdn.setOpnnSbmsnYn("Y");
rtnScs = opnnSbmsnMapper.updateCrdnOpnnSbmsnYn(crdn); // 단속 대장 수정 rtnNocs = opnnSbmsnMapper.updateCrdnOpnnSbmsnYn(crdn); // 단속 대장 수정
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("의견제출 등록 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 등록 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -192,10 +192,6 @@ public class OpnnSbmsnBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) { public String updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = ""; // 처리 결과 메시지
// 의견제출 첨부파일 등록 // 의견제출 첨부파일 등록
if (fileInfoList != null && !fileInfoList.isEmpty()) { if (fileInfoList != null && !fileInfoList.isEmpty()) {
fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(OpnnSbmsn.INF_TYPE) fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(OpnnSbmsn.INF_TYPE)
@ -220,14 +216,12 @@ public class OpnnSbmsnBean extends AbstractBean {
} }
// 의견제출 대장을 수정 한다. // 의견제출 대장을 수정 한다.
rtnScs = opnnSbmsnMapper.updateOpnnSbmsn(opnnSbmsn); int rtnNocs = opnnSbmsnMapper.updateOpnnSbmsn(opnnSbmsn);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("의견제출 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** () . /** () .
@ -239,7 +233,7 @@ public class OpnnSbmsnBean extends AbstractBean {
*/ */
public String updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) { public String updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
// 의견제출(TB_OPNN_SBMSN) 자료 조회 // 의견제출(TB_OPNN_SBMSN) 자료 조회
@ -264,8 +258,8 @@ public class OpnnSbmsnBean extends AbstractBean {
} }
// 의견제출 답변을 수정 한다. // 의견제출 답변을 수정 한다.
rtnScs = opnnSbmsnMapper.updateOpnnSbmsnAnswer(opnnSbmsn); rtnNocs = opnnSbmsnMapper.updateOpnnSbmsnAnswer(opnnSbmsn);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("의견제출 심의 처리에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -327,15 +321,13 @@ public class OpnnSbmsnBean extends AbstractBean {
crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId());
crdnSttsHstry.setEtcCn("의견제출 심의 처리로 인한 단속상태 변경"); crdnSttsHstry.setEtcCn("의견제출 심의 처리로 인한 단속상태 변경");
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("의견제출 심의(답변) 처리 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의(답변) 처리 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** . /** .
@ -347,7 +339,7 @@ public class OpnnSbmsnBean extends AbstractBean {
*/ */
public String removeOpnnSbmsn(OpnnSbmsn opnnSbmsn) { public String removeOpnnSbmsn(OpnnSbmsn opnnSbmsn) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
// 의견제출(TB_OPNN_SBMSN) 정보를 조회한다. // 의견제출(TB_OPNN_SBMSN) 정보를 조회한다.
@ -369,8 +361,8 @@ public class OpnnSbmsnBean extends AbstractBean {
} }
// 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다. // 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다.
rtnScs = opnnSbmsnMapper.deleteOpnnSbmsn(opnnSbmsn); rtnNocs = opnnSbmsnMapper.deleteOpnnSbmsn(opnnSbmsn);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -401,7 +393,7 @@ public class OpnnSbmsnBean extends AbstractBean {
deltCrdnSttsCd = "92"; deltCrdnSttsCd = "92";
} }
rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deltCrdnSttsCd, opnnSbmsn.getDelRsn(), insertBfrSttsYN); boolean rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deltCrdnSttsCd, opnnSbmsn.getDelRsn(), insertBfrSttsYN);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -428,8 +420,8 @@ public class OpnnSbmsnBean extends AbstractBean {
crdn.setCrdnId(opnnSbmsnInfo.string("CRDN_ID")); crdn.setCrdnId(opnnSbmsnInfo.string("CRDN_ID"));
crdn.setOpnnSbmsnYn("N"); crdn.setOpnnSbmsnYn("N");
rtnScs = opnnSbmsnMapper.updateCrdnOpnnSbmsnYn(crdn); // 단속(TB_CRDN) 대장 수정 rtnNocs = opnnSbmsnMapper.updateCrdnOpnnSbmsnYn(crdn); // 단속(TB_CRDN) 대장 수정
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("의견제출 삭제 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 삭제 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }

@ -47,12 +47,12 @@ public class Excl01Controller extends ApplicationController {
public class METHOD_URL { public class METHOD_URL {
public static final String public static final String
levyExclusionMain = "/010/main.do" // 부과 제외 관리 메인 화면 levyExclusionMain = "/010/main.do" // 부과 제외 관리 메인 화면
, getLevyExclusionList = "/010/list.do" // 부과 제외 대장 목록 조회 , getLevyExclusionList = "/010/list.do" // 부과 제외 대장 목록 조회
, removeLevyExclusion = "/010/remove.do" // 부과 제외 대장 삭제 , removeLevyExclusion = "/010/remove.do" // 부과 제외 대장 삭제
, getLevyExclusionInfo = "/020/info.do" // 부과 제외 대장 조회 , getLevyExclusionInfo = "/020/info.do" // 부과 제외 대장 조회
, createLevyExclusion = "/020/create.do" // 부과 제외 대장 등록 , createLevyExclusion = "/020/create.do" // 부과 제외 대장 등록
, updateLevyExclusion = "/020/update.do" // 부과 제외 대장 수정 , updateLevyExclusion = "/020/update.do" // 부과 제외 대장 수정
; ;
} }
@ -282,7 +282,7 @@ public class Excl01Controller extends ApplicationController {
// 부과제외 삭제 호출 // 부과제외 삭제 호출
rtnMsg = levyExclService.removeLevyExcl(levyExcl); rtnMsg = levyExclService.removeLevyExcl(levyExcl);
if (rtnMsg.contains("[F]")) // 오류가 발생하였으면 종료.. if (rtnMsg.contains("[F]")) // 오류가 발생하였으면 종료..
break; break;
} }
} }

@ -59,18 +59,18 @@ public class Excl02Controller extends ApplicationController {
public class METHOD_URL { public class METHOD_URL {
public static final String public static final String
opinionSubmissionMain = "/010/main.do" // 의견제출 관리 메인 화면 opinionSubmissionMain = "/010/main.do" // 의견제출 관리 메인 화면
, getOpinionSubmissionList = "/010/list.do" // 의견제출 대장 목록 조회 , getOpinionSubmissionList = "/010/list.do" // 의견제출 대장 목록 조회
, makeDlbrDecsnFileFromHwpFormat = "/010/makeHwp.do" // 의견제출 심의의결서 HWP 저장 , makeDlbrDecsnFileFromHwpFormat = "/010/makeHwp.do" // 의견제출 심의의결서 HWP 저장
, removeOpinionSubmission = "/010/remove.do" // 의견제출 대장 삭제 , removeOpinionSubmission = "/010/remove.do" // 의견제출 대장 삭제
, getOpinionSubmissionInfo = "/020/info.do" // 의견제출 대장 조회 , getOpinionSubmissionInfo = "/020/info.do" // 의견제출 대장 조회
, createOpinionSubmission = "/020/create.do" // 의견제출 대장 등록 , createOpinionSubmission = "/020/create.do" // 의견제출 대장 등록
, updateOpinionSubmission = "/020/update.do" // 의견제출 대장 수정 , updateOpinionSubmission = "/020/update.do" // 의견제출 대장 수정
, getOpinionSubmissionAnswerInfo = "/030/info.do" // 의견제출 대장 심의 조회 , getOpinionSubmissionAnswerInfo = "/030/info.do" // 의견제출 대장 심의 조회
, updateOpinionSubmissionAnswer = "/030/update.do" // 의견제출 대장 심의 수정 , updateOpinionSubmissionAnswer = "/030/update.do" // 의견제출 대장 심의 수정
, getOpinionDeliberationMemberInfo = "/040/info.do" // 의견제출 심의 회원 조회 , getOpinionDeliberationMemberInfo = "/040/info.do" // 의견제출 심의 회원 조회
, createOpinionDeliberationMember = "/040/create.do" // 의견제출 심의 회원 등록 , createOpinionDeliberationMember = "/040/create.do" // 의견제출 심의 회원 등록
, updateOpinionDeliberationMember = "/040/update.do" // 의견제출 심의 회원 수정 , updateOpinionDeliberationMember = "/040/update.do" // 의견제출 심의 회원 수정
; ;
} }
@ -327,16 +327,16 @@ public class Excl02Controller extends ApplicationController {
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM019", "FIM030", "FIM031", "FIM033", "FIM054"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM019", "FIM030", "FIM031", "FIM033", "FIM054");
return mav return mav
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "excl02030") // jsp pageName .addObject("pageName", "excl02030") // jsp pageName
.addObject("infoPrefix", "opnnSbmsn") // prefix .addObject("infoPrefix", "opnnSbmsn") // prefix
.addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl .addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD) .addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
.addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD) .addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD)
.addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 상태 코드(OPNN_SBMSN_STTS_CD) .addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 상태 코드(OPNN_SBMSN_STTS_CD)
.addObject("FIM033List", commonCodes.get("FIM033")) // 의견 제출 구분 코드(OPNN_SBMSN_SE_CD) .addObject("FIM033List", commonCodes.get("FIM033")) // 의견 제출 구분 코드(OPNN_SBMSN_SE_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("opnnSbmsnInfo", json ? info : toJson(info)) .addObject("opnnSbmsnInfo", json ? info : toJson(info))
; ;
} }
@ -450,11 +450,11 @@ public class Excl02Controller extends ApplicationController {
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl02040-info"); ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl02040-info");
return mav return mav
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "excl02040") // jsp pageName .addObject("pageName", "excl02040") // jsp pageName
.addObject("infoPrefix", "opnnDlbrMbr") // prefix .addObject("infoPrefix", "opnnDlbrMbr") // prefix
.addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl .addObject("infoPrefixUrl", "/excl/excl02") // prefixUrl
.addObject("opnnDlbrMbrInfo", json ? info : toJson(info)) .addObject("opnnDlbrMbrInfo", json ? info : toJson(info))
; ;
} }

@ -57,4 +57,9 @@ public class Rduct extends AbstractEntity {
*/ */
private String delRsn; private String delRsn;
/**
* IDs
*/
private String[] rductIds;
} }

@ -63,13 +63,5 @@ public interface RductService {
*/ */
String removeRduct(Rduct rduct); String removeRduct(Rduct rduct);
/** .
* @param rduct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String removeRducts(LevyQuery req);
} }

@ -68,33 +68,4 @@ public class RductServiceBean extends AbstractServiceBean implements RductServic
return rductBean.removeRduct(rduct); return rductBean.removeRduct(rduct);
} }
@Override
public String removeRducts(LevyQuery req) {
// 변수 선언
String rtnMsg = ""; // 처리 결과 메시지
// 감경 IDs 건수를 확인하여 1건이하면.. 종료
if (req.getRductIds().length < 1 ) {
rtnMsg = "작업 중 선택 자료가 존재하지 않습니다.";
return rtnMsg;
}
// 감경 IDs 만큼 반복..
for (int iLoop = 0; iLoop < req.getRductIds().length; iLoop++) {
Rduct rduct = new Rduct();
rduct.setRductId(req.getRductIds()[iLoop]); // 감경 ID
rduct.setDelRsn(req.getDelRsn()); // 삭제 사유
// 과태료 감경 삭제 호출
rtnMsg = rductBean.removeRduct(rduct);
// 오류가 발생하였으면 종료..
if (rtnMsg.contains("[F]")) {
return rtnMsg;
}
}
return rtnMsg;
}
} }

@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -88,7 +89,7 @@ public class Levy01Controller extends ApplicationController {
.addObject("infoPrefix", "rductLevyTrgt") // prefix .addObject("infoPrefix", "rductLevyTrgt") // prefix
.addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl .addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
; ;
} }
@ -171,7 +172,7 @@ public class Levy01Controller extends ApplicationController {
*/ */
@Task({"PVS","BPV"}) @Task({"PVS","BPV"})
@RequestMapping(name="사전 감경부과 정보 조회", value=METHOD_URL.getReductionLevyTargetInfo) @RequestMapping(name="사전 감경부과 정보 조회", value=METHOD_URL.getReductionLevyTargetInfo)
public ModelAndView getReductionLevyTargetInfo(LevyQuery req) { public ModelAndView getReductionLevyTargetInfo(HttpServletRequest hReq, LevyQuery req) {
// 감경 부과일자 // 감경 부과일자
DataObject info = taskBean.getAdvntceYmdInfo(new CmmnQuery().setSggCd(req.getSggCd()) DataObject info = taskBean.getAdvntceYmdInfo(new CmmnQuery().setSggCd(req.getSggCd())
.setTaskSeCd(req.getTaskSeCd())); .setTaskSeCd(req.getTaskSeCd()));
@ -185,11 +186,12 @@ public class Levy01Controller extends ApplicationController {
info.put("GRAMT_ADVNTCE_AMT", req.getGramtAdvntceAmt()); info.put("GRAMT_ADVNTCE_AMT", req.getGramtAdvntceAmt());
return mav return mav
.addObject("pageName", "levy01020") .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("infoPrefix", "rductLevyTrgt") // prefix .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl .addObject("pageName", "levy01020") // jsp pageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("infoPrefix", "rductLevyTrgt") // prefix
.addObject("mainQuery", json ? req : toJson(req)) // 검색 조건 .addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl
.addObject("mainQuery", json ? req : toJson(req)) // 검색 조건
.addObject("rductLevyTrgtInfo", json ? info : toJson(info)) .addObject("rductLevyTrgtInfo", json ? info : toJson(info))
; ;
} }
@ -235,7 +237,7 @@ public class Levy01Controller extends ApplicationController {
.addObject("infoPrefix", "levy") // prefix .addObject("infoPrefix", "levy") // prefix
.addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl .addObject("infoPrefixUrl", "/levy/levy01") // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM010List", commonCodes.get("FIM010")) // 단속 상태 코드(CRDN_STTS_CD) .addObject("FIM010List", commonCodes.get("FIM010")) // 단속 상태 코드(CRDN_STTS_CD)
.addObject("FIM046List", commonCodes.get("FIM046")) // 감경 구분 코드(RDUCT_SE_CD) .addObject("FIM046List", commonCodes.get("FIM046")) // 감경 구분 코드(RDUCT_SE_CD)
; ;

@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -47,13 +48,13 @@ public class Levy02Controller extends ApplicationController {
public class METHOD_URL { public class METHOD_URL {
public static final String public static final String
reductionMain = "/010/main.do" // 과태료 감경 관리 메인 화면 reductionMain = "/010/main.do" // 과태료 감경 관리 메인 화면
, getRductList = "/010/list.do" // 과태료 감경 대장 목록 조회 , getRductList = "/010/list.do" // 과태료 감경 대장 목록 조회
, removeRduct = "/010/remove.do" // 과태료 감경 대장 삭제 , removeRduct = "/010/remove.do" // 과태료 감경 대장 삭제
, removeRductList = "/010/removes.do" // 과태료 감경 대장 목록 삭제 , removeRductList = "/010/removes.do" // 과태료 감경 대장 목록 삭제
, getRductInfo = "/020/info.do" // 과태료 감경 정보 조회 , getRductInfo = "/020/info.do" // 과태료 감경 정보 조회
, createRduct = "/020/create.do" // 과태료 감경 대장 등럭 , createRduct = "/020/create.do" // 과태료 감경 대장 등럭
, updateRduct = "/020/update.do" // 과태료 감경 대장 수정 , updateRduct = "/020/update.do" // 과태료 감경 대장 수정
; ;
} }
@ -81,11 +82,12 @@ public class Levy02Controller extends ApplicationController {
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM010", "FIM019", "FIM054"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM010", "FIM019", "FIM054");
return mav.addObject("pageName", "levy02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix return mav.addObject("pageName", "levy02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "rduct") // prefix .addObject("infoPrefix", "rduct") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("infoPrefixUrl", "/levy/levy02") // prefixUrl
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD) .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
; ;
} }
@ -168,8 +170,7 @@ public class Levy02Controller extends ApplicationController {
*/ */
@Task @Task
@RequestMapping(name="과태료 감경 정보 조회", value=METHOD_URL.getRductInfo) @RequestMapping(name="과태료 감경 정보 조회", value=METHOD_URL.getRductInfo)
public ModelAndView getRductInfo(LevyQuery req) { public ModelAndView getRductInfo(HttpServletRequest hReq, LevyQuery req) {
//
DataObject info = rductService.getRductInfo(req); DataObject info = rductService.getRductInfo(req);
// 등록을 호출하였지만 등록된 감경 ID가 있는지 확인. // 등록을 호출하였지만 등록된 감경 ID가 있는지 확인.
@ -183,16 +184,18 @@ public class Levy02Controller extends ApplicationController {
return mav.addObject("rtnMsg", "납부자 정보가 없습니다."); return mav.addObject("rtnMsg", "납부자 정보가 없습니다.");
} else { } else {
boolean json = jsonResponse(); boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/levy/levy02020-info"); ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/levy/levy02020-info");
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM019"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM019");
return mav return mav
.addObject("pageName", "levy02020") .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD) .addObject("pageName", "levy02020") // jsp pageName
.addObject("infoPrefix", "rduct") // prefix
.addObject("infoPrefixUrl", "/levy/levy02") // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
.addObject("rductInfo", json ? info : toJson(info)) .addObject("rductInfo", json ? info : toJson(info))
; ;
} }
@ -258,33 +261,22 @@ public class Levy02Controller extends ApplicationController {
@RequestMapping(name="과태료 감경 대장 삭제", value=METHOD_URL.removeRduct) @RequestMapping(name="과태료 감경 대장 삭제", value=METHOD_URL.removeRduct)
public ModelAndView removeRduct(Rduct rduct) { public ModelAndView removeRduct(Rduct rduct) {
boolean saved = false; boolean saved = false;
String rtnMsg = rductService.removeRduct(rduct); String rtnMsg = "";
if (rtnMsg.contains("[S]")) { if (rduct.getRductIds() == null || rduct.getRductIds().length < 1) {
saved = true; rtnMsg = rductService.removeRduct(rduct);
} else { } else {
saved = false; // 부과제외 IDs 만큼 반복..
for (int iLoop = 0; iLoop < rduct.getRductIds().length; iLoop++) {
rduct.setRductId(rduct.getRductIds()[iLoop]); // 감경 ID 설정
// 부과제외 삭제 호출
rtnMsg = rductService.removeRduct(rduct);
if (rtnMsg.contains("[F]")) // 오류가 발생하였으면 종료..
break;
}
} }
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("rtnMsg", rtnMsg);
}
/** .
* @param rductIDs IDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@Task
@RequestMapping(name="과태료 감경 대장 목록 삭제", value=METHOD_URL.removeRductList)
public ModelAndView removeRductList(LevyQuery req) {
boolean saved = false;
String rtnMsg = rductService.removeRducts(req);
if (rtnMsg.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;
} else { } else {

@ -83,11 +83,6 @@ public class Payer extends AbstractEntity {
*/ */
private String addrInptSeCd; private String addrInptSeCd;
/**
*
*/
private String addrInqYmd;
/** /**
* *
*/ */

@ -31,10 +31,14 @@ public class PayerQuery extends QueryRequest {
private String addrSn; private String addrSn;
/** 이력 일련번호 */ /** 이력 일련번호 */
private String hstrySn; private String hstrySn;
/** 도로명 코드 */
private String roadNmCd;
/** 주소 */
private String addr;
/** 상세 주소 */
private String dtlAddr;
/** 단속 ID */ /** 단속 ID */
private String crdnId; private String crdnId;
/** 삭제 여부 */
private String delYn;
/** 호출 용도 */ /** 호출 용도 */
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
@ -147,27 +151,58 @@ public class PayerQuery extends QueryRequest {
public void setRtpyrNo(String rtpyrNo) { public void setRtpyrNo(String rtpyrNo) {
this.rtpyrNo = rtpyrNo; this.rtpyrNo = rtpyrNo;
} }
/*
public PayerQuery setRtpyrNo(String rtpyrNo) { /** .
this.rtpyrNo = rtpyrNo; * @return
return this; */
public String getRoadNmCd() {
return roadNmCd;
} }
*/
public String getCrdnId() { /** .
return ifEmpty(crdnId, () -> null); * @param roadNmCd
* @return PayerQuery
*/
public void setRoadNmCd(String roadNmCd) {
this.roadNmCd = roadNmCd;
} }
public <T extends PayerQuery> T setCrdnId(String crdnId) { /** .
this.crdnId = crdnId; * @return
return self(); */
public String getAddr() {
return addr;
}
/** .
* @param addr
* @return PayerQuery
*/
public void setAddr(String addr) {
this.addr = addr;
}
/** .
* @return
*/
public String getDtlAddr() {
return dtlAddr;
}
/** .
* @param dtlAddr
* @return PayerQuery
*/
public void setDtlAddr(String dtlAddr) {
this.dtlAddr = dtlAddr;
} }
public String getDelYn() { public String getCrdnId() {
return ifEmpty(delYn, () -> null); return ifEmpty(crdnId, () -> null);
} }
public <T extends PayerQuery> T setDelYn(String delYn) { public <T extends PayerQuery> T setCrdnId(String crdnId) {
this.delYn = delYn; this.crdnId = crdnId;
return self(); return self();
} }

@ -33,18 +33,7 @@ public interface PayerAddrMapper extends AbstractMapper {
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectPayerAddrs(PayerQuery req); List<Payer> selectPayerAddrs(PayerQuery req);
default DataObject selectPayerAddrsInfo(PayerQuery req) {
// 기본 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("PA.ADDR_SN DESC");
}
List<DataObject> payerAddrs = selectPayerAddrs(req);
return !payerAddrs.isEmpty() ? payerAddrs.get(0) : null;
}
/** . /** .
* @param params * @param params
@ -86,4 +75,10 @@ public interface PayerAddrMapper extends AbstractMapper {
return payer != null && updatePayerAddr(params().set("payerAddr", payer)) == 1; return payer != null && updatePayerAddr(params().set("payerAddr", payer)) == 1;
} }
/** .
* @param req
* @return
*/
List<DataObject> selectPayerAddrHstrys(PayerQuery req);
} }

@ -98,12 +98,6 @@ public interface PayerMapper extends AbstractMapper {
return !crdnPayers.isEmpty() ? crdnPayers.get(0) : null; return !crdnPayers.isEmpty() ? crdnPayers.get(0) : null;
} }
/** .
* @param req
* @return
*/
List<DataObject> selectPayerHstrys(PayerQuery req);
/** . /** .
* @param crdnId ID * @param crdnId ID
* @return , * @return ,
@ -114,4 +108,10 @@ public interface PayerMapper extends AbstractMapper {
return selectCrdn(new PayerQuery().setCrdnId(crdnId)); return selectCrdn(new PayerQuery().setCrdnId(crdnId));
} }
/** .
* @param req
* @return
*/
List<DataObject> selectPayerHstrys(PayerQuery req);
} }

@ -87,10 +87,16 @@ public interface PayerService {
*/ */
String createCrdnPayer(Payer payer); String createCrdnPayer(Payer payer);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> getPayerHstrys(PayerQuery req); List<DataObject> getPayerHstrys(PayerQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getPayerAddrHstrys(PayerQuery req);
} }

@ -72,13 +72,63 @@ public class PayerBean extends AbstractBean {
} }
public Payer getPayer(PayerQuery req) { public Payer getPayer(PayerQuery req) {
req.setOrderBy("P.RTPYR_ID DESC, PA.ADDR_SN DESC"); if (req.getOrderBy() == null) {
req.setOrderBy("P.RTPYR_ID DESC");
}
List<Payer> payers = getPayers(req); List<Payer> payers = getPayers(req);
return !payers.isEmpty() ? payers.get(0) : null;
}
/** .
* @param req
* @return
*/
public List<Payer> getPayerAddrs(PayerQuery req) {
return payerAddrMapper.selectPayerAddrs(req);
}
public Payer getPayerAddr(PayerQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("PA.ADDR_SN DESC");
}
List<Payer> payers = getPayerAddrs(req);
return !payers.isEmpty() ? payers.get(0) : null; return !payers.isEmpty() ? payers.get(0) : null;
} }
public Payer getPayerAddrInfo(Payer payer) {
// PayerQuery
PayerQuery req = new PayerQuery();
req.setRtpyrSeCd(payer.getRtpyrSeCd()); // 납부자 구분 코드
req.setRtpyrNo(payer.getRtpyrNo()); // 납부자 번호
req.setRoadNmCd(payer.getRoadNmCd()); // 도로명 코드
req.setAddr(payer.getAddr()); // 주소
req.setDtlAddr(payer.getDtlAddr()); // 상세 주소
// 납부자 정보 조회
req.setOrderBy("P.RTPYR_ID DESC");
List<Payer> payers = getPayers(req);
// 납부자 ID 설정
payer.setRtpyrId(payers.get(0).getRtpyrId());
// 납부자 정보 및 주소 정보를 조회
req.setRtpyrId(payer.getRtpyrId());
req.setOrderBy("PA.ADDR_SN DESC");
payers = getPayerAddrs(req);
if (payers.get(0).getAddrSn().equals("")) {
createPayerAddr(payer); // 주소 신규 등록
} else {
payer.setAddrSn(payers.get(0).getAddrSn()); // 주소 일련번호 설정
}
return payer;
}
/** . /** .
* @param payer * @param payer
* @return * @return
@ -165,7 +215,6 @@ public class PayerBean extends AbstractBean {
payer.setVhrno(basicInfo.getVhrno()); payer.setVhrno(basicInfo.getVhrno());
payer.setRtpyrInptSeCd("02"); payer.setRtpyrInptSeCd("02");
payer.setAddrInptSeCd("02"); payer.setAddrInptSeCd("02");
payer.setRtpyrSeCd( payer.setRtpyrSeCd(
Map.of( Map.of(
"11", "01", "11", "01",
@ -204,24 +253,9 @@ public class PayerBean extends AbstractBean {
payer.setDtlAddr(basicInfo.getUse_strnghld_adres_nm()); payer.setDtlAddr(basicInfo.getUse_strnghld_adres_nm());
payer.setWholAddr(basicInfo.getRoad_nm_adres() + ", " + basicInfo.getUse_strnghld_adres_nm()); payer.setWholAddr(basicInfo.getRoad_nm_adres() + ", " + basicInfo.getUse_strnghld_adres_nm());
// 납부자 조회 Payer result = create(payer) ? payer : getPayerAddrInfo(payer);
PayerQuery req = new PayerQuery();
req.setRtpyrSeCd(payer.getRtpyrSeCd());
req.setRtpyrNo(payer.getRtpyrNo());
req.setRtpyrId(payer.getRtpyrId());
Payer result = create(payer) ? payer : getPayer(req); if (result != null)
// 등록된 최종 주소를 확인하여 주소+상세주소가 다르다면 주소를 신규 등록한다.
if (result.getAddr().equals(basicInfo.getRoad_nm_adres()) && result.getDtlAddr().equals(basicInfo.getUse_strnghld_adres_nm())) {
// 납부자 주소의 최중 수정일자를 수정
updatePayerAddr(result);
} else {
// 납부자 주소를 신규 등록
createPayerAddr(result);
}
if (result != null)
result.setVehicleInfo(basicInfo); result.setVehicleInfo(basicInfo);
return result; return result;
@ -253,7 +287,6 @@ public class PayerBean extends AbstractBean {
public String createCrdnPayer(Payer payer) { public String createCrdnPayer(Payer payer) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 boolean rtnScs = false; // DB 처리 결과
String rtnMsg = ""; // 처리 결과 메시지
String strTemp = ""; String strTemp = "";
// 지하 구분 코드 // 지하 구분 코드
@ -267,14 +300,11 @@ public class PayerBean extends AbstractBean {
payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr()); payer.setWholAddr(payer.getAddr() + ", " + payer.getDtlAddr());
} }
// 단속 ID로 단속 정보 조회 // 단속 ID로 단속, 납부자, 주소 정보 조회
DataObject crdnInfo = payerMapper.selectCrdnInfo(payer.getCrdnId()); DataObject crdnPayerAddrInfo = payerMapper.selectCrdnInfo(payer.getCrdnId());
// 납부자 ID로 납부자 정보 조회
Payer payerInfo = getPayer(new PayerQuery().setRtpyrId(payer.getRtpyrId())
.setAddrSn(payer.getAddrSn()));
if (payer.getRtpyrNo().equals(payerInfo.getRtpyrNo())) { // 주민등록번호가 동일하다면.. // 주민등록번호가 동일하다면..
if (crdnPayerAddrInfo.string("RTPYR_NO").equals(payer.getRtpyrNo())) {
// 납부자 대장(TB_PAYER)에 납부자 정보를 수정한다. // 납부자 대장(TB_PAYER)에 납부자 정보를 수정한다.
rtnScs = update(payer); rtnScs = update(payer);
if (!rtnScs) { if (!rtnScs) {
@ -282,57 +312,50 @@ public class PayerBean extends AbstractBean {
} }
// 주소가 변경되었는지 확인 // 주소가 변경되었는지 확인
if (payerInfo.getZip().equals(payer.getZip()) if (crdnPayerAddrInfo.string("ZIP").equals(payer.getZip())
&& payerInfo.getAddr().equals(payer.getAddr()) && crdnPayerAddrInfo.string("ADDR").equals(payer.getAddr())
&& payerInfo.getDtlAddr().equals(payer.getDtlAddr())) { && crdnPayerAddrInfo.string("DTL_ADDR").equals(payer.getDtlAddr())
payer.setAddrSn(payerInfo.getAddrSn()); // 주소 일련번호 && crdnPayerAddrInfo.string("ROAD_NM_CD").equals(payer.getRoadNmCd())) {
rtnScs = updatePayerAddr(payer); // 납부자 주소 수정일자만 수정 // 주소 일련번호 설정
payer.setAddrSn(crdnPayerAddrInfo.string("ADDR_SN"));
} else { } else {
rtnScs = createPayerAddr(payer); // 납부자 주소 등록 // 납부자 주소 등록
rtnScs = createPayerAddr(payer);
if (!rtnScs) {
throw new RuntimeException("납부자 등록 실행중 주소 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
CrdnPayerHstry crdnPayerAddrHstry = new CrdnPayerHstry(); CrdnPayerHstry crdnPayerAddrHstry = new CrdnPayerHstry();
crdnPayerAddrHstry.setCrdnId(payer.getCrdnId()); crdnPayerAddrHstry.setCrdnId(payer.getCrdnId());
crdnPayerAddrHstry.setRtpyrId(payer.getRtpyrId()); crdnPayerAddrHstry.setRtpyrId(payer.getRtpyrId());
crdnPayerAddrHstry.setAddrSn(payer.getAddrSn()); crdnPayerAddrHstry.setAddrSn(payer.getAddrSn());
crdnPayerHstryBean.createCrdnPayerAddrHstry(crdnPayerAddrHstry); // 납부자 주소 변경 이력 생성
rtnScs = crdnPayerHstryBean.createHstryUpdateCrdnPayerAddr(crdnPayerAddrHstry);
if (!rtnScs) {
throw new RuntimeException("납부자 등록 실행중 단속 대장에 주소 일련번호 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
} }
// 단속 대장의 납부자 ID 및 주소 일련번호를 수정한다.
CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry();
crdnPayerHstry.setCrdnId(payer.getCrdnId());
crdnPayerHstry.setRtpyrId(payer.getRtpyrId());
crdnPayerHstry.setAddrSn(payer.getAddrSn());
rtnScs = crdnPayerHstryBean.updateCrdnPayer(crdnPayerHstry);
if (!rtnScs) {
throw new RuntimeException("납부자 등록 실행중 단속 대장에 납부자ID 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
} else { } else {
// 납부자 대장(TB_PAYER)에 납부자 정보를 신규 등록한다. Payer result = create(payer) ? payer : getPayerAddrInfo(payer);
rtnScs = create(payer);
if (!rtnScs) {
throw new RuntimeException("납부자 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 대장의 납부자ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다. // 단속 대장의 납부자ID 수정 및 단속 납부자 이력(TB_CRDN_PAYER_HSTRY) 대장에 등록한다.
CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry(); CrdnPayerHstry crdnPayerHstry = new CrdnPayerHstry();
crdnPayerHstry.setCrdnId(payer.getCrdnId()); crdnPayerHstry.setCrdnId(payer.getCrdnId());
crdnPayerHstry.setRtpyrId(payer.getRtpyrId()); crdnPayerHstry.setRtpyrId(result.getRtpyrId());
crdnPayerHstry.setAddrSn(payer.getAddrSn()); crdnPayerHstry.setAddrSn(result.getAddrSn());
rtnScs = crdnPayerHstryBean.createHstryUpdateCrdnPayer(crdnPayerHstry); rtnScs = crdnPayerHstryBean.createHstryUpdateCrdnPayer(crdnPayerHstry);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("납부자 등록 실행중 단속 대장에 납부자ID 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("납부자 등록 실행중 단속 대장에 납부자 ID 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
if (crdnInfo.number("CRDN_STTS_CD").intValue() < 21) { // 납부자 등록 완료 if (crdnPayerAddrInfo.number("CRDN_STTS_CD").intValue() < 21) { // 납부자 등록 완료
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID")); crdnSttsHstry.setCrdnId(crdnPayerAddrInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsCd(crdnPayerAddrInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT")); crdnSttsHstry.setBfrSttsChgDt(crdnPayerAddrInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd("21"); crdnSttsHstry.setCrdnSttsCd("21");
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
@ -341,21 +364,31 @@ public class PayerBean extends AbstractBean {
} }
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** . /** .
* @param req * @param req
* @return * @return
*/ */
public List<DataObject> getPayerHstrys(PayerQuery req) { public List<DataObject> getPayerHstrys(PayerQuery req) {
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("PH.REG_DT DESC"); req.setOrderBy("CPH.REG_DT DESC");
} }
return payerMapper.selectPayerHstrys(req); return payerMapper.selectPayerHstrys(req);
} }
/** .
* @param req
* @return
*/
public List<DataObject> getPayerAddrHstrys(PayerQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("CPAH.REG_DT DESC");
}
return payerAddrMapper.selectPayerAddrHstrys(req);
}
} }

@ -89,4 +89,9 @@ public class PayerServiceBean extends AbstractServiceBean implements PayerServic
return payerBean.getPayerHstrys(req); return payerBean.getPayerHstrys(req);
} }
@Override
public List<DataObject> getPayerAddrHstrys(PayerQuery req) {
return payerBean.getPayerAddrHstrys(req);
}
} }

@ -295,17 +295,18 @@ public class Sprt02Controller extends ApplicationController {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 조회 // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 조회
CrdnSttsHstryQuery crdnSttsHstryQuery = new CrdnSttsHstryQuery(); CrdnSttsHstryQuery crdnSttsHstryQuery = new CrdnSttsHstryQuery();
crdnSttsHstryQuery.setCrdnId(req.getCrdnId()); crdnSttsHstryQuery.setCrdnId(req.getCrdnId()); // 단속 ID
crdnSttsHstryQuery.setOrderBy("CSH.REG_DT DESC, CSH.STTS_HSTRY_ID DESC"); // 정렬 crdnSttsHstryQuery.setOrderBy("CSH.STTS_HSTRY_ID DESC"); // 정렬
List<?> crdnSttsHstry = crdnSttsHstryService.getCrdnSttsHstrys(crdnSttsHstryQuery); List<?> crdnSttsHstry = crdnSttsHstryService.getCrdnSttsHstrys(crdnSttsHstryQuery);
// 납부자 변경 이력(TB_PAYER_HSTRY) 조회 // 납부자 변경 이력(TB_PAYER_HSTRY) 조회
PayerQuery payerQuery = new PayerQuery(); PayerQuery payerQuery = new PayerQuery();
payerQuery.setRtpyrId(req.getRtpyrId()); payerQuery.setCrdnId(req.getCrdnId()); // 단속 ID
payerQuery.setOrderBy("PH.REG_DT DESC"); // 정렬 payerQuery.setRtpyrId(req.getRtpyrId()); // 납부자 ID
payerQuery.setOrderBy("CPAH.REG_DT DESC"); // 정렬
List<?> payerHstry = payerService.getPayerHstrys(payerQuery); List<?> payerAddrHstry = payerService.getPayerAddrHstrys(payerQuery);
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -313,10 +314,10 @@ public class Sprt02Controller extends ApplicationController {
mav.addObject("pageNameMain", "sprt02010") mav.addObject("pageNameMain", "sprt02010")
.addObject("pageName", "sprt02050") .addObject("pageName", "sprt02050")
.addObject("rduct", json ? rduct : toJson(rduct)) // 과태료 감경 정보 .addObject("rduct", json ? rduct : toJson(rduct)) // 과태료 감경 정보
.addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외 정보 .addObject("levyExcl", json ? levyExcl : toJson(levyExcl)) // 부과 제외 정보
.addObject("crdnSttsHstry", json ? crdnSttsHstry : toJson(crdnSttsHstry)) // 단속 상태 이력 .addObject("crdnSttsHstry", json ? crdnSttsHstry : toJson(crdnSttsHstry)) // 단속 상태 이력
.addObject("payerHstry", json ? payerHstry : toJson(payerHstry)) // 납부자 변경 이력 .addObject("payerAddrHstry", json ? payerAddrHstry : toJson(payerAddrHstry)) // 납부자 주소 변경 이력
; ;
// 재조회로 호출되었다면.. // 재조회로 호출되었다면..

@ -183,11 +183,14 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<insert id="insertCrdnReReg" parameterType="map">/* 단속 재등록 등록(crdnReRegMapper.insertCrdnReReg) */ <insert id="insertCrdnReReg" parameterType="cokr.xit.fims.excl.CrdnReReg">/* 단속 재등록 등록(crdnReRegMapper.insertCrdnReReg) */
<selectKey resultType="string" keyProperty="crdnReReg.reRegId" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="reRegId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(#{crdnReReg.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RE_REG_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID <include refid="numbering.keyBySggAndYear">
FROM TB_CRDN_RE_REG <property name="TABLE_NAME" value="TB_CRDN_RE_REG" />
WHERE RE_REG_ID LIKE CONCAT(#{crdnReReg.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%') <property name="TABLE_KEY" value="RE_REG_ID" />
<property name="sggCd" value="#{sggCd}" />
<property name="pad" value="20" />
</include>
</selectKey> </selectKey>
INSERT INSERT
INTO TB_CRDN_RE_REG ( INTO TB_CRDN_RE_REG (
@ -202,25 +205,25 @@
, RGTR <!-- 등록자 --> , RGTR <!-- 등록자 -->
) )
VALUES ( VALUES (
#{crdnReReg.reRegId} <!-- 재등록 ID --> #{reRegId} <!-- 재등록 ID -->
, #{crdnReReg.bfrCrdnId} <!-- 이전 단속 ID --> , #{bfrCrdnId} <!-- 이전 단속 ID -->
, #{crdnReReg.crdnId} <!-- 단속 ID --> , #{crdnId} <!-- 단속 ID -->
, <include refid="utility.today" /> <!-- 재 등록 일자 --> , <include refid="utility.today" /> <!-- 재 등록 일자 -->
, #{crdnReReg.crdnRegSeCd} <!-- 단속 등록 구분 코드 --> , #{crdnRegSeCd} <!-- 단속 등록 구분 코드 -->
, #{crdnReReg.etcCn} <!-- 기타 내용 --> , #{etcCn} <!-- 기타 내용 -->
, 'N' <!-- 삭제 여부 --> , 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 --> , <include refid="utility.now" /> <!-- 등록 일시 -->
, #{crdnReReg.createdBy} <!-- 등록자 --> , #{createdBy} <!-- 등록자 -->
) )
</insert> </insert>
<update id="deleteCrdnReReg" parameterType="map">/* 단속 재등록 삭제(crdnReRegMapper.deleteCrdnReReg) */ <update id="deleteCrdnReReg" parameterType="cokr.xit.fims.excl.CrdnReReg">/* 단속 재등록 삭제(crdnReRegMapper.deleteCrdnReReg) */
UPDATE TB_CRDN_RE_REG UPDATE TB_CRDN_RE_REG
SET DEL_YN = 'Y' SET DEL_YN = 'Y'
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 --> , DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{crdnReReg.modifiedBy} <!-- 삭제자 --> , DLTR = #{modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{crdnReReg.delRsn} <!-- 삭제 사유 --> , DEL_RSN = #{delRsn} <!-- 삭제 사유 -->
WHERE RE_REG_ID = #{crdnReReg.reRegId} <!-- 재등록 ID --> WHERE RE_REG_ID = #{reRegId} <!-- 재등록 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>

@ -99,10 +99,13 @@
AND T.TASK_SE_CD = #{taskSeCd} AND T.TASK_SE_CD = #{taskSeCd}
</select> </select>
<insert id="insertOpnnDlbrMbr" parameterType="map">/* 의견제출 심의 회원 등록(opnnDlbrMbrMapper.insertOpnnDlbrMbr) */ <insert id="insertOpnnDlbrMbr" parameterType="cokr.xit.fims.excl.OpnnDlbrMbr">/* 의견제출 심의 회원 등록(opnnDlbrMbrMapper.insertOpnnDlbrMbr) */
<selectKey resultType="string" keyProperty="opnnDlbrMbr.mngId" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="mngId" keyColumn="NEW_ID" order="BEFORE">
SELECT LPAD(CAST(IFNULL(MAX(MNG_ID) + 1, 1) AS INT), 3, '0') AS NEW_ID <include refid="numbering.key">
FROM TB_OPNN_DLBR_MBR <property name="TABLE_NAME" value="TB_OPNN_DLBR_MBR" />
<property name="TABLE_KEY" value="MNG_ID" />
<property name="pad" value="3" />
</include>
</selectKey> </selectKey>
INSERT INSERT
INTO TB_OPNN_DLBR_MBR ( INTO TB_OPNN_DLBR_MBR (
@ -129,49 +132,49 @@
, MDFR <!-- 수정자 --> , MDFR <!-- 수정자 -->
) )
VALUES ( VALUES (
#{opnnDlbrMbr.mngId} <!-- 관리 ID --> #{mngId} <!-- 관리 ID -->
, #{opnnDlbrMbr.sggCd} <!-- 시군구 코드 --> , #{sggCd} <!-- 시군구 코드 -->
, #{opnnDlbrMbr.taskSeCd} <!-- 업무 구분 코드 --> , #{taskSeCd} <!-- 업무 구분 코드 -->
, #{opnnDlbrMbr.dlbrMbrJbgd1} <!-- 심의 회원 직급1 --> , #{dlbrMbrJbgd1} <!-- 심의 회원 직급1 -->
, #{opnnDlbrMbr.dlbrMbrNm1} <!-- 심의 회원 명1 --> , #{dlbrMbrNm1} <!-- 심의 회원 명1 -->
, #{opnnDlbrMbr.dlbrMbrJbgd2} <!-- 심의 회원 직급2 --> , #{dlbrMbrJbgd2} <!-- 심의 회원 직급2 -->
, #{opnnDlbrMbr.dlbrMbrNm2} <!-- 심의 회원 명2 --> , #{dlbrMbrNm2} <!-- 심의 회원 명2 -->
, #{opnnDlbrMbr.dlbrMbrJbgd3} <!-- 심의 회원 직급3 --> , #{dlbrMbrJbgd3} <!-- 심의 회원 직급3 -->
, #{opnnDlbrMbr.dlbrMbrNm3} <!-- 심의 회원 명3 --> , #{dlbrMbrNm3} <!-- 심의 회원 명3 -->
, #{opnnDlbrMbr.dlbrMbrJbgd4} <!-- 심의 회원 직급4 --> , #{dlbrMbrJbgd4} <!-- 심의 회원 직급4 -->
, #{opnnDlbrMbr.dlbrMbrNm4} <!-- 심의 회원 명4 --> , #{dlbrMbrNm4} <!-- 심의 회원 명4 -->
, #{opnnDlbrMbr.dlbrMbrJbgd5} <!-- 심의 회원 직급5 --> , #{dlbrMbrJbgd5} <!-- 심의 회원 직급5 -->
, #{opnnDlbrMbr.dlbrMbrNm5} <!-- 심의 회원 명5 --> , #{dlbrMbrNm5} <!-- 심의 회원 명5 -->
, #{opnnDlbrMbr.dlbrMbrJbgd6} <!-- 심의 회원 직급6 --> , #{dlbrMbrJbgd6} <!-- 심의 회원 직급6 -->
, #{opnnDlbrMbr.dlbrMbrNm6} <!-- 심의 회원 명6 --> , #{dlbrMbrNm6} <!-- 심의 회원 명6 -->
, #{opnnDlbrMbr.dlbrMbrJbgd7} <!-- 심의 회원 직급7 --> , #{dlbrMbrJbgd7} <!-- 심의 회원 직급7 -->
, #{opnnDlbrMbr.dlbrMbrNm7} <!-- 심의 회원 명7 --> , #{dlbrMbrNm7} <!-- 심의 회원 명7 -->
, <include refid="utility.now" /> <!-- 등록 일시 --> , <include refid="utility.now" /> <!-- 등록 일시 -->
, #{opnnDlbrMbr.createdBy} <!-- 등록자 --> , #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 --> , <include refid="utility.now" /> <!-- 수정 일시 -->
, #{opnnDlbrMbr.modifiedBy} <!-- 수정자 --> , #{modifiedBy} <!-- 수정자 -->
) )
</insert> </insert>
<update id="updateOpnnDlbrMbr" parameterType="map">/* 의견제출 심의 회원 수정(opnnDlbrMbrMapper.updateOpnnDlbrMbr) */ <update id="updateOpnnDlbrMbr" parameterType="cokr.xit.fims.excl.OpnnDlbrMbr">/* 의견제출 심의 회원 수정(opnnDlbrMbrMapper.updateOpnnDlbrMbr) */
UPDATE TB_OPNN_DLBR_MBR UPDATE TB_OPNN_DLBR_MBR
SET DLBR_MBR_JBGD1 = #{opnnDlbrMbr.dlbrMbrJbgd1} <!-- 심의 회원 직급1 --> SET DLBR_MBR_JBGD1 = #{dlbrMbrJbgd1} <!-- 심의 회원 직급1 -->
, DLBR_MBR_NM1 = #{opnnDlbrMbr.dlbrMbrNm1} <!-- 심의 회원 명1 --> , DLBR_MBR_NM1 = #{dlbrMbrNm1} <!-- 심의 회원 명1 -->
, DLBR_MBR_JBGD2 = #{opnnDlbrMbr.dlbrMbrJbgd2} <!-- 심의 회원 직급2 --> , DLBR_MBR_JBGD2 = #{dlbrMbrJbgd2} <!-- 심의 회원 직급2 -->
, DLBR_MBR_NM2 = #{opnnDlbrMbr.dlbrMbrNm2} <!-- 심의 회원 명2 --> , DLBR_MBR_NM2 = #{dlbrMbrNm2} <!-- 심의 회원 명2 -->
, DLBR_MBR_JBGD3 = #{opnnDlbrMbr.dlbrMbrJbgd3} <!-- 심의 회원 직급3 --> , DLBR_MBR_JBGD3 = #{dlbrMbrJbgd3} <!-- 심의 회원 직급3 -->
, DLBR_MBR_NM3 = #{opnnDlbrMbr.dlbrMbrNm3} <!-- 심의 회원 명3 --> , DLBR_MBR_NM3 = #{dlbrMbrNm3} <!-- 심의 회원 명3 -->
, DLBR_MBR_JBGD4 = #{opnnDlbrMbr.dlbrMbrJbgd4} <!-- 심의 회원 직급4 --> , DLBR_MBR_JBGD4 = #{dlbrMbrJbgd4} <!-- 심의 회원 직급4 -->
, DLBR_MBR_NM4 = #{opnnDlbrMbr.dlbrMbrNm4} <!-- 심의 회원 명4 --> , DLBR_MBR_NM4 = #{dlbrMbrNm4} <!-- 심의 회원 명4 -->
, DLBR_MBR_JBGD5 = #{opnnDlbrMbr.dlbrMbrJbgd5} <!-- 심의 회원 직급5 --> , DLBR_MBR_JBGD5 = #{dlbrMbrJbgd5} <!-- 심의 회원 직급5 -->
, DLBR_MBR_NM5 = #{opnnDlbrMbr.dlbrMbrNm5} <!-- 심의 회원 명5 --> , DLBR_MBR_NM5 = #{dlbrMbrNm5} <!-- 심의 회원 명5 -->
, DLBR_MBR_JBGD6 = #{opnnDlbrMbr.dlbrMbrJbgd6} <!-- 심의 회원 직급6 --> , DLBR_MBR_JBGD6 = #{dlbrMbrJbgd6} <!-- 심의 회원 직급6 -->
, DLBR_MBR_NM6 = #{opnnDlbrMbr.dlbrMbrNm6} <!-- 심의 회원 명6 --> , DLBR_MBR_NM6 = #{dlbrMbrNm6} <!-- 심의 회원 명6 -->
, DLBR_MBR_JBGD7 = #{opnnDlbrMbr.dlbrMbrJbgd7} <!-- 심의 회원 직급7 --> , DLBR_MBR_JBGD7 = #{dlbrMbrJbgd7} <!-- 심의 회원 직급7 -->
, DLBR_MBR_NM7 = #{opnnDlbrMbr.dlbrMbrNm7} <!-- 심의 회원 명7 --> , DLBR_MBR_NM7 = #{dlbrMbrNm7} <!-- 심의 회원 명7 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{opnnDlbrMbr.modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE MNG_ID = #{opnnDlbrMbr.mngId} WHERE MNG_ID = #{mngId}
</update> </update>
</mapper> </mapper>

@ -381,15 +381,15 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<insert id="insertOpnnSbmsn" parameterType="map">/* 의견제출 대장 등록(opnnSbmsnMapper.insertOpnnSbmsn) */ <insert id="insertOpnnSbmsn" parameterType="cokr.xit.fims.excl.OpnnSbmsn">/* 의견제출 대장 등록(opnnSbmsnMapper.insertOpnnSbmsn) */
<selectKey resultType="hashmap" keyProperty="opnnSbmsn.opnnId,opnnSbmsn.rcptNo" keyColumn="NEW_ID,NEW_RCPT_NO" order="BEFORE"> <selectKey resultType="hashmap" keyProperty="opnnId,rcptNo" keyColumn="NEW_ID,NEW_RCPT_NO" order="BEFORE">
SELECT CONCAT(#{opnnSbmsn.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(OPNN_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID SELECT CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(OPNN_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID
, (SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCPT_NO, 5)) + 1, 1) AS INT), 6, '0')) , (SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCPT_NO, 5)) + 1, 1) AS INT), 6, '0'))
FROM TB_OPNN_SBMSN FROM TB_OPNN_SBMSN
WHERE OPNN_ID LIKE CONCAT(#{opnnSbmsn.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%') WHERE OPNN_ID LIKE CONCAT(#{opnnSbmsn.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
AND RCPT_NO LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')) AS NEW_RCPT_NO AND RCPT_NO LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')) AS NEW_RCPT_NO
FROM TB_OPNN_SBMSN FROM TB_OPNN_SBMSN
WHERE OPNN_ID LIKE CONCAT(#{opnnSbmsn.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%') WHERE OPNN_ID LIKE CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey> </selectKey>
INSERT INSERT
INTO TB_OPNN_SBMSN ( INTO TB_OPNN_SBMSN (
@ -424,93 +424,93 @@
, MDFR <!-- 수정자 --> , MDFR <!-- 수정자 -->
) )
VALUES ( VALUES (
#{opnnSbmsn.opnnId} <!-- 의견 ID --> #{opnnId} <!-- 의견 ID -->
, #{opnnSbmsn.crdnId} <!-- 단속 ID --> , #{crdnId} <!-- 단속 ID -->
, #{opnnSbmsn.rcptNo} <!-- 접수 번호 --> , #{rcptNo} <!-- 접수 번호 -->
, #{opnnSbmsn.rcptYmd} <!-- 접수 일자 --> , #{rcptYmd} <!-- 접수 일자 -->
, #{opnnSbmsn.rcptSeCd} <!-- 접수 구분 코드 --> , #{rcptSeCd} <!-- 접수 구분 코드 -->
, #{opnnSbmsn.ownrRelCd} <!-- 소유주 관계 코드 --> , #{ownrRelCd} <!-- 소유주 관계 코드 -->
, #{opnnSbmsn.sttrNm} <!-- 진술자 명 --> , #{sttrNm} <!-- 진술자 명 -->
, #{opnnSbmsn.sttrBrdt} <!-- 진술자 생년월일 --> , #{sttrBrdt} <!-- 진술자 생년월일 -->
, #{opnnSbmsn.sttrRrno} <!-- 진술자 주민등록번호 --> , #{sttrRrno} <!-- 진술자 주민등록번호 -->
, #{opnnSbmsn.sttrAddr} <!-- 진술자 주소 --> , #{sttrAddr} <!-- 진술자 주소 -->
, #{opnnSbmsn.sttrDaddr} <!-- 진술자 상세주소 --> , #{sttrDaddr} <!-- 진술자 상세주소 -->
, #{opnnSbmsn.sttrZip} <!-- 진술자 우편번호 --> , #{sttrZip} <!-- 진술자 우편번호 -->
, #{opnnSbmsn.sttrCttpc} <!-- 진술자 연락처 --> , #{sttrCttpc} <!-- 진술자 연락처 -->
, #{opnnSbmsn.sttrEml} <!-- 진술자 이메일 --> , #{sttrEml} <!-- 진술자 이메일 -->
, #{opnnSbmsn.opnnSbmsnCn} <!-- 의견 제출 내용 --> , #{opnnSbmsnCn} <!-- 의견 제출 내용 -->
, #{opnnSbmsn.opnnSbmsnSeCd} <!-- 의견 제출 구분 코드 --> , #{opnnSbmsnSeCd} <!-- 의견 제출 구분 코드 -->
, #{opnnSbmsn.opnnSbmsnGist} <!-- 의견 제출 요지 --> , #{opnnSbmsnGist} <!-- 의견 제출 요지 -->
, #{opnnSbmsn.docNo} <!-- 문서 번호 --> , #{docNo} <!-- 문서 번호 -->
, #{opnnSbmsn.ntfctnSeCd} <!-- 통보 구분 코드 --> , #{ntfctnSeCd} <!-- 통보 구분 코드 -->
, #{opnnSbmsn.picRvwOpnn} <!-- 담당자 검토 의견 --> , #{picRvwOpnn} <!-- 담당자 검토 의견 -->
, #{opnnSbmsn.ansCn} <!-- 답변 내용 --> , #{ansCn} <!-- 답변 내용 -->
, #{opnnSbmsn.ansYmd} <!-- 답변 일시 --> , #{ansYmd} <!-- 답변 일시 -->
, #{opnnSbmsn.ansTm} <!-- 답변 일시 --> , #{ansTm} <!-- 답변 일시 -->
, #{opnnSbmsn.opnnSbmsnSttsCd} <!-- 의견 제출 상태 코드 --> , #{opnnSbmsnSttsCd} <!-- 의견 제출 상태 코드 -->
, 'N' <!-- 삭제 여부 --> , 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 --> , <include refid="utility.now" /> <!-- 등록 일시 -->
, #{opnnSbmsn.createdBy} <!-- 등록자 --> , #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 --> , <include refid="utility.now" /> <!-- 수정 일시 -->
, #{opnnSbmsn.modifiedBy} <!-- 수정자 --> , #{modifiedBy} <!-- 수정자 -->
) )
</insert> </insert>
<update id="updateOpnnSbmsn" parameterType="map">/* 의견제출 대장 수정(opnnSbmsnMapper.updateOpnnSbmsn) */ <update id="updateOpnnSbmsn" parameterType="cokr.xit.fims.excl.OpnnSbmsn">/* 의견제출 대장 수정(opnnSbmsnMapper.updateOpnnSbmsn) */
UPDATE TB_OPNN_SBMSN UPDATE TB_OPNN_SBMSN
SET RCPT_NO = #{opnnSbmsn.rcptNo} <!-- 접수 번호 --> SET RCPT_NO = #{rcptNo} <!-- 접수 번호 -->
, RCPT_YMD = #{opnnSbmsn.rcptYmd} <!-- 접수 일자 --> , RCPT_YMD = #{rcptYmd} <!-- 접수 일자 -->
, RCPT_SE_CD = #{opnnSbmsn.rcptSeCd} <!-- 접수 구분 코드 --> , RCPT_SE_CD = #{rcptSeCd} <!-- 접수 구분 코드 -->
, OWNR_REL_CD = #{opnnSbmsn.ownrRelCd} <!-- 소유주 관계 코드 --> , OWNR_REL_CD = #{ownrRelCd} <!-- 소유주 관계 코드 -->
, STTR_NM = #{opnnSbmsn.sttrNm} <!-- 진술자 명 --> , STTR_NM = #{sttrNm} <!-- 진술자 명 -->
, STTR_BRDT = #{opnnSbmsn.sttrBrdt} <!-- 진술자 생년월일 --> , STTR_BRDT = #{sttrBrdt} <!-- 진술자 생년월일 -->
, STTR_RRNO = #{opnnSbmsn.sttrRrno} <!-- 진술자 주민등록번호 --> , STTR_RRNO = #{sttrRrno} <!-- 진술자 주민등록번호 -->
, STTR_ADDR = #{opnnSbmsn.sttrAddr} <!-- 진술자 주소 --> , STTR_ADDR = #{sttrAddr} <!-- 진술자 주소 -->
, STTR_DADDR = #{opnnSbmsn.sttrDaddr} <!-- 진술자 상세주소 --> , STTR_DADDR = #{sttrDaddr} <!-- 진술자 상세주소 -->
, STTR_ZIP = #{opnnSbmsn.sttrZip} <!-- 진술자 우편번호 --> , STTR_ZIP = #{sttrZip} <!-- 진술자 우편번호 -->
, STTR_CTTPC = #{opnnSbmsn.sttrCttpc} <!-- 진술자 연락처 --> , STTR_CTTPC = #{sttrCttpc} <!-- 진술자 연락처 -->
, STTR_EML = #{opnnSbmsn.sttrEml} <!-- 진술자 이메일 --> , STTR_EML = #{sttrEml} <!-- 진술자 이메일 -->
, OPNN_SBMSN_CN = #{opnnSbmsn.opnnSbmsnCn} <!-- 의견 제출 내용 --> , OPNN_SBMSN_CN = #{opnnSbmsnCn} <!-- 의견 제출 내용 -->
, OPNN_SBMSN_SE_CD = #{opnnSbmsn.opnnSbmsnSeCd} <!-- 의견 제출 구분 코드 --> , OPNN_SBMSN_SE_CD = #{opnnSbmsnSeCd} <!-- 의견 제출 구분 코드 -->
, OPNN_SBMSN_GIST = #{opnnSbmsn.opnnSbmsnGist} <!-- 의견 제출 요지 --> , OPNN_SBMSN_GIST = #{opnnSbmsnGist} <!-- 의견 제출 요지 -->
, PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} <!-- 담당자 검토 의견 --> , PIC_RVW_OPNN = #{picRvwOpnn} <!-- 담당자 검토 의견 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{opnnSbmsn.modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE OPNN_ID = #{opnnSbmsn.opnnId} <!-- 의견 ID --> WHERE OPNN_ID = #{opnnId} <!-- 의견 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="updateOpnnSbmsnAnswer" parameterType="map">/* 의견제출 대장 답변 수정(opnnSbmsnMapper.updateOpnnSbmsnAnswer) */ <update id="updateOpnnSbmsnAnswer" parameterType="cokr.xit.fims.excl.OpnnSbmsn">/* 의견제출 대장 답변 수정(opnnSbmsnMapper.updateOpnnSbmsnAnswer) */
UPDATE TB_OPNN_SBMSN UPDATE TB_OPNN_SBMSN
SET DOC_NO = #{opnnSbmsn.docNo} <!-- 문서 번호 --> SET DOC_NO = #{docNo} <!-- 문서 번호 -->
, NTFCTN_SE_CD = #{opnnSbmsn.ntfctnSeCd} <!-- 통보 구분 코드 --> , NTFCTN_SE_CD = #{ntfctnSeCd} <!-- 통보 구분 코드 -->
, PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} <!-- 담당자 검토 의견 --> , PIC_RVW_OPNN = #{picRvwOpnn} <!-- 담당자 검토 의견 -->
, OPNN_SBMSN_STTS_CD= #{opnnSbmsn.opnnSbmsnSttsCd} <!-- 의견 제출 상태 코드 --> , OPNN_SBMSN_STTS_CD= #{opnnSbmsnSttsCd} <!-- 의견 제출 상태 코드 -->
, ANS_YMD = #{opnnSbmsn.ansYmd} <!-- 답변 일자 --> , ANS_YMD = #{ansYmd} <!-- 답변 일자 -->
, ANS_TM = #{opnnSbmsn.ansTm} <!-- 답변 시각 --> , ANS_TM = #{ansTm} <!-- 답변 시각 -->
, ANS_CN = #{opnnSbmsn.ansCn} <!-- 답변 내용 --> , ANS_CN = #{ansCn} <!-- 답변 내용 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{opnnSbmsn.modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE OPNN_ID = #{opnnSbmsn.opnnId} <!-- 의견 ID --> WHERE OPNN_ID = #{opnnId} <!-- 의견 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="deleteOpnnSbmsn" parameterType="map">/* 의견제출 대장 삭제(opnnSbmsnMapper.deleteOpnnSbmsn) */ <update id="deleteOpnnSbmsn" parameterType="cokr.xit.fims.excl.OpnnSbmsn">/* 의견제출 대장 삭제(opnnSbmsnMapper.deleteOpnnSbmsn) */
UPDATE TB_OPNN_SBMSN UPDATE TB_OPNN_SBMSN
SET DEL_YN = 'Y' SET DEL_YN = 'Y'
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 --> , DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{opnnSbmsn.modifiedBy} <!-- 삭제자 --> , DLTR = #{modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{opnnSbmsn.delRsn} <!-- 삭제 사유 --> , DEL_RSN = #{delRsn} <!-- 삭제 사유 -->
WHERE OPNN_ID = #{opnnSbmsn.opnnId} <!-- 의견 ID --> WHERE OPNN_ID = #{opnnId} <!-- 의견 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="updateCrdnOpnnSbmsnYn" parameterType="map">/* 단속 대장 의견제출여부 수정(opnnSbmsnMapper.updateCrdnOpnnSbmsnYn) */ <update id="updateCrdnOpnnSbmsnYn" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장 의견제출여부 수정(opnnSbmsnMapper.updateCrdnOpnnSbmsnYn) */
UPDATE TB_CRDN UPDATE TB_CRDN
SET OPNN_SBMSN_YN= #{crdn.opnnSbmsnYn} <!-- 의견 제출 여부 --> SET OPNN_SBMSN_YN= #{opnnSbmsnYn} <!-- 의견 제출 여부 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{crdn.modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE CRDN_ID = #{crdn.crdnId} <!-- 단속 ID --> WHERE CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>

@ -62,29 +62,7 @@
, P.RGTR <!-- 등록자 --> , P.RGTR <!-- 등록자 -->
, P.MDFCN_DT <!-- 수정 일시 --> , P.MDFCN_DT <!-- 수정 일시 -->
, P.MDFR <!-- 수정자 --> , P.MDFR <!-- 수정자 -->
, PA.ADDR_SN <!-- 주소 일련번호 --> FROM TB_PAYER P
, PA.ADDR_INPT_SE_CD <!-- 주소 입력 구분 코드 -->
, PA.ADDR_INQ_YMD <!-- 주소 조회 일자 -->
, PA.ADDR_SE_CD <!-- 주소 구분 코드 -->
, PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 -->
, PA.ROAD_NM_CD <!-- 도로 명 코드 -->
, PA.UDGD_SE_CD <!-- 지하 구분 코드 -->
, PA.BMNO <!-- 건물본번 -->
, PA.BSNO <!-- 건물부번 -->
, PA.BLDG_MNG_NO <!-- 건물 관리 번호 -->
, PA.STDG_CD <!-- 법정동 코드 -->
, PA.DONG_CD <!-- 행정동 코드 -->
, PA.MTN_SE_CD <!-- 산 구분 코드 -->
, PA.MNO <!-- 본번 -->
, PA.SNO <!-- 부번 -->
, PA.SPCL_DONG <!-- 특수 동 -->
, PA.SPCL_HO <!-- 특수 호 -->
, PA.SPCL_ADDR <!-- 특수 주소 -->
, PA.WHOL_ADDR <!-- 전체 주소 -->
FROM TB_PAYER P
INNER JOIN TB_PAYER_ADDR PA ON (P.RTPYR_ID = PA.RTPYR_ID)
</sql> </sql>
<select id="selectPayerList" parameterType="map" resultType="dataobject">/* 납부자 대장 목록 조회(payerMapper.selectPayerList) */ <select id="selectPayerList" parameterType="map" resultType="dataobject">/* 납부자 대장 목록 조회(payerMapper.selectPayerList) */
@ -105,16 +83,13 @@
AND P.RTPYR_ID IN (<foreach collection="rtpyrIds" item="rtpyrId" separator=",">#{rtpyrId}</foreach>) AND P.RTPYR_ID IN (<foreach collection="rtpyrIds" item="rtpyrId" separator=",">#{rtpyrId}</foreach>)
</when> </when>
<when test="rtpyrId != null"> <when test="rtpyrId != null">
AND P.RTPYR_ID = #{rtpyrId} <!-- 납부자 ID --> AND P.RTPYR_ID = #{rtpyrId} <!-- 납부자 ID -->
</when> </when>
<otherwise> <otherwise>
AND P.RTPYR_SE_CD = #{rtpyrSeCd} <!-- 납부자 구분 코드 --> AND P.RTPYR_SE_CD = #{rtpyrSeCd} <!-- 납부자 구분 코드 -->
AND P.RTPYR_NO = #{rtpyrNo} <!-- 납부자 번호 --> AND P.RTPYR_NO = #{rtpyrNo} <!-- 납부자 번호 -->
</otherwise> </otherwise>
</choose> </choose>
<if test="addrSn != null">
AND PA.ADDR_SN = #{addrSn} <!-- 주소 일련번호 -->
</if>
</where> </where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
@ -164,8 +139,9 @@
WHERE NOT EXISTS ( WHERE NOT EXISTS (
SELECT * SELECT *
FROM TB_PAYER B FROM TB_PAYER B
WHERE RTPYR_NO = #{payer.rtpyrNo} WHERE RTPYR_NO = #{payer.rtpyrNo}
AND SGG_CD = #{payer.sggCd} AND RTPYR_SE_CD = #{payer.rtpyrSeCd}
AND SGG_CD = #{payer.sggCd}
) )
</insert> </insert>
@ -173,12 +149,10 @@
UPDATE TB_PAYER UPDATE TB_PAYER
SET RTPYR_INPT_SE_CD = #{payer.rtpyrInptSeCd} <!-- 납부자 입력 구분 코드 --> SET RTPYR_INPT_SE_CD = #{payer.rtpyrInptSeCd} <!-- 납부자 입력 구분 코드 -->
, RTPYR_SE_CD = #{payer.rtpyrSeCd} <!-- 납부자 구분 코드 --> , RTPYR_SE_CD = #{payer.rtpyrSeCd} <!-- 납부자 구분 코드 -->
, RTPYR_NO = #{payer.rtpyrNo} <!-- 납부자 번호 -->
, RTPYR_NM = #{payer.rtpyrNm} <!-- 납부자 명 --> , RTPYR_NM = #{payer.rtpyrNm} <!-- 납부자 명 -->
, RTPYR_TELNO = #{payer.rtpyrTelno} <!-- 납부자 전화번호 --> , RTPYR_TELNO = #{payer.rtpyrTelno} <!-- 납부자 전화번호 -->
, RTPYR_MBL_TELNO = #{payer.rtpyrMblTelno} <!-- 납부자 휴대 전화번호 --> , RTPYR_MBL_TELNO = #{payer.rtpyrMblTelno} <!-- 납부자 휴대 전화번호 -->
, RTPYR_EML = #{payer.rtpyrEml} <!-- 납부자 이메일 --> , RTPYR_EML = #{payer.rtpyrEml} <!-- 납부자 이메일 -->
, RTPYR_BRDT = #{payer.rtpyrBrdt} <!-- 납부자 생년월일 -->
, RTPYR_STTS_CD = #{payer.rtpyrSttsCd} <!-- 납부자 상태 코드 --> , RTPYR_STTS_CD = #{payer.rtpyrSttsCd} <!-- 납부자 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{payer.modifiedBy} <!-- 수정자 --> , MDFR = #{payer.modifiedBy} <!-- 수정자 -->
@ -258,77 +232,60 @@
<include refid="selectCrdnPayer" /> <include refid="selectCrdnPayer" />
<where> <where>
<if test="rtpyrId != null"> <if test="rtpyrId != null">
AND P.RTPYR_ID = #{rtpyrId} <!-- 납부자 ID --> AND P.RTPYR_ID = #{rtpyrId} <!-- 납부자 ID -->
</if> </if>
<if test="crdnId != null"> <if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID --> AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
<if test="delYn != null"> AND C.DEL_YN = 'N'
AND C.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if>
</if> </if>
</where> </where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(payerMapper.selectCrdn) */ <select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(payerMapper.selectCrdn) */
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.VHRNO <!-- 차량번호 --> , C.RTPYR_ID <!-- 납부자 ID -->
, C.CRDN_YMD <!-- 단속 일자 --> , C.ADDR_SN <!-- 주소 일련번호 -->
, C.CRDN_TM <!-- 단속 시간 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 --> , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 --> , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, P.RTPYR_ID <!-- 납부자 ID --> , P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NO <!-- 납부자 번호 --> , PA.ZIP <!-- 우편번호 -->
FROM TB_CRDN C , PA.ADDR <!-- 주소 -->
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) , PA.DTL_ADDR <!-- 상세 주소 -->
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID --> , PA.ROAD_NM_CD <!-- 도로 명 코드 -->
AND C.DEL_YN = 'N' FROM TB_CRDN C
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN)
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N'
</select> </select>
<sql id="selectHstry"> <sql id="selectPayerHstry">
SELECT PH.RTPYR_ID <!-- 납부자 ID --> SELECT CPH.CHG_HSTRY_ID <!-- 변경 이력 ID -->
, PH.HSTRY_SN <!-- 이력 일련번호 --> , CPH.CRDN_ID <!-- 단속 ID -->
, PH.SGG_CD <!-- 시군구 코드 --> , CPH.RTPYR_ID <!-- 납부자 ID -->
, PH.VHRNO <!-- 차량번호 --> , CPH.REG_DT <!-- 등록 일시 -->
, PH.RTPYR_INPT_SE_CD <!-- 납부자 입력 구분 코드 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CPH.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, PH.RTPYR_SE_CD <!-- 납부자 구분 코드 --> , (SELECT GET_CODE_NM('FIM015', P.RTPYR_INPT_SE_CD) FROM DUAL) AS RTPYR_INPT_SE_NM <!-- 납부자 입력 구분 명 -->
, PH.RTPYR_NO <!-- 납부자 번호 --> , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM <!-- 납부자 구분 명 -->
, PH.RTPYR_NM <!-- 납부자 명 --> , P.RTPYR_NO <!-- 납부자 번호 -->
, PH.RTPYR_TELNO <!-- 납부자 전화번호 --> , P.RTPYR_NM <!-- 납부자 명 -->
, PH.RTPYR_MBL_TELNO <!-- 납부자 휴대 전화번호 --> , P.RTPYR_TELNO <!-- 납부자 전화번호 -->
, PH.RTPYR_EML <!-- 납부자 이메일 --> , P.RTPYR_MBL_TELNO <!-- 납부자 휴대 전화번호 -->
, PH.RTPYR_BRDT <!-- 납부자 생년월일 --> , P.RTPYR_EML <!-- 납부자 이메일 -->
, PH.RTPYR_STTS_CD <!-- 납부자 상태 코드 --> , P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, PH.ADDR_SE_CD <!-- 주소 구분 코드 --> , P.RTPYR_STTS_CD <!-- 납부자 상태 코드 -->
, PH.ZIP <!-- 우편번호 --> FROM TB_CRDN_PAYER_HSTRY CPH
, PH.ROAD_NM_CD <!-- 도로 명 코드 --> INNER JOIN TB_PAYER P ON (CPH.RTPYR_ID = P.RTPYR_ID)
, PH.UDGD_SE_CD <!-- 지하 구분 코드 -->
, PH.BMNO <!-- 건물본번 -->
, PH.BSNO <!-- 건물부번 -->
, PH.BLDG_MNG_NO <!-- 건물 관리 번호 -->
, PH.STDG_CD <!-- 법정동 코드 -->
, PH.DONG_CD <!-- 행정동 코드 -->
, PH.MTN_SE_CD <!-- 산 구분 코드 -->
, PH.MNO <!-- 본번 -->
, PH.SNO <!-- 부번 -->
, PH.SPCL_DONG <!-- 특수 동 -->
, PH.SPCL_HO <!-- 특수 호 -->
, PH.SPCL_ADDR <!-- 특수 주소 -->
, PH.ADDR <!-- 주소 -->
, PH.DTL_ADDR <!-- 상세 주소 -->
, PH.WHOL_ADDR <!-- 전체 주소 -->
, PH.REG_DT <!-- 등록 일시 -->
, PH.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = PH.RGTR) AS RGTR_NM <!-- 등록자 명 -->
FROM TB_PAYER_HSTRY PH
</sql> </sql>
<select id="selectPayerHstrys" parameterType="map" resultType="dataobject">/* 납부자 변경 이력 대장 객체 가져오기(payerMapper.selectPayerHstrys) */ <select id="selectPayerHstrys" parameterType="map" resultType="dataobject">/* 납부자 이력 대장 객체 가져오기(payerMapper.selectPayerHstrys) */
<include refid="selectHstry" /> <include refid="selectPayerHstry" />
WHERE RTPYR_ID = #{rtpyrId} <!-- 납부자 ID --> WHERE CPH.CRDN_ID = #{crdnId} <!-- 단속 ID -->
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>

@ -11,7 +11,6 @@
<result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID --> <result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID -->
<result property="addrSn" column="ADDR_SN" /> <!-- 주소 일련번호 --> <result property="addrSn" column="ADDR_SN" /> <!-- 주소 일련번호 -->
<result property="addrInptSeCd" column="ADDR_INPT_SE_CD" /> <!-- 주소 입력 구분 코드 --> <result property="addrInptSeCd" column="ADDR_INPT_SE_CD" /> <!-- 주소 입력 구분 코드 -->
<result property="addrInqYmd" column="ADDR_INQ_YMD" /> <!-- 주소 조회 일자 -->
<result property="addrSeCd" column="ADDR_SE_CD" /> <!-- 주소 구분 코드 --> <result property="addrSeCd" column="ADDR_SE_CD" /> <!-- 주소 구분 코드 -->
<result property="zip" column="ZIP" /> <!-- 우편번호 --> <result property="zip" column="ZIP" /> <!-- 우편번호 -->
<result property="addr" column="ADDR" /> <!-- 주소 --> <result property="addr" column="ADDR" /> <!-- 주소 -->
@ -37,55 +36,107 @@
</resultMap> </resultMap>
<sql id="select"> <sql id="select">
SELECT PA.RTPYR_ID <!-- 납부자 ID --> SELECT PA.RTPYR_ID <!-- 납부자 ID -->
, PA.ADDR_SN <!-- 주소 일련번호 --> , PA.ADDR_SN <!-- 주소 일련번호 -->
, PA.ADDR_INPT_SE_CD <!-- 주소 입력 구분 코드 --> , PA.ADDR_INPT_SE_CD <!-- 주소 입력 구분 코드 -->
, PA.ADDR_INQ_YMD <!-- 주소 조회 일자 --> , PA.ADDR_SE_CD <!-- 주소 구분 코드 -->
, PA.ADDR_SE_CD <!-- 주소 구분 코드 --> , PA.ZIP <!-- 우편번호 -->
, PA.ZIP <!-- 우편번호 --> , PA.ADDR <!-- 주소 -->
, PA.ADDR <!-- 주소 --> , PA.DTL_ADDR <!-- 상세 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 --> , PA.ROAD_NM_CD <!-- 도로 명 코드 -->
, PA.ROAD_NM_CD <!-- 도로 명 코드 --> , PA.UDGD_SE_CD <!-- 지하 구분 코드 -->
, PA.UDGD_SE_CD <!-- 지하 구분 코드 --> , PA.BMNO <!-- 건물본번 -->
, PA.BMNO <!-- 건물본번 --> , PA.BSNO <!-- 건물부번 -->
, PA.BSNO <!-- 건물부번 --> , PA.BLDG_MNG_NO <!-- 건물 관리 번호 -->
, PA.BLDG_MNG_NO <!-- 건물 관리 번호 --> , PA.STDG_CD <!-- 법정동 코드 -->
, PA.STDG_CD <!-- 법정동 코드 --> , PA.DONG_CD <!-- 행정동 코드 -->
, PA.DONG_CD <!-- 행정동 코드 --> , PA.MTN_SE_CD <!-- 산 구분 코드 -->
, PA.MTN_SE_CD <!-- 산 구분 코드 --> , PA.MNO <!-- 본번 -->
, PA.MNO <!-- 본번 --> , PA.SNO <!-- 부번 -->
, PA.SNO <!-- 부번 --> , PA.SPCL_DONG <!-- 특수 동 -->
, PA.SPCL_DONG <!-- 특수 동 --> , PA.SPCL_HO <!-- 특수 호 -->
, PA.SPCL_HO <!-- 특수 호 --> , PA.SPCL_ADDR <!-- 특수 주소 -->
, PA.SPCL_ADDR <!-- 특수 주소 --> , PA.WHOL_ADDR <!-- 전체 주소 -->
, PA.WHOL_ADDR <!-- 전체 주소 -->
, PA.REG_DT <!-- 등록 일시 -->
, PA.RGTR <!-- 등록자 -->
, PA.MDFCN_DT <!-- 수정 일시 -->
, PA.MDFR <!-- 수정자 -->
FROM TB_PAYER_ADDR PA FROM TB_PAYER_ADDR PA
</sql> </sql>
<select id="selectPayerAddrList" parameterType="map" resultType="dataobject">/* 납부자 주소 목록 조회(payerAddrMapper.selectPayerAddrList) */ <select id="selectPayerAddrList" parameterType="map" resultType="dataobject">/* 납부자 주소 목록 조회(payerAddrMapper.selectPayerAddrList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
<include refid="select" /> <include refid="select" />
WHERE PA.RTPYR_ID = #{rtpyrId} WHERE PA.RTPYR_ID = #{rtpyrId}
<if test="addrSn != null"> <if test="addrSn != null">
AND PA.ADDR_SN = #{addrSn} AND PA.ADDR_SN = #{addrSn}
</if> </if>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /> <include refid="utility.paging-suffix" />
</select> </select>
<select id="selectPayerAddrs" parameterType="map" resultType="dataobject">/* 납부자 주소 객체 가져오기(payerAddrMapper.selectPayerAddrs) */ <select id="selectPayerAddrs" parameterType="map" resultMap="payerAddrRow">/* 납부자 주소 객체 가져오기(payerAddrMapper.selectPayerAddrs) */
<include refid="select" /> <include refid="select" />
WHERE PA.RTPYR_ID = #{rtpyrId} WHERE PA.RTPYR_ID = #{rtpyrId}
<if test="addrSn != null"> <if test="addrSn != null">
AND PA.ADDR_SN = #{addrSn} AND PA.ADDR_SN = #{addrSn}
</if> </if>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<select id="selectPayerAddrInfo" parameterType="map" resultMap="payerAddrRow">/* 납부자 주소 객체 가져오기(payerAddrMapper.selectPayerAddrInfo) */
SELECT P.RTPYR_ID <!-- 납부자 ID -->
, P.SGG_CD <!-- 시군구 코드 -->
, P.RTPYR_INPT_SE_CD <!-- 납부자 입력 구분 코드 -->
, P.RTPYR_SE_CD <!-- 납부자 구분 코드 -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_TELNO <!-- 납부자 전화번호 -->
, P.RTPYR_MBL_TELNO <!-- 납부자 휴대 전화번호 -->
, P.RTPYR_EML <!-- 납부자 이메일 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.RTPYR_STTS_CD <!-- 납부자 상태 코드 -->
, P.REG_DT <!-- 등록 일시 -->
, P.RGTR <!-- 등록자 -->
, P.MDFCN_DT <!-- 수정 일시 -->
, P.MDFR <!-- 수정자 -->
, PA.ADDR_SN <!-- 주소 일련번호 -->
, PA.ADDR_INPT_SE_CD <!-- 주소 입력 구분 코드 -->
, PA.ADDR_SE_CD <!-- 주소 구분 코드 -->
, PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 -->
, PA.ROAD_NM_CD <!-- 도로 명 코드 -->
, PA.UDGD_SE_CD <!-- 지하 구분 코드 -->
, PA.BMNO <!-- 건물본번 -->
, PA.BSNO <!-- 건물부번 -->
, PA.BLDG_MNG_NO <!-- 건물 관리 번호 -->
, PA.STDG_CD <!-- 법정동 코드 -->
, PA.DONG_CD <!-- 행정동 코드 -->
, PA.MTN_SE_CD <!-- 산 구분 코드 -->
, PA.MNO <!-- 본번 -->
, PA.SNO <!-- 부번 -->
, PA.SPCL_DONG <!-- 특수 동 -->
, PA.SPCL_HO <!-- 특수 호 -->
, PA.SPCL_ADDR <!-- 특수 주소 -->
, PA.WHOL_ADDR <!-- 전체 주소 -->
FROM TB_PAYER P
LEFT OUTER JOIN TB_PAYER_ADDR PA ON (P.RTPYR_ID = PA.RTPYR_ID)
WHERE P.RTPYR_ID = #{rtpyrId}
<choose>
<when test="addrSn != null">
AND PA.ADDR_SN = #{addrSn}
</when>
<otherwise>
<if test="roadNmCd != null">
AND PA.ROAD_NM_CD= #{roadNmCd}
</if>
<if test="addr != null">
AND PA.ADDR = #{addr}
</if>
<if test="dtlAddr != null">
AND PA.DTL_ADDR = #{dtlAddr}
</if>
</otherwise>
</choose>
</select>
<insert id="insertPayerAddr" parameterType="map">/* 납부자 주소 등록(payerAddrMapper.insertPayerAddr) */ <insert id="insertPayerAddr" parameterType="map">/* 납부자 주소 등록(payerAddrMapper.insertPayerAddr) */
<selectKey resultType="string" keyProperty="payerAddr.addrSn" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="payerAddr.addrSn" keyColumn="NEW_ID" order="BEFORE">
SELECT LPAD(CAST(IFNULL(MAX(ADDR_SN) + 1, 1) AS INT), 5, '0') AS NEW_ID SELECT LPAD(CAST(IFNULL(MAX(ADDR_SN) + 1, 1) AS INT), 5, '0') AS NEW_ID
@ -97,7 +148,6 @@
RTPYR_ID <!-- 납부자 ID --> RTPYR_ID <!-- 납부자 ID -->
, ADDR_SN <!-- 주소 일련번호 --> , ADDR_SN <!-- 주소 일련번호 -->
, ADDR_INPT_SE_CD <!-- 주소 입력 구분 코드 --> , ADDR_INPT_SE_CD <!-- 주소 입력 구분 코드 -->
, ADDR_INQ_YMD <!-- 주소 조회 일자 -->
, ADDR_SE_CD <!-- 주소 구분 코드 --> , ADDR_SE_CD <!-- 주소 구분 코드 -->
, ZIP <!-- 우편번호 --> , ZIP <!-- 우편번호 -->
, ADDR <!-- 주소 --> , ADDR <!-- 주소 -->
@ -125,7 +175,6 @@
#{payerAddr.rtpyrId} <!-- 납부자 ID --> #{payerAddr.rtpyrId} <!-- 납부자 ID -->
, #{payerAddr.addrSn} <!-- 주소 일련번호 --> , #{payerAddr.addrSn} <!-- 주소 일련번호 -->
, #{payerAddr.addrInptSeCd} <!-- 주소 입력 구분 코드 --> , #{payerAddr.addrInptSeCd} <!-- 주소 입력 구분 코드 -->
, #{payerAddr.addrInqYmd} <!-- 주소 조회 일자 -->
, #{payerAddr.addrSeCd} <!-- 주소 구분 코드 --> , #{payerAddr.addrSeCd} <!-- 주소 구분 코드 -->
, #{payerAddr.zip} <!-- 우편번호 --> , #{payerAddr.zip} <!-- 우편번호 -->
, #{payerAddr.addr} <!-- 주소 --> , #{payerAddr.addr} <!-- 주소 -->
@ -159,4 +208,40 @@
AND ADDR_SN = #{payerAddr.addrSn} AND ADDR_SN = #{payerAddr.addrSn}
</update> </update>
<sql id="selectPayerAddrHstry">
SELECT CPAH.CRDN_ID <!-- 단속 ID -->
, CPAH.RTPYR_ID <!-- 납부자 ID -->
, CPAH.ADDR_SN <!-- 주소 일련번호 -->
, CPAH.REG_DT <!-- 등록 일시 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CPAH.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT GET_CODE_NM('FIM087', PA.ADDR_INPT_SE_CD) FROM DUAL) AS ADDR_INPT_SE_NM <!-- 주소 입력 구분 명 -->
, (SELECT GET_CODE_NM('FIM013', PA.ADDR_SE_CD) FROM DUAL) AS ADDR_SE_NM <!-- 주소 구분 명 -->
, PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 -->
, PA.ROAD_NM_CD <!-- 도로 명 코드 -->
, PA.UDGD_SE_CD <!-- 지하 구분 코드 -->
, PA.BMNO <!-- 건물본번 -->
, PA.BSNO <!-- 건물부번 -->
, PA.BLDG_MNG_NO <!-- 건물 관리 번호 -->
, PA.STDG_CD <!-- 법정동 코드 -->
, PA.DONG_CD <!-- 행정동 코드 -->
, PA.MTN_SE_CD <!-- 산 구분 코드 -->
, PA.MNO <!-- 본번 -->
, PA.SNO <!-- 부번 -->
, PA.SPCL_DONG <!-- 특수 동 -->
, PA.SPCL_HO <!-- 특수 호 -->
, PA.SPCL_ADDR <!-- 특수 주소 -->
, PA.WHOL_ADDR <!-- 전체 주소 -->
FROM TB_CRDN_PAYER_ADDR_HSTRY CPAH
INNER JOIN TB_PAYER_ADDR PA ON (CPAH.RTPYR_ID = PA.RTPYR_ID AND CPAH.ADDR_SN = PA.ADDR_SN)
</sql>
<select id="selectPayerAddrHstrys" parameterType="map" resultType="dataobject">/* 납부자 주소 이력 대장 객체 가져오기(payerMapper.selectCrdnPayerAddrHstrys) */
<include refid="selectPayerAddrHstry" />
WHERE CPAH.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND CPAH.RTPYR_ID = #{rtpyrId} <!-- 납부자 ID -->
<include refid="utility.orderBy" />
</select>
</mapper> </mapper>

@ -405,8 +405,7 @@
, onOK: () => { } , onOK: () => { }
}); });
// 자료 재조회 if (resp.saved) { $P.fnRefreshList(); } // 자료 재조회
if (resp.saved) { $P.fnRefreshList(); }
} }
// 삭제 // 삭제
@ -564,6 +563,7 @@
, title: "사용자 검색" , title: "사용자 검색"
, content: resp , content: resp
, size: "lg" , size: "lg"
, init: () => { setDialogZindex(); }
}); });
} }
}); });
@ -716,28 +716,26 @@
}); });
// 기본 데이터 설정 // 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
initDatepicker("frmSearch--${pageName}"); // 달력 초기화 initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 부과 제외 일자 시작 $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 부과 제외 일자 시작
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); // 부과 제외 일자 종료 $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); // 부과 제외 일자 종료
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색 $("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름 $("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
// 검색 url // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); // 검색
let clsForTask = taskSeCd.toLowerCase();
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = ""; let colsOuterHTML = "";
cols.each(function() { cols.each(function() {

@ -633,6 +633,7 @@
, title: "사용자 검색" , title: "사용자 검색"
, content: resp , content: resp
, size: "lg" , size: "lg"
, init: () => { setDialogZindex(); }
}); });
} }
}); });
@ -874,28 +875,26 @@
}); });
// 기본 데이터 설정 // 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
initDatepicker("frmSearch--${pageName}"); // 달력 초기화 initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 접수 일자 시작 $("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 접수 일자 시작
$("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date()); // 접수 일자 종료 $("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date()); // 접수 일자 종료
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색 $("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름 $("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
// 검색 url // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); // 검색
let clsForTask = taskSeCd.toLowerCase();
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = ""; let colsOuterHTML = "";
cols.each(function() { cols.each(function() {

@ -451,6 +451,7 @@
, title: "사용자 검색" , title: "사용자 검색"
, content: resp , content: resp
, size: "lg" , size: "lg"
, init: () => { setDialogZindex(); }
}); });
} }
}); });
@ -557,28 +558,26 @@
}); });
// 기본 데이터 설정 // 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
initDatepicker("frmSearch--${pageName}"); // 달력 초기화 initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schReRegYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 재등록 일자 시작 $("#schReRegYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 재등록 일자 시작
$("#schReRegYmdTo--${pageName}").datepicker("setDate", new Date()); // 재등록 일자 종료 $("#schReRegYmdTo--${pageName}").datepicker("setDate", new Date()); // 재등록 일자 종료
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색 $("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름 $("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
// 검색 url // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); // 검색
let clsForTask = taskSeCd.toLowerCase();
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = ""; let colsOuterHTML = "";
cols.each(function() { cols.each(function() {

@ -377,7 +377,6 @@
$("#tbody--${pageName} input[type='checkbox']").each(function() { $("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this); let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
@ -399,7 +398,7 @@
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/020/info.do") url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/020/info.do") + "?openerPageName=${pageName}"
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
dialog.open({ dialog.open({
@ -505,8 +504,8 @@
// 사용자검색 callback // 사용자검색 callback
$P.callbackFindUser = (userId, userNm) => { $P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
} }
/************************************************************************** /**************************************************************************
@ -520,9 +519,7 @@
} }
// 초기 기본 설정 // 초기 기본 설정
$P.initForm(); $P.initForm(taskSeCd);
// 기본 데이터 설정
$P.initData(taskSeCd);
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask(taskSeCd); $P.setTask(taskSeCd);
@ -546,6 +543,7 @@
, title: "사용자 검색" , title: "사용자 검색"
, content: resp , content: resp
, size: "lg" , size: "lg"
, init: () => { setDialogZindex(); }
}); });
} }
}); });
@ -600,14 +598,16 @@
}); });
// 파라미터 설정 // 파라미터 설정
let params = $P.control.query; // 검색 조건 let params = $P.control.query; // 검색 조건
params.callPurpose = "create"; // 호출 용도 (등록) params.title = title; // 타이틀
params.title = title; // 타이틀 params.callPurpose = "create"; // 호출 용도 (등록)
params.tnocs = tnocs; // 총 건수 params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.gramtFfnlgAmt = gramtFfnlgAmt; // 총 과태료 금액 params.taskSeCd = $("input[name=taskSeCd]:checked").val(); // 업무 구분 코드
params.gramtAdvntceAmt = gramtAdvntceAmt; // 총 사전 감경 금액 params.tnocs = tnocs; // 총 건수
params.delYn = "N"; // 삭제 여부 params.gramtFfnlgAmt = gramtFfnlgAmt; // 총 과태료 금액
params.crdnIds = selected.join(","); // Ids params.gramtAdvntceAmt = gramtAdvntceAmt; // 총 사전 감경 금액
params.crdnIds = selected.join(","); // Ids
params.delYn = "N"; // 삭제 여부
$P.control.getInfo(params); $P.control.getInfo(params);
} }
@ -624,8 +624,10 @@
// 파라미터 설정 // 파라미터 설정
let params = $P.control.query; // 검색 조건 let params = $P.control.query; // 검색 조건
params.callPurpose = "create"; // 호출 용도 (등록)
params.title = title; // 타이틀 params.title = title; // 타이틀
params.callPurpose = "create"; // 호출 용도 (등록)
params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("input[name=taskSeCd]:checked").val(); // 업무 구분 코드
params.tnocs = $P.control.dataset.getValue("TNOCS"); // 총 건수 params.tnocs = $P.control.dataset.getValue("TNOCS"); // 총 건수
params.gramtFfnlgAmt = $P.control.dataset.getValue("GRAMT_FFNLG_AMT"); // 총 과태료 금액 params.gramtFfnlgAmt = $P.control.dataset.getValue("GRAMT_FFNLG_AMT"); // 총 과태료 금액
params.gramtAdvntceAmt = $P.control.dataset.getValue("GRAMT_ADVNTCE_AMT"); // 총 사전 감경 금액 params.gramtAdvntceAmt = $P.control.dataset.getValue("GRAMT_ADVNTCE_AMT"); // 총 사전 감경 금액
@ -665,13 +667,12 @@
}); });
}); });
// 선택 대상 등록 버튼 이벤트 // 버튼 이벤트
$("#btnCreateSlctnTrgt--${pageName}").on("click", function() { $("#btnCreateSlctnTrgt--${pageName}").on("click", function() {
$P.fnCreateSlctnTrgt($(this).attr("title")); $P.fnCreateSlctnTrgt($(this).attr("title")); // 선택 대상 감경부과 등록
}); });
// 전체 대상 감경부과 등록 버튼 이벤트
$("#btnCreateWholTrgt--${pageName}").on("click", function() { $("#btnCreateWholTrgt--${pageName}").on("click", function() {
$P.fnCreateWholTrgt($(this).attr("title")); $P.fnCreateWholTrgt($(this).attr("title")); // 전체 대상 감경부과 등록
}); });
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
@ -682,7 +683,7 @@
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = (taskSeCd) => {
// 화면 초기화 // 화면 초기화
$("#frmSearch--${pageName}")[0].reset(); $("#frmSearch--${pageName}")[0].reset();
@ -699,64 +700,49 @@
$(this).prop("disabled", "true"); $(this).prop("disabled", "true");
}); });
// 달력 초기화 // 기본 데이터 설정
initDatepicker("frmSearch--${pageName}"); $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
// 동적 검색 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
$("#byOutput--${pageName}").val("동적 검색"); initDatepicker("frmSearch--${pageName}"); // 달력 초기화
// 사용자 이름 $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 단속 일자 시작
$("#schRgtrNm--${pageName}").prop("readonly", true); $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); // 단속 일자 종료
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
// 기본 데이터 설정(업무구분) $("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
$P.initData($("input[name=taskSeCd]:checked").val());
} }
// 기본 데이터 설정 // 업무 구분별 설정
$P.initData = (taskSeCd) => { $P.setTask = (taskSeCd) => {
// 시군구 코드 // 업무구분에 따른 URL 설정
$("#sggCd--${pageName}").val("${sggCd}"); $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); // 검색
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 일자
$("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date());
// 업무에 따른 위반 내용 // 업무에 따른 위반 내용
let vltnCd = []; let vltnCd = [];
if (taskSeCd == "PVS") { // 주정차 위반 if (taskSeCd == "PVS") { // 주정차 위반
vltnCd = FIM004.list(); vltnCd = FIM004.list();
} else if (taskSeCd == "BPV") { // 전용차로 위반 } else if (taskSeCd == "BPV") { // 전용차로 위반
vltnCd = FIM005.list(); vltnCd = FIM005.list();
} else if (taskSeCd == "DPV") { // 장애인 전용 } else if (taskSeCd == "DPV") { // 장애인 전용
vltnCd = FIM006.list(); vltnCd = FIM006.list();
} else if (taskSeCd == "ECA") { // 전기차 주차 위반 } else if (taskSeCd == "ECA") { // 전기차 주차 위반
vltnCd = FIM061.list(); vltnCd = FIM061.list();
} else if (taskSeCd == "PES") { // 밤샘 주차 위반 } else if (taskSeCd == "PES") { // 밤샘 주차 위반
vltnCd = FIM064.list(); vltnCd = FIM064.list();
} else { } else {
return; return;
} }
// 위반 항목 // 위반 항목
$("#schVltnCd--${pageName}").empty(); $("#schVltnCd--${pageName}").empty();
$("#schVltnCd--${pageName}").append("<option value=''>" + "전체" + "</option>"); $("#schVltnCd--${pageName}").append("<option value=''>" + "전체" + "</option>");
$(vltnCd).each(function(index, item) { $(vltnCd).each(function(index, item) {
$("#schVltnCd--${pageName}").append("<option value='" + vltnCd[index].code +"'>" + vltnCd[index].value + "</option>"); $("#schVltnCd--${pageName}").append("<option value='" + vltnCd[index].code +"'>" + vltnCd[index].value + "</option>");
}); });
}
// 업무 구분별 설정
$P.setTask = (taskSeCd) => {
// 검색 url
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do");
let clsForTask = taskSeCd.toLowerCase();
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = ""; let colsOuterHTML = "";
cols.each(function() { cols.each(function() {

@ -1,7 +1,7 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">부과 정보</c:set> <c:set var="prefixName" scope="request">사전 감경부과 대상 정보</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-wrapper"> <div class="content-wrapper">
@ -123,17 +123,18 @@
// 저장 callback // 저장 callback
$P.control.onSave = (resp) => { $P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력 // 메시지 출력
dialog.alert({ dialog.alert({
content: showMessage content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
if (resp.saved) { if (resp.saved) {
dialog.close($P.control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog--${openerPageName}");
} }
} }
@ -169,6 +170,7 @@
dialog.alert({ dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
$P.control.save($P.formFields.get()); // formFields $P.control.save($P.formFields.get()); // formFields
} }
@ -201,14 +203,14 @@
$("#dudtYmd--${pageName}").val(addDate(levyYmd, Number(advntceDayCnt))); $("#dudtYmd--${pageName}").val(addDate(levyYmd, Number(advntceDayCnt)));
}); });
// 저장 버튼 이벤트 // 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// Dialog 마우스로 드래그 할 수 있도록 설정. // Dialog 마우스로 드래그 할 수 있도록 설정.
fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog")); fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog--${openerPageName}"));
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");

@ -355,10 +355,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/levy/levy01";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmSearch--${pageName}"); $P.formFields = new FimsFormFields("#frmSearch--${pageName}");
@ -366,39 +364,39 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix : "levy" prefix: "levy"
, prefixName : "부과" , prefixName: "부과"
, infoSize : "xl" , keymapper: info => info ? info.LEVY_ID : ""
, keymapper : info => info ? info.LEVY_ID : "" , dataGetter: obj => obj.${infoPrefix}List
, dataGetter : obj => obj.levyList , appendData: true
, appendData : true , infoSize: "xl"
, formats : { , formats: {
LEVY_YMD : dateFormat LEVY_YMD: dateFormat
, FRST_DUDT_YMD : dateFormat , FRST_DUDT_YMD: dateFormat
, DUDT_YMD : dateFormat , DUDT_YMD: dateFormat
, RCVMT_YMD : dateFormat , RCVMT_YMD: dateFormat
, SZR_YMD : dateFormat , SZR_YMD: dateFormat
, SZR_RMV_YMD : dateFormat , SZR_RMV_YMD: dateFormat
, FFNLG_AMT : numberFormat , FFNLG_AMT: numberFormat
, LEVY_PCPTAX : numberFormat , LEVY_PCPTAX: numberFormat
, LEVY_ADAMT : numberFormat , LEVY_ADAMT: numberFormat
, INSPY_INT : numberFormat , INSPY_INT: numberFormat
, RCVMT_PCPTAX : numberFormat , RCVMT_PCPTAX: numberFormat
, RCVMT_ADAMT : numberFormat , RCVMT_ADAMT: numberFormat
, RDCAMT_PCPTAX : numberFormat , RDCAMT_PCPTAX: numberFormat
, RDCAMT_ADAMT : numberFormat , RDCAMT_ADAMT: numberFormat
, SUM_AMT : numberFormat , SUM_AMT: numberFormat
, CRDN_YMD_TM : datetimeFormat , CRDN_YMD_TM: datetimeFormat
, FFNLG_CRDN_AMT : numberFormat , FFNLG_CRDN_AMT: numberFormat
, REG_DT : datetimeFormat , REG_DT: datetimeFormat
, MDFCN_DT : datetimeFormat , MDFCN_DT: datetimeFormat
} }
}); });
// $P.control 설정 // $P.control 설정
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 $P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호 $P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
$P.control.beforeCurrent = null; $P.control.beforeCurrent = null;
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
@ -408,15 +406,15 @@
$P.renderList(obj.${infoPrefix}Total); $P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : $P.control.dataset list: $P.control.dataset
, prefix : "paging--${pageName}" , prefix: "paging--${pageName}"
, start : obj.${infoPrefix}Start , start: obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total , totalSize: obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch , fetchSize: obj.${infoPrefix}Fetch
, func : "$P.control.load({index})" , func: "$P.control.load({index})"
}); });
$P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
@ -435,33 +433,22 @@
$("#tbody--${pageName} input[type='checkbox']").each(function() { $("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this); let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
// DataTables(그리드) 전체 선택(checkbox) // DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) { if (keys.length < 1) {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제 $("th input[type='checkbox']").prop("checked", false); // 체크 해제
} else if (keys.length == ${infoPrefix}List.length) { } else if (keys.length == ${infoPrefix}List.length) {
$("th input[type='checkbox']").prop("checked", true); // 체크 설정 $("th input[type='checkbox']").prop("checked", true); // 체크 설정
} else { } else {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제 $("th input[type='checkbox']").prop("checked", false); // 체크 해제
} }
}; };
// 부과 정보 dialog // 상세정보 dialog
$P.control.getInfo = (params) => { $P.control.getInfo = (params) => {
if (!params) return; if (!params) return;
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = $P.control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = $P.control.prefixName + " 수정";
} else {
dialogTitle = $P.control.prefixName + " 정보";
}
} }
/************************************************************************** /**************************************************************************
@ -515,63 +502,34 @@
$P.control.load($P.control.query.pageNum + 1); $P.control.load($P.control.query.pageNum + 1);
} }
/************************************************************************** // DataTables에 더블 클릭시 개별총정보 dialog
* 사용자 함수(function)
**************************************************************************/
// callback 사용자 검색
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 사용자 검색
$P.getFindUser = () => {
let params = {
openerPageName : "${pageName}"
, callbackFuncName : "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url : wctx.url("/user/user02/010/main.do")
, data : params || {}
, success : resp => {
dialog.open({
id : "userDialog"
, title : "사용자 검색"
, content : resp
, size : "lg"
});
}
});
}
// 개별총정보 dialog
$P.getTotalInfo = (crdnId) => { $P.getTotalInfo = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callControlName : "pageObject['${pageName}'].control" callControlName: "pageObject['${pageName}'].control"
, sggCd : $("#sggCd--${pageName}").val() , sggCd: $P.control.dataset.getValue("SGG_CD")
, taskSeCd : $("input[name=taskSeCd]:checked").val() , taskSeCd: $P.control.dataset.getValue("TASK_SE_CD")
, crdnId : crdnId , crdnId: crdnId
} }
ajax.get({ ajax.get({
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do") url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do")
, data : params , data: params
, success : resp => { , success: resp => {
dialog.open({ dialog.open({
id : "totalInfoMainDialog" id: "totalInfoMainDialog"
, title : "개별총정보" , title: "개별총정보"
, content : resp , content: resp
, size : "xxl" , size: "xxl"
, init : () => { }
, onClose : () => { }
}); });
} }
}); });
} }
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 검색 자료 재조회 // 검색 자료 재조회
$P.refreshList = () => { $P.refreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum; $P.control.untilPageNum = $P.control.query.pageNum;
@ -580,6 +538,12 @@
$P.control.load(1); $P.control.load(1);
} }
// callback 사용자 검색
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
@ -591,9 +555,7 @@
} }
// 초기 기본 설정 // 초기 기본 설정
$P.initForm(); $P.initForm(taskSeCd);
// 기본 데이터 설정
$P.initData(taskSeCd);
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask(taskSeCd); $P.setTask(taskSeCd);
@ -601,12 +563,34 @@
$P.control.dataset.clear(); $P.control.dataset.clear();
} }
// 사용자검색 버튼 클릭 이벤트
$P.fnGetFindUser = () => {
let params = {
openerPageName: "${pageName}"
, callbackFuncName: "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url: wctx.url("/user/user02/010/main.do")
, data: params || {}
, success: resp => {
dialog.open({
id: "userDialog"
, title: "사용자 검색"
, content: resp
, size: "lg"
, init: () => { setDialogZindex(); }
});
}
});
}
// 검색 버튼 이벤트 // 검색 버튼 이벤트
$P.fnSearchList = () => { $P.fnSearchList = () => {
// 검색조건 // 검색조건
$P.control.query = $P.formFields.get(); $P.control.query = $P.formFields.get(); // 검색 조건
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부 $P.control.query.delYn = "N"; // 삭제 여부
$P.control.load(1); $P.control.load(1);
} }
@ -618,7 +602,6 @@
content : "검색된 자료가 없습니다." content : "검색된 자료가 없습니다."
, onOK : () => { } , onOK : () => { }
}); });
return; return;
} }
@ -630,11 +613,6 @@
$P.control.download(); $P.control.download();
} }
// 사용자 조회 버튼 이벤트
$P.fnFindUser = () => {
$P.getFindUser();
}
/************************************************************************** /**************************************************************************
* 초기 설정 * 초기 설정
**************************************************************************/ **************************************************************************/
@ -666,8 +644,6 @@
}); });
}); });
// 업무 버튼 이벤트
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
fnMakeResizableTable($("#table-responsive--${pageName}")[0]); fnMakeResizableTable($("#table-responsive--${pageName}")[0]);
@ -676,7 +652,7 @@
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = (taskSeCd) => {
// 화면 초기화 // 화면 초기화
$("#frmSearch--${pageName}")[0].reset(); $("#frmSearch--${pageName}")[0].reset();
@ -693,52 +669,35 @@
$(this).prop("disabled", "true"); $(this).prop("disabled", "true");
}); });
// 달력 초기화 // 기본 데이터 설정
initDatepicker("frmSearch--${pageName}");
$("#schFyr--${pageName}").val(new Date().getFullYear());
$("#schLevyNoFrom--${pageName}").val("000000");
$("#schLevyNoTo--${pageName}").val("999999");
// 동적 검색
$("#byOutput--${pageName}").val("동적 검색");
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
}
// 기본 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$P.initData = (taskSeCd) => { $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
// 시군구 코드 initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#sggCd--${pageName}").val("${sggCd}"); $("#schFyr--${pageName}").val(new Date().getFullYear()); // 회계 연도
// 업무 구분 코드 $("#schLevyNoFrom--${pageName}").val("000000"); // 부과 번호 시작
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); $("#schLevyNoTo--${pageName}").val("999999"); // 부과 번호 종료
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
let clsForTask = taskSeCd.toLowerCase(); // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/050/list.do"); // 검색
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = ""; let colsOuterHTML = "";
cols.each(function() { cols.each(function() {
colsOuterHTML += this.outerHTML; colsOuterHTML += this.outerHTML;
}); });
$("#table-responsive--${pageName}")[0].changeColumn(colsOuterHTML); $("#table-responsive--${pageName}")[0].changeColumn(colsOuterHTML);
// URL 설정
$P.setURL(taskSeCd);
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/050/list.do"); // 조회
} }
/************************************************************************** /**************************************************************************

@ -127,10 +127,10 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnUpdateRduct--${pageName}" title="감경 수정"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="감경 수정">
감경 수정 감경 수정
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveRduct--${pageName}" title="감경 삭제"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="감경 삭제">
감경 삭제 감경 삭제
</button> </button>
</span> </span>
@ -251,10 +251,8 @@
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/levy/levy02";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmSearch--${pageName}"); $P.formFields = new FimsFormFields("#frmSearch--${pageName}");
@ -262,25 +260,26 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix : "rduct" prefix: "rduct"
, prefixName : "감경" , prefixName: "감경"
, infoSize : "lg" , keymapper: info => info ? info.RDUCT_ID : ""
, keymapper : info => info ? info.RDUCT_ID : "" , dataGetter: obj => obj.${infoPrefix}List
, dataGetter : obj => obj.${infoPrefix}List , appendData: true
, appendData : true , infoSize: "lg"
, formats: { , formats: {
RDUCT_YMD : dateFormat, RDUCT_YMD: dateFormat
CRDN_YMD_TM : datetimeFormat, , CRDN_YMD_TM: datetimeFormat
FFNLG_CRDN_AMT : numberFormat, , FFNLG_CRDN_AMT: numberFormat
RDUCT_AMT : numberFormat, , RDUCT_AMT: numberFormat
FFNLG_AMT : numberFormat, , FFNLG_AMT: numberFormat
SUM_AMT : numberFormat , SUM_AMT: numberFormat
} }
}); });
$P.control.defaultFetchSize = FETCH_XS; // $P.control 설정
$P.control.untilPageNum = 0; $P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.beforeCurrent = null; $P.control.beforeCurrent = null;
$P.control.tableRenderComplete = false; $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
/************************************************************************** /**************************************************************************
* DatasetControl.on * DatasetControl.on
@ -289,17 +288,18 @@
$P.renderList(obj.${infoPrefix}Total); $P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : $P.control.dataset list: $P.control.dataset
, prefix : "paging--${pageName}" , prefix: "paging--${pageName}"
, start : obj.${infoPrefix}Start , start: obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total , totalSize: obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch , fetchSize: obj.${infoPrefix}Fetch
, func : "pageObject['${pageName}'].control.load({index})" , func: "pageObject['${pageName}'].control.load({index})"
}); });
$P.control.tableRenderComplete = true; $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
}; };
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = (item) => { $P.control.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
@ -315,37 +315,37 @@
$("#tbody--${pageName} input[type='checkbox']").each(function() { $("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this); let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
// 삭제 버튼 // 삭제 버튼
$("#btnRemoveRduct--${pageName}").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
// DataTables(그리드) 전체 선택(checkbox) // DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) { if (keys.length < 1) {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제 $("th input[type='checkbox']").prop("checked", false); // 체크 해제
} else if (keys.length == ${infoPrefix}List.length) { } else if (keys.length == ${infoPrefix}List.length) {
$("th input[type='checkbox']").prop("checked", true); // 체크 설정 $("th input[type='checkbox']").prop("checked", true); // 체크 설정
} else { } else {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제 $("th input[type='checkbox']").prop("checked", false); // 체크 해제
} }
}; };
// 과태료 감경 정보 dialog // 상세정보 dialog
$P.control.getInfo = (params) => { $P.control.getInfo = (params) => {
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url : $P.control.urls.getInfo url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/020/info.do") + "?openerPageName=${pageName}"
, data : params || {} , data: params || {}
, success : resp => { , success: resp => {
dialog.open({ dialog.open({
id : $P.control.prefixed("Dialog") id: $P.control.prefixed("Dialog--${pageName}")
, title : params.title , title: params.title
, content : resp , content: resp
, size : $P.control.infoSize , size: $P.control.infoSize
, onClose : () => { $P.refreshList(); } , init: () => { }
, onClose: () => { $P.fnRefreshList(); } // 자료 재조회
}); });
} }
}); });
@ -353,7 +353,7 @@
// 삭제 callback // 삭제 callback
$P.control.onRemove = (resp) => { $P.control.onRemove = (resp) => {
let btnTitle = $("#btnRemoveRduct--${pageName}").attr("title"); let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력 // 메시지 출력
@ -362,9 +362,7 @@
, onOK : () => { } , onOK : () => { }
}); });
if (resp.saved) { if (resp.saved) { $P.fnRefreshList(); } // 자료 재조회
$P.refreshList();
}
} }
// 삭제 // 삭제
@ -372,9 +370,9 @@
if (!params) return; if (!params) return;
ajax.post({ ajax.post({
url : $P.control.urls.remove url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/010/remove.do")
, data : params , data: params
, success : resp => $P.control.onRemove(resp) , success: resp => $P.control.onRemove(resp)
}); });
} }
@ -424,86 +422,71 @@
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
$P.scrollDataList = () => { $P.scrollDataList = () => {
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false
$P.control.load($P.control.query.pageNum + 1); $P.control.load($P.control.query.pageNum + 1);
} }
/************************************************************************** // DataTables에 더블 클릭시 개별총정보 dialog
* pageObject.function $P.getTotalInfo = (crdnId) => {
**************************************************************************/ if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// callback 사용자 검색
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 사용자 검색
$P.getFindUser = () => {
let params = { let params = {
openerPageName : "${pageName}" callControlName: "pageObject['${pageName}'].control"
, callbackFuncName : "pageObject['${pageName}']['callbackFindUser']" , sggCd: $P.control.dataset.getValue("SGG_CD")
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD")
, crdnId: crdnId
} }
ajax.get({ ajax.get({
url : wctx.url("/user/user02/010/main.do") url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do")
, data : params || {} , data: params
, success : resp => { , success: resp => {
dialog.open({ dialog.open({
id : "userDialog" id: "totalInfoMainDialog"
, title : "사용자 검색" , title: "개별총정보"
, content : resp , content: resp
, size : "lg" , size: "xxl"
, init: () => { }
, onClose: () => { }
}); });
} }
}); });
} }
// 개별총정보 dialog /**************************************************************************
$P.getTotalInfo = (crdnId) => { * 사용자 함수(function)
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; **************************************************************************/
// 검색 자료 재조회
$P.refreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
let params = { $P.control.load(1);
callControlName : "pageObject['${pageName}'].control" }
, sggCd : $("#sggCd--${pageName}").val()
, taskSeCd : $("input[name=taskSeCd]:checked").val()
, crdnId : crdnId
}
ajax.get({ // callback 사용자 검색
url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do") $P.callbackFindUser = (userId, userNm) => {
, data : params $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
, success : resp => { $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
dialog.open({
id : "totalInfoMainDialog"
, title : "개별총정보"
, content : resp
, size : "xxl"
});
}
});
} }
// 삭제 사유 callback // 삭제 사유 callback
$P.callbackRsn = (obj) => { $P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성 // 서버에 전송할 data(파라미터) 생성
let params = {}; let params = {};
params[$P.control.prefixed("Ids")] = selected.join(","); // Ids let selected = $P.control.dataset.getKeys("selected");
params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params); params[$P.control.prefixed("Ids")] = selected.join(","); // IDs
} params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("input[name=taskSeCd]:checked").val(); // 업무 구분 코드
params.delRsn = obj.reason; // 삭제 사유
// 검색 자료 재조회 $P.control.remove(params);
$P.refreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.control.load(1);
} }
/************************************************************************** /**************************************************************************
* element.on * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 업무 구분 변경 이벤트 // 업무 구분 변경 이벤트
$P.fnResetAndChangeBiz = (taskSeCd) => { $P.fnResetAndChangeBiz = (taskSeCd) => {
@ -513,9 +496,7 @@
} }
// 초기 기본 설정 // 초기 기본 설정
$P.initForm(); $P.initForm(taskSeCd);
// 기본 데이터 설정
$P.initData(taskSeCd);
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask(taskSeCd); $P.setTask(taskSeCd);
@ -523,12 +504,34 @@
$P.control.dataset.clear(); $P.control.dataset.clear();
} }
// 사용자검색 버튼 클릭 이벤트
$P.fnGetFindUser = () => {
let params = {
openerPageName: "${pageName}"
, callbackFuncName: "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url: wctx.url("/user/user02/010/main.do")
, data: params || {}
, success: resp => {
dialog.open({
id: "userDialog"
, title: "사용자 검색"
, content: resp
, size: "lg"
, init: () => { setDialogZindex(); }
});
}
});
}
// 검색 버튼 이벤트 // 검색 버튼 이벤트
$P.fnSearchList = () => { $P.fnSearchList = () => {
// 검색조건 // 검색조건
$P.control.query = $P.formFields.get(); $P.control.query = $P.formFields.get(); // 검색 조건
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부 $P.control.query.delYn = "N"; // 삭제 여부
$P.control.load(1); $P.control.load(1);
} }
@ -540,7 +543,6 @@
content : "검색된 자료가 없습니다." content : "검색된 자료가 없습니다."
, onOK : () => { } , onOK : () => { }
}); });
return; return;
} }
@ -552,57 +554,55 @@
$P.control.download(); $P.control.download();
} }
// 사용자 조회 버튼 이벤트
$P.fnFindUser = () => {
$P.getFindUser();
}
// 감경 수정 버튼 이벤트 // 감경 수정 버튼 이벤트
$P.fnUpdateRduct = (title) => { $P.fnUpdate = (title) => {
// 감경 ID // 감경 ID
let rductId = $P.control.dataset.getValue("RDUCT_ID"); let rductId = $P.control.dataset.getValue("RDUCT_ID");
// 감경 ID 가 없다면.. return // 감경 ID 가 없다면.. return
if (typeof rductId == "undefined" || rductId == null || rductId == "") return; if (typeof rductId == "undefined" || rductId == null || rductId == "") return;
let params = { let params = {
callPurpose : "update" title: title
, title : title , callPurpose: "update" // 호출용도: 수정
, sggCd : $P.control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rductId : rductId // 감경 ID , rductId: rductId // 감경 ID
}; };
$P.control.getInfo(params); $P.control.getInfo(params);
} }
// 감경 삭제 버튼 이벤트 // 감경 삭제 버튼 이벤트
$P.fnRemoveRduct = (title) => { $P.fnRemove = (title) => {
// 선택 자료 // 선택 자료
let selected = $P.control.dataset.getKeys("selected"); let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return; if (selected.length < 1) {
dialog.alert({
content: "선택하신 부과제외 정보가 없습니다."
, onOK: () => { }
});
return;
}
// 삭제 메세지 확인 // 삭제 메세지 확인
dialog.alert({ dialog.alert({
content : "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?" content : "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK : async() => { , onOK : async() => {
// 삭제 사유 입력 // 삭제 사유 입력
var resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html")); let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
var template = await resp.text(); let template = await resp.text();
dialog.open({ dialog.open({
id : "inputDelRsnDialog", id: "inputDelRsnDialog"
title: title, , title: title
size : "lg", , size: "lg"
content: template, , content: template
init : () => { , init: () => { setDialogZindex(); }
setDialogZindex(); , onOK: () => {
},
onOK : () => {
$P.callbackRsn({ reason : $("#reason").val() }); $P.callbackRsn({ reason : $("#reason").val() });
} }
}); });
} }
}); });
} }
@ -638,13 +638,12 @@
}); });
}); });
// 감경 수정 버튼 이벤트 // 버튼 이벤트
$("#btnUpdateRduct--${pageName}").on("click", function() { $("#btnUpdate--${pageName}").on("click", function() {
$P.fnUpdateRduct($(this).attr("title")); $P.fnUpdate($(this).attr("title")); // 감경 수정
}); });
// 감경 삭제 버튼 이벤트 $("#btnRemove--${pageName}").on("click", function() {
$("#btnRemoveRduct--${pageName}").on("click", function() { $P.fnRemove($(this).attr("title")); // 감경 삭제
$P.fnRemoveRduct($(this).attr("title"));
}); });
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
@ -672,56 +671,33 @@
$(this).prop("disabled", "true"); $(this).prop("disabled", "true");
}); });
//달력 초기화 // 기본 데이터 설정
initDatepicker("frmSearch--${pageName}"); $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#schRductYmdFrom--${pageName}").datepicker("setDate", new Date()); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
$("#schRductYmdTo--${pageName}").datepicker("setDate", new Date()); initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schRductYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 감경 일자 시작
// 동적 검색 $("#schRductYmdTo--${pageName}").datepicker("setDate", new Date()); // 감경 일자 종료
$("#byOutput--${pageName}").val("동적 검색"); $("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
}
// 기본 데이터 설정
$P.initData = (taskSeCd) => {
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 일자
$("#schRductYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schRductYmdTo--${pageName}").datepicker("setDate", new Date());
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
let clsForTask = taskSeCd.toLowerCase(); // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); // 검색
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", clsForTask); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무별 그리드 th // 업무별 그리드 th
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn"); let cols = $(colContent).find("." + taskSeCd.toLowerCase() + ",.cmn");
let colsOuterHTML = ""; let colsOuterHTML = "";
cols.each(function() { cols.each(function() {
colsOuterHTML += this.outerHTML; colsOuterHTML += this.outerHTML;
}); });
$("#table-responsive--${pageName}")[0].changeColumn(colsOuterHTML); $("#table-responsive--${pageName}")[0].changeColumn(colsOuterHTML);
// URL 설정
$P.setURL(taskSeCd);
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/remove.do"); // 삭제
$P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/info.do"); // 수정
} }
/************************************************************************** /**************************************************************************

@ -12,9 +12,9 @@
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" /> <input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" /> <input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" />
<div class="row g-1"> <div class="row g-1">
@ -91,10 +91,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/levy/levy02";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
@ -104,14 +102,14 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix : "rduct" prefix: "rduct"
, prefixName : "감경" , prefixName: "감경"
, keymapper : info => info ? info.RDUCT_ID : "" , keymapper: info => info ? info.RDUCT_ID : ""
, dataGetter : obj => obj.rductInfo , dataGetter: obj => obj.rductInfo
, formats : { , formats: {
FFNLG_CRDN_AMT : numberFormat // 과태료 단속 금액 FFNLG_CRDN_AMT: numberFormat // 과태료 단속 금액
, WKSN_RDUCT_RT : numberFormat // 감경 율 , WKSN_RDUCT_RT: numberFormat // 감경 율
, RDUCT_AMT : numberFormat // 감경 금액 , RDUCT_AMT: numberFormat // 감경 금액
} }
}); });
@ -126,17 +124,18 @@
$P.formFields.set($P.control,item); $P.formFields.set($P.control,item);
// 업무구분에 따른 URL 변경 // 업무구분에 따른 URL 변경
$P.setURL(item.data.TASK_SE_CD); $P.fnSetURL(item.data.TASK_SE_CD);
} }
// 저장 callback // 저장 callback
$P.control.onSave = (resp) => { $P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력 // 메시지 출력
dialog.alert({ dialog.alert({
content : showMessage content : showMessage
, init: () => { setDialogZindex(); }
, onOK : () => { } , onOK : () => { }
}); });
@ -152,17 +151,20 @@
let create = ($P.callPurpose == "create"); let create = ($P.callPurpose == "create");
ajax.post({ ajax.post({
url : !create ? $P.control.urls.update : $P.control.urls.create url: !create ? $P.control.urls.update : $P.control.urls.create
, data : info , data: info || {}
, success : resp => $P.control.onSave(resp) , success: resp => $P.control.onSave(resp)
}); });
} }
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/update.do"); // 수정
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
@ -188,12 +190,9 @@
dialog.alert({ dialog.alert({
content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK : () => { , onOK : () => {
// 파리미터 설정 $P.control.save($P.formFields.get()); // formFields
let params = $P.formFields.get(); // formFields
params.title = title; // 타이틀
$P.control.save(params);
} }
}); });
} }
@ -216,28 +215,20 @@
}); });
}); });
// 저장 버튼 이벤트 // 버튼 이벤트
$("#btnSave--${pageName}").on("click", function() { $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
$P.fnSave($(this).attr("title"));
});
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// Dialog 마우스로 드래그 할 수 있도록 설정. // Dialog 마우스로 드래그 할 수 있도록 설정.
fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog")); fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog--${openerPageName}"));
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");
$("#rductYmd--${pageName}").datepicker("setDate", new Date()); $("#rductYmd--${pageName}").datepicker("setDate", new Date());
} }
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/update.do"); // 수정
}
/************************************************************************** /**************************************************************************
* 최초 실행 함수 * 최초 실행 함수
**************************************************************************/ **************************************************************************/

@ -850,7 +850,6 @@
, taskSeCd : $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, vhrno : $P.control.dataset.getValue("VHRNO") // 차량번호 , vhrno : $P.control.dataset.getValue("VHRNO") // 차량번호
, rtpyrInptSeCd : "01" // 납부자 입력 구분 코드 , rtpyrInptSeCd : "01" // 납부자 입력 구분 코드
, delYn : "N"
}; };
$P.updatePayer(params); $P.updatePayer(params);

@ -925,7 +925,7 @@
if (levyExcl) $P.levyExclControl.setData([levyExcl]); if (levyExcl) $P.levyExclControl.setData([levyExcl]);
$P.crdnSttsHstryControl.setData(${crdnSttsHstry}); // 단속상태 이력 $P.crdnSttsHstryControl.setData(${crdnSttsHstry}); // 단속상태 이력
$P.payerHstryControl.setData(${payerHstry}); // 납부자 이력 $P.payerHstryControl.setData(${payerAddrHstry}); // 납부자주소 이력
}); });
</script> </script>

Loading…
Cancel
Save