사전 감경부과 대상 수정.

main
jjh 1 year ago
parent 3c7231d824
commit ef85e2964a

@ -23,7 +23,6 @@ public class LevyQuery extends CmmnQuery {
private String[] rductIDs; // 감경 IDs
private String rductId; // 감경 ID
// 검색 조건
private String schTaskSeCd; // 업무 구분 코드(FIM054)
private String schRductYmdFrom; // 감경 일자 시작
private String schRductYmdTo; // 감경 일자 종료
private String schCrdnYmdFrom; // 단속 일자 시작
@ -32,12 +31,7 @@ public class LevyQuery extends CmmnQuery {
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; // 호출용도 필요시 사용 (view 조회, create 등록, update 수정, refresh 재조회)
private String delYn; // 삭제 여부
@ -94,16 +88,6 @@ public class LevyQuery extends CmmnQuery {
return self();
}
public String getSchTaskSeCd() {
return ifEmpty(schTaskSeCd, () -> null);
}
public <T extends LevyQuery> T setSchTaskSeCd(String schTaskSeCd) {
this.schTaskSeCd = schTaskSeCd;
return self();
}
public String getSchRductYmdFrom() {
return ifEmpty(schRductYmdFrom, () -> null);
}
@ -168,59 +152,7 @@ public class LevyQuery extends CmmnQuery {
}
// 상세 검색 조건 ///////////////////////////////////////////////////////////////
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 /////////////////////////////////////////////////////////////////////

@ -147,8 +147,8 @@
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
<if test="schTaskSeCd != null">
AND C.TASK_SE_CD = #{schTaskSeCd} <!-- 업무 구분 코드 -->
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
@ -162,40 +162,6 @@
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
</if>
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailRegDtFrom} <!-- 등록 일자 시작 -->
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailRegDtTo} <!-- 등록 일자 종료 -->
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailRegDtFrom} <!-- 수정 일자 시작 -->
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailRegDtTo} <!-- 수정 일자 종료 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND C.RGTR = #{schDetailRgtrCd} <!-- 등록자 코드 -->
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND C.MDFR = #{schDetailRgtrCd} <!-- 수정자 코드 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">

@ -38,12 +38,15 @@
<!-- 업무구분 -->
<div class="col-12">
<label class="form-label fw-bold form-search-title text-end">업무구분</label>
<select class="form-select" id="schTaskSeCd--${pageName}" name="schTaskSeCd" onchange="changeTaskSeCd${pageName}(this.value)">
<option value="">전체</option>
<c:forEach items="${FIM054List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
<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">
@ -88,29 +91,29 @@
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<!-- 단속 등록일자, 단속 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRegDtOpt--${pageName}" name="schDetailRegDtOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
<select class="form-select text-center" id="schDetailCrdnRegDtOpt--${pageName}" name="schDetailCrdnRegDtOpt">
<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"
<input type="text" class="form-control form-date" id="schDetailCrdnRegDtFrom--${pageName}" name="schDetailCrdnRegDtFrom"
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"
<input type="text" class="form-control form-date" id="schDetailCrdnRegDtTo--${pageName}" name="schDetailCrdnRegDtTo"
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 class="form-select text-center" id="schDetailCrdnRgtrOpt--${pageName}" name="schDetailCrdnRgtrOpt">
<option value="rgtr">단속 등록자</option>
<option value="mdfr">단속 수정자</option>
</select>
<input type="text" class="form-control" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" />
<input type="text" class="form-control" id="schDetailCrdnRgtrNm--${pageName}" name="schDetailCrdnRgtrNm" />
</div>
</div>
</div>
@ -141,7 +144,7 @@
<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:480px; 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">
<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}">
@ -149,10 +152,6 @@
<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: 180px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_TRSM_CD', this.innerText, 'codeValue', 'FIM018');">민원전송</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: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">법정동</th>
@ -160,6 +159,10 @@
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', 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: 180px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_TRSM_CD', this.innerText, 'codeValue', 'FIM018');">민원전송결과</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: 100px;" onclick="searchFromGridTitle('ZIP', this.innerText, 'match', 'part');">우편번호</th>
@ -180,10 +183,6 @@
<td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{CRDN_ID}" onchange="${pageName}Control.select('{CRDN_ID}', this.checked);">
</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_TRSM_NM}</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_STDG_NM}</td>
@ -191,6 +190,10 @@
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_TRSM_NM}</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}">{ZIP}</td>
@ -230,6 +233,8 @@
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/levy/levy01";
// FormFields
var ${pageName}Fields = new FormFields("#frmSearch--${pageName}");
/**************************************************************************
* DatasetControl
@ -344,34 +349,6 @@
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
// 검색 조건 파라미터 가져오기
getParams${pageName} = () => {
let formFields = new FimsFormFields("#frmSearch--${pageName}");
let formData = formFields.get();
formData.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수
return formData;
}
// 수정 dialog -> callback 추가
${pageName}Info = (params) => {
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do?openerPageName=${pageName}")
, data : params || {}
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("Dialog")
, title : ${pageName}Control.prefixName + " 정보"
, content : resp
, size : ${pageName}Control.infoSize
, init : () => { }
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
});
}
});
}
/**************************************************************************
* 초기 설정
**************************************************************************/
@ -422,14 +399,18 @@
// 화면 초기값 설정
setForm${pageName} = (taskSeCd) => {
// 업무 구분 코드
$("#schTaskSeCd--${pageName}").val(taskSeCd);
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
// if () {
// $("#schTaskSeCd--${pageName}").prop("disabled", false);
// } else {
$("#schTaskSeCd--${pageName}").prop("disabled", true);
// }
// if () {
// $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
// $(this).prop("disabled", "false");
// });
// } else {
$("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) {
$(this).prop("disabled", "true");
});
// }
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
@ -444,35 +425,9 @@
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
}
//
changeTaskSeCd${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// 화면 초기값 설정
setForm${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
// dataset 초기화
${pageName}Control.dataset.clear();
}
// 초기화 버튼 이벤트
fnReset${pageName} = () => {
fnResetAndChangeBiz${pageName}();
@ -481,8 +436,9 @@
// 검색 버튼 이벤트
fnSearchList${pageName} = () => {
// 검색조건
${pageName}Control.query = getParams${pageName}();
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부
@ -494,6 +450,26 @@
}
// 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
}
// 화면 초기값 설정
setForm${pageName}(taskSeCd);
// URL 설정
setURL${pageName}(taskSeCd);
// dataset 초기화
${pageName}Control.dataset.clear();
}
// 감경부과등록 버튼 이벤트
fnCreateRductLevy${pageName} = () => {
@ -512,11 +488,11 @@
// 시군구 코드 설정
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정
let defaultTaskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#schTaskSeCd--${pageName}").val(defaultTaskSeCd);
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);
// 업무 구분 및 화면 초기 설정
fnResetAndChangeBiz${pageName}(defaultTaskSeCd);
fnResetAndChangeBiz${pageName}(defaultBizValue);
});
</script>

Loading…
Cancel
Save