민원 목록 조회 메소드 추가
parent
134df7c002
commit
50b83d20ab
@ -0,0 +1,19 @@
|
||||
package cokr.xit.fims.crdn.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cokr.xit.fims.crdn.CrdnQuery;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
public interface CrdnService {
|
||||
|
||||
/** 단속자료 목록을 조회한다.
|
||||
* @param req 단속자료 목록 조회 조건
|
||||
* <ul><li>pageNum: 페이지 번호</li>
|
||||
* <li>fetchSize: 페이지 목록 건수</li>
|
||||
* </ul>
|
||||
* @return 단속자료 목록
|
||||
*/
|
||||
List<DataObject> getCrackdownList(CrdnQuery req);
|
||||
|
||||
}
|
@ -1,5 +1,213 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cokr.xit.fims.crdn.dao.Crdn05Mapper">
|
||||
<mapper namespace="cokr.xit.fims.crdn.dao.Crdn01Mapper">
|
||||
|
||||
<resultMap id="crdnRow" type="cokr.xit.fims.crdn.Crdn">
|
||||
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectCivilComplaint">
|
||||
<include refid="utility.paging-prefix"/>
|
||||
SELECT C.CRDN_ID <!-- 단속 ID -->
|
||||
, C.SGG_CD <!-- 시군구 코드 -->
|
||||
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
|
||||
, C.CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
|
||||
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
|
||||
, C.LINK_TBL_NM <!-- 연계 테이블 명 -->
|
||||
, C.LINK_ID <!-- 연계 ID -->
|
||||
, C.CRDN_SE_CD <!-- 단속 구분 코드 -->
|
||||
, C.RTPYR_ID <!-- 납부자 ID -->
|
||||
, C.CRDN_YMD <!-- 단속 일자 -->
|
||||
, C.CRDN_TM <!-- 단속 시각 -->
|
||||
, CONCAT(C.CRDN_YMD,'',C.CRDN_TM) AS CRDN_YMD_TM <!-- 단속 일시 -->
|
||||
, IF(CC.CVLCPT_APLCNT_NM != '', CC.CVLCPT_APLCNT_NM,
|
||||
IF(TI.TEAMER_1 != '', TI.TEAMER_1,
|
||||
IF(TI.TEAMER_2 != '', TI.TEAMER_2,
|
||||
IF(TI.TEAMER_3 != '', TI.TEAMER_3,
|
||||
TI.TEAMER_4)))) AS APLCNT_CRDN_NM <!-- 신고/단속자 -->
|
||||
, C.VHRNO <!-- 차량번호 -->
|
||||
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
|
||||
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
|
||||
, C.CRDN_PLC <!-- 단속 장소 -->
|
||||
, C.DTL_CRDN_PLC <!-- 상세 단속 장소 -->
|
||||
, C.TEAM_ID <!-- 조 ID -->
|
||||
, C.VLTN_ID <!-- 위반 ID -->
|
||||
, C.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
|
||||
, C.CRDN_BGNG_TM <!-- 단속 시작 시각 -->
|
||||
, C.CRDN_END_HR <!-- 단속 종료 시간 -->
|
||||
, C.CRDN_SN <!-- 단속 일련번호 -->
|
||||
, C.GPS_X <!-- GPS X -->
|
||||
, C.GPS_Y <!-- GPS Y -->
|
||||
, C.MOSC_X <!-- 모자이크 X -->
|
||||
, C.MOSC_Y <!-- 모자이크 Y -->
|
||||
, C.TOWNG_YN <!-- 견인 여부 -->
|
||||
, C.ATCH_FILE_CNT <!-- 첨부 파일 수 -->
|
||||
, C.VIN <!-- 차대번호 -->
|
||||
, C.VHCL_NM <!-- 차량 명 -->
|
||||
, C.VHCL_COLOR <!-- 차량 색상 -->
|
||||
, C.USE_FUEL_CD <!-- 사용 연료 코드 -->
|
||||
, C.USG_SE_CD <!-- 용도 구분 코드 -->
|
||||
, C.MXMM_LOAD_QY <!-- 최대 적재 량 -->
|
||||
, C.TKCAR_PSNCPA_CNT <!-- 승차 정원 수 -->
|
||||
, C.CARMDL_ASORT_NM <!-- 차종 종별 명 -->
|
||||
, C.CARMDL_TYPE_NM <!-- 차종 유형 명 -->
|
||||
, C.CARMDL_CLSF_NM <!-- 차종 분류 명 -->
|
||||
, C.ERSR_YMD <!-- 말소 일자 -->
|
||||
, C.FFNLG_CARMDL_CD <!-- 과태료 차종 코드 -->
|
||||
, C.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
|
||||
, C.VLTN_NMTM <!-- 위반 횟수 -->
|
||||
, C.OVTIME_YN <!-- 시간외 여부 -->
|
||||
, C.RVW_SE_CD <!-- 검토 구분 코드 -->
|
||||
, C.RVW_PRCS_SCRN_NM <!-- 검토 처리 화면 명 -->
|
||||
, C.RVW_DT <!-- 검토 일시 -->
|
||||
, C.RVWR <!-- 검토자 -->
|
||||
, C.FFNLG_AMT <!-- 과태료 금액 -->
|
||||
, C.FFNLG_RDUCT_RT <!-- 과태료 감경 율 -->
|
||||
, C.LEVY_AMT <!-- 부과 금액 -->
|
||||
, C.ADVNTCE_BGNG_YMD <!-- 사전통지 시작 일자 -->
|
||||
, C.ADVNTCE_DUDT_YMD <!-- 사전통지 납기 일자 -->
|
||||
, C.ADVNTCE_LEVY_AMT <!-- 사전통지 부과 금액 -->
|
||||
, C.OPNN_SBMSN_YN <!-- 의견 제출 여부 -->
|
||||
, C.ETC_CN <!-- 기타 내용 -->
|
||||
, C.LEVY_ID <!-- 부과 ID -->
|
||||
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
|
||||
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
|
||||
, C.ADTN_AMT <!-- 가산 금액 -->
|
||||
, C.MINUS_AMT <!-- 감경 금액 -->
|
||||
, C.RCVMT_AMT <!-- 수납 금액 -->
|
||||
, C.BFR_CRDN_ID <!-- 이전 단속 ID -->
|
||||
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
|
||||
, CC.CVLCPT_INPT_SE_CD <!-- 민원 입력 구분 코드 -->
|
||||
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
|
||||
, CC.CVLCPT_APLY_SE_CD <!-- 민원 신청 구분 코드 -->
|
||||
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
|
||||
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
|
||||
, CC.CVLCPT_LIST_NO <!-- 민원 목록 번호 -->
|
||||
, CC.CVLCPT_APLCNT_NM <!-- 민원 신청인 명 -->
|
||||
, CC.CVLCPT_APLY_DT <!-- 민원 신청 일시 -->
|
||||
, CC.CVLCPT_APLY_TTL_NM <!-- 민원 신청 제목 명 -->
|
||||
, CC.CVLCPT_APLY_CN <!-- 민원 신청 내용 -->
|
||||
, CC.CVLCPT_GIST <!-- 민원 요지 -->
|
||||
, CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
|
||||
, CC.CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
|
||||
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
|
||||
, CC.CVLCPT_PRCS_SUMRY <!-- 민원 처리 요약 -->
|
||||
, CC.CVLCPT_PRCS_RSLT_CN <!-- 민원 처리 결과 내용 -->
|
||||
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
|
||||
, CC.CVLCPT_PRCS_PIC <!-- 민원 처리 담당자 -->
|
||||
, CC.CVLCPT_TRSM_DT <!-- 민원 전송 일시 -->
|
||||
, CC.CVLCPT_TRSM_CD <!-- 민원 전송 코드 -->
|
||||
, CC.CVLCPT_TRSM_MSG <!-- 민원 전송 메시지 -->
|
||||
, LE.LEVY_EXCL_RSN_CD <!-- 부과 제외 사유 코드 -->
|
||||
, LE.LEVY_EXCL_YMD <!-- 부과 제외 일자 -->
|
||||
, LE.ETC_CN AS LEVY_EXCL_ETC_CN <!-- 부과 제외 기타 내용 -->
|
||||
, C.DEL_YN
|
||||
, C.RGTR
|
||||
, C.REG_DT
|
||||
, C.MDFR
|
||||
, C.MDFCN_DT
|
||||
, C.DLTR
|
||||
, C.DEL_DT
|
||||
, C.DEL_RSN
|
||||
FROM TB_CRDN C
|
||||
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.CRDN_ID = CC.CRDN_ID)
|
||||
LEFT OUTER JOIN TB_TEAM_INFO TI ON (C.TEAM_ID = TI.TEAM_ID)
|
||||
LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID)
|
||||
LEFT OUTER JOIN TB_LEVY L ON (C.LEVY_ID = L.LEVY_ID)
|
||||
WHERE C.DEL_YN = 'N'
|
||||
<if test="by != null and by != '' and term != null">
|
||||
<choose>
|
||||
<when test="by == 'advancedOption1'">
|
||||
AND FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) LIKE CONCAT('%', #{term}, '%')
|
||||
</when>
|
||||
<otherwise>
|
||||
AND C.${by} LIKE CONCAT('%', #{term}, '%')
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="crdnId != null">AND C.CRDN_ID = #{crdnId}</if>
|
||||
<if test="taskSeCd != null">AND C.TASK_SE_CD = #{taskSeCd}</if>
|
||||
<if test="vhrno != null">AND C.VHRNO LIKE CONCAT('%', #{vhrno}, '%')</if>
|
||||
<if test="crdnInptSeCd != null">AND C.CRDN_INPT_SE_CD = #{crdnInptSeCd}</if>
|
||||
<if test="schCrdnYmdFrom != null or schCrdnYmdTo != null">
|
||||
<if test="schCrdnYmdFrom != null">AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} </if>
|
||||
<if test="schCrdnYmdTo != null">AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} </if>
|
||||
</if>
|
||||
<if test="schDateFrom != null or schDateTo != null">
|
||||
<if test="schDateOpt == 'regDt'">
|
||||
<if test="schDateFrom != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDateFrom} </if>
|
||||
<if test="schDateTo != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDateTo} </if>
|
||||
</if>
|
||||
<if test="schDateOpt == 'mdfcnDt'">
|
||||
<if test="schDateFrom != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDateFrom} </if>
|
||||
<if test="schDateTo != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDateTo} </if>
|
||||
</if>
|
||||
</if>
|
||||
|
||||
<include refid="utility.orderBy" />
|
||||
<include refid="utility.paging-suffix"/>
|
||||
</sql>
|
||||
|
||||
<select id="selectCivilComplaintList" parameterType="map" resultType="dataobject">
|
||||
/* 민원자료 목록 조회(crdn01Mapper.selectCivilComplaintList) */
|
||||
<include refid="selectCivilComplaint"/>
|
||||
</select>
|
||||
|
||||
<select id="selectCivilComplaintReceiptDataList" parameterType="map" resultType="dataobject">
|
||||
/* 민원접수자료 목록 조회(crdn01Mapper.selectCivilComplaintReceiptDataList) */
|
||||
<include refid="utility.paging-prefix"/>
|
||||
SELECT C.CRDN_ID <!-- 단속 ID -->
|
||||
, C.CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
|
||||
, CC.CVLCPT_APLCNT_NM <!-- 민원 신청인 명 -->
|
||||
, CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
|
||||
<!-- 민원 처리 담당자 전화번호 -->
|
||||
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
|
||||
, CC.CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
|
||||
, CONCAT(C.CRDN_YMD,'',C.CRDN_TM) AS CRDN_YMD_TM <!-- 단속 일시 -->
|
||||
<!-- 첨부매체 -->
|
||||
, C.ATCH_FILE_CNT <!-- 첨부 파일 수 -->
|
||||
<!-- 위반내용 -->
|
||||
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
|
||||
, C.VHRNO <!-- 차량번호 -->
|
||||
|
||||
FROM TB_CRDN C
|
||||
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.CRDN_ID = CC.CRDN_ID)
|
||||
WHERE C.DEL_YN = 'N'
|
||||
AND C.TASK_SE_CD = #{taskSeCd}
|
||||
<if test="by != null and by != '' and term != null">
|
||||
|
||||
</if>
|
||||
<include refid="utility.orderBy" />
|
||||
<include refid="utility.paging-suffix"/>
|
||||
</select>
|
||||
|
||||
<select id="selectCivilComplaintAnswerTargetDataList" parameterType="map" resultType="dataobject">
|
||||
/* 민원답변대상자료 목록 조회(crdn01Mapper.selectCivilComplaintAnswerTargetDataList) */
|
||||
<include refid="utility.paging-prefix"/>
|
||||
SELECT C.CRDN_ID <!-- 단속 ID -->
|
||||
, C.CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
|
||||
<!-- 위반내용 -->
|
||||
, CC.CVLCPT_APLCNT_NM <!-- 민원 신청인 명 -->
|
||||
, CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
|
||||
<!-- 민원 처리 담당자 전화번호 -->
|
||||
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
|
||||
, CC.CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
|
||||
, CONCAT(C.CRDN_YMD,'',C.CRDN_TM) AS CRDN_YMD_TM <!-- 단속 일시 -->
|
||||
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
|
||||
, C.VHRNO <!-- 차량번호 -->
|
||||
<!-- 서손/계도사유 -->
|
||||
<!-- 특기사항 -->
|
||||
FROM TB_CRDN C
|
||||
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.CRDN_ID = CC.CRDN_ID)
|
||||
WHERE C.DEL_YN = 'N'
|
||||
AND C.TASK_SE_CD = #{taskSeCd}
|
||||
<if test="by != null and by != '' and term != null">
|
||||
|
||||
</if>
|
||||
<include refid="utility.orderBy" />
|
||||
<include refid="utility.paging-suffix"/>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
@ -1,3 +1,260 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
|
||||
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
|
||||
<c:set var="prefixName" scope="request">민원 접수 자료</c:set>
|
||||
<!-- inner page html -->
|
||||
<div class="content-wrapper">
|
||||
<div class="container-xxl flex-grow-1 px-0">
|
||||
<c:set var="prefixName" scope="request">민원접수자료</c:set>
|
||||
<div class="card">
|
||||
<div class="wrapper-list">
|
||||
<div>
|
||||
<div class="container-page-btn">
|
||||
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화">초기화</button>
|
||||
<span class="container-window-btn-right">
|
||||
<button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색">검색</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<form id="frmSearch--${pageName}" name="frmSearch">
|
||||
<div class="container-search">
|
||||
<div class="row g-1">
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title">시스템구분</label>
|
||||
<span class="form-search-linebox">
|
||||
<c:forEach items="${FIM054List}" var="item">
|
||||
<label>
|
||||
<input name="taskSeCd" type="radio" value="${item.code}"
|
||||
class="form-check-input" alt="업무구분"
|
||||
onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);">
|
||||
${item.value}
|
||||
</label>
|
||||
</c:forEach>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title">접수일자</label>
|
||||
<span class="form-search-linebox">
|
||||
<input type="text" id="schCvlcptRcptYmdFrom--${pageName}" name="schCvlcptRcptYmdFrom" class="form-control form-date"
|
||||
data-fmt-type="day" title="시작 날짜 선택" />
|
||||
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
||||
~
|
||||
<input type="text" id="schCvlcptRcptYmdTo--${pageName}" name="schCvlcptRcptYmdTo" class="form-control form-date"
|
||||
data-fmt-type="day" title="종료 날짜 선택">
|
||||
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<input type="hidden" id="by--${pageName}" name="by" />
|
||||
<input type="text" id="byOutput--${pageName}" class="form-control" readonly value="동적 검색" />
|
||||
<input type="text" id="term--${pageName}" name="term" class="form-control" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div>
|
||||
<span class="container-page-btn">
|
||||
<div class="d-flex flex-row justify-content-between">
|
||||
<label id="crdnPaging--${pageName}PagingInfo" class="dataTables_info" role="status" aria-live="polite"></label>
|
||||
<ul id="crdnPaging--${pageName}" class="pagination pagination-primary">
|
||||
</ul>
|
||||
</div>
|
||||
<span class="container-window-btn-right">
|
||||
<a href="#" class="btn btn-blue" id="" title="민원원본보기">민원원본보기</a>
|
||||
<a href="#" class="btn btn-blue" id="" title="처리 잠시 보류">처리 잠시 보류</a>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="card-datatable text-nowrap">
|
||||
<div id="DataTables_Table_0_wrapper--${pageName}" class="dataTables_wrapper dt-bootstrap5 no-footer">
|
||||
<div id="table-responsive--${pageName}" class="table-responsive"
|
||||
style="overflow-x: scroll;height:400px;overflow-y: scroll;">
|
||||
<table id="DataTables_Table_0--${pageName}"
|
||||
class="datatables-ajax table table-bordered dataTable no-footer">
|
||||
<thead id="crdnThead--${pageName}">
|
||||
<tr>
|
||||
<th width="80">No.</th>
|
||||
<th width="80">등록구분</th>
|
||||
<th width="80">신고자</th>
|
||||
<th width="80">담당자</th>
|
||||
<th width="80">담당자전화번호</th>
|
||||
<th width="80">접수일자</th>
|
||||
<th width="80">처리기한</th>
|
||||
<th width="80">위반일자</th>
|
||||
<th width="80">첨부매체</th>
|
||||
<th width="80">사진건수</th>
|
||||
<th width="80">위반내용</th>
|
||||
<th width="80">접수번호</th>
|
||||
<th width="80">차량번호</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="crdnTbody--${pageName}"></tbody>
|
||||
<template id="crdnRow--${pageName}">
|
||||
<tr data-key="{CRDN_ID}">
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-end">{ROW_NUM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CRDN_REG_SE_CD}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_APLCNT_NM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_PRCS_PIC_NM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{담당자전화번호}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_RCPT_YMD}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_PRCS_PRNMNT_DT}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CRDN_YMD_TM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{첨부매체}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{ATCH_FILE_CNT}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{위반내용}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_RCPT_NO}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{VHRNO}</td>
|
||||
</tr>
|
||||
</template>
|
||||
<template id="crdnNotFound--${pageName}">
|
||||
<tr>
|
||||
<td valign="top" colspan="13" class="dataTables_empty text-center">민원 정보를 찾지 못했습니다.</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<jsp:include page="/WEB-INF/jsp/include/bottom.jsp" />
|
||||
|
||||
<div class="content-backdrop fade"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
/**************************************************************************
|
||||
* Global Variable
|
||||
**************************************************************************/
|
||||
var FIM026 = new CommonCodes(${FIM026});
|
||||
pageObject["${pageName}"] = {};
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
var $P = pageObject["${pageName}"];
|
||||
|
||||
$P.crdnControl = new DatasetControl({
|
||||
prefix:"crdn", prefixName:"종합", infoSize:"xl", urls : { load : "", getInfo : "" },
|
||||
keymapper:info => info ? info.CRDN_ID : "", dataGetter:obj => obj.crdnList, appendData:true,
|
||||
formats : {
|
||||
CRDN_REG_SE_CD : FIM026,
|
||||
CVLCPT_RCPT_YMD : dateFormat,
|
||||
CVLCPT_PRCS_PRNMNT_DT : datetimeFormat,
|
||||
CRDN_YMD_TM : datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
$P.crdnControl.onDatasetChange = obj => {
|
||||
|
||||
$P.renderCrdnList();
|
||||
|
||||
var prefix = obj.infoPrefix;
|
||||
$("#crdnPaging--${pageName}").setPagingInfo({
|
||||
list: $P.crdnControl.dataset,
|
||||
prefix: "crdnPaging--${pageName}",
|
||||
start: obj[prefix+"Start"],
|
||||
totalSize: obj[prefix+"Total"],
|
||||
fetchSize: obj[prefix+"Fetch"],
|
||||
func: "pageObject['${pageName}'].crdnControl.load({index})"
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
$P.crdnControl.onCurrentChange = item => {
|
||||
if (!item) return;
|
||||
|
||||
let key = item.data.CRDN_ID;
|
||||
$("#crdnTbody--${pageName}").setCurrentRow(key);
|
||||
}
|
||||
|
||||
$P.fnReset = () => {
|
||||
$('#schCvlcptRcptYmdFrom--${pageName}').datepicker('setDate', DateUtil.getDateDay(-5475).date);
|
||||
$('#schCvlcptRcptYmdTo--${pageName}').datepicker('setDate', new Date());
|
||||
$P.crdnControl.setData([]);
|
||||
}
|
||||
|
||||
$P.fnResetAndChangeBiz = taskSeCd => {
|
||||
$P.fnReset();
|
||||
$P.crdnControl.urls.load = wctx.url("/crdn/crdn01/010/"+ taskSeCd +"/list.do");
|
||||
$P.crdnControl.urls.getInfo = wctx.url("/crdn/crdn01/020/"+ taskSeCd +"/info.do");
|
||||
}
|
||||
|
||||
$P.searchCrdnList = () => {
|
||||
$P.crdnControl.query = $P.getParams();
|
||||
$P.crdnControl.load(1);
|
||||
}
|
||||
|
||||
$P.scrollCrdnList = () => {
|
||||
$P.crdnControl.load($P.crdnControl.query.pageNum + 1);
|
||||
}
|
||||
|
||||
$P.clickCrdnList = (dataKey) => {
|
||||
$P.crdnControl.setCurrent(dataKey);
|
||||
$("#crdnTbody--${pageName}").setCurrentRow(dataKey);
|
||||
}
|
||||
|
||||
$P.dblclickCrdnList = (dataKey) => {
|
||||
$P.crdnControl.getInfo(dataKey);
|
||||
}
|
||||
|
||||
$P.renderCrdnList = () => {
|
||||
|
||||
var crdnList = $P.crdnControl.dataset;
|
||||
var empty = crdnList.empty;
|
||||
var notFound = [document.getElementById("crdnNotFound--${pageName}").innerHTML];
|
||||
var found = document.getElementById("crdnRow--${pageName}").innerHTML;
|
||||
var replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['${pageName}'].clickCrdnList('" + dataItem.getValue("CRDN_ID") + "');")
|
||||
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].dblclickCrdnList('" + dataItem.getValue("CRDN_ID") + "');");
|
||||
var trs = empty ? notFound : crdnList.inStrings(found, replacer);
|
||||
$("#crdnTbody--${pageName}").html(trs.join());
|
||||
|
||||
//보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
}
|
||||
|
||||
$P.getParams = () => {
|
||||
var formFields = new FimsFormFields("#frmSearch--${pageName}");
|
||||
var data = formFields.get();
|
||||
data.fetchSize = 30;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
//이벤트 추가
|
||||
$('#btnReset--${pageName}').on('click', () => $P.fnReset());
|
||||
$('#btnSearch--${pageName}').on('click', () => $P.searchCrdnList());
|
||||
|
||||
$("#table-responsive--${pageName}").scroll(function(){
|
||||
var el = $(this);
|
||||
if(el.scrollTop() == 0){
|
||||
return;
|
||||
}
|
||||
|
||||
if((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) == el.outerHeight()){
|
||||
$P.scrollCrdnList();
|
||||
}
|
||||
});
|
||||
|
||||
//달력 초기화
|
||||
initDatepicker("frmSearch--${pageName}");
|
||||
|
||||
var defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
|
||||
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true);
|
||||
$P.fnResetAndChangeBiz(defaultBizValue);
|
||||
|
||||
//보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
@ -1,3 +1,262 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
|
||||
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
|
||||
<c:set var="prefixName" scope="request">민원 답변 대상 자료</c:set>
|
||||
<!-- inner page html -->
|
||||
<div class="content-wrapper">
|
||||
<div class="container-xxl flex-grow-1 px-0">
|
||||
<c:set var="prefixName" scope="request">민원답변대상자료</c:set>
|
||||
<div class="card">
|
||||
<div class="wrapper-list">
|
||||
<div>
|
||||
<div class="container-page-btn">
|
||||
<button type="button" class="btn btn-outline-dark" id="btnReset--${pageName}" title="초기화">초기화</button>
|
||||
<span class="container-window-btn-right">
|
||||
<button type="button" class="btn btn-search" id="btnSearch--${pageName}" title="검색">검색</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<form id="frmSearch--${pageName}" name="frmSearch">
|
||||
<div class="container-search">
|
||||
<div class="row g-1">
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title">시스템구분</label>
|
||||
<span class="form-search-linebox">
|
||||
<c:forEach items="${FIM054List}" var="item">
|
||||
<label>
|
||||
<input name="taskSeCd" type="radio" value="${item.code}"
|
||||
class="form-check-input" alt="업무구분"
|
||||
onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);">
|
||||
${item.value}
|
||||
</label>
|
||||
</c:forEach>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title">접수일자</label>
|
||||
<span class="form-search-linebox">
|
||||
<input type="text" id="schCvlcptRcptYmdFrom--${pageName}" name="schCvlcptRcptYmdFrom" class="form-control form-date"
|
||||
data-fmt-type="day" title="시작 날짜 선택" />
|
||||
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
||||
~
|
||||
<input type="text" id="schCvlcptRcptYmdTo--${pageName}" name="schCvlcptRcptYmdTo" class="form-control form-date"
|
||||
data-fmt-type="day" title="종료 날짜 선택">
|
||||
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<input type="hidden" id="by--${pageName}" name="by" />
|
||||
<input type="text" id="byOutput--${pageName}" class="form-control" readonly value="동적 검색" />
|
||||
<input type="text" id="term--${pageName}" name="term" class="form-control" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div>
|
||||
<span class="container-page-btn">
|
||||
<div class="d-flex flex-row justify-content-between">
|
||||
<label id="crdnPaging--${pageName}PagingInfo" class="dataTables_info" role="status" aria-live="polite"></label>
|
||||
<ul id="crdnPaging--${pageName}" class="pagination pagination-primary">
|
||||
</ul>
|
||||
</div>
|
||||
<span class="container-window-btn-right">
|
||||
<a href="#" class="btn btn-blue" id="" title="민원원본보기">민원원본보기</a>
|
||||
<a href="#" class="btn btn-blue" id="" title="답변미리보기">답변미리보기</a>
|
||||
<a href="#" class="btn btn-blue" id="" title="선택자료답변등록실행">선택자료답변등록실행</a>
|
||||
<a href="#" class="btn btn-blue" id="" title="답변완료로 수정">답변완료로 수정</a>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="card-datatable text-nowrap">
|
||||
<div id="DataTables_Table_0_wrapper--${pageName}" class="dataTables_wrapper dt-bootstrap5 no-footer">
|
||||
<div id="table-responsive--${pageName}" class="table-responsive"
|
||||
style="overflow-x: scroll;height:400px;overflow-y: scroll;">
|
||||
<table id="DataTables_Table_0--${pageName}"
|
||||
class="datatables-ajax table table-bordered dataTable no-footer">
|
||||
<thead id="crdnThead--${pageName}">
|
||||
<tr>
|
||||
<th width="80">No.</th>
|
||||
<th width="80">등록구분</th>
|
||||
<th width="80">위반내용</th>
|
||||
<th width="80">신고자</th>
|
||||
<th width="80">담당자</th>
|
||||
<th width="80">담당자전화번호</th>
|
||||
<th width="80">접수일자</th>
|
||||
<th width="80">처리기한</th>
|
||||
<th width="80">위반일자</th>
|
||||
<th width="80">접수번호</th>
|
||||
<th width="80">차량번호</th>
|
||||
<th width="80">서손/계도사유</th>
|
||||
<th width="80">특기사항</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="crdnTbody--${pageName}"></tbody>
|
||||
<template id="crdnRow--${pageName}">
|
||||
<tr data-key="{CRDN_ID}">
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-end">{ROW_NUM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CRDN_REG_SE_CD}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{위반내용}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_APLCNT_NM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_PRCS_PIC_NM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{담당자전화번호}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_RCPT_YMD}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_PRCS_PRNMNT_DT}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CRDN_YMD_TM}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{CVLCPT_RCPT_NO}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{VHRNO}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{서손/계도사유}</td>
|
||||
<td onclick="{onclick}" ondblclick="{ondblclick}" class="text-center">{특기사항}</td>
|
||||
</tr>
|
||||
</template>
|
||||
<template id="crdnNotFound--${pageName}">
|
||||
<tr>
|
||||
<td valign="top" colspan="13" class="dataTables_empty text-center">민원 정보를 찾지 못했습니다.</td>
|
||||
</tr>
|
||||
</template>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<jsp:include page="/WEB-INF/jsp/include/bottom.jsp" />
|
||||
|
||||
<div class="content-backdrop fade"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
/**************************************************************************
|
||||
* Global Variable
|
||||
**************************************************************************/
|
||||
var FIM026 = new CommonCodes(${FIM026});
|
||||
pageObject["${pageName}"] = {};
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
var $P = pageObject["${pageName}"];
|
||||
|
||||
$P.crdnControl = new DatasetControl({
|
||||
prefix:"crdn", prefixName:"종합", infoSize:"xl", urls : { load : "", getInfo : "" },
|
||||
keymapper:info => info ? info.CRDN_ID : "", dataGetter:obj => obj.crdnList, appendData:true,
|
||||
formats : {
|
||||
CRDN_REG_SE_CD : FIM026,
|
||||
CVLCPT_RCPT_YMD : dateFormat,
|
||||
CVLCPT_PRCS_PRNMNT_DT : datetimeFormat,
|
||||
CRDN_YMD_TM : datetimeFormat
|
||||
}
|
||||
});
|
||||
|
||||
$P.crdnControl.onDatasetChange = obj => {
|
||||
|
||||
$P.renderCrdnList();
|
||||
|
||||
var prefix = obj.infoPrefix;
|
||||
$("#crdnPaging--${pageName}").setPagingInfo({
|
||||
list: $P.crdnControl.dataset,
|
||||
prefix: "crdnPaging--${pageName}",
|
||||
start: obj[prefix+"Start"],
|
||||
totalSize: obj[prefix+"Total"],
|
||||
fetchSize: obj[prefix+"Fetch"],
|
||||
func: "pageObject['${pageName}'].crdnControl.load({index})"
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
$P.crdnControl.onCurrentChange = item => {
|
||||
if (!item) return;
|
||||
|
||||
let key = item.data.CRDN_ID;
|
||||
$("#crdnTbody--${pageName}").setCurrentRow(key);
|
||||
}
|
||||
|
||||
$P.fnReset = () => {
|
||||
$('#schCvlcptRcptYmdFrom--${pageName}').datepicker('setDate', DateUtil.getDateDay(-5475).date);
|
||||
$('#schCvlcptRcptYmdTo--${pageName}').datepicker('setDate', new Date());
|
||||
$P.crdnControl.setData([]);
|
||||
}
|
||||
|
||||
$P.fnResetAndChangeBiz = taskSeCd => {
|
||||
$P.fnReset();
|
||||
$P.crdnControl.urls.load = wctx.url("/crdn/crdn01/010/"+ taskSeCd +"/list.do");
|
||||
$P.crdnControl.urls.getInfo = wctx.url("/crdn/crdn01/020/"+ taskSeCd +"/info.do");
|
||||
}
|
||||
|
||||
$P.searchCrdnList = () => {
|
||||
$P.crdnControl.query = $P.getParams();
|
||||
$P.crdnControl.load(1);
|
||||
}
|
||||
|
||||
$P.scrollCrdnList = () => {
|
||||
$P.crdnControl.load($P.crdnControl.query.pageNum + 1);
|
||||
}
|
||||
|
||||
$P.clickCrdnList = (dataKey) => {
|
||||
$P.crdnControl.setCurrent(dataKey);
|
||||
$("#crdnTbody--${pageName}").setCurrentRow(dataKey);
|
||||
}
|
||||
|
||||
$P.dblclickCrdnList = (dataKey) => {
|
||||
$P.crdnControl.getInfo(dataKey);
|
||||
}
|
||||
|
||||
$P.renderCrdnList = () => {
|
||||
|
||||
var crdnList = $P.crdnControl.dataset;
|
||||
var empty = crdnList.empty;
|
||||
var notFound = [document.getElementById("crdnNotFound--${pageName}").innerHTML];
|
||||
var found = document.getElementById("crdnRow--${pageName}").innerHTML;
|
||||
var replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['${pageName}'].clickCrdnList('" + dataItem.getValue("CRDN_ID") + "');")
|
||||
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].dblclickCrdnList('" + dataItem.getValue("CRDN_ID") + "');");
|
||||
var trs = empty ? notFound : crdnList.inStrings(found, replacer);
|
||||
$("#crdnTbody--${pageName}").html(trs.join());
|
||||
|
||||
//보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
}
|
||||
|
||||
$P.getParams = () => {
|
||||
var formFields = new FimsFormFields("#frmSearch--${pageName}");
|
||||
var data = formFields.get();
|
||||
data.fetchSize = 30;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
//이벤트 추가
|
||||
$('#btnReset--${pageName}').on('click', () => $P.fnReset());
|
||||
$('#btnSearch--${pageName}').on('click', () => $P.searchCrdnList());
|
||||
|
||||
$("#table-responsive--${pageName}").scroll(function(){
|
||||
var el = $(this);
|
||||
if(el.scrollTop() == 0){
|
||||
return;
|
||||
}
|
||||
|
||||
if((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) == el.outerHeight()){
|
||||
$P.scrollCrdnList();
|
||||
}
|
||||
});
|
||||
|
||||
//달력 초기화
|
||||
initDatepicker("frmSearch--${pageName}");
|
||||
|
||||
var defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
|
||||
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true);
|
||||
$P.fnResetAndChangeBiz(defaultBizValue);
|
||||
|
||||
//보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
Loading…
Reference in New Issue