1. 부과 관리 수정.

2. 기타 수정.
main
jjh 12 months ago
parent 4e96b0dbc6
commit 5abdc3ad31

@ -17,41 +17,41 @@ public class EpostQuery extends CmmnQuery {
private static final long serialVersionUID = 1L;
// ID
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] sndngIDs; // 발송 IDs
private String sndngId; // 발송 ID
private String[] sndngDtlIDs; // 발송 상세 IDs
private String sndngDtlId; // 발송 상세 ID
private String[] svbtcIDs; // 공시송달 IDs
private String svbtcId; // 공시송달 ID
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] sndngIDs; // 발송 IDs
private String sndngId; // 발송 ID
private String[] sndngDtlIDs; // 발송 상세 IDs
private String sndngDtlId; // 발송 상세 ID
private String[] svbtcIDs; // 공시송달 IDs
private String svbtcId; // 공시송달 ID
// 검색 조건
private String schLevyExclYmdFrom; // 부과제외_부과제외 일자 시작
private String schLevyExclYmdTo; // 부과제외_부과제외 일자 종료
private String schLevyExclSeCd; // 부과제외_부과제외 구분 코드
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String schSndngYmdFrom; // 발송 대장(TB_SNDNG)_발송 일자 시작
private String schSndngYmdTo; // 발송 대장(TB_SNDNG)_발송 일자 종료
private String schLevyExclYmdFrom; // 부과제외_부과제외 일자 시작
private String schLevyExclYmdTo; // 부과제외_부과제외 일자 종료
private String schLevyExclSeCd; // 부과제외_부과제외 구분 코드
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String schSndngYmdFrom; // 발송 대장(TB_SNDNG)_발송 일자 시작
private String schSndngYmdTo; // 발송 대장(TB_SNDNG)_발송 일자 종료
// 상세 검색 조건
private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분
private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작
private String schDetailRegDtTo; // 상세 검색 등록 일자 종료
private String schDetailRgtrOpt; // 상세 검색 등록 사용자 구분
private String schDetailRgtrNm; // 상세 검색 등록 사용자 명
private String schDetailRgtrCd; // 상세 검색 등록 사용자 코드
private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분
private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작
private String schDetailRegDtTo; // 상세 검색 등록 일자 종료
private String schDetailRgtrOpt; // 상세 검색 등록 사용자 구분
private String schDetailRgtrNm; // 상세 검색 등록 사용자 명
private String schDetailRgtrCd; // 상세 검색 등록 사용자 코드
// 동적 검색 조건
private String vhrno; // 단속(TB_CRDN)_차량번호
private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String crdnSttsCd; // 단속(TB_CRDN)_단속 상태 코드
private String sndngSeCd; // 발송 구분 코드
private String vhrno; // 단속(TB_CRDN)_차량번호
private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String crdnSttsCd; // 단속(TB_CRDN)_단속 상태 코드
private String sndngSeCd; // 발송 구분 코드
// ETC
private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회)
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
public String[] getCrdnIDs() {
return ifEmpty(crdnIDs, () -> null);

@ -17,48 +17,48 @@ public class LevyExclQuery extends CmmnQuery {
private static final long serialVersionUID = 1L;
// ID
private String crdnId; // 단속 ID
private String[] levyExclIDs; // 부과제외 IDs
private String levyExclId; // 부과제외 ID
private String[] opnnIDs; // 의견제출 ID
private String opnnId; // 의견제출 ID
private String[] reRegIDs; // 재등록 IDs
private String reRegId; // 재등록 ID
private String crdnId; // 단속 ID
private String[] levyExclIDs; // 부과제외 IDs
private String levyExclId; // 부과제외 ID
private String[] opnnIDs; // 의견제출 ID
private String opnnId; // 의견제출 ID
private String[] reRegIDs; // 재등록 IDs
private String reRegId; // 재등록 ID
// 검색 조건
private String schLevyExclYmdFrom; // 부과제외_부과제외 일자 시작
private String schLevyExclYmdTo; // 부과제외_부과제외 일자 종료
private String schLevyExclSeCd; // 부과제외_부과제외 구분 코드
private String schRcptYmdFrom; // 의견제출_접수 일자 시작
private String schRcptYmdTo; // 의견제출_접수 일자 종료
private String schAnsYmdFrom; // 의견제출_답변 일자 시작
private String schAnsYmdTo; // 의견제출_답변 일자 종료
private String schOpnnSbmsnSttsCd; // 의견제출_의견 제출 상태 코드
private String schSttrNm; // 의견제출_진술자 명
private String schReRegYmdFrom; // 단속재등록_재등록 일자 시작
private String schReRegYmdTo; // 단속재등록_재등록 일자 종료
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String schLevyExclYmdFrom; // 부과제외_부과제외 일자 시작
private String schLevyExclYmdTo; // 부과제외_부과제외 일자 종료
private String schLevyExclSeCd; // 부과제외_부과제외 구분 코드
private String schRcptYmdFrom; // 의견제출_접수 일자 시작
private String schRcptYmdTo; // 의견제출_접수 일자 종료
private String schAnsYmdFrom; // 의견제출_답변 일자 시작
private String schAnsYmdTo; // 의견제출_답변 일자 종료
private String schOpnnSbmsnSttsCd; // 의견제출_의견 제출 상태 코드
private String schSttrNm; // 의견제출_진술자 명
private String schReRegYmdFrom; // 단속재등록_재등록 일자 시작
private String schReRegYmdTo; // 단속재등록_재등록 일자 종료
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
// 상세 검색 조건
private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분
private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작
private String schDetailRegDtTo; // 상세 검색 등록 일자 종료
private String schDetailRgtrOpt; // 상세 검색 등록 사용자 구분
private String schDetailRgtrNm; // 상세 검색 등록 사용자 명
private String schDetailRgtrCd; // 상세 검색 등록 사용자 코드
private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분
private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작
private String schDetailRegDtTo; // 상세 검색 등록 일자 종료
private String schDetailRgtrOpt; // 상세 검색 등록 사용자 구분
private String schDetailRgtrNm; // 상세 검색 등록 사용자 명
private String schDetailRgtrCd; // 상세 검색 등록 사용자 코드
// 동적 검색 조건
private String levyExclSeCd; // 부과제외_부과 제외 구분 코드
private String levyExclSeNm; // 부과제외_부과 제외 구분 명
private String vhrno; // 단속(TB_CRDN)_차량번호
private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String levyExclSeCd; // 부과제외_부과 제외 구분 코드
private String levyExclSeNm; // 부과제외_부과 제외 구분 명
private String vhrno; // 단속(TB_CRDN)_차량번호
private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명
// ETC
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
private String ansRsnCd; // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) - 답변 사유 코드
private String sndngRcvmtCd; // 발송 수납 코드
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
private String ansRsnCd; // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) - 답변 사유 코드
private String sndngRcvmtCd; // 발송 수납 코드
public String getCrdnId() {
return ifEmpty(crdnId, () -> null);
@ -334,7 +334,7 @@ public class LevyExclQuery extends CmmnQuery {
this.schDetailRgtrCd = schDetailRgtrCd;
return self();
}
// 상세검색 조건 ///////////////////////////////////////////////////////////////
// 상세 검색 조건 ///////////////////////////////////////////////////////////////
// 동적 검색 조건 ///////////////////////////////////////////////////////////////
public String getLevyExclSeNm() {

@ -22,6 +22,11 @@ public class Levy extends AbstractEntity {
*/
private String sggCd;
/**
*
*/
private String taskSeCd;
/**
* ID
*/

@ -17,34 +17,46 @@ public class LevyQuery extends CmmnQuery {
private static final long serialVersionUID = 1L;
// ID
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] levyIDs; // 부과 IDs
private String levyId; // 부과 ID
private String[] rductIDs; // 감경 IDs
private String rductId; // 감경 ID
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] levyIDs; // 부과 IDs
private String levyId; // 부과 ID
private String[] rductIDs; // 감경 IDs
private String rductId; // 감경 ID
// 검색 조건
private String schRductYmdFrom; // 감경 일자 시작
private String schRductYmdTo; // 감경 일자 종료
private String schCrdnYmdFrom; // 단속 일자 시작
private String schCrdnYmdTo; // 단속 일자 종료
private String schVhrno; // 차량번호
private String schRtpyrNo; // 납부자 번호
private String schRtpyrNm; // 납부자 명
private String schFyr; // 회계연도
private String schLevyNoFrom; // 부과 번호 시작
private String schLevyNoTo; // 부과 번호 종료
private String schLevyYmdFrom; // 부과 일자 시작
private String schLevyYmdTo; // 부과 일자 종료
private String schRductYmdFrom; // 감경 일자 시작
private String schRductYmdTo; // 감경 일자 종료
private String schCrdnYmdFrom; // 단속 일자 시작
private String schCrdnYmdTo; // 단속 일자 종료
private String schVhrno; // 차량번호
private String schRtpyrNo; // 납부자 번호
private String schRtpyrNm; // 납부자 명
// 상세 검색 조건
private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분
private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작
private String schDetailRegDtTo; // 상세 검색 등록 일자 종료
private String schDetailRgtrOpt; // 상세 검색 등록 사용자 구분
private String schDetailRgtrNm; // 상세 검색 등록 사용자 명
private String schDetailRgtrCd; // 상세 검색 등록 사용자 코드
// ETC
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
private String tnocs; // 총건수
private String gramt; // 총금액
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
private String tnocs; // 총건수
private String gramt; // 총금액
// 부과 등록
private String fyr; // 회계연도
private String acntgSeCd; // 회계 구분 코드
private String txitmCd; // 세목 코드
private String levyYmd; // 부과 일자
private String dudtYmd; // 납기 일자
private String crdnSttsCd; // 단속 상태 코드
private String fyr; // 회계연도
private String acntgSeCd; // 회계 구분 코드
private String txitmCd; // 세목 코드
private String levyYmd; // 부과 일자
private String dudtYmd; // 납기 일자
private String crdnSttsCd; // 단속 상태 코드
// ID
public String[] getCrdnIDs() {
@ -107,7 +119,7 @@ public class LevyQuery extends CmmnQuery {
return self();
}
// 검색 조건
// 검색 조건 //////////////////////////////////////////////////////////////////
public String getSchRductYmdFrom() {
return ifEmpty(schRductYmdFrom, () -> null);
}
@ -126,6 +138,51 @@ public class LevyQuery extends CmmnQuery {
return self();
}
public String getSchFyr() {
return ifEmpty(schFyr, () -> null);
}
public <T extends LevyQuery> T setSchFyr(String schFyr) {
this.schFyr = schFyr;
return self();
}
public String getSchLevyNoFrom() {
return ifEmpty(schLevyNoFrom, () -> null);
}
public <T extends LevyQuery> T setSchLevyNoFrom(String schLevyNoFrom) {
this.schLevyNoFrom = schLevyNoFrom;
return self();
}
public String getSchLevyNoTo() {
return ifEmpty(schLevyNoTo, () -> null);
}
public <T extends LevyQuery> T setSchLevyNoTo(String schLevyNoTo) {
this.schLevyNoTo = schLevyNoTo;
return self();
}
public String getSchLevyYmdFrom() {
return ifEmpty(schLevyYmdFrom, () -> null);
}
public <T extends LevyQuery> T setSchLevyYmdFrom(String schLevyYmdFrom) {
this.schLevyYmdFrom = schLevyYmdFrom;
return self();
}
public String getSchLevyYmdTo() {
return ifEmpty(schLevyYmdTo, () -> null);
}
public <T extends LevyQuery> T setSchLevyYmdTo(String schLevyYmdTo) {
this.schLevyYmdTo = schLevyYmdTo;
return self();
}
public String getSchCrdnYmdFrom() {
return ifEmpty(schCrdnYmdFrom, () -> null);
}
@ -170,8 +227,65 @@ public class LevyQuery extends CmmnQuery {
this.schRtpyrNm = schRtpyrNm;
return self();
}
// 검색 조건 //////////////////////////////////////////////////////////////////
// ETC
// 상세 검색 조건 ///////////////////////////////////////////////////////////////
public String getSchDetailRegDtOpt() {
return ifEmpty(schDetailRegDtOpt, () -> null);
}
public <T extends LevyQuery> T setSchDetailRegDtOpt(String schDetailRegDtOpt) {
this.schDetailRegDtOpt = schDetailRegDtOpt;
return self();
}
public String getSchDetailRegDtFrom() {
return ifEmpty(schDetailRegDtFrom, () -> null);
}
public <T extends LevyQuery> T setSchDetailRegDtFrom(String schDetailRegDtFrom) {
this.schDetailRegDtFrom = schDetailRegDtFrom;
return self();
}
public String getSchDetailRegDtTo() {
return ifEmpty(schDetailRegDtTo, () -> null);
}
public <T extends LevyQuery> T setSchDetailRegDtTo(String schDetailRegDtTo) {
this.schDetailRegDtTo = schDetailRegDtTo;
return self();
}
public String getSchDetailRgtrOpt() {
return ifEmpty(schDetailRgtrOpt, () -> null);
}
public <T extends LevyQuery> T setSchDetailRgtrOpt(String schDetailRgtrOpt) {
this.schDetailRgtrOpt = schDetailRgtrOpt;
return self();
}
public String getSchDetailRgtrNm() {
return ifEmpty(schDetailRgtrNm, () -> null);
}
public <T extends LevyQuery> T setSchDetailRgtrNm(String schDetailRgtrNm) {
this.schDetailRgtrNm = schDetailRgtrNm;
return self();
}
public String getSchDetailRgtrCd() {
return ifEmpty(schDetailRgtrCd, () -> null);
}
public <T extends LevyQuery> T setSchDetailRgtr(String schDetailRgtrCd) {
this.schDetailRgtrCd = schDetailRgtrCd;
return self();
}
// 상세 검색 조건 ///////////////////////////////////////////////////////////////
// ETC ////////////////////////////////////////////////////////////////////
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);
}
@ -211,6 +325,7 @@ public class LevyQuery extends CmmnQuery {
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
public String getTnocs() {
return ifEmpty(tnocs, () -> null);
@ -231,8 +346,9 @@ public class LevyQuery extends CmmnQuery {
return self();
}
// ETC ////////////////////////////////////////////////////////////////////
//
// 부과 등록 //////////////////////////////////////////////////////////////////
public String getFyr() {
return ifEmpty(fyr, () -> null);
}
@ -292,5 +408,6 @@ public class LevyQuery extends CmmnQuery {
return self();
}
// 부과 등록 //////////////////////////////////////////////////////////////////
}

@ -6,7 +6,6 @@ import java.util.Map;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
@ -39,6 +38,8 @@ public class Levy01Controller extends ApplicationController {
, getReductionLevyTargetList = "/010/list.do" // 사전 감경부과 대상 대장 목록 조회
, getReductionLevyTargetInfo = "/020/info.do" // 사전 감경부과 대상 정보
, createReductionLevyList = "/020/createRductLevyList.do" // 사전 감경부과 대장 등록
, levyMain = "/030/main.do" // 부과 관리 메인 화면
, getLevyList = "/030/list.do" // 부과 대장 목록 조회
;
}
@ -126,10 +127,24 @@ public class Levy01Controller extends ApplicationController {
.addObject("retMessage", retMessage);
}
/** (levy/levy01030-main) .
* @return
*/
public ModelAndView levyMain() {
ModelAndView mav = new ModelAndView("fims/levy/levy01030-main");
// 사용자 정보
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
return mav.addObject("pageName", "levy01030") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "rductLevyTrgt") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
;
}
/** .<br />
* {@link LevyService#getLevyList(LevyQuery)}
@ -142,15 +157,12 @@ public class Levy01Controller extends ApplicationController {
* "levyTotal":
* }</code></pre>
*/
@RequestMapping(name = "부과 대장 조회", value = "/020/list.do")
public ModelAndView getLevyList(LevyQuery req) {
List<?> result = levyService.getLevyList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "levy");
}
/** .
* @param levy
* @return jsonView

@ -8,6 +8,7 @@ import javax.annotation.Resource;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.user.ManagedUser;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct;
@ -30,13 +31,13 @@ public class Levy02Controller extends ApplicationController {
public class METHOD_URL {
public static final String
reductionMain = "/010/main.do" // 과태료 감경 관리 메인 화면
, getRductList = "/010/list.do" // 과태료 감경 대장 목록 조회
, removeRduct = "/010/remove.do" // 과태료 감경 대장 삭제
, removeRductList = "/010/removes.do" // 과태료 감경 대장 목록 삭제
, getRductInfo = "/020/info.do" // 과태료 감경 정보 조회
, createRduct = "/020/create.do" // 과태료 감경 대장 등럭
, updateRduct = "/020/update.do" // 과태료 감경 대장 수정
reductionMain = "/010/main.do" // 과태료 감경 관리 메인 화면
, getRductList = "/010/list.do" // 과태료 감경 대장 목록 조회
, removeRduct = "/010/remove.do" // 과태료 감경 대장 삭제
, removeRductList = "/010/removes.do" // 과태료 감경 대장 목록 삭제
, getRductInfo = "/020/info.do" // 과태료 감경 정보 조회
, createRduct = "/020/create.do" // 과태료 감경 대장 등럭
, updateRduct = "/020/update.do" // 과태료 감경 대장 수정
;
}
@ -49,16 +50,34 @@ public class Levy02Controller extends ApplicationController {
* @return /rduct/rduct-main
*/
public ModelAndView reductionMain() {
ModelAndView mav = getRductList(new LevyQuery().setPageNum(1));
mav.setViewName("fims/levy/levy02010-main");
mav.addObject("pageName","levy02010-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM010", "FIM019", "FIM054");
mav.addObject("FIM054List", commonCodes.get("FIM054"));
addCodes(commonCodes, mav, "FIM010", "FIM019");
return mav.addObject("rductList", toJson(mav.getModel().get("rductList")));
// ModelAndView mav = new ModelAndView("fims/levy/levy02010-main");
//
// 사용자 정보
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
//
// // View(jsp)에서 사용할 공통코드를 조회
// Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM010", "FIM019", "FIM054");
//
// return mav.addObject("pageName", "levy02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
// .addObject("infoPrefix", "rductLevyTrgt") // prefix
// .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
// .addObject("FIM010List", commonCodes.get("FIM010")) // 단속 처리 상태 코드(CRDN_STTS_CD)
// .addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
// .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
// ;
ModelAndView mav = getRductList(new LevyQuery().setPageNum(1));
mav.setViewName("fims/levy/levy02010-main");
mav.addObject("pageName","levy02010-main");
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM010", "FIM019", "FIM054");
mav.addObject("FIM054List", commonCodes.get("FIM054"));
addCodes(commonCodes, mav, "FIM010", "FIM019");
return mav.addObject("rductList", toJson(mav.getModel().get("rductList")));
}
/** .<br />

@ -17,19 +17,19 @@ public class NxrpMtchgQuery extends QueryRequest {
private static final long serialVersionUID = 1L;
// ID
private String mtchgId; // 매칭 ID
private String lvyKey; // 부과 키
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] sndngIDs; // 발송 IDs
private String sndngId; // 발송 ID
private String[] sndngDtlIDs; // 발송 상세 IDs
private String sndngDtlId; // 발송 상세 ID
private String mtchgId; // 매칭 ID
private String lvyKey; // 부과 키
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] sndngIDs; // 발송 IDs
private String sndngId; // 발송 ID
private String[] sndngDtlIDs; // 발송 상세 IDs
private String sndngDtlId; // 발송 상세 ID
// ETC
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
public String getMtchgId() {
return ifEmpty(mtchgId, () -> null);

@ -32,7 +32,7 @@ public class PayerQuery extends QueryRequest {
/** 삭제 여부 */
private String delYn;
/** 호출 용도 */
private String callPurpose;
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
/** ID .
* @return ID

@ -1,6 +1,7 @@
package cokr.xit.fims.rcvm;
import cokr.xit.fims.cmmn.CmmnQuery;
import cokr.xit.fims.excl.LevyExclQuery;
/**
*
@ -17,23 +18,30 @@ public class RcvmtQuery extends CmmnQuery {
private static final long serialVersionUID = 1L;
// ID
private String crdnId; // 단속 ID
private String levyId; // 부과 ID
private String[] rcvmtIDs; // 수납 IDs
private String rcvmtId; // 수납 ID
//
private String schPstmrkYmdFrom; // 수납(TB_RCVMT)_소인 일자 시작
private String schPstmrkYmdTo; // 수납(TB_RCVMT)_소인 일자 종료
private String schRcvmtYmdFrom; // 수납(TB_RCVMT)_수납 일자 시작
private String schRcvmtYmdTo; // 수납(TB_RCVMT)_수납 일자 종료
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String crdnId; // 단속 ID
private String levyId; // 부과 ID
private String[] rcvmtIDs; // 수납 IDs
private String rcvmtId; // 수납 ID
// 검색 조건
private String schPstmrkYmdFrom; // 수납(TB_RCVMT)_소인 일자 시작
private String schPstmrkYmdTo; // 수납(TB_RCVMT)_소인 일자 종료
private String schRcvmtYmdFrom; // 수납(TB_RCVMT)_수납 일자 시작
private String schRcvmtYmdTo; // 수납(TB_RCVMT)_수납 일자 종료
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schVhrno; // 단속(TB_CRDN)_차량번호
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
// 상세 검색 조건
private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분
private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작
private String schDetailRegDtTo; // 상세 검색 등록 일자 종료
private String schDetailRgtrOpt; // 상세 검색 등록 사용자 구분
private String schDetailRgtrNm; // 상세 검색 등록 사용자 명
private String schDetailRgtrCd; // 상세 검색 등록 사용자 코드
// ETC
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, remove 삭제, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, remove 삭제, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
public String getCrdnId() {
return ifEmpty(crdnId, () -> null);
@ -152,6 +160,62 @@ public class RcvmtQuery extends CmmnQuery {
return self();
}
// 상세 검색 조건 ///////////////////////////////////////////////////////////////
public String getSchDetailRegDtOpt() {
return ifEmpty(schDetailRegDtOpt, () -> null);
}
public <T extends LevyExclQuery> T setSchDetailRegDtOpt(String schDetailRegDtOpt) {
this.schDetailRegDtOpt = schDetailRegDtOpt;
return self();
}
public String getSchDetailRegDtFrom() {
return ifEmpty(schDetailRegDtFrom, () -> null);
}
public <T extends LevyExclQuery> T setSchDetailRegDtFrom(String schDetailRegDtFrom) {
this.schDetailRegDtFrom = schDetailRegDtFrom;
return self();
}
public String getSchDetailRegDtTo() {
return ifEmpty(schDetailRegDtTo, () -> null);
}
public <T extends LevyExclQuery> T setSchDetailRegDtTo(String schDetailRegDtTo) {
this.schDetailRegDtTo = schDetailRegDtTo;
return self();
}
public String getSchDetailRgtrOpt() {
return ifEmpty(schDetailRgtrOpt, () -> null);
}
public <T extends LevyExclQuery> T setSchDetailRgtrOpt(String schDetailRgtrOpt) {
this.schDetailRgtrOpt = schDetailRgtrOpt;
return self();
}
public String getSchDetailRgtrNm() {
return ifEmpty(schDetailRgtrNm, () -> null);
}
public <T extends LevyExclQuery> T setSchDetailRgtrNm(String schDetailRgtrNm) {
this.schDetailRgtrNm = schDetailRgtrNm;
return self();
}
public String getSchDetailRgtrCd() {
return ifEmpty(schDetailRgtrCd, () -> null);
}
public <T extends LevyExclQuery> T setSchDetailRgtr(String schDetailRgtrCd) {
this.schDetailRgtrCd = schDetailRgtrCd;
return self();
}
// 상세 검색 조건 ///////////////////////////////////////////////////////////////
// ETC /////////////////////////////////////////////////////////////////////
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);

@ -65,7 +65,7 @@ public class SndbQuery extends CmmnQuery {
private String rcpnRelNm3;
private String rcpnRelNm4;
// ETC
private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회)
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부

@ -231,10 +231,19 @@ public class CmnController {
return super.reductionLevyTargetMain();
}
/** .
* @return fims/levy/levy01030-main
*/
@Override
@RequestMapping(name="사전 감경부과 등록 메인", value="/030/main.do")
public ModelAndView levyMain() {
return super.levyMain();
}
}
@Controller
@RequestMapping(name="과태료 감경 관리", value="/levy/levy02")
@RequestMapping(name="과태료 감경 관리", value=Levy02Controller.CLASS_URL)
class Levy02Controller extends cokr.xit.fims.levy.web.Levy02Controller {
/** .

@ -484,6 +484,12 @@ public class DpvController {
return super.createReductionLevyList(req);
}
@Override
@RequestMapping(name="부과 대장 목록 조회", value=METHOD_URL.getLevyList)
public ModelAndView getLevyList(LevyQuery req) {
return super.getLevyList(req);
}
}
@Controller

@ -30,68 +30,68 @@
</resultMap>
<sql id="selectList">
SELECT LE.LEVY_EXCL_ID <!-- 부과제외 ID -->
, LE.LEVY_EXCL_YMD <!-- 부과제외 일자 -->
, LE.LEVY_EXCL_SE_CD <!-- 부과제외 구분 코드 -->
, (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM <!-- 부과 제외 구분 명 -->
, LE.LEVY_EXCL_RSN_CD <!-- 부과제외 사유 코드 -->
, (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM <!-- 부과 제외 사유 명 -->
, LE.ETC_CN <!-- 기타 내용 -->
, LE.DEL_YN <!-- 삭제 여부 -->
, LE.REG_DT <!-- 등록 일시 -->
, LE.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, LE.MDFCN_DT <!-- 수정 일시 -->
, LE.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, LE.DEL_DT <!-- 삭제 일시 -->
, LE.DLTR <!-- 삭제자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
, LE.DEL_RSN <!-- 삭제 사유 -->
, C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, C.CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
, (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM <!-- 단속 등록 구분 명 -->
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM <!-- 단속 입력 구분 명 -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, CA.CRDN_SE_CD <!-- 단속 구분 코드 -->
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM <!-- 단속 구분 명 -->
, CA.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
, CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM<!-- 주차 가능 결과 명 -->
, VI.VLTN_ID <!-- 위반 ID -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_SE_CD <!-- 납부자 구분 코드 -->
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM <!-- 납부자 구분 명 -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.ZIP <!-- 우편번호 -->
, P.ADDR <!-- 주소 -->
, P.DTL_ADDR <!-- 상세 주소 -->
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM <!-- 민원 처리 명 -->
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
SELECT LE.LEVY_EXCL_ID /* 부과제외 ID */
, LE.SGG_CD /* 시군구 코드 */
, LE.TASK_SE_CD /* 업무 구분 코드 */
, LE.LEVY_EXCL_YMD /* 부과제외 일자 */
, LE.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */
, LE.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */
, LE.ETC_CN /* 기타 내용 */
, LE.DEL_YN /* 삭제 여부 */
, LE.REG_DT /* 등록 일시 */
, LE.RGTR /* 등록자 */
, LE.MDFCN_DT /* 수정 일시 */
, LE.MDFR /* 수정자 */
, LE.DEL_DT /* 삭제 일시 */
, LE.DLTR /* 삭제자 */
, LE.DEL_RSN /* 삭제 사유 */
, C.CRDN_ID /* 단속 ID */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, CA.CRDN_SE_CD /* 단속 구분 코드 */
, CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */
, CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */
, VI.VLTN_ID /* 위반 ID */
, VI.VLTN_CD /* 위반 코드 */
, VI.VLTN_ARTCL /* 위반 항목 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_BRDT /* 납부자 생년월일 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, CC.CVLCPT_LINK_ID /* 민원 연계 ID */
, CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */
, CC.CVLCPT_APLY_NO /* 민원 신청 번호 */
, CC.CVLCPT_RCPT_NO /* 민원 접수 번호 */
, CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, (SELECT GET_CODE_NM('FIM054', LE.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */
, (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */
, (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.DLTR) AS DLTR_NM /* 삭제자 명 */
FROM TB_LEVY_EXCL LE
INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
@ -103,46 +103,51 @@
<select id="selectLevyExclList" parameterType="map" resultType="dataobject">/* 부과제외 대장 목록 조회(levyExclMapper.selectLevyExclList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
</if>
<if test="schLevyExclYmdFrom != null">
AND LE.LEVY_EXCL_YMD <![CDATA[ >= ]]> #{schLevyExclYmdFrom} <!-- 부과제외 일자 시작 -->
AND LE.LEVY_EXCL_YMD <![CDATA[>=]]> #{schLevyExclYmdFrom} /* 부과제외 일자 시작 */
</if>
<if test="schLevyExclYmdTo != null">
AND LE.LEVY_EXCL_YMD <![CDATA[ <= ]]> #{schLevyExclYmdTo} <!-- 부과제외 일자 종료 -->
AND LE.LEVY_EXCL_YMD <![CDATA[<=]]> #{schLevyExclYmdTo} /* 부과제외 일자 종료 */
</if>
<if test="schLevyExclSeCd != null">
AND LE.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} <!-- 부과 제외 구분 코드 -->
AND LE.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} /* 부과 제외 구분 코드 */
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
AND C.CRDN_YMD <![CDATA[>=]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
</if>
<if test="delYn != null">
AND LE.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailRegDtFrom} <!-- 등록 일자 시작 -->
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailRegDtTo} <!-- 등록 일자 종료 -->
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailRegDtFrom} <!-- 수정 일자 시작 -->
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailRegDtTo} <!-- 수정 일자 종료 -->
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
@ -151,12 +156,12 @@
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND LE.RGTR = #{schDetailRgtrCd} <!-- 등록자 코드 -->
AND LE.RGTR = #{schDetailRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND LE.MDFR = #{schDetailRgtrCd} <!-- 수정자 코드 -->
AND LE.MDFR = #{schDetailRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
@ -165,18 +170,18 @@
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 등록 일자 시작 -->
AND SUBSTR(C.REG_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 등록 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 등록 일자 종료 -->
AND SUBSTR(C.REG_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 등록 일자 종료 */
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 수정 일자 시작 -->
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 수정 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 수정 일자 종료 -->
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 수정 일자 종료 */
</if>
</when>
<otherwise>
@ -185,23 +190,17 @@
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} <!-- 등록자 코드 -->
AND C.RGTR = #{schDetailCrdnRgtrCd} /* 단속 등록자 코드 */
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} <!-- 수정자 코드 -->
AND C.MDFR = #{schDetailCrdnRgtrCd} /* 단속 수정자 코드 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<if test="delYn != null">
AND LE.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if>
<if test="crdnDelYn != null">
AND C.DEL_YN = #{crdnDelYn} <!-- 단속 삭제 여부 -->
</if>
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">

@ -10,6 +10,7 @@
<resultMap id="levyRow" type="cokr.xit.fims.levy.Levy">
<result property="levyId" column="LEVY_ID" /> <!-- 부과 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID -->
<result property="instCd" column="INST_CD" /> <!-- 기관 코드 -->
@ -236,105 +237,248 @@
</select>
<sql id="select">
SELECT LEVY_ID /* 부과 ID */
, SGG_CD /* 시군구 코드 */
, CRDN_ID /* 단속 ID */
, RTPYR_ID /* 납부자 ID */
, INST_CD /* 기관 코드 */
, DEPT_CD /* 부서 코드 */
, FYR /* 회계 연도 */
, ACNTG_SE_CD /* 회계 구분 코드 */
, TXITM_CD /* 세목 코드 */
, OPER_ITEM_CD /* 운영 항목 코드 */
, SPCL_BIZ_CD /* 특별회계 사업 코드 */
, LEVY_NO /* 부과 번호 */
, INSPY_SN /* 분납 순번 */
, LEVY_SE_CD /* 부과 구분 코드 */
, UNTY_SE_CD /* 통합 구분 코드 */
, INSPY_SE_NM /* 분납 구분 명 */
, RDUCT_SE_NM /* 감경 구분 명 */
, LEVY_YMD /* 부과 일자 */
, FRST_DUDT_YMD /* 최초 납기 일자 */
, DUDT_YMD /* 납기 일자 */
, DUDT_AFTR_YMD /* 납기 후 일자 */
, FFNLG_AMT /* 과태료 금액 */
, LEVY_PCPTAX /* 부과 본세 */
, LEVY_ADAMT /* 부과 가산금 */
, INSPY_INT /* 분납 이자 */
, RCVMT_PCPTAX /* 수납 본세 */
, RCVMT_ADAMT /* 수납 가산금 */
, RDCAMT_PCPTAX /* 감액 본세 */
, RDCAMT_ADAMT /* 감액 가산금 */
, SUM_AMT /* 합계 금액 */
, DUDT_AFTR_AMT /* 납기 후 금액 */
, TXTN_THING /* 과세 물건 */
, MNG_ARTCL1 /* 관리 항목 1 */
, MNG_ARTCL2 /* 관리 항목 2 */
, MNG_ARTCL3 /* 관리 항목 3 */
, MNG_ARTCL4 /* 관리 항목 4 */
, MNG_ARTCL5 /* 관리 항목 5 */
, MNG_ARTCL6 /* 관리 항목 6 */
, LEVY_STTS_NM /* 부과 상태 명 */
, NPMNT_RSN_CD /* 체납 사유 코드 */
, RCVMT_YMD /* 수납 일자 */
, PAY_MTHD_SE_CD /* 납부 방법 구분 코드 */
, SZR_YMD /* 압류 일자 */
, SZR_THING /* 압류 물건 */
, RPM_SZR_VHRNO /* 대체 압류 자동차등록번호 */
, SZR_RMV_YMD /* 압류 해제 일자 */
, SZR_RMV_RSN /* 압류 해제 사유 */
, ETC_CN /* 기타 내용 */
, EPAYNO /* 전자납부번호 */
, BANK_NM /* 은행 명 */
, VR_ACTNO /* 가상 계좌번호 */
, BANK_NM2 /* 은행 명 2 */
, VR_ACTNO2 /* 가상 계좌번호 2 */
, BANK_NM3 /* 은행 명 3 */
, VR_ACTNO3 /* 가상 계좌번호 3 */
, BANK_NM4 /* 은행 명 4 */
, VR_ACTNO4 /* 가상 계좌번호 4 */
, BANK_NM5 /* 은행 명 5 */
, VR_ACTNO5 /* 가상 계좌번호 5 */
, BANK_NM6 /* 은행 명 6 */
, VR_ACTNO6 /* 가상 계좌번호 6 */
, BANK_NM7 /* 은행 명 7 */
, VR_ACTNO7 /* 가상 계좌번호 7 */
, BANK_NM8 /* 은행 명 8 */
, VR_ACTNO8 /* 가상 계좌번호 8 */
, BANK_NM9 /* 은행 명 9 */
, VR_ACTNO9 /* 가상 계좌번호 9 */
, BANK_NM10 /* 은행 명 10 */
, VR_ACTNO10 /* 가상 계좌번호 10 */
, BANK_NM11 /* 은행 명 11 */
, VR_ACTNO11 /* 가상 계좌번호 11 */
, NXRP_LEVY_KEY /* 세외수입 부과 키 */
, DEL_YN /* 삭제 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
, DEL_DT /* 삭제 일시 */
, DLTR /* 삭제자 */
, DEL_RSN /* 삭제 사유 */
, (SELECT GET_CODE_NM('FIM074', L.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */
, (SELECT GET_CODE_NM('FIM075', L.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */
, (SELECT GET_CODE_NM('FIM077', L.SPCL_BIZ_CD) FROM DUAL) AS SPCL_BIZ_NM /* 특별회계 사업 코드 명 */
, (SELECT GET_CODE_NM('FIM040', L.LEVY_SE_CD) FROM DUAL) AS LEVY_SE_NM /* 부과 구분 코드 */
, (SELECT GET_CODE_NM('FIM072', L.UNTY_SE_CD) FROM DUAL) AS UNTY_SE_NM /* 통합 구분 코드 */
, (SELECT GET_MASK_EPAYNO(EPAYNO) FROM DUAL) AS EPAYNO_MASK /* 전자납부번호 마스크 */
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_RSN_CD) FROM DUAL) AS NPMNT_RSN_NM /* 체납 사유 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM /* 삭제자 명 */
FROM TB_LEVY L
SELECT L.LEVY_ID /* 부과 ID */
, L.SGG_CD /* 시군구 코드 */
, L.TASK_SE_CD /* 업무 구분 코드 */
, L.INST_CD /* 기관 코드 */
, L.DEPT_CD /* 부서 코드 */
, L.FYR /* 회계 연도 */
, L.ACNTG_SE_CD /* 회계 구분 코드 */
, L.TXITM_CD /* 세목 코드 */
, L.OPER_ITEM_CD /* 운영 항목 코드 */
, L.SPCL_BIZ_CD /* 특별회계 사업 코드 */
, L.LEVY_NO /* 부과 번호 */
, L.INSPY_SN /* 분납 순번 */
, L.LEVY_SE_CD /* 부과 구분 코드 */
, L.UNTY_SE_CD /* 통합 구분 코드 */
, L.INSPY_SE_NM /* 분납 구분 명 */
, L.RDUCT_SE_NM /* 감경 구분 명 */
, L.LEVY_YMD /* 부과 일자 */
, L.FRST_DUDT_YMD /* 최초 납기 일자 */
, L.DUDT_YMD /* 납기 일자 */
, L.DUDT_AFTR_YMD /* 납기 후 일자 */
, L.FFNLG_AMT /* 과태료 금액 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, L.SUM_AMT /* 합계 금액 */
, L.DUDT_AFTR_AMT /* 납기 후 금액 */
, L.TXTN_THING /* 과세 물건 */
, L.MNG_ARTCL1 /* 관리 항목 1 */
, L.MNG_ARTCL2 /* 관리 항목 2 */
, L.MNG_ARTCL3 /* 관리 항목 3 */
, L.MNG_ARTCL4 /* 관리 항목 4 */
, L.MNG_ARTCL5 /* 관리 항목 5 */
, L.MNG_ARTCL6 /* 관리 항목 6 */
, L.LEVY_STTS_NM /* 부과 상태 명 */
, L.NPMNT_RSN_CD /* 체납 사유 코드 */
, L.RCVMT_YMD /* 수납 일자 */
, L.PAY_MTHD_SE_CD /* 납부 방법 구분 코드 */
, L.SZR_YMD /* 압류 일자 */
, L.SZR_THING /* 압류 물건 */
, L.RPM_SZR_VHRNO /* 대체 압류 자동차등록번호 */
, L.SZR_RMV_YMD /* 압류 해제 일자 */
, L.SZR_RMV_RSN /* 압류 해제 사유 */
, L.ETC_CN /* 기타 내용 */
, L.EPAYNO /* 전자납부번호 */
, L.BANK_NM /* 은행 명 */
, L.VR_ACTNO /* 가상 계좌번호 */
, L.BANK_NM2 /* 은행 명 2 */
, L.VR_ACTNO2 /* 가상 계좌번호 2 */
, L.BANK_NM3 /* 은행 명 3 */
, L.VR_ACTNO3 /* 가상 계좌번호 3 */
, L.BANK_NM4 /* 은행 명 4 */
, L.VR_ACTNO4 /* 가상 계좌번호 4 */
, L.BANK_NM5 /* 은행 명 5 */
, L.VR_ACTNO5 /* 가상 계좌번호 5 */
, L.BANK_NM6 /* 은행 명 6 */
, L.VR_ACTNO6 /* 가상 계좌번호 6 */
, L.BANK_NM7 /* 은행 명 7 */
, L.VR_ACTNO7 /* 가상 계좌번호 7 */
, L.BANK_NM8 /* 은행 명 8 */
, L.VR_ACTNO8 /* 가상 계좌번호 8 */
, L.BANK_NM9 /* 은행 명 9 */
, L.VR_ACTNO9 /* 가상 계좌번호 9 */
, L.BANK_NM10 /* 은행 명 10 */
, L.VR_ACTNO10 /* 가상 계좌번호 10 */
, L.BANK_NM11 /* 은행 명 11 */
, L.VR_ACTNO11 /* 가상 계좌번호 11 */
, L.NXRP_LEVY_KEY /* 세외수입 부과 키 */
, L.DEL_YN /* 삭제 여부 */
, L.REG_DT /* 등록 일시 */
, L.RGTR /* 등록자 */
, L.MDFCN_DT /* 수정 일시 */
, L.MDFR /* 수정자 */
, L.DEL_DT /* 삭제 일시 */
, L.DLTR /* 삭제자 */
, L.DEL_RSN /* 삭제 사유 */
, C.CRDN_ID /* 단속 ID */
, C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_BRDT /* 납부자 생년월일 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, (SELECT GET_CODE_NM('FIM054', L.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM074', L.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */
, (SELECT GET_CODE_NM('FIM075', L.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */
, (SELECT GET_CODE_NM('FIM077', L.SPCL_BIZ_CD) FROM DUAL) AS SPCL_BIZ_NM /* 특별회계 사업 코드 명 */
, (SELECT GET_CODE_NM('FIM040', L.LEVY_SE_CD) FROM DUAL) AS LEVY_SE_NM /* 부과 구분 코드 */
, (SELECT GET_CODE_NM('FIM072', L.UNTY_SE_CD) FROM DUAL) AS UNTY_SE_NM /* 통합 구분 코드 */
, (SELECT GET_MASK_EPAYNO(L.EPAYNO) FROM DUAL) AS EPAYNO_MASK /* 전자납부번호 마스크 */
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_RSN_CD) FROM DUAL) AS NPMNT_RSN_NM /* 체납 사유 명 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (SELECT GET_MASK_DATETIME(C.CRDN_YMD,'-',C.CRDN_TM,':') FROM DUAL) AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM /* 삭제자 명 */
FROM TB_LEVY L
INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
</sql>
<select id="selectLevyList" parameterType="map" resultType="dataobject">/* 부과 대장 목록 조회(levyMapper.selectLevyList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
WHERE L.SGG_CD = #{sggCd} /* 시군구 코드 */
<if test="taskSeCd != null">
AND L.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
</if>
<if test="schFyr != null">
AND L.FYR = #{schFyr} /* 회계연도 */
</if>
<if test="schLevyNoFrom != null">
AND L.LEVY_NO <![CDATA[>=]]> #{schLevyNoFrom} /* 부과 번호 시작 */
</if>
<if test="schLevyNoTo != null">
AND L.LEVY_NO <![CDATA[<=]]> #{schLevyNoTo} /* 부과 번호 종료 */
</if>
<if test="schLevyYmdFrom != null">
AND L.LEVY_YMD <![CDATA[>=]]> #{schLevyYmdFrom} /* 부과 일자 시작 */
</if>
<if test="schLevyYmdTo != null">
AND L.LEVY_YMD <![CDATA[<=]]> #{schLevyYmdTo} /* 부과 일자 종료 */
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[>=]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test="delYn != null">
AND L.DEL_YN = #{delYn} /* 삭제 여부 */
</where>
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.REG_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailRegDtFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(LE.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailRegDtTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND LE.RGTR = #{schDetailRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND LE.MDFR = #{schDetailRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 등록 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 등록 일자 종료 */
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[>=]]> #{schDetailCrdnRegDtFrom} /* 단속 수정 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[<=]]> #{schDetailCrdnRegDtTo} /* 단속 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} /* 단속 등록자 코드 */
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} /* 단속 수정자 코드 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'levyExclYmd'"> L.LEVY_YMD </when>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
<when test="by == 'addr'"> P.ADDR </when>
<when test="by == 'dtlAddr'"> P.DTL_ADDR </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
<otherwise>
</otherwise>
</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
@ -357,8 +501,8 @@
<select id="selectCrdnInfo" parameterType="map" resultType="dataobject">/* 단속 정보 가져오기(levyMapper.selectCrdnInfo) */
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD
, C.TASK_SE_CD
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_REG_SE_CD
, C.CRDN_INPT_SE_CD
, C.CVLCPT_LINK_YN
@ -417,6 +561,7 @@
SELECT LPAD(IFNULL(MAX(LEVY_NO) + 1, 1), 6, '0') AS NEW_LEVY_NO
FROM TB_LEVY
WHERE SGG_CD = #{sggCd}
AND TASK_SE_CD = #{taskSeCd}
AND FYR = #{fyr}
AND ACNTG_SE_CD = #{acntgSeCd}
AND TXITM_CD = #{txitmCd}
@ -432,6 +577,7 @@
INTO TB_LEVY (
LEVY_ID /* 부과 ID */
, SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */
, CRDN_ID /* 단속 ID */
, RTPYR_ID /* 납부자 ID */
, INST_CD /* 기관 코드 */
@ -511,6 +657,7 @@
VALUES (
#{levy.levyId} /* 부과 ID */
, #{levy.sggCd} /* 시군구 코드 */
, #{levy.taskSeCd} /* 업무 구분 코드 */
, #{levy.crdnId} /* 단속 ID */
, #{levy.rtpyrId} /* 납부자 ID */
, #{levy.instCd} /* 기관 코드 */

@ -8,60 +8,67 @@
============================ -->
<resultMap id="rductRow" type="cokr.xit.fims.levy.Rduct">
<result property="rductId" column="RDUCT_ID" /> <!-- 감경 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID -->
<result property="rductYmd" column="RDUCT_YMD" /> <!-- 감경 일자 -->
<result property="rductRsnCd" column="RDUCT_RSN_CD" /> <!-- 감경 사유 코드 -->
<result property="rductAmt" column="RDUCT_AMT" /> <!-- 감경 금액 -->
<result property="etcCn" column="ETC_CN" /> <!-- 기타 내용 -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
<result property="rductId" column="RDUCT_ID" /> <!-- 감경 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID -->
<result property="rductYmd" column="RDUCT_YMD" /> <!-- 감경 일자 -->
<result property="rductRsnCd" column="RDUCT_RSN_CD" /> <!-- 감경 사유 코드 -->
<result property="rductAmt" column="RDUCT_AMT" /> <!-- 감경 금액 -->
<result property="etcCn" column="ETC_CN" /> <!-- 기타 내용 -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="selectList">
SELECT R.RDUCT_ID /* 감경 ID */
, R.RDUCT_YMD /* 감경 일자 */
, R.RDUCT_RSN_CD /* 감경 사유 코드 */
, (SELECT GET_CODE_NM('FIM019', R.RDUCT_RSN_CD) FROM DUAL) AS RDUCT_RSN_NM /* 감경 사유 명 */
, R.RDUCT_AMT /* 감경 금액 */
, R.ETC_CN /* 감액 기타 내용 */
, R.DEL_YN /* 삭제 여부 */
, R.REG_DT /* 등록 일시 */
, R.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM /* 등록자 명 */
, R.MDFCN_DT /* 수정 일시 */
, R.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM /* 수정자 명 */
, R.DEL_DT /* 삭제 일시 */
, R.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM /* 삭제자 명 */
, R.DEL_RSN /* 삭제 사유 */
, C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, CONCAT(C.CRDN_YMD,C.CRDN_TM) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량 번호 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_AMT /* 사전통지금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, L.LEVY_ID /* 부과 ID */
, L.LEVY_PCPTAX + LEVY_ADAMT AS LEVY_AMT /* 부과 금액 */
, L.RCVMT_PCPTAX + RCVMT_ADAMT AS RCVMT_AMT /* 수납 금액 */
, L.RDCAMT_PCPTAX + RDCAMT_ADAMT AS RDCAMT_AMT /* 감액 금액 */
, L.SUM_AMT /* 합계 금액 */
SELECT R.RDUCT_ID /* 감경 ID */
, R.RDUCT_YMD /* 감경 일자 */
, R.RDUCT_RSN_CD /* 감경 사유 코드 */
, R.RDUCT_AMT /* 감경 금액 */
, R.ETC_CN /* 감액 기타 내용 */
, R.DEL_YN /* 삭제 여부 */
, R.REG_DT /* 등록 일시 */
, R.RGTR /* 등록자 */
, R.MDFCN_DT /* 수정 일시 */
, R.MDFR /* 수정자 */
, R.DEL_DT /* 삭제 일시 */
, R.DLTR /* 삭제자 */
, R.DEL_RSN /* 삭제 사유 */
, C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.VHRNO /* 차량 번호 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_AMT /* 사전통지금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, L.LEVY_ID /* 부과 ID */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금*/
, L.INSPY_INT /* 분납 이자 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, L.SUM_AMT /* 합계 금액 */
, L.LEVY_PCPTAX + L.LEVY_ADAMT AS LEVY_AMT /* 부과 금액 */
, L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT /* 수납 금액 */
, L.RDCAMT_PCPTAX + L.RDCAMT_ADAMT AS RDCAMT_AMT /* 감액 금액 */
, CONCAT(C.CRDN_YMD,C.CRDN_TM) AS CRDN_YMD_TM /* 단속 일시 */
, (SELECT GET_CODE_NM('FIM019', R.RDUCT_RSN_CD) FROM DUAL) AS RDUCT_RSN_NM /* 감경 사유 명 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM /* 삭제자 명 */
FROM TB_RDUCT R
INNER JOIN TB_CRDN C ON (R.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
@ -71,38 +78,32 @@
<select id="selectRductList" parameterType="map" resultType="dataobject">/* 과태료 감경 대장 목록 조회(rductMapper.selectRductList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
<where>
<if test="schRductYmdFrom != null">
AND R.RDUCT_YMD <![CDATA[ >= ]]> #{schRductYmdFrom} /* 감경 일자 시작 */
</if>
<if test="schRductYmdTo != null">
AND R.RDUCT_YMD <![CDATA[ <= ]]> #{schRductYmdTo} /* 감경 일자 시작 */
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<choose>
<when test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND R.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</where>
AND C.SGG_CD = #{sggCd} /* 시군구 코드 */
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
</if>
<if test="schRductYmdFrom != null">
AND R.RDUCT_YMD <![CDATA[>=]]> #{schRductYmdFrom} /* 감경 일자 시작 */
</if>
<if test="schRductYmdTo != null">
AND R.RDUCT_YMD <![CDATA[<=]]> #{schRductYmdTo} /* 감경 일자 시작 */
</if>
<if test="crdnDelYn != null">
AND C.DEL_YN = #{crdnDelYn} /* 삭제 여부 */
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[>=]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
AND C.DEL_YN = #{crdnDelYn} /* 단속 삭제 여부 */
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
@ -122,68 +123,67 @@
</otherwise>
</choose>
</if>
<if test="crdnId != null">AND C.CRDN_ID = #{crdnId}</if>
<include refid="utility.sortBy" />
<include refid="utility.paging-suffix" />
</select>
<sql id="select">
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, CONCAT(C.CRDN_YMD,C.CRDN_TM) AS CRDN_YMD_TM /* 단속 일시 */
, C.VHRNO /* 차량 번호 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_AMT /* 사전통지금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, R.RDUCT_ID /* 감경 ID */
, R.RDUCT_YMD /* 감경 일자 */
, R.RDUCT_RSN_CD /* 감경 사유 코드 */
, (SELECT GET_CODE_NM('FIM019', R.RDUCT_RSN_CD) FROM DUAL) AS RDUCT_RSN_NM /* 감경 사유 명 */
, R.RDUCT_AMT /* 감경 금액 */
, R.ETC_CN /* 감액 기타 내용 */
, R.DEL_YN /* 삭제 여부 */
, R.REG_DT /* 등록 일시 */
, R.RGTR /* 등록자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM /* 등록자 명 */
, R.MDFCN_DT /* 수정 일시 */
, R.MDFR /* 수정자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM /* 수정자 명 */
, R.DEL_DT /* 삭제 일시 */
, R.DLTR /* 삭제자 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM /* 삭제자 명 */
, R.DEL_RSN /* 삭제 사유 */
, L.LEVY_ID /* 부과 ID */
, L.LEVY_PCPTAX + LEVY_ADAMT AS LEVY_AMT /* 부과 금액 */
, L.RCVMT_PCPTAX + RCVMT_ADAMT AS RCVMT_AMT /* 수납 금액 */
, L.RDCAMT_PCPTAX + RDCAMT_ADAMT AS RDCAMT_AMT /* 감액 금액 */
, L.SUM_AMT /* 합계 금액 */
FROM TB_CRDN C
INNER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_RDUCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N')
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.VHRNO /* 차량 번호 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_AMT /* 사전통지금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, R.RDUCT_ID /* 감경 ID */
, R.RDUCT_YMD /* 감경 일자 */
, R.RDUCT_RSN_CD /* 감경 사유 코드 */
, R.RDUCT_AMT /* 감경 금액 */
, R.ETC_CN /* 감액 기타 내용 */
, R.DEL_YN /* 삭제 여부 */
, R.REG_DT /* 등록 일시 */
, R.RGTR /* 등록자 */
, R.MDFCN_DT /* 수정 일시 */
, R.MDFR /* 수정자 */
, R.DEL_DT /* 삭제 일시 */
, R.DLTR /* 삭제자 */
, R.DEL_RSN /* 삭제 사유 */
, L.LEVY_ID /* 부과 ID */
, L.SUM_AMT /* 합계 금액 */
, L.LEVY_PCPTAX + LEVY_ADAMT AS LEVY_AMT /* 부과 금액 */
, L.RCVMT_PCPTAX + RCVMT_ADAMT AS RCVMT_AMT /* 수납 금액 */
, L.RDCAMT_PCPTAX + RDCAMT_ADAMT AS RDCAMT_AMT /* 감액 금액 */
, CONCAT(C.CRDN_YMD,C.CRDN_TM) AS CRDN_YMD_TM /* 단속 일시 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT GET_CODE_NM('FIM019', R.RDUCT_RSN_CD) FROM DUAL) AS RDUCT_RSN_NM /* 감경 사유 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM /* 삭제자 명 */
FROM TB_CRDN C
INNER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_RDUCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N')
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
</sql>
<select id="selectRducts" parameterType="map" resultType="dataobject">/* 과태료 감경 대장 객체 가져오기(rductMapper.selectRducts) */
<include refid="select" />
<where>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} /* 단속 ID */
AND C.DEL_YN = 'N' /* 삭제 여부 */
</if>
<if test="rductId != null">
AND R.RDUCT_ID = #{rductId} /* 감경 ID */
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</where>
<choose>
<when test="crdnId != null">
WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */
</when>
<otherwise>
WHERE R.RDUCT_ID = #{rductId} /* 감경 ID */
</otherwise>
</choose>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
AND C.DEL_YN = 'N' /* 삭제 여부 */
<include refid="utility.orderBy" />
</select>
@ -195,84 +195,84 @@
</selectKey>
INSERT
INTO TB_RDUCT (
RDUCT_ID /* 감경 ID */
, CRDN_ID /* 단속 ID */
, RTPYR_ID /* 납부자 ID */
, RDUCT_YMD /* 감경 일자 */
, RDUCT_RSN_CD /* 감경 사유 코드 */
, RDUCT_AMT /* 감경 금액 */
, ETC_CN /* 기타 내용 */
, DEL_YN /* 삭제 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
RDUCT_ID /* 감경 ID */
, CRDN_ID /* 단속 ID */
, RTPYR_ID /* 납부자 ID */
, RDUCT_YMD /* 감경 일자 */
, RDUCT_RSN_CD /* 감경 사유 코드 */
, RDUCT_AMT /* 감경 금액 */
, ETC_CN /* 기타 내용 */
, DEL_YN /* 삭제 여부 */
, REG_DT /* 등록 일시 */
, RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */
, MDFR /* 수정자 */
)
VALUES (
#{rduct.rductId} /* 감경 ID */
, #{rduct.crdnId} /* 단속 ID */
, #{rduct.rtpyrId} /* 납부자 ID */
, #{rduct.rductYmd} /* 감경 일자 */
, #{rduct.rductRsnCd} /* 감경 사유 코드 */
, #{rduct.rductAmt} /* 감경 금액 */
, #{rduct.etcCn} /* 기타 내용 */
, 'N' /* 삭제 여부 */
, <include refid="utility.now" /> /* 등록 일시 */
, #{rduct.createdBy} /* 등록자 */
, <include refid="utility.now" /> /* 수정 일시 */
, #{rduct.modifiedBy} /* 수정자 */
#{rduct.rductId} /* 감경 ID */
, #{rduct.crdnId} /* 단속 ID */
, #{rduct.rtpyrId} /* 납부자 ID */
, #{rduct.rductYmd} /* 감경 일자 */
, #{rduct.rductRsnCd} /* 감경 사유 코드 */
, #{rduct.rductAmt} /* 감경 금액 */
, #{rduct.etcCn} /* 기타 내용 */
, 'N' /* 삭제 여부 */
, <include refid="utility.now" /> /* 등록 일시 */
, #{rduct.createdBy} /* 등록자 */
, <include refid="utility.now" /> /* 수정 일시 */
, #{rduct.modifiedBy} /* 수정자 */
)
</insert>
<update id="updateRduct" parameterType="map">/* 과태료 감경 대장 수정(rductMapper.updateRduct) */
UPDATE TB_RDUCT
SET RDUCT_YMD = #{rduct.rductYmd} /* 감경 일자 */
, RDUCT_RSN_CD = #{rduct.rductRsnCd} /* 감경 사유 코드 */
, RDUCT_AMT = #{rduct.rductAmt} /* 감경 금액 */
, ETC_CN = #{rduct.etcCn} /* 기타 내용 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{rduct.modifiedBy} /* 수정자 */
WHERE RDUCT_ID = #{rduct.rductId} /* 감경 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
SET RDUCT_YMD = #{rduct.rductYmd} /* 감경 일자 */
, RDUCT_RSN_CD = #{rduct.rductRsnCd} /* 감경 사유 코드 */
, RDUCT_AMT = #{rduct.rductAmt} /* 감경 금액 */
, ETC_CN = #{rduct.etcCn} /* 기타 내용 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{rduct.modifiedBy} /* 수정자 */
WHERE RDUCT_ID = #{rduct.rductId} /* 감경 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<update id="deleteRduct" parameterType="map">/* 과태료 감경 대장 삭제(rductMapper.deleteRduct) */
UPDATE TB_RDUCT SET
DEL_YN = 'Y'
, DEL_DT = <include refid="utility.now" /> /* 삭제 일시 */
, DLTR = #{rduct.modifiedBy} /* 삭제자 */
, DEL_RSN = #{rduct.delRsn} /* 삭제 사유 */
WHERE RDUCT_ID = #{rduct.rductId} /* 감경 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
DEL_YN = 'Y' /* 삭제 여부 */
, DEL_DT = <include refid="utility.now" /> /* 삭제 일시 */
, DLTR = #{rduct.modifiedBy} /* 삭제자 */
, DEL_RSN = #{rduct.delRsn} /* 삭제 사유 */
WHERE RDUCT_ID = #{rduct.rductId} /* 감경 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(rductMapper.selectCrdn) */
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.VHRNO /* 차량번호 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, TI.WKSN_RDUCT_RT /* 사회적약자 감경 율 */
, TI.ADVNTCE_RDUCT_RT /* 사전통지 감경 율 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, L.LEVY_ID /* 부과 ID */
, L.DUDT_YMD /* 납기 일자 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, R.RDUCT_ID /* 감경 ID */
, <include refid="utility.today" /> AS TODAY /* 오늘 일자 */
, C.FFNLG_CRDN_AMT * TI.WKSN_RDUCT_RT / 100 AS CALC_RDUCT_AMT /* 감경 금액 */
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.VHRNO /* 차량번호 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_RDUCT_RT /* 과태료 감경 율 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, TI.WKSN_RDUCT_RT /* 사회적약자 감경 율 */
, TI.ADVNTCE_RDUCT_RT /* 사전통지 감경 율 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, L.LEVY_ID /* 부과 ID */
, L.DUDT_YMD /* 납기 일자 */
, L.LEVY_PCPTAX /* 부과 본세 */
, L.LEVY_ADAMT /* 부과 가산금 */
, L.INSPY_INT /* 분납 이자 */
, L.RCVMT_PCPTAX /* 수납 본세 */
, L.RCVMT_ADAMT /* 수납 가산금 */
, L.RDCAMT_PCPTAX /* 감액 본세 */
, L.RDCAMT_ADAMT /* 감액 가산금 */
, R.RDUCT_ID /* 감경 ID */
, <include refid="utility.today" /> AS TODAY /* 오늘 일자 */
, C.FFNLG_CRDN_AMT * TI.WKSN_RDUCT_RT / 100 AS CALC_RDUCT_AMT /* 감경 금액 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
FROM TB_CRDN C
INNER JOIN TB_TASK_INFO TI ON (C.SGG_CD = TI.SGG_CD AND C.TASK_SE_CD = TI.TASK_SE_CD AND TI.USE_YN = 'Y')
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
@ -280,15 +280,15 @@
LEFT OUTER JOIN TB_RDUCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N')
<where>
<if test="rductId != null">
AND R.RDUCT_ID = #{rductId} /* 감경 ID */
AND R.RDUCT_ID = #{rductId} /* 감경 ID */
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} /* 단속 ID */
AND C.CRDN_ID = #{crdnId} /* 단속 ID */
<if test="delYn != null">
AND C.DEL_YN = #{delYn} /* 삭제 여부 */
AND C.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
</if>
</where>
@ -296,24 +296,24 @@
<update id="updateCrdnRduct" parameterType="map">/* 단속 대장 과태료 감경 금액 수정(rductMapper.updateCrdnRduct) */
UPDATE TB_CRDN
SET FFNLG_RDUCT_RT = #{crdn.ffnlgRductRt} /* 과태료 감경 율 */
, FFNLG_AMT = #{crdn.ffnlgAmt} /* 과태료 금액 */
, ADVNTCE_AMT = #{crdn.advntceAmt} /* 사전통지 금액 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{crdn.modifiedBy} /* 수정자 */
WHERE CRDN_ID = #{crdn.crdnId} /* 단속 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
SET FFNLG_RDUCT_RT = #{crdn.ffnlgRductRt} /* 과태료 감경 율 */
, FFNLG_AMT = #{crdn.ffnlgAmt} /* 과태료 금액 */
, ADVNTCE_AMT = #{crdn.advntceAmt} /* 사전통지 금액 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{crdn.modifiedBy} /* 수정자 */
WHERE CRDN_ID = #{crdn.crdnId} /* 단속 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
<update id="updateLevyRduct" parameterType="map">/* 부과 대장 과태료 감경 금액 수정(rductMapper.updateLevyRduct) */
UPDATE TB_LEVY
SET FFNLG_AMT = #{levy.ffnlgAmt} /* 과태료 금액 */
, LEVY_PCPTAX = #{levy.levyPcptax} /* 부과 본세 */
, SUM_AMT = #{levy.sumAmt} /* 합계 금액 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{levy.modifiedBy} /* 수정자 */
WHERE LEVY_ID = #{levy.levyId} /* 단속 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
SET FFNLG_AMT = #{levy.ffnlgAmt} /* 과태료 금액 */
, LEVY_PCPTAX = #{levy.levyPcptax} /* 부과 본세 */
, SUM_AMT = #{levy.sumAmt} /* 합계 금액 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{levy.modifiedBy} /* 수정자 */
WHERE LEVY_ID = #{levy.levyId} /* 단속 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>
</mapper>

@ -13,7 +13,7 @@
<div>
<!-- 상단 버튼 -->
<div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
초기화
</button>
<span class="container-window-btn-right">

@ -13,7 +13,7 @@
<div>
<!-- 상단 버튼 -->
<div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
초기화
</button>
<span class="container-window-btn-right">
@ -108,7 +108,7 @@
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">

@ -13,7 +13,7 @@
<div>
<!-- 상단 버튼 -->
<div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
초기화
</button>
<span class="container-window-btn-right">
@ -77,7 +77,7 @@
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" />
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div>
<!-- 동적검색 -->
<div class="col-6">
@ -85,7 +85,7 @@
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">

@ -13,7 +13,7 @@
<div>
<!-- 상단 버튼 -->
<div class="container-page-btn">
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
초기화
</button>
<span class="container-window-btn-right">

@ -113,7 +113,6 @@
if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog");
${savedCallbackFuncName}(resp.saved);
}
}

@ -0,0 +1,532 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- inner page html -->
<div class="content-wrapper">
<!-- Content -->
<div class="container-xxl flex-grow-1 px-0">
<c:set var="prefixName" scope="request">부과 관리</c:set>
<!-- Page Body -->
<div class="card">
<div class="wrapper-list">
<div>
<!-- 상단 버튼 -->
<div class="container-page-btn">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();">
초기화
</button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색" onclick="fnSearchList${pageName}();">
검색
</button>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();">
엑셀
</button>
</span>
</div>
<!-- / 상단 버튼 -->
<!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<!-- 메인 조건 -->
<div class="container-search">
<div class="row g-1">
<!-- 업무구분 -->
<div class="col-12">
<label class="form-label fw-bold form-search-title text-end">업무구분</label>
<span class="form-search-linebox">
<c:forEach items="${FIM054List}" var="item">
<label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);">
${item.value}
</label>
</c:forEach>
</span>
</div>
<!-- 회계연도 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">회계연도</label>
<input type="text" class="form-control w-px-60" id="schFyr--${pageName}" name="schFyr" maxlength="4" autocomplete="off" />
</div>
<!-- 부과 번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">부과번호</label>
<input type="text" class="form-control w-px-80" id="schLevyNoFrom--${pageName}" name="schLevyNoFrom" maxlength="6" autocomplete="off" />
~
<input type="text" class="form-control w-px-80" id="schLevyNoTo--${pageName}" name="schLevyNoTo" maxlength="6" autocomplete="off" />
</div>
<!-- 부과 일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">부과일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schLevyYmdFrom--${pageName}" name="schLevyYmdFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schLevyYmdTo--${pageName}" name="schLevyYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 단속 일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">단속일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 -->
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div>
</div>
<!-- / 메인 조건 -->
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 진술자명 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">진술자명</label>
<input type="text" class="form-control w-px-150" id="schSttrNm--${pageName}" name="schSttrNm" />
</div>
<!-- 납부자명 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">납부자명</label>
<input type="text" class="form-control w-px-150" id="schRtpyrNm--${pageName}" name="schRtpyrNm" />
</div>
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRegDtOpt--${pageName}" name="schDetailRegDtOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schDetailRegDtFrom--${pageName}" name="schDetailRegDtFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schDetailRegDtTo--${pageName}" name="schDetailRegDtTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRgtrOpt--${pageName}" name="schDetailRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="text" class="form-control" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" />
</div>
</div>
</div>
<!-- / 상세 조건 -->
</form>
<!-- / 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 건수, 페이지 표시 -->
<div class="d-flex flex-row justify-content-between">
<label class="dataTables_info" id="paging--${pageName}PagingInfo" role="status" aria-live="polite"></label>
<ul class="pagination pagination-primary" id="paging--${pageName}">
</ul>
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
</span>
</span>
</div>
<!-- / 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive" id="table-responsive--${pageName}" style="overflow-x:scroll; height:400px; overflow-y:scroll;" >
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_YMD', this.innerText, 'ymd', '');">접수일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_NO', this.innerText, 'match', 'part');">접수번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_SE_CD', this.innerText, 'codeValue', 'FIM029');">접수구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('NTFCTN_SE_CD', this.innerText, 'codeValue', 'FIM030');">통보구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('STTR_NM', this.innerText, 'match', 'part');">진술자명</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('OPNN_SBMSN_STTS_CD', this.innerText, 'codeValue', 'FIM031');">의견제출상태</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('OPNN_SBMSN_SE_CD', this.innerText, 'codeValue', 'FIM033');">의견제출분류</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('OPNN_SBMSN_GIST', this.innerText, 'match', 'part');">의견제출요지</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('DOC_NO', this.innerText, 'ymd', '');">문서번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('ANS_YMD', this.innerText, 'ymd', '');">답변일자</th>
<th class="cmn" style="width: 240px;" onclick="searchFromGridTitle('ANS_CN', this.innerText, 'match', 'part');">답변내용</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생일</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
<th class="cmn dummy-th"></th>
</tr>
</thead>
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{LEVY_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{LEVY_ID}" onchange="${pageName}Control.select('{LEVY_ID}', this.checked);">
</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{NTFCTN_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{STTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_STTS_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_GIST}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_YMD}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_CN}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
</div>
</div>
</div>
<!-- / DataTables(그리드) -->
</div>
</div> <!-- / Wrapper-list -->
</div> <!-- / Card -->
</div>
<!-- / Content -->
<jsp:include page="/WEB-INF/jsp/include/bottom.jsp" />
<div class="content-backdrop fade"></div>
</div>
<!-- / inner page html <div class="content-wrapper"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/levy/levy01";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "levy"
, prefixName : "부과"
, infoSize : "xl"
, keymapper : info => info ? info.LEVY_ID : ""
, dataGetter : obj => obj.levyList
, appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : {
RCPT_YMD : dateFormat
, ANS_YMD : dateFormat
, ANS_YMD_TM : datetimeFormat
, CRDN_YMD_TM : datetimeFormat
, FFNLG_CRDN_AMT : numberFormat
, FFNLG_AMT : numberFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경
${pageName}Control.onDatasetChange = obj => {
renderList${pageName}();
$("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset
, prefix : "paging--${pageName}"
, start : obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch
, func : "${pageName}Control.load({index})"
});
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
};
// 현재 선택 자료 변경 이벤트
${pageName}Control.onCurrentChange = item => {
if (!item) return;
let key = item.data.LEVY_ID;
$("#tbody--${pageName}").setCurrentRow(key);
};
// 선택(체크) 변경 이벤트
${pageName}Control.onSelectionChange = selected => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
$("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val()));
});
};
// 개별총정보 dialog
${pageName}Control.getInfo = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callControlName : "${pageName}Control"
, crdnId : crdnId
}
ajax.get({
url : ${pageName}Control.urls.getInfo
, data : params
, success : resp => {
dialog.open({
id : "totalInfoMainDialog"
, title : "개별총정보"
, content : resp
, size : "xxl"
});
}
});
}
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
renderList${pageName} = () => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("LEVY_ID") + "');")
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');")
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
//보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 초기화
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// dataset 초기화
${pageName}Control.dataset.clear();
}
// 이벤트
setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if(value.length > 5) {
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
// DataTables width 변경 조정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) {
return;
}
if (!${pageName}Control.tableRenderComplete) {
return;
}
let itemsCnt = ${pageName}Control.dataset._items.length;
let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT");
if (itemsCnt >= totCnt) {
return;
}
if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) {
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료
${pageName}Control.load(${pageName}Control.query.pageNum + 1);
}
});
}
// 화면 초기값 셋팅
setForm${pageName} = (taskSeCd) => {
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
$("#schFyr--${pageName}").val(new Date().getFullYear());
$("#schLevyNoFrom--${pageName}").val("000000");
$("#schLevyNoTo--${pageName}").val("999999");
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
// $("#schLevyYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
// $("#schLevyYmdTo--${pageName}").datepicker("setDate", new Date());
}
// URL 설정
setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/030/list.do"); // 조회
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 초기화
initForm${pageName}();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// 화면 초기값 설정
setForm${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
}
// 초기화 버튼 이벤트
fnReset${pageName} = () => {
fnResetAndChangeBiz${pageName}();
}
// 검색 버튼 이벤트
fnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load();
}
// 엑셀 버튼 이벤트
fnExcel${pageName} = () => {
}
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
// 이벤트 설정
setEvent${pageName}();
// 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);
// 화면 초기 설정 및 업무 구분 변경
fnResetAndChangeBiz${pageName}(defaultBizValue);
});
</script>

@ -9,9 +9,10 @@
<div class="wrapper-list">
<div>
<div class="container-page-btn">
<button type="button" id="btnReset--${pageName}" class="btn btn-outline-dark" title="초기화">초기화</button>
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">초기화</button>
<span class="container-window-btn-right">
<button type="button" id="btnSearch--${pageName}" class="btn btn-search w-px-120" title="검색">검색</button>
<button type="button" class="btn btn-search w-px-120" id="btnSearch--${pageName}" title="검색">검색</button>
<button type="button" class="btn btn-excel w-px-120" id="btnExcel--${pageName}" title="엑셀">엑셀</button>
</span>
</div>
@ -352,6 +353,10 @@ $(document).ready(function(){
//보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked"));
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
});
</script>

@ -96,9 +96,9 @@
, keymapper : info => info ? info.RDUCT_ID : ""
, dataGetter : obj => obj.rductInfo
, formats : {
FFNLG_CRDN_AMT : numberFormat // 과태료 단속 금액
, WKSN_RDUCT_RT : numberFormat // 감경 율
, RDUCT_AMT : numberFormat // 감경 금액
FFNLG_CRDN_AMT : numberFormat // 과태료 단속 금액
, WKSN_RDUCT_RT : numberFormat // 감경 율
, RDUCT_AMT : numberFormat // 감경 금액
}
});
@ -142,13 +142,6 @@
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 검색조건 초기값 셋팅
function initForm${pageName}() {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#rductYmd--${pageName}").datepicker("setDate", new Date());
}
// 이벤트 설정
function setEvent${pageName}() {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
@ -165,6 +158,13 @@
});
}
// 검색조건 초기값 셋팅
function setForm${pageName}() {
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#rductYmd--${pageName}").datepicker("setDate", new Date());
}
/**************************************************************************
* function
**************************************************************************/
@ -178,7 +178,6 @@
if (rductRsn == "00") {
dialog.alert("감경 사유를 다시 선택하여 주시기 바랍니다.");
return;
}
@ -198,7 +197,7 @@
setEvent${pageName}();
// 화면 초기 설정
initForm${pageName}();
setForm${pageName}();
// Dataset 셋팅 - 단건일 경우 setData
${pageName}Control.setData([${rductInfo}]);

@ -425,12 +425,12 @@
$("#btnRemoveRcvmt--${pageName}").prop("disabled", false);
}
// 주정차위반, 전용차로위반과태료 외에는 수납 등록, 취소, 삭제 기능이 없어야 한다.
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
// 주정차위반, 전용차로위반과태료 외에는 수납 등록, 취소, 삭제 기능이 없어야 한다.
// $("#btnCreateRcvmt--${pageName}").hide();
// $("#btnUpdateRcvmtRtrc--${pageName}").hide();
// $("#btnRemoveRcvmt--${pageName}").hide();
$("#btnCreateRcvmt--${pageName}").hide();
$("#btnUpdateRcvmtRtrc--${pageName}").hide();
$("#btnRemoveRcvmt--${pageName}").hide();
if (taskSeCd == "BPV" || taskSeCd == "PVS") {
$("#btnCreateRcvmt--${pageName}").show();

Loading…
Cancel
Save