통계 관련 jsp 파일명, controller 파일명 수정
parent
5b67f2e365
commit
f468100911
@ -1,28 +0,0 @@
|
||||
package cokr.xit.fims.stat.web;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.base.code.CommonCode;
|
||||
import cokr.xit.base.web.ApplicationController;
|
||||
|
||||
public class Stat02Controller extends ApplicationController {
|
||||
|
||||
/** 단속 통계 메인 화면을 연다.
|
||||
* @return fims/stat/stat02010-main
|
||||
*/
|
||||
public ModelAndView statMain() {
|
||||
|
||||
ModelAndView mav = new ModelAndView();
|
||||
mav.setViewName("fims/stat/stat02010-main");
|
||||
mav.addObject("pageName", "stat02010-main");
|
||||
|
||||
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054","FIM002");
|
||||
mav.addObject("FIM054List", commonCodes.get("FIM054"));
|
||||
mav.addObject("FIM002List", commonCodes.get("FIM002"));
|
||||
|
||||
return mav;
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package cokr.xit.fims.stat.web;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.base.code.CommonCode;
|
||||
import cokr.xit.base.web.ApplicationController;
|
||||
|
||||
public class Stat03Controller extends ApplicationController {
|
||||
|
||||
/** 부과 통계 메인 화면을 연다.
|
||||
* @return fims/stat/stat03010-main
|
||||
*/
|
||||
public ModelAndView statMain() {
|
||||
|
||||
ModelAndView mav = new ModelAndView();
|
||||
mav.setViewName("fims/stat/stat03010-main");
|
||||
mav.addObject("pageName", "stat03010-main");
|
||||
|
||||
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
|
||||
mav.addObject("FIM054List", commonCodes.get("FIM054"));
|
||||
|
||||
return mav;
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package cokr.xit.fims.stat.web;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.base.code.CommonCode;
|
||||
import cokr.xit.base.web.ApplicationController;
|
||||
|
||||
public class Stat04Controller extends ApplicationController {
|
||||
|
||||
/** 발송 통계 메인 화면을 연다.
|
||||
* @return fims/stat/stat04010-main
|
||||
*/
|
||||
public ModelAndView statMain() {
|
||||
|
||||
ModelAndView mav = new ModelAndView();
|
||||
mav.setViewName("fims/stat/stat04010-main");
|
||||
mav.addObject("pageName", "stat04010-main");
|
||||
|
||||
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
|
||||
mav.addObject("FIM054List", commonCodes.get("FIM054"));
|
||||
|
||||
return mav;
|
||||
}
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package cokr.xit.fims.stat.web;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.base.code.CommonCode;
|
||||
import cokr.xit.base.web.ApplicationController;
|
||||
|
||||
public class Stat05Controller extends ApplicationController {
|
||||
/** 종합 통계 메인 화면을 연다.
|
||||
* @return fims/stat/stat05010-main
|
||||
*/
|
||||
public ModelAndView statMain() {
|
||||
|
||||
ModelAndView mav = new ModelAndView();
|
||||
mav.setViewName("fims/stat/stat05010-main");
|
||||
mav.addObject("pageName", "stat05010-main");
|
||||
|
||||
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054","FIM002");
|
||||
mav.addObject("FIM054List", commonCodes.get("FIM054"));
|
||||
mav.addObject("FIM002List", commonCodes.get("FIM002"));
|
||||
|
||||
return mav;
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
package cokr.xit.fims.stat.web;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.base.code.CommonCode;
|
||||
import cokr.xit.base.web.ApplicationController;
|
||||
|
||||
public class Stat06Controller extends ApplicationController {
|
||||
|
||||
/** 수납 통계 메인 화면을 연다.
|
||||
* @return fims/stat/stat06010-main
|
||||
*/
|
||||
public ModelAndView statMain() {
|
||||
|
||||
ModelAndView mav = new ModelAndView();
|
||||
mav.setViewName("fims/stat/stat06010-main");
|
||||
mav.addObject("pageName", "stat06010-main");
|
||||
|
||||
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054","FIM002");
|
||||
mav.addObject("FIM054List", commonCodes.get("FIM054"));
|
||||
mav.addObject("FIM002List", commonCodes.get("FIM002"));
|
||||
|
||||
return mav;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,628 @@
|
||||
<%@ 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>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="container-xxl flex-grow-1 px-0">
|
||||
<div id="statWrapper--${pageName}" class="card wrapper-list">
|
||||
<span class="mb-1">
|
||||
<!-- 상단 버튼 -->
|
||||
<div class="container-page-btn">
|
||||
<button type="button" id="btnReset--${pageName}" class="btn btn-outline-dark"
|
||||
title="초기화">
|
||||
초기화
|
||||
</button>
|
||||
<span class="container-window-btn-right">
|
||||
<button type="button" id="btnSearch--${pageName}" class="btn btn-search w-px-120"
|
||||
title="검색">
|
||||
검색
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<!-- / 상단 버튼 -->
|
||||
|
||||
<!-- 검색 조건 영역 -->
|
||||
<form id="frmSearch--${pageName}" name="frmSearch">
|
||||
<!-- 메인 조건 -->
|
||||
<div class="container-search">
|
||||
<div class="row g-1 my-2">
|
||||
<!-- 업무구분 -->
|
||||
<div class="col-12">
|
||||
<label class="form-label fw-bold form-search-title text-end">업무구분</label>
|
||||
<span class="form-search-linebox">
|
||||
<label>
|
||||
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
|
||||
value="" onchange="" checked="checked">
|
||||
전체
|
||||
</label>
|
||||
<c:forEach items="${FIM054List}" var="item">
|
||||
<label>
|
||||
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
|
||||
value="${item.code}" onchange="">
|
||||
${item.value}
|
||||
</label>
|
||||
</c:forEach>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row g-1 my-2">
|
||||
<div class="col-12">
|
||||
<select id="dayColumn--${pageName}" name="dayColumn" class="form-select">
|
||||
|
||||
</select>
|
||||
<span class="form-search-linebox">
|
||||
<input type="text" id="firstDay--${pageName}" name="firstDay"
|
||||
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="lastDay--${pageName}" name="lastDay"
|
||||
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>
|
||||
<div class="row g-1 my-2" id="searchForMenu--${pageName}">
|
||||
|
||||
</div>
|
||||
<div class="row g-1 my-2 bg-lighter">
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위1</label>
|
||||
<select id="groupLevel1--${pageName}" name="groupLevel1" class="form-select">
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위2</label>
|
||||
<select id="groupLevel2--${pageName}" name="groupLevel2" class="form-select">
|
||||
<option value="">미선택</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위3</label>
|
||||
<select id="groupLevel3--${pageName}" name="groupLevel3" class="form-select">
|
||||
<option value="">미선택</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위4</label>
|
||||
<select id="groupLevel4--${pageName}" name="groupLevel4" class="form-select">
|
||||
<option value="">미선택</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-1 my-2">
|
||||
<div class="col-12 d-flex">
|
||||
<label class="form-label fw-bold form-search-title text-end">집계항목</label>
|
||||
<select id="preset--${pageName}" name="preset"
|
||||
class="form-select w-100" style="max-width:100%">
|
||||
<option value="totCnt" selected>전체건수</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-1 my-2 bg-lighter">
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">상세목록</label>
|
||||
<select id="refListYn--${pageName}" name="refListYn" class="form-select">
|
||||
<option value="N">미조회</option>
|
||||
<option value="Y">조회</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- / 메인 조건 -->
|
||||
</form>
|
||||
</span>
|
||||
|
||||
<span id="masterArea--${pageName}">
|
||||
<div class="card-datatable text-nowrap">
|
||||
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
|
||||
<div class="table-responsive"
|
||||
style="overflow-x: scroll;height:350px;overflow-y: scroll;">
|
||||
<table id="masterTable--${pageName}"
|
||||
class="table-layout-fixed datatables-ajax table table-bordered dataTable no-footer">
|
||||
<thead class="sticky-thead">
|
||||
<tr id="masterThead--${pageName}">
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="masterTbody--${pageName}">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
<span id="detailArea--${pageName}" hidden>
|
||||
<h2 class="mt-4">상세목록</h2>
|
||||
<div class="card-datatable text-nowrap">
|
||||
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
|
||||
<div class="table-responsive"
|
||||
style="overflow-x: scroll;height:350px;overflow-y: scroll;">
|
||||
<table id="detailTable--${pageName}"
|
||||
class="table-layout-fixed datatables-ajax table table-bordered dataTable no-footer">
|
||||
<thead class="sticky-thead">
|
||||
<tr id="detailThead--${pageName}">
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="detailTbody--${pageName}">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<jsp:include page="/WEB-INF/jsp/include/bottom.jsp" />
|
||||
<div class="content-backdrop fade"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/**************************************************************************
|
||||
* Global Variable
|
||||
**************************************************************************/
|
||||
pageObject["${pageName}"] = {};
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
var $P = pageObject["${pageName}"];
|
||||
|
||||
$P.statQuery = {};
|
||||
$P.refListMap = {};
|
||||
|
||||
/**************************************************************************
|
||||
* datasetControl
|
||||
**************************************************************************/
|
||||
$P.detailGridControl = new DatasetControl({
|
||||
urls : { },
|
||||
dataGetter : obj => Array.isArray(obj) ? obj : [],
|
||||
appendData:false,
|
||||
keymapper : info => info ? info.DATA_ID : "",
|
||||
formats : {
|
||||
CVLCPT_PRCS_PRNMNT_DT : dateFormat,
|
||||
CVLCPT_RCPT_YMD : dateFormat,
|
||||
LEVY_EXCL_YMD : dateFormat,
|
||||
CVLCPT_RCPT_YMD : dateFormat,
|
||||
PSTMARK_YMD : dateFormat,
|
||||
CRDN_YMD_TM : datetimeFormat,
|
||||
REG_DT : datetimeFormat,
|
||||
MDFCN_DT : datetimeFormat,
|
||||
CVLCPT_PRCS_PRNMNT_DT : datetimeFormat,
|
||||
|
||||
FFNLG_CRDN_AMT : numberFormat,
|
||||
FFNLG_AMT : numberFormat,
|
||||
RCVMT_AMT : numberFormat
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl.on
|
||||
**************************************************************************/
|
||||
$P.detailGridControl.onDatasetChange = () => {
|
||||
|
||||
var ds = $P.detailGridControl.dataset;
|
||||
var empty = ds.empty;
|
||||
var notFound = [""];
|
||||
var found = document.getElementById("detailGridTbodyTemplate--${pageName}").innerHTML;
|
||||
var replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['${pageName}'].clickDetailGrid('" + dataItem.getValue("DATA_ID") + "');")
|
||||
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].dblClickDetailGrid('" + dataItem.getValue("DATA_ID") + "');");
|
||||
var trs = empty ? notFound : ds.inStrings(found, replacer);
|
||||
$("#detailTbody--${pageName}").html(trs.join());
|
||||
|
||||
//보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
};
|
||||
|
||||
/**************************************************************************
|
||||
* pageObject.function
|
||||
**************************************************************************/
|
||||
$P.fnReset = () => {
|
||||
|
||||
var searchForm = $("#frmSearch--${pageName}");
|
||||
searchForm.find("input[type='radio'][name='taskSeCd'][value='']").prop("checked", true);
|
||||
$("select[id='#dayColumn--${pageName}']").find("option:eq(0)").prop("selected", true);
|
||||
$("#firstDay--${pageName}").datepicker('setDate', new Date());
|
||||
$("#lastDay--${pageName}").datepicker('setDate', new Date());
|
||||
|
||||
var searchForMenu = $("#searchForMenu--${pageName}");
|
||||
searchForMenu.find("select").each(function(){ $(this).find("option:eq(0)").prop("selected", true); });
|
||||
searchForMenu.find("input[type='checkbox']").prop("checked", false);
|
||||
searchForMenu.find("input[type='text']").val("");
|
||||
|
||||
$("#groupLevel1--${pageName}").find("option:eq(0)").prop("selected", true);
|
||||
$("#groupLevel2--${pageName}").val("");
|
||||
$("#groupLevel3--${pageName}").val("");
|
||||
$("#groupLevel4--${pageName}").val("");
|
||||
$("#preset--${pageName}").find("option:eq(0)").prop("selected", true);
|
||||
$("#refListYn--${pageName}").find("option:eq(0)").prop("selected", true);
|
||||
|
||||
$P.changeGrid();
|
||||
$P.showDetailGrid();
|
||||
}
|
||||
|
||||
//그룹핑 요청 정보 추출
|
||||
$P.getGroupInfoList = () => {
|
||||
var groupInfoLiost = [];
|
||||
|
||||
var selected = $("#groupLevel1--${pageName}").find(":selected");
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
selected = $("#groupLevel2--${pageName}").find(":selected");
|
||||
if(selected.val() == ""){
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
selected = $("#groupLevel3--${pageName}").find(":selected");
|
||||
if(selected.val() == ""){
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
selected = $("#groupLevel4--${pageName}").find(":selected");
|
||||
if(selected.val() == ""){
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
//수치값 요청 정보 추출
|
||||
$P.getNumberValueInfoList = () => {
|
||||
var numberValuefoLiost = [];
|
||||
|
||||
var preset = $("#preset--${pageName}").find(":selected");
|
||||
|
||||
if(preset.val() == "totCnt"){
|
||||
numberValuefoLiost = [{ aggregateType : "count" }];
|
||||
return numberValuefoLiost;
|
||||
}
|
||||
|
||||
numberValuefoLiost = window[preset.val()];
|
||||
|
||||
return numberValuefoLiost;
|
||||
}
|
||||
|
||||
//코드서브셋 요청 정보 추출
|
||||
$P.getCodeSubsetInfoList = () => {
|
||||
var codeSubsetInfoList = [];
|
||||
|
||||
var groupLevel1subset = $P.getCodeSubsetInfo("groupLevel1--${pageName}");
|
||||
var groupLevel2subset = $P.getCodeSubsetInfo("groupLevel2--${pageName}");
|
||||
var groupLevel3subset = $P.getCodeSubsetInfo("groupLevel3--${pageName}");
|
||||
var groupLevel4subset = $P.getCodeSubsetInfo("groupLevel4--${pageName}");
|
||||
var subsetForGroup = [];
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel1subset);
|
||||
if($("#groupLevel2--${pageName}").val() != ""){
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel2subset);
|
||||
if($("#groupLevel3--${pageName}").val() != ""){
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel3subset);
|
||||
if($("#groupLevel4--${pageName}").val() != ""){
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel4subset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var subsetForPreset = $P.getCodeSubsetInfo("preset--${pageName}");
|
||||
|
||||
codeSubsetInfoList = subsetForGroup.concat(subsetForPreset);
|
||||
|
||||
if(codeSubsetInfoList.length > 1){
|
||||
codeSubsetInfoList = $P.subsetDeduplication(codeSubsetInfoList);
|
||||
}
|
||||
|
||||
return codeSubsetInfoList;
|
||||
}
|
||||
|
||||
//특정 요소의 코드서브셋 정보 추출
|
||||
$P.getCodeSubsetInfo = (elementId) => {
|
||||
var result = [];
|
||||
|
||||
var selected = $("#"+elementId).find(":selected");
|
||||
if(window[selected.val()+"_codeSubsetInfoList"] != undefined){
|
||||
result = window[selected.val()+"_codeSubsetInfoList"];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
//중복 서브셋정보 제거
|
||||
$P.subsetDeduplication = (arr) => {
|
||||
|
||||
var resultArr = [];
|
||||
|
||||
var iterator = arr.values();
|
||||
|
||||
for(var element of iterator) {
|
||||
var testFunc = function(resultElement){
|
||||
return (resultElement.sourceGroup == element.sourceGroup && resultElement.targetCode == element.targetCode);
|
||||
};
|
||||
var testResult = resultArr.findIndex(testFunc);
|
||||
|
||||
if(testResult == -1){
|
||||
resultArr.push(element);
|
||||
}
|
||||
}
|
||||
|
||||
return resultArr;
|
||||
}
|
||||
|
||||
//그리드 모양 변경
|
||||
$P.changeGrid = () => {
|
||||
|
||||
//그룹단위 초기화
|
||||
if($("#groupLevel2--${pageName}").val() == ""){
|
||||
$("#groupLevel3--${pageName}").val("");
|
||||
$("#groupLevel3--${pageName}").attr("disabled","disabled");
|
||||
} else {
|
||||
$("#groupLevel3--${pageName}").removeAttr("disabled");
|
||||
}
|
||||
|
||||
if($("#groupLevel3--${pageName}").val() == ""){
|
||||
$("#groupLevel4--${pageName}").val("");
|
||||
$("#groupLevel4--${pageName}").attr("disabled","disabled");
|
||||
} else {
|
||||
$("#groupLevel4--${pageName}").removeAttr("disabled");
|
||||
}
|
||||
|
||||
//그리드 초기화
|
||||
$("#masterThead--${pageName}").html("");
|
||||
$("#masterTbody--${pageName}").html("");
|
||||
$("#detailThead--${pageName}").html("");
|
||||
$("#detailTbody--${pageName}").html("");
|
||||
|
||||
//상단 그리드
|
||||
var level1Text = $("#groupLevel1--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level1Text+"</th>");
|
||||
|
||||
if($("#groupLevel2--${pageName}").val() != ""){
|
||||
var level2Text = $("#groupLevel2--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level2Text+"</th>");
|
||||
|
||||
if($("#groupLevel3--${pageName}").val() != ""){
|
||||
var level3Text = $("#groupLevel3--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level3Text+"</th>");
|
||||
|
||||
if($("#groupLevel4--${pageName}").val() != ""){
|
||||
var level4Text = $("#groupLevel4--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level4Text+"</th>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var preset = $("#preset--${pageName}").find(":selected");
|
||||
var cols = preset.text().split(",");
|
||||
for(var i=0; i < cols.length; i++){
|
||||
$("#masterThead--${pageName}").append("<th style='width: 160px;'>"+cols[i]+"</th>");
|
||||
}
|
||||
|
||||
$("#masterThead--${pageName}").append("<th class='cmn dummy-th'></th>");
|
||||
|
||||
//하단 그리드
|
||||
var detailTheadTemplate = document.getElementById("detailGridTheadTemplate--${pageName}");
|
||||
$("#detailThead--${pageName}").append(detailTheadTemplate.innerHTML);
|
||||
}
|
||||
|
||||
//상세 그리드 표시
|
||||
$P.showDetailGrid = () => {
|
||||
if($("#refListYn--${pageName}").val() == "Y"){
|
||||
$("#detailArea--${pageName}").removeAttr("hidden");
|
||||
} else {
|
||||
$("#detailArea--${pageName}").attr("hidden","hidden");
|
||||
}
|
||||
}
|
||||
|
||||
//통계 검색
|
||||
$P.searchStat = () => {
|
||||
|
||||
|
||||
var formFields = new FimsFormFields("#frmSearch--${pageName}");
|
||||
var formFieldsData = formFields.get();
|
||||
|
||||
if(formFieldsData.firstDay == "" || formFieldsData.lastDay == ""){
|
||||
dialog.alert("시작일자와 종료일자를 입력하세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
var statQuery = {
|
||||
structureType : "aggregate",
|
||||
decimalPoint : 1
|
||||
};
|
||||
|
||||
//업무구분
|
||||
if(formFieldsData.taskSeCd != ""){
|
||||
statQuery.taskSeCd = formFieldsData.taskSeCd;
|
||||
}
|
||||
|
||||
//날짜 조회조건
|
||||
statQuery.dayColumn = formFieldsData.dayColumn;
|
||||
statQuery.firstDay = formFieldsData.firstDay;
|
||||
statQuery.lastDay = formFieldsData.lastDay;
|
||||
|
||||
statQuery.carGb = formFieldsData.carGb;
|
||||
statQuery.schExclEnd = formFieldsData.schExclEnd;
|
||||
statQuery.schOnlyRent = formFieldsData.schOnlyRent;
|
||||
|
||||
//통계 유형
|
||||
var preset = $("#preset--${pageName}").find(":selected");
|
||||
if(preset.val() == "totCnt"){
|
||||
statQuery.statDomain = $("#defaultStatDomain--${pageName}").val();
|
||||
} else {
|
||||
statQuery.statDomain = preset[0].dataset.statDomain;
|
||||
}
|
||||
|
||||
//집계 그룹 정보
|
||||
statQuery.groupInfoList = $P.getGroupInfoList();
|
||||
|
||||
//수치값 정보
|
||||
statQuery.numberValueInfoList = $P.getNumberValueInfoList();
|
||||
|
||||
//코드서브셋 정보
|
||||
statQuery.codeSubsetInfoList = $P.getCodeSubsetInfoList();
|
||||
|
||||
//상세목록 조회 여부
|
||||
statQuery.refListYn = formFieldsData.refListYn;
|
||||
|
||||
$P.statQuery = JSON.parse(JSON.stringify(statQuery));
|
||||
|
||||
statQuery = fnJsonToFormData(statQuery, "groupInfoList");
|
||||
statQuery = fnJsonToFormData(statQuery, "numberValueInfoList");
|
||||
statQuery = fnJsonToFormData(statQuery, "codeSubsetInfoList");
|
||||
|
||||
ajax.get({
|
||||
url : wctx.url("/stat/stat01/010/info.do"),
|
||||
data : statQuery,
|
||||
success : (resp) => {
|
||||
var stat = resp.stat;
|
||||
$P.renderStat(stat);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//통계 그리드 렌더링
|
||||
$P.renderStat = (stat) => {
|
||||
$("#masterTbody--${pageName}").html("");
|
||||
$("#detailTbody--${pageName}").html("");
|
||||
refListMap = {};
|
||||
|
||||
var statItems = stat.statItems;
|
||||
|
||||
if(statItems == null || statItems.length == 0){
|
||||
dialog.alert("조회된 자료가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
//비율 소수점
|
||||
var decimalPoint = 0;
|
||||
if($P.statQuery.decimalPoint != null){
|
||||
decimalPoint = $P.statQuery.decimalPoint;
|
||||
}
|
||||
var pointMove = Number.parseFloat(0.1 ** decimalPoint).toFixed(decimalPoint);
|
||||
|
||||
for(var i=0; i < statItems.length; i++){
|
||||
|
||||
var statItem = statItems[i];
|
||||
|
||||
var itemIds = statItem.itemId;
|
||||
var itemNames = statItem.itemName;
|
||||
var numberValues = statItem.numberValue;
|
||||
|
||||
var itemKey = itemIds.join("_");
|
||||
|
||||
refListMap[itemKey] = statItem.refList == null ? [] : statItem.refList;
|
||||
|
||||
var tr = "<tr data-key='"+itemKey+"' >";
|
||||
|
||||
for(var j=0; j < itemNames.length; j++){
|
||||
|
||||
if($P.statQuery.groupInfoList[j].ctgrType == "date"){
|
||||
tr += "<td class='text-center' >";
|
||||
} else {
|
||||
tr += "<td>";
|
||||
}
|
||||
tr += itemNames[j];
|
||||
tr += "</td>";
|
||||
}
|
||||
for(var k=0; k < numberValues.length; k++){
|
||||
tr += "<td class='text-end' >";
|
||||
|
||||
if($P.statQuery.numberValueInfoList[k].aggregateType == "ratio"){
|
||||
tr += Number.parseFloat(numberValues[k] * pointMove).toFixed(decimalPoint);
|
||||
tr += " %";
|
||||
} else {
|
||||
tr += numberFormat.format(numberValues[k]);
|
||||
}
|
||||
tr += "</td>";
|
||||
}
|
||||
|
||||
tr += "</tr>";
|
||||
|
||||
$("#masterTbody--${pageName}").append(tr);
|
||||
}
|
||||
$("#masterTbody--${pageName} tr").attr("onclick","pageObject['${pageName}'].clickMasterGrid(this);");
|
||||
$("#masterTbody--${pageName} tr").attr("ondblclick","pageObject['${pageName}'].dblClickMasterGrid(this);");
|
||||
}
|
||||
|
||||
$P.clickMasterGrid = (obj) => {
|
||||
var dataKey = obj.dataset.key;
|
||||
$("#masterTbody--${pageName}").setCurrentRow(dataKey);
|
||||
}
|
||||
|
||||
$P.dblClickMasterGrid = (obj) => {
|
||||
var dataKey = obj.dataset.key;
|
||||
$P.detailGridControl.setData(refListMap[dataKey]);
|
||||
|
||||
var offset = $('#masterArea--${pageName}').offset();
|
||||
$('#statWrapper--${pageName}').animate({scrollTop : offset.top}, 400);
|
||||
}
|
||||
|
||||
$P.clickDetailGrid = (key) => {
|
||||
$("#detailTbody--${pageName}").setCurrentRow(key);
|
||||
}
|
||||
|
||||
$P.dblClickDetailGrid = (key) => {
|
||||
|
||||
}
|
||||
|
||||
initDatepicker("frmSearch--${pageName}"); //달력 초기화
|
||||
|
||||
$("#dayColumn--${pageName}").append(document.getElementById("dayColumnDatalist--${pageName}").innerHTML);
|
||||
|
||||
$("#searchForMenu--${pageName}").append(document.getElementById("searchForMenuTemplate--${pageName}").innerHTML);
|
||||
|
||||
$("#groupLevel1--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
$("#groupLevel2--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
$("#groupLevel3--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
$("#groupLevel4--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
|
||||
$("#preset--${pageName}").append(document.getElementById("presetDatalist--${pageName}").innerHTML);
|
||||
|
||||
/**************************************************************************
|
||||
* element.on
|
||||
**************************************************************************/
|
||||
$('#btnReset--${pageName}').on('click', () => $P.fnReset());
|
||||
$('#btnSearch--${pageName}').on('click', () => $P.searchStat());
|
||||
|
||||
$('#groupLevel1--${pageName}').on('change', () => $P.changeGrid());
|
||||
$('#groupLevel2--${pageName}').on('change', () => $P.changeGrid());
|
||||
$('#groupLevel3--${pageName}').on('change', () => $P.changeGrid());
|
||||
$('#groupLevel4--${pageName}').on('change', () => $P.changeGrid());
|
||||
$("#preset--${pageName}").on('change', () => $P.changeGrid());
|
||||
|
||||
$("#refListYn--${pageName}").on('change', () => $P.showDetailGrid());
|
||||
|
||||
$P.fnReset();
|
||||
});
|
||||
|
||||
|
||||
</script>
|
@ -1,628 +1,116 @@
|
||||
<%@ 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>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="container-xxl flex-grow-1 px-0">
|
||||
<div id="statWrapper--${pageName}" class="card wrapper-list">
|
||||
<span class="mb-1">
|
||||
<!-- 상단 버튼 -->
|
||||
<div class="container-page-btn">
|
||||
<button type="button" id="btnReset--${pageName}" class="btn btn-outline-dark"
|
||||
title="초기화">
|
||||
초기화
|
||||
</button>
|
||||
<span class="container-window-btn-right">
|
||||
<button type="button" id="btnSearch--${pageName}" class="btn btn-search w-px-120"
|
||||
title="검색">
|
||||
검색
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<!-- / 상단 버튼 -->
|
||||
|
||||
<!-- 검색 조건 영역 -->
|
||||
<form id="frmSearch--${pageName}" name="frmSearch">
|
||||
<!-- 메인 조건 -->
|
||||
<div class="container-search">
|
||||
<div class="row g-1 my-2">
|
||||
<!-- 업무구분 -->
|
||||
<div class="col-12">
|
||||
<label class="form-label fw-bold form-search-title text-end">업무구분</label>
|
||||
<span class="form-search-linebox">
|
||||
<label>
|
||||
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
|
||||
value="" onchange="" checked="checked">
|
||||
전체
|
||||
</label>
|
||||
<c:forEach items="${FIM054List}" var="item">
|
||||
<label>
|
||||
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
|
||||
value="${item.code}" onchange="">
|
||||
${item.value}
|
||||
</label>
|
||||
</c:forEach>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row g-1 my-2">
|
||||
<div class="col-12">
|
||||
<select id="dayColumn--${pageName}" name="dayColumn" class="form-select">
|
||||
|
||||
</select>
|
||||
<span class="form-search-linebox">
|
||||
<input type="text" id="firstDay--${pageName}" name="firstDay"
|
||||
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="lastDay--${pageName}" name="lastDay"
|
||||
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>
|
||||
<div class="row g-1 my-2" id="searchForMenu--${pageName}">
|
||||
|
||||
</div>
|
||||
<div class="row g-1 my-2 bg-lighter">
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위1</label>
|
||||
<select id="groupLevel1--${pageName}" name="groupLevel1" class="form-select">
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위2</label>
|
||||
<select id="groupLevel2--${pageName}" name="groupLevel2" class="form-select">
|
||||
<option value="">미선택</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위3</label>
|
||||
<select id="groupLevel3--${pageName}" name="groupLevel3" class="form-select">
|
||||
<option value="">미선택</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">그룹단위4</label>
|
||||
<select id="groupLevel4--${pageName}" name="groupLevel4" class="form-select">
|
||||
<option value="">미선택</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-1 my-2">
|
||||
<div class="col-12 d-flex">
|
||||
<label class="form-label fw-bold form-search-title text-end">집계항목</label>
|
||||
<select id="preset--${pageName}" name="preset"
|
||||
class="form-select w-100" style="max-width:100%">
|
||||
<option value="totCnt" selected>전체건수</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-1 my-2 bg-lighter">
|
||||
<div class="col-3">
|
||||
<label class="form-label fw-bold form-search-title text-end">상세목록</label>
|
||||
<select id="refListYn--${pageName}" name="refListYn" class="form-select">
|
||||
<option value="N">미조회</option>
|
||||
<option value="Y">조회</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- / 메인 조건 -->
|
||||
</form>
|
||||
</span>
|
||||
|
||||
<span id="masterArea--${pageName}">
|
||||
<div class="card-datatable text-nowrap">
|
||||
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
|
||||
<div class="table-responsive"
|
||||
style="overflow-x: scroll;height:350px;overflow-y: scroll;">
|
||||
<table id="masterTable--${pageName}"
|
||||
class="table-layout-fixed datatables-ajax table table-bordered dataTable no-footer">
|
||||
<thead class="sticky-thead">
|
||||
<tr id="masterThead--${pageName}">
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="masterTbody--${pageName}">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
<span id="detailArea--${pageName}" hidden>
|
||||
<h2 class="mt-4">상세목록</h2>
|
||||
<div class="card-datatable text-nowrap">
|
||||
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
|
||||
<div class="table-responsive"
|
||||
style="overflow-x: scroll;height:350px;overflow-y: scroll;">
|
||||
<table id="detailTable--${pageName}"
|
||||
class="table-layout-fixed datatables-ajax table table-bordered dataTable no-footer">
|
||||
<thead class="sticky-thead">
|
||||
<tr id="detailThead--${pageName}">
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="detailTbody--${pageName}">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
<c:set var="prefixName" scope="request">단속 통계</c:set>
|
||||
<jsp:include page="/WEB-INF/jsp/fims/stat/stat-main.jsp" />
|
||||
|
||||
<input type="hidden" id="defaultStatDomain--${pageName}" value="sprt" />
|
||||
|
||||
<datalist id="dayColumnDatalist--${pageName}">
|
||||
<option value="CRDN_YMD">단속일자</option>
|
||||
</datalist>
|
||||
|
||||
<template id="searchForMenuTemplate--${pageName}">
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title text-end">단속구분</label>
|
||||
<select name="crdnSeCd" class="form-select">
|
||||
<option value="">전체</option>
|
||||
<c:forEach items="${FIM002List}" var="item">
|
||||
<option value="${item.code}">${item.value}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<jsp:include page="/WEB-INF/jsp/include/bottom.jsp" />
|
||||
<div class="content-backdrop fade"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/**************************************************************************
|
||||
* Global Variable
|
||||
**************************************************************************/
|
||||
pageObject["${pageName}"] = {};
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
var $P = pageObject["${pageName}"];
|
||||
|
||||
$P.statQuery = {};
|
||||
$P.refListMap = {};
|
||||
|
||||
/**************************************************************************
|
||||
* datasetControl
|
||||
**************************************************************************/
|
||||
$P.detailGridControl = new DatasetControl({
|
||||
urls : { },
|
||||
dataGetter : obj => Array.isArray(obj) ? obj : [],
|
||||
appendData:false,
|
||||
keymapper : info => info ? info.DATA_ID : "",
|
||||
formats : {
|
||||
CVLCPT_PRCS_PRNMNT_DT : dateFormat,
|
||||
CVLCPT_RCPT_YMD : dateFormat,
|
||||
LEVY_EXCL_YMD : dateFormat,
|
||||
CVLCPT_RCPT_YMD : dateFormat,
|
||||
PSTMARK_YMD : dateFormat,
|
||||
CRDN_YMD_TM : datetimeFormat,
|
||||
REG_DT : datetimeFormat,
|
||||
MDFCN_DT : datetimeFormat,
|
||||
CVLCPT_PRCS_PRNMNT_DT : datetimeFormat,
|
||||
|
||||
FFNLG_CRDN_AMT : numberFormat,
|
||||
FFNLG_AMT : numberFormat,
|
||||
RCVMT_AMT : numberFormat
|
||||
}
|
||||
});
|
||||
|
||||
/**************************************************************************
|
||||
* DatasetControl.on
|
||||
**************************************************************************/
|
||||
$P.detailGridControl.onDatasetChange = () => {
|
||||
|
||||
var ds = $P.detailGridControl.dataset;
|
||||
var empty = ds.empty;
|
||||
var notFound = [""];
|
||||
var found = document.getElementById("detailGridTbodyTemplate--${pageName}").innerHTML;
|
||||
var replacer = (str, dataItem) => str
|
||||
.replace(/{onclick}/gi, "pageObject['${pageName}'].clickDetailGrid('" + dataItem.getValue("DATA_ID") + "');")
|
||||
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].dblClickDetailGrid('" + dataItem.getValue("DATA_ID") + "');");
|
||||
var trs = empty ? notFound : ds.inStrings(found, replacer);
|
||||
$("#detailTbody--${pageName}").html(trs.join());
|
||||
|
||||
//보안모드
|
||||
fn_securityModeToggle($("#securityMode--top").is(":checked"));
|
||||
};
|
||||
|
||||
/**************************************************************************
|
||||
* pageObject.function
|
||||
**************************************************************************/
|
||||
$P.fnReset = () => {
|
||||
|
||||
var searchForm = $("#frmSearch--${pageName}");
|
||||
searchForm.find("input[type='radio'][name='taskSeCd'][value='']").prop("checked", true);
|
||||
$("select[id='#dayColumn--${pageName}']").find("option:eq(0)").prop("selected", true);
|
||||
$("#firstDay--${pageName}").datepicker('setDate', new Date());
|
||||
$("#lastDay--${pageName}").datepicker('setDate', new Date());
|
||||
|
||||
var searchForMenu = $("#searchForMenu--${pageName}");
|
||||
searchForMenu.find("select").each(function(){ $(this).find("option:eq(0)").prop("selected", true); });
|
||||
searchForMenu.find("input[type='checkbox']").prop("checked", false);
|
||||
searchForMenu.find("input[type='text']").val("");
|
||||
|
||||
$("#groupLevel1--${pageName}").find("option:eq(0)").prop("selected", true);
|
||||
$("#groupLevel2--${pageName}").val("");
|
||||
$("#groupLevel3--${pageName}").val("");
|
||||
$("#groupLevel4--${pageName}").val("");
|
||||
$("#preset--${pageName}").find("option:eq(0)").prop("selected", true);
|
||||
$("#refListYn--${pageName}").find("option:eq(0)").prop("selected", true);
|
||||
|
||||
$P.changeGrid();
|
||||
$P.showDetailGrid();
|
||||
}
|
||||
|
||||
//그룹핑 요청 정보 추출
|
||||
$P.getGroupInfoList = () => {
|
||||
var groupInfoLiost = [];
|
||||
|
||||
var selected = $("#groupLevel1--${pageName}").find(":selected");
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
selected = $("#groupLevel2--${pageName}").find(":selected");
|
||||
if(selected.val() == ""){
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
selected = $("#groupLevel3--${pageName}").find(":selected");
|
||||
if(selected.val() == ""){
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
selected = $("#groupLevel4--${pageName}").find(":selected");
|
||||
if(selected.val() == ""){
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
groupInfoLiost.push({
|
||||
refCol : selected[0].dataset.refCol,
|
||||
ctgrType : selected[0].dataset.ctgrType,
|
||||
dtlCtgr : selected[0].dataset.dtlCtgr
|
||||
})
|
||||
|
||||
return groupInfoLiost;
|
||||
}
|
||||
|
||||
//수치값 요청 정보 추출
|
||||
$P.getNumberValueInfoList = () => {
|
||||
var numberValuefoLiost = [];
|
||||
|
||||
var preset = $("#preset--${pageName}").find(":selected");
|
||||
|
||||
if(preset.val() == "totCnt"){
|
||||
numberValuefoLiost = [{ aggregateType : "count" }];
|
||||
return numberValuefoLiost;
|
||||
}
|
||||
|
||||
numberValuefoLiost = window[preset.val()];
|
||||
|
||||
return numberValuefoLiost;
|
||||
}
|
||||
|
||||
//코드서브셋 요청 정보 추출
|
||||
$P.getCodeSubsetInfoList = () => {
|
||||
var codeSubsetInfoList = [];
|
||||
|
||||
var groupLevel1subset = $P.getCodeSubsetInfo("groupLevel1--${pageName}");
|
||||
var groupLevel2subset = $P.getCodeSubsetInfo("groupLevel2--${pageName}");
|
||||
var groupLevel3subset = $P.getCodeSubsetInfo("groupLevel3--${pageName}");
|
||||
var groupLevel4subset = $P.getCodeSubsetInfo("groupLevel4--${pageName}");
|
||||
var subsetForGroup = [];
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel1subset);
|
||||
if($("#groupLevel2--${pageName}").val() != ""){
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel2subset);
|
||||
if($("#groupLevel3--${pageName}").val() != ""){
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel3subset);
|
||||
if($("#groupLevel4--${pageName}").val() != ""){
|
||||
subsetForGroup = subsetForGroup.concat(groupLevel4subset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var subsetForPreset = $P.getCodeSubsetInfo("preset--${pageName}");
|
||||
|
||||
codeSubsetInfoList = subsetForGroup.concat(subsetForPreset);
|
||||
|
||||
if(codeSubsetInfoList.length > 1){
|
||||
codeSubsetInfoList = $P.subsetDeduplication(codeSubsetInfoList);
|
||||
}
|
||||
|
||||
return codeSubsetInfoList;
|
||||
}
|
||||
|
||||
//특정 요소의 코드서브셋 정보 추출
|
||||
$P.getCodeSubsetInfo = (elementId) => {
|
||||
var result = [];
|
||||
|
||||
var selected = $("#"+elementId).find(":selected");
|
||||
if(window[selected.val()+"_codeSubsetInfoList"] != undefined){
|
||||
result = window[selected.val()+"_codeSubsetInfoList"];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
//중복 서브셋정보 제거
|
||||
$P.subsetDeduplication = (arr) => {
|
||||
|
||||
var resultArr = [];
|
||||
|
||||
var iterator = arr.values();
|
||||
|
||||
for(var element of iterator) {
|
||||
var testFunc = function(resultElement){
|
||||
return (resultElement.sourceGroup == element.sourceGroup && resultElement.targetCode == element.targetCode);
|
||||
};
|
||||
var testResult = resultArr.findIndex(testFunc);
|
||||
|
||||
if(testResult == -1){
|
||||
resultArr.push(element);
|
||||
}
|
||||
}
|
||||
|
||||
return resultArr;
|
||||
}
|
||||
|
||||
//그리드 모양 변경
|
||||
$P.changeGrid = () => {
|
||||
|
||||
//그룹단위 초기화
|
||||
if($("#groupLevel2--${pageName}").val() == ""){
|
||||
$("#groupLevel3--${pageName}").val("");
|
||||
$("#groupLevel3--${pageName}").attr("disabled","disabled");
|
||||
} else {
|
||||
$("#groupLevel3--${pageName}").removeAttr("disabled");
|
||||
}
|
||||
|
||||
if($("#groupLevel3--${pageName}").val() == ""){
|
||||
$("#groupLevel4--${pageName}").val("");
|
||||
$("#groupLevel4--${pageName}").attr("disabled","disabled");
|
||||
} else {
|
||||
$("#groupLevel4--${pageName}").removeAttr("disabled");
|
||||
}
|
||||
|
||||
//그리드 초기화
|
||||
$("#masterThead--${pageName}").html("");
|
||||
$("#masterTbody--${pageName}").html("");
|
||||
$("#detailThead--${pageName}").html("");
|
||||
$("#detailTbody--${pageName}").html("");
|
||||
|
||||
//상단 그리드
|
||||
var level1Text = $("#groupLevel1--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level1Text+"</th>");
|
||||
|
||||
if($("#groupLevel2--${pageName}").val() != ""){
|
||||
var level2Text = $("#groupLevel2--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level2Text+"</th>");
|
||||
|
||||
if($("#groupLevel3--${pageName}").val() != ""){
|
||||
var level3Text = $("#groupLevel3--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level3Text+"</th>");
|
||||
|
||||
if($("#groupLevel4--${pageName}").val() != ""){
|
||||
var level4Text = $("#groupLevel4--${pageName}").find(":selected").text();
|
||||
$("#masterThead--${pageName}").append("<th class='text-orange' style='width:160px'>"+level4Text+"</th>");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var preset = $("#preset--${pageName}").find(":selected");
|
||||
var cols = preset.text().split(",");
|
||||
for(var i=0; i < cols.length; i++){
|
||||
$("#masterThead--${pageName}").append("<th style='width: 160px;'>"+cols[i]+"</th>");
|
||||
}
|
||||
|
||||
$("#masterThead--${pageName}").append("<th class='cmn dummy-th'></th>");
|
||||
|
||||
//하단 그리드
|
||||
var detailTheadTemplate = document.getElementById("detailGridTheadTemplate--${pageName}");
|
||||
$("#detailThead--${pageName}").append(detailTheadTemplate.innerHTML);
|
||||
}
|
||||
|
||||
//상세 그리드 표시
|
||||
$P.showDetailGrid = () => {
|
||||
if($("#refListYn--${pageName}").val() == "Y"){
|
||||
$("#detailArea--${pageName}").removeAttr("hidden");
|
||||
} else {
|
||||
$("#detailArea--${pageName}").attr("hidden","hidden");
|
||||
}
|
||||
}
|
||||
|
||||
//통계 검색
|
||||
$P.searchStat = () => {
|
||||
|
||||
|
||||
var formFields = new FimsFormFields("#frmSearch--${pageName}");
|
||||
var formFieldsData = formFields.get();
|
||||
|
||||
if(formFieldsData.firstDay == "" || formFieldsData.lastDay == ""){
|
||||
dialog.alert("시작일자와 종료일자를 입력하세요.");
|
||||
return;
|
||||
}
|
||||
|
||||
var statQuery = {
|
||||
structureType : "aggregate",
|
||||
decimalPoint : 1
|
||||
};
|
||||
|
||||
//업무구분
|
||||
if(formFieldsData.taskSeCd != ""){
|
||||
statQuery.taskSeCd = formFieldsData.taskSeCd;
|
||||
}
|
||||
|
||||
//날짜 조회조건
|
||||
statQuery.dayColumn = formFieldsData.dayColumn;
|
||||
statQuery.firstDay = formFieldsData.firstDay;
|
||||
statQuery.lastDay = formFieldsData.lastDay;
|
||||
|
||||
statQuery.carGb = formFieldsData.carGb;
|
||||
statQuery.schExclEnd = formFieldsData.schExclEnd;
|
||||
statQuery.schOnlyRent = formFieldsData.schOnlyRent;
|
||||
|
||||
//통계 유형
|
||||
var preset = $("#preset--${pageName}").find(":selected");
|
||||
if(preset.val() == "totCnt"){
|
||||
statQuery.statDomain = $("#defaultStatDomain--${pageName}").val();
|
||||
} else {
|
||||
statQuery.statDomain = preset[0].dataset.statDomain;
|
||||
}
|
||||
|
||||
//집계 그룹 정보
|
||||
statQuery.groupInfoList = $P.getGroupInfoList();
|
||||
|
||||
//수치값 정보
|
||||
statQuery.numberValueInfoList = $P.getNumberValueInfoList();
|
||||
|
||||
//코드서브셋 정보
|
||||
statQuery.codeSubsetInfoList = $P.getCodeSubsetInfoList();
|
||||
|
||||
//상세목록 조회 여부
|
||||
statQuery.refListYn = formFieldsData.refListYn;
|
||||
|
||||
$P.statQuery = JSON.parse(JSON.stringify(statQuery));
|
||||
|
||||
statQuery = fnJsonToFormData(statQuery, "groupInfoList");
|
||||
statQuery = fnJsonToFormData(statQuery, "numberValueInfoList");
|
||||
statQuery = fnJsonToFormData(statQuery, "codeSubsetInfoList");
|
||||
|
||||
ajax.get({
|
||||
url : wctx.url("/stat/stat01/010/info.do"),
|
||||
data : statQuery,
|
||||
success : (resp) => {
|
||||
var stat = resp.stat;
|
||||
$P.renderStat(stat);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//통계 그리드 렌더링
|
||||
$P.renderStat = (stat) => {
|
||||
$("#masterTbody--${pageName}").html("");
|
||||
$("#detailTbody--${pageName}").html("");
|
||||
refListMap = {};
|
||||
|
||||
var statItems = stat.statItems;
|
||||
|
||||
if(statItems == null || statItems.length == 0){
|
||||
dialog.alert("조회된 자료가 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
//비율 소수점
|
||||
var decimalPoint = 0;
|
||||
if($P.statQuery.decimalPoint != null){
|
||||
decimalPoint = $P.statQuery.decimalPoint;
|
||||
}
|
||||
var pointMove = Number.parseFloat(0.1 ** decimalPoint).toFixed(decimalPoint);
|
||||
|
||||
for(var i=0; i < statItems.length; i++){
|
||||
|
||||
var statItem = statItems[i];
|
||||
|
||||
var itemIds = statItem.itemId;
|
||||
var itemNames = statItem.itemName;
|
||||
var numberValues = statItem.numberValue;
|
||||
|
||||
var itemKey = itemIds.join("_");
|
||||
|
||||
refListMap[itemKey] = statItem.refList == null ? [] : statItem.refList;
|
||||
|
||||
var tr = "<tr data-key='"+itemKey+"' >";
|
||||
|
||||
for(var j=0; j < itemNames.length; j++){
|
||||
|
||||
if($P.statQuery.groupInfoList[j].ctgrType == "date"){
|
||||
tr += "<td class='text-center' >";
|
||||
} else {
|
||||
tr += "<td>";
|
||||
}
|
||||
tr += itemNames[j];
|
||||
tr += "</td>";
|
||||
}
|
||||
for(var k=0; k < numberValues.length; k++){
|
||||
tr += "<td class='text-end' >";
|
||||
|
||||
if($P.statQuery.numberValueInfoList[k].aggregateType == "ratio"){
|
||||
tr += Number.parseFloat(numberValues[k] * pointMove).toFixed(decimalPoint);
|
||||
tr += " %";
|
||||
} else {
|
||||
tr += numberFormat.format(numberValues[k]);
|
||||
}
|
||||
tr += "</td>";
|
||||
}
|
||||
|
||||
tr += "</tr>";
|
||||
|
||||
$("#masterTbody--${pageName}").append(tr);
|
||||
}
|
||||
$("#masterTbody--${pageName} tr").attr("onclick","pageObject['${pageName}'].clickMasterGrid(this);");
|
||||
$("#masterTbody--${pageName} tr").attr("ondblclick","pageObject['${pageName}'].dblClickMasterGrid(this);");
|
||||
}
|
||||
|
||||
$P.clickMasterGrid = (obj) => {
|
||||
var dataKey = obj.dataset.key;
|
||||
$("#masterTbody--${pageName}").setCurrentRow(dataKey);
|
||||
}
|
||||
|
||||
$P.dblClickMasterGrid = (obj) => {
|
||||
var dataKey = obj.dataset.key;
|
||||
$P.detailGridControl.setData(refListMap[dataKey]);
|
||||
|
||||
var offset = $('#masterArea--${pageName}').offset();
|
||||
$('#statWrapper--${pageName}').animate({scrollTop : offset.top}, 400);
|
||||
}
|
||||
|
||||
$P.clickDetailGrid = (key) => {
|
||||
$("#detailTbody--${pageName}").setCurrentRow(key);
|
||||
}
|
||||
|
||||
$P.dblClickDetailGrid = (key) => {
|
||||
|
||||
}
|
||||
|
||||
initDatepicker("frmSearch--${pageName}"); //달력 초기화
|
||||
|
||||
$("#dayColumn--${pageName}").append(document.getElementById("dayColumnDatalist--${pageName}").innerHTML);
|
||||
|
||||
$("#searchForMenu--${pageName}").append(document.getElementById("searchForMenuTemplate--${pageName}").innerHTML);
|
||||
|
||||
$("#groupLevel1--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
$("#groupLevel2--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
$("#groupLevel3--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
$("#groupLevel4--${pageName}").append(document.getElementById("groupLevelDatalist--${pageName}").innerHTML);
|
||||
|
||||
$("#preset--${pageName}").append(document.getElementById("presetDatalist--${pageName}").innerHTML);
|
||||
|
||||
/**************************************************************************
|
||||
* element.on
|
||||
**************************************************************************/
|
||||
$('#btnReset--${pageName}').on('click', () => $P.fnReset());
|
||||
$('#btnSearch--${pageName}').on('click', () => $P.searchStat());
|
||||
|
||||
$('#groupLevel1--${pageName}').on('change', () => $P.changeGrid());
|
||||
$('#groupLevel2--${pageName}').on('change', () => $P.changeGrid());
|
||||
$('#groupLevel3--${pageName}').on('change', () => $P.changeGrid());
|
||||
$('#groupLevel4--${pageName}').on('change', () => $P.changeGrid());
|
||||
$("#preset--${pageName}").on('change', () => $P.changeGrid());
|
||||
|
||||
$("#refListYn--${pageName}").on('change', () => $P.showDetailGrid());
|
||||
|
||||
$P.fnReset();
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title text-end">차량구분</label>
|
||||
<select name="carGb" class="form-select">
|
||||
<option value="">전체</option>
|
||||
<option value="일반">일반</option>
|
||||
<option value="중기">중기</option>
|
||||
<option value="임시">임시</option>
|
||||
<option value="외교">외교</option>
|
||||
<option value="준외">준외</option>
|
||||
<option value="영사">영사</option>
|
||||
<option value="준영">준영</option>
|
||||
<option value="국제">국제</option>
|
||||
<option value="미군">미군</option>
|
||||
<option value="기타">기타</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<label>
|
||||
<input type="checkbox" name="schExclEnd" class="form-check-input" />
|
||||
서손자료 제외
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="schOnlyRent" class="form-check-input" />
|
||||
렌트카차량(하허호후)만 조회
|
||||
</label>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<datalist id="groupLevelDatalist--${pageName}">
|
||||
<option value="sggCd"
|
||||
data-ref-col="SGG_CD" data-ctgr-type="otherCode" data-dtl-ctgr="SGG_CD"
|
||||
>시군구</option>
|
||||
<option value="taskSeCd"
|
||||
data-ref-col="TASK_SE_CD" data-ctgr-type="code" data-dtl-ctgr="FIM054"
|
||||
>과태료</option>
|
||||
<option value="crdnTeam"
|
||||
data-ref-col="TEAM_ID" data-ctgr-type="otherCode" data-dtl-ctgr="TEAM_ID"
|
||||
>단속조</option>
|
||||
<option value="crdnPlc"
|
||||
data-ref-col="CRDN_PLC" data-ctgr-type="" data-dtl-ctgr=""
|
||||
>단속장소</option>
|
||||
<option value="crdnYear"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYY"
|
||||
>단속연도</option>
|
||||
<option value="crdnYearMonth"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYYMM"
|
||||
>단속연월</option>
|
||||
<option value="crdnYmd"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYYMMDD"
|
||||
>단속일자</option>
|
||||
<option value="crdnDayOfWeek"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="DAY_OF_WEEK"
|
||||
>단속요일</option>
|
||||
<option value="crdnHour"
|
||||
data-ref-col="CRDN_TM" data-ctgr-type="date" data-dtl-ctgr="HH"
|
||||
>단속시간대</option>
|
||||
<option value="vhrno"
|
||||
data-ref-col="VHRNO" data-ctgr-type="" data-dtl-ctgr=""
|
||||
>차량번호</option>
|
||||
<option value="crdnStdgNm"
|
||||
data-ref-col="CRDN_STDG_NM" data-ctgr-type="" data-dtl-ctgr=""
|
||||
>단속동</option>
|
||||
<option value="crdnSttsCd"
|
||||
data-ref-col="CRDN_STTS_CD" data-ctgr-type="code" data-dtl-ctgr="FIM010"
|
||||
>처리상태</option>
|
||||
<option value="crdnSpareaCd"
|
||||
data-ref-col="CRDN_SPAREA_CD" data-ctgr-type="code" data-dtl-ctgr="FIM007"
|
||||
>특별구역</option>
|
||||
<option value="vltnId"
|
||||
data-ref-col="VLTN_ID" data-ctgr-type="otherCode" data-dtl-ctgr="VLTN_ID"
|
||||
>위반내용</option>
|
||||
<option value="ffnlgCarmdlCd"
|
||||
data-ref-col="FFNLG_CARMDL_CD" data-ctgr-type="code" data-dtl-ctgr="FIM009"
|
||||
>차종</option>
|
||||
<option value="businessCar"
|
||||
data-ref-col="" data-ctgr-type="method" data-dtl-ctgr="businessYnOfCar"
|
||||
>사업용차량구분</option>
|
||||
<option value="carGb"
|
||||
data-ref-col="" data-ctgr-type="method" data-dtl-ctgr="carGb"
|
||||
>차량구분</option>
|
||||
</datalist>
|
||||
|
||||
<datalist id="presetDatalist--${pageName}">
|
||||
<option value="preset1"
|
||||
>전체건수,총금액,단속상태건수,단속상태금액,자납부과건수,자납부과금액,의견진술접수건수,의견진술수용건수,경찰서이첩건수,서손건수,면제건수,부과건수,부과금액,가산금액대납건수,대납금액,징수건수,징수금액,체납건수,체납금액,감액건수,감액금액,부분감액,합계건수,합계금액
|
||||
</option>
|
||||
<option value="preset2"
|
||||
>전체건수,총금액,부과필요건수,부과유예건수,의견진술수용건수,경찰서이첩건수,서손건수,면제차량건수,부과건수,부과금액,징수건수,징수금액,감액건수,감액금액,미납건수,미납금액
|
||||
</option>
|
||||
</datalist>
|
||||
|
||||
<script src="<c:url value="/resources/js/fims/stat/sprtPreset.js?${ver}"/>"></script>
|
||||
|
||||
<jsp:include page="/WEB-INF/jsp/fims/stat/stat01011-info.jsp" />
|
@ -1,116 +0,0 @@
|
||||
<%@ 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>
|
||||
<jsp:include page="/WEB-INF/jsp/fims/stat/stat01010-main.jsp" />
|
||||
|
||||
<input type="hidden" id="defaultStatDomain--${pageName}" value="sprt" />
|
||||
|
||||
<datalist id="dayColumnDatalist--${pageName}">
|
||||
<option value="CRDN_YMD">단속일자</option>
|
||||
</datalist>
|
||||
|
||||
<template id="searchForMenuTemplate--${pageName}">
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title text-end">단속구분</label>
|
||||
<select name="crdnSeCd" class="form-select">
|
||||
<option value="">전체</option>
|
||||
<c:forEach items="${FIM002List}" var="item">
|
||||
<option value="${item.code}">${item.value}</option>
|
||||
</c:forEach>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label fw-bold form-search-title text-end">차량구분</label>
|
||||
<select name="carGb" class="form-select">
|
||||
<option value="">전체</option>
|
||||
<option value="일반">일반</option>
|
||||
<option value="중기">중기</option>
|
||||
<option value="임시">임시</option>
|
||||
<option value="외교">외교</option>
|
||||
<option value="준외">준외</option>
|
||||
<option value="영사">영사</option>
|
||||
<option value="준영">준영</option>
|
||||
<option value="국제">국제</option>
|
||||
<option value="미군">미군</option>
|
||||
<option value="기타">기타</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<label>
|
||||
<input type="checkbox" name="schExclEnd" class="form-check-input" />
|
||||
서손자료 제외
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="schOnlyRent" class="form-check-input" />
|
||||
렌트카차량(하허호후)만 조회
|
||||
</label>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<datalist id="groupLevelDatalist--${pageName}">
|
||||
<option value="sggCd"
|
||||
data-ref-col="SGG_CD" data-ctgr-type="otherCode" data-dtl-ctgr="SGG_CD"
|
||||
>시군구</option>
|
||||
<option value="taskSeCd"
|
||||
data-ref-col="TASK_SE_CD" data-ctgr-type="code" data-dtl-ctgr="FIM054"
|
||||
>과태료</option>
|
||||
<option value="crdnTeam"
|
||||
data-ref-col="TEAM_ID" data-ctgr-type="otherCode" data-dtl-ctgr="TEAM_ID"
|
||||
>단속조</option>
|
||||
<option value="crdnPlc"
|
||||
data-ref-col="CRDN_PLC" data-ctgr-type="" data-dtl-ctgr=""
|
||||
>단속장소</option>
|
||||
<option value="crdnYear"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYY"
|
||||
>단속연도</option>
|
||||
<option value="crdnYearMonth"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYYMM"
|
||||
>단속연월</option>
|
||||
<option value="crdnYmd"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYYMMDD"
|
||||
>단속일자</option>
|
||||
<option value="crdnDayOfWeek"
|
||||
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="DAY_OF_WEEK"
|
||||
>단속요일</option>
|
||||
<option value="crdnHour"
|
||||
data-ref-col="CRDN_TM" data-ctgr-type="date" data-dtl-ctgr="HH"
|
||||
>단속시간대</option>
|
||||
<option value="vhrno"
|
||||
data-ref-col="VHRNO" data-ctgr-type="" data-dtl-ctgr=""
|
||||
>차량번호</option>
|
||||
<option value="crdnStdgNm"
|
||||
data-ref-col="CRDN_STDG_NM" data-ctgr-type="" data-dtl-ctgr=""
|
||||
>단속동</option>
|
||||
<option value="crdnSttsCd"
|
||||
data-ref-col="CRDN_STTS_CD" data-ctgr-type="code" data-dtl-ctgr="FIM010"
|
||||
>처리상태</option>
|
||||
<option value="crdnSpareaCd"
|
||||
data-ref-col="CRDN_SPAREA_CD" data-ctgr-type="code" data-dtl-ctgr="FIM007"
|
||||
>특별구역</option>
|
||||
<option value="vltnId"
|
||||
data-ref-col="VLTN_ID" data-ctgr-type="otherCode" data-dtl-ctgr="VLTN_ID"
|
||||
>위반내용</option>
|
||||
<option value="ffnlgCarmdlCd"
|
||||
data-ref-col="FFNLG_CARMDL_CD" data-ctgr-type="code" data-dtl-ctgr="FIM009"
|
||||
>차종</option>
|
||||
<option value="businessCar"
|
||||
data-ref-col="" data-ctgr-type="method" data-dtl-ctgr="businessYnOfCar"
|
||||
>사업용차량구분</option>
|
||||
<option value="carGb"
|
||||
data-ref-col="" data-ctgr-type="method" data-dtl-ctgr="carGb"
|
||||
>차량구분</option>
|
||||
</datalist>
|
||||
|
||||
<datalist id="presetDatalist--${pageName}">
|
||||
<option value="preset1"
|
||||
>전체건수,총금액,단속상태건수,단속상태금액,자납부과건수,자납부과금액,의견진술접수건수,의견진술수용건수,경찰서이첩건수,서손건수,면제건수,부과건수,부과금액,가산금액대납건수,대납금액,징수건수,징수금액,체납건수,체납금액,감액건수,감액금액,부분감액,합계건수,합계금액
|
||||
</option>
|
||||
<option value="preset2"
|
||||
>전체건수,총금액,부과필요건수,부과유예건수,의견진술수용건수,경찰서이첩건수,서손건수,면제차량건수,부과건수,부과금액,징수건수,징수금액,감액건수,감액금액,미납건수,미납금액
|
||||
</option>
|
||||
</datalist>
|
||||
|
||||
<script src="<c:url value="/resources/js/fims/stat/sprtPreset.js?${ver}"/>"></script>
|
||||
|
||||
<jsp:include page="/WEB-INF/jsp/fims/stat/stat05020-info.jsp" />
|
Loading…
Reference in New Issue