재부과 주소 검색 추가 및 보완

dev
박성영 2 months ago
parent 2529814019
commit 56305d5222

@ -211,6 +211,9 @@ public class LevyRelevyVO extends PagingVO {
/** 검색 조건 - 가중 부과 대상 여부 */
private String schAgrvtnLevyTrgtYn;
/** 검색 조건 - 재부과 대상 여부 */
private String schRelevyTrgtYn;
/** 검색 조건 - 우편번호 */
private String schZip;

@ -6,6 +6,8 @@
<!-- 단속 목록 조회 -->
<select id="selectList" parameterType="LevyRelevyVO" resultType="LevyRelevyVO">
/* CrdnRegistAndViewMapper.selectList : 단속 목록 조회 */
SELECT *
FROM (
SELECT
c.CRDN_YR, /* 단속 연도 */
c.CRDN_NO, /* 단속 번호 */
@ -135,7 +137,12 @@
<if test='schLotnoSno != null and schLotnoSno != ""'>
AND p.LOTNO_SNO = #{schLotnoSno}
</if>
ORDER BY c.CRDN_YR DESC, c.CRDN_NO DESC
) main_query
WHERE 1=1
<if test='schRelevyTrgtYn != null and schRelevyTrgtYn != ""'>
AND RELEVY_TRGT_YN = #{schRelevyTrgtYn}
</if>
ORDER BY CRDN_YR DESC, CRDN_NO DESC
<if test='pagingYn != null and pagingYn == "Y"'>
limit #{startIndex}, #{perPage} /* 서버사이드 페이징 처리 */
</if>
@ -145,7 +152,31 @@
<select id="selectListTotalCount" parameterType="LevyRelevyVO" resultType="int">
/* CrdnRegistAndViewMapper.selectListTotalCount : 단속 목록 총 개수 조회 */
SELECT COUNT(*)
FROM (
SELECT
c.CRDN_YR,
c.CRDN_NO,
/* 재부과 대상 여부 체크: 당해년도에 이미 재부과가 있으면 N, 없으면 Y */
CASE
WHEN EXISTS (
SELECT 1
FROM tb_crdn c2
WHERE (
(c2.CRDN_YR = c.CRDN_YR AND c2.CRDN_NO = c.CRDN_NO AND c2.CRDN_YR = #{currentYear})
OR
(
c2.FRST_CRDN_YR = COALESCE(c.FRST_CRDN_YR, c.CRDN_YR)
AND c2.FRST_CRDN_NO = COALESCE(c.FRST_CRDN_NO, c.CRDN_NO)
AND c2.CRDN_YR = #{currentYear}
)
)
AND c2.DEL_YN = 'N'
)
THEN 'N'
ELSE 'Y'
END AS RELEVY_TRGT_YN
FROM tb_crdn c
LEFT JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N'
WHERE c.DEL_YN = 'N'
<if test='schCrdnYr != null and schCrdnYr != ""'>
AND c.CRDN_YR = #{schCrdnYr}
@ -213,6 +244,11 @@
AND p2.LOTNO_SNO = #{schLotnoSno}
)
</if>
) count_query
WHERE 1=1
<if test='schRelevyTrgtYn != null and schRelevyTrgtYn != ""'>
AND RELEVY_TRGT_YN = #{schRelevyTrgtYn}
</if>
</select>
<!-- 재부과 chain 목록 조회 (최초 단속부터 자기 자신 제외한 chain) -->

@ -26,17 +26,6 @@
<li>
<input type="text" id="schCrdnNo" name="schCrdnNo" maxlength="6" class="input" style="width: 100px;" autocomplete="off"/>
</li>
<li class="th">법정동</li>
<li>
<select id="schStdgEmdCd" name="schStdgEmdCd" class="input" style="width: 120px;">
<option value="">전체</option>
<c:forEach var="code" items="${stdgEmdCdList}">
<option value="${code.cdId}" <c:if test="${param.schStdgEmdCd eq code.cdId}">selected</c:if>>
${code.cdNm}
</option>
</c:forEach>
</select>
</li>
<li class="th">지역 구분</li>
<li>
<select id="schRgnSeCd" name="schRgnSeCd" class="input" style="width: 120px;">
@ -74,6 +63,14 @@
</c:forEach>
</select>
</li>
<li class="th">재부과 대상</li>
<li>
<select id="schRelevyTrgtYn" name="schRelevyTrgtYn" class="input" style="width: 120px;">
<option value="">전체</option>
<option value="Y" <c:if test="${param.schRelevyTrgtYn eq 'Y'}">selected</c:if>>대상</option>
<option value="N" <c:if test="${param.schRelevyTrgtYn eq 'N'}">selected</c:if>>비대상</option>
</select>
</li>
<li class="th">가중 부과 대상</li>
<li>
<select id="schAgrvtnLevyTrgtYn" name="schAgrvtnLevyTrgtYn" class="input" style="width: 120px;">
@ -88,6 +85,15 @@
<li><button type="button" id="reset_btn" class="newbtnss bg5" style="margin-left: 5px;">초기화</button></li>
</ul>
<ul class="lef2">
<li class="th">법정동</li>
<li>
<select id="schStdgEmdCd" name="schStdgEmdCd" class="input" style="width: 120px;">
<option value="">전체</option>
<c:forEach var="code" items="${stdgEmdCdList}">
<option value="${code.cdId}" <c:if test="${param.schStdgEmdCd eq code.cdId}">selected</c:if>>${code.cdNm}</option>
</c:forEach>
</select>
</li>
<li class="th">주소 검색</li>
<li>
<input type="text" id="schZip" name="schZip" class="input" style="width: 80px;" maxlength="6" autocomplete="off" placeholder="우편번호"/>
@ -97,6 +103,7 @@
<input type="text" id="schLotnoSno" name="schLotnoSno" class="input" style="width: 60px;" maxlength="4" autocomplete="off" placeholder="부번"/>
<button class="newbtnss bg1" type="button" id="btnAddrSearch">주소 찾기</button>
</li>
</ul>
</div>
<div class="gs_booking">
@ -153,6 +160,7 @@
var schExmnr = $.trim(nvl($("#schExmnr").val(), ""));
var schCrdnPrcsSttsCd = $.trim(nvl($("#schCrdnPrcsSttsCd").val(), ""));
var schAgrvtnLevyTrgtYn = $.trim(nvl($("#schAgrvtnLevyTrgtYn").val(), ""));
var schRelevyTrgtYn = $.trim(nvl($("#schRelevyTrgtYn").val(), ""));
var schZip = $.trim(nvl($("#schZip").val(), ""));
var schLotnoAddr = $.trim(nvl($("#schLotnoAddr").val(), ""));
var schDtlAddr = $.trim(nvl($("#schDtlAddr").val(), ""));
@ -167,6 +175,7 @@
SEARCH_COND.schExmnr = schExmnr;
SEARCH_COND.schCrdnPrcsSttsCd = schCrdnPrcsSttsCd;
SEARCH_COND.schAgrvtnLevyTrgtYn = schAgrvtnLevyTrgtYn;
SEARCH_COND.schRelevyTrgtYn = schRelevyTrgtYn;
SEARCH_COND.schZip = schZip;
SEARCH_COND.schLotnoAddr = schLotnoAddr;
SEARCH_COND.schDtlAddr = schDtlAddr;
@ -723,7 +732,20 @@
// 주소 찾기 버튼 클릭 이벤트
$("#btnAddrSearch").on('click', function() {
var popUrl = '<c:url value="/common/address/search.do"/>';
popUrl += '?callback=searchAddrCallback';
var params = '?callback=searchAddrCallback';
// 중요로직: 법정동이 선택된 경우 동 이름을 검색어로 전달
var selectedEmd = $('#schStdgEmdCd').val();
if (selectedEmd) {
var selectedEmdText = $('#schStdgEmdCd option:selected').text();
if (selectedEmdText && selectedEmdText !== '전체') {
params += '&keyword=' + encodeURIComponent( '${sessionScope.sessionVO.user.orgCdNm} ' + selectedEmdText + ' ');
}
}else{
params += '&keyword=' + encodeURIComponent( '${sessionScope.sessionVO.user.orgCdNm} ');
}
popUrl += params;
openPopup(popUrl, 570, 530, '주소 찾기');
});
},

Loading…
Cancel
Save