통계 관련 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"%>
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
|
||||||
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
|
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
|
||||||
|
|
||||||
<c:set var="prefixName" scope="request">통계 공통</c:set>
|
<c:set var="prefixName" scope="request">단속 통계</c:set>
|
||||||
|
<jsp:include page="/WEB-INF/jsp/fims/stat/stat-main.jsp" />
|
||||||
<div class="content-wrapper">
|
|
||||||
<div class="container-xxl flex-grow-1 px-0">
|
<input type="hidden" id="defaultStatDomain--${pageName}" value="sprt" />
|
||||||
<div id="statWrapper--${pageName}" class="card wrapper-list">
|
|
||||||
<span class="mb-1">
|
<datalist id="dayColumnDatalist--${pageName}">
|
||||||
<!-- 상단 버튼 -->
|
<option value="CRDN_YMD">단속일자</option>
|
||||||
<div class="container-page-btn">
|
</datalist>
|
||||||
<button type="button" id="btnReset--${pageName}" class="btn btn-outline-dark"
|
|
||||||
title="초기화">
|
<template id="searchForMenuTemplate--${pageName}">
|
||||||
초기화
|
<div class="col-6">
|
||||||
</button>
|
<label class="form-label fw-bold form-search-title text-end">단속구분</label>
|
||||||
<span class="container-window-btn-right">
|
<select name="crdnSeCd" class="form-select">
|
||||||
<button type="button" id="btnSearch--${pageName}" class="btn btn-search w-px-120"
|
<option value="">전체</option>
|
||||||
title="검색">
|
<c:forEach items="${FIM002List}" var="item">
|
||||||
검색
|
<option value="${item.code}">${item.value}</option>
|
||||||
</button>
|
</c:forEach>
|
||||||
</span>
|
</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>
|
||||||
<!-- / 상단 버튼 -->
|
|
||||||
|
|
||||||
<!-- 검색 조건 영역 -->
|
|
||||||
<form id="frmSearch--${pageName}" name="frmSearch">
|
|
||||||
<!-- 메인 조건 -->
|
|
||||||
<div class="container-search">
|
|
||||||
<div class="row g-1 my-2">
|
|
||||||
<!-- 업무구분 -->
|
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<label class="form-label fw-bold form-search-title text-end">업무구분</label>
|
|
||||||
<span class="form-search-linebox">
|
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
|
<input type="checkbox" name="schExclEnd" class="form-check-input" />
|
||||||
value="" onchange="" checked="checked">
|
서손자료 제외
|
||||||
전체
|
|
||||||
</label>
|
</label>
|
||||||
<c:forEach items="${FIM054List}" var="item">
|
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
|
<input type="checkbox" name="schOnlyRent" class="form-check-input" />
|
||||||
value="${item.code}" onchange="">
|
렌트카차량(하허호후)만 조회
|
||||||
${item.value}
|
|
||||||
</label>
|
</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>
|
||||||
</div>
|
</template>
|
||||||
</span>
|
|
||||||
|
<datalist id="groupLevelDatalist--${pageName}">
|
||||||
<span id="detailArea--${pageName}" hidden>
|
<option value="sggCd"
|
||||||
<h2 class="mt-4">상세목록</h2>
|
data-ref-col="SGG_CD" data-ctgr-type="otherCode" data-dtl-ctgr="SGG_CD"
|
||||||
<div class="card-datatable text-nowrap">
|
>시군구</option>
|
||||||
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
|
<option value="taskSeCd"
|
||||||
<div class="table-responsive"
|
data-ref-col="TASK_SE_CD" data-ctgr-type="code" data-dtl-ctgr="FIM054"
|
||||||
style="overflow-x: scroll;height:350px;overflow-y: scroll;">
|
>과태료</option>
|
||||||
<table id="detailTable--${pageName}"
|
<option value="crdnTeam"
|
||||||
class="table-layout-fixed datatables-ajax table table-bordered dataTable no-footer">
|
data-ref-col="TEAM_ID" data-ctgr-type="otherCode" data-dtl-ctgr="TEAM_ID"
|
||||||
<thead class="sticky-thead">
|
>단속조</option>
|
||||||
<tr id="detailThead--${pageName}">
|
<option value="crdnPlc"
|
||||||
</tr>
|
data-ref-col="CRDN_PLC" data-ctgr-type="" data-dtl-ctgr=""
|
||||||
</thead>
|
>단속장소</option>
|
||||||
<tbody id="detailTbody--${pageName}">
|
<option value="crdnYear"
|
||||||
</tbody>
|
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYY"
|
||||||
</table>
|
>단속연도</option>
|
||||||
</div>
|
<option value="crdnYearMonth"
|
||||||
</div>
|
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYYMM"
|
||||||
</div>
|
>단속연월</option>
|
||||||
</span>
|
<option value="crdnYmd"
|
||||||
|
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="YYYYMMDD"
|
||||||
</div>
|
>단속일자</option>
|
||||||
</div>
|
<option value="crdnDayOfWeek"
|
||||||
|
data-ref-col="CRDN_YMD" data-ctgr-type="date" data-dtl-ctgr="DAY_OF_WEEK"
|
||||||
<jsp:include page="/WEB-INF/jsp/include/bottom.jsp" />
|
>단속요일</option>
|
||||||
<div class="content-backdrop fade"></div>
|
<option value="crdnHour"
|
||||||
|
data-ref-col="CRDN_TM" data-ctgr-type="date" data-dtl-ctgr="HH"
|
||||||
</div>
|
>단속시간대</option>
|
||||||
|
<option value="vhrno"
|
||||||
<script>
|
data-ref-col="VHRNO" data-ctgr-type="" data-dtl-ctgr=""
|
||||||
/**************************************************************************
|
>차량번호</option>
|
||||||
* Global Variable
|
<option value="crdnStdgNm"
|
||||||
**************************************************************************/
|
data-ref-col="CRDN_STDG_NM" data-ctgr-type="" data-dtl-ctgr=""
|
||||||
pageObject["${pageName}"] = {};
|
>단속동</option>
|
||||||
|
<option value="crdnSttsCd"
|
||||||
$(document).ready(function(){
|
data-ref-col="CRDN_STTS_CD" data-ctgr-type="code" data-dtl-ctgr="FIM010"
|
||||||
|
>처리상태</option>
|
||||||
var $P = pageObject["${pageName}"];
|
<option value="crdnSpareaCd"
|
||||||
|
data-ref-col="CRDN_SPAREA_CD" data-ctgr-type="code" data-dtl-ctgr="FIM007"
|
||||||
$P.statQuery = {};
|
>특별구역</option>
|
||||||
$P.refListMap = {};
|
<option value="vltnId"
|
||||||
|
data-ref-col="VLTN_ID" data-ctgr-type="otherCode" data-dtl-ctgr="VLTN_ID"
|
||||||
/**************************************************************************
|
>위반내용</option>
|
||||||
* datasetControl
|
<option value="ffnlgCarmdlCd"
|
||||||
**************************************************************************/
|
data-ref-col="FFNLG_CARMDL_CD" data-ctgr-type="code" data-dtl-ctgr="FIM009"
|
||||||
$P.detailGridControl = new DatasetControl({
|
>차종</option>
|
||||||
urls : { },
|
<option value="businessCar"
|
||||||
dataGetter : obj => Array.isArray(obj) ? obj : [],
|
data-ref-col="" data-ctgr-type="method" data-dtl-ctgr="businessYnOfCar"
|
||||||
appendData:false,
|
>사업용차량구분</option>
|
||||||
keymapper : info => info ? info.DATA_ID : "",
|
<option value="carGb"
|
||||||
formats : {
|
data-ref-col="" data-ctgr-type="method" data-dtl-ctgr="carGb"
|
||||||
CVLCPT_PRCS_PRNMNT_DT : dateFormat,
|
>차량구분</option>
|
||||||
CVLCPT_RCPT_YMD : dateFormat,
|
</datalist>
|
||||||
LEVY_EXCL_YMD : dateFormat,
|
|
||||||
CVLCPT_RCPT_YMD : dateFormat,
|
<datalist id="presetDatalist--${pageName}">
|
||||||
PSTMARK_YMD : dateFormat,
|
<option value="preset1"
|
||||||
CRDN_YMD_TM : datetimeFormat,
|
>전체건수,총금액,단속상태건수,단속상태금액,자납부과건수,자납부과금액,의견진술접수건수,의견진술수용건수,경찰서이첩건수,서손건수,면제건수,부과건수,부과금액,가산금액대납건수,대납금액,징수건수,징수금액,체납건수,체납금액,감액건수,감액금액,부분감액,합계건수,합계금액
|
||||||
REG_DT : datetimeFormat,
|
</option>
|
||||||
MDFCN_DT : datetimeFormat,
|
<option value="preset2"
|
||||||
CVLCPT_PRCS_PRNMNT_DT : datetimeFormat,
|
>전체건수,총금액,부과필요건수,부과유예건수,의견진술수용건수,경찰서이첩건수,서손건수,면제차량건수,부과건수,부과금액,징수건수,징수금액,감액건수,감액금액,미납건수,미납금액
|
||||||
|
</option>
|
||||||
FFNLG_CRDN_AMT : numberFormat,
|
</datalist>
|
||||||
FFNLG_AMT : numberFormat,
|
|
||||||
RCVMT_AMT : numberFormat
|
<script src="<c:url value="/resources/js/fims/stat/sprtPreset.js?${ver}"/>"></script>
|
||||||
}
|
|
||||||
});
|
<jsp:include page="/WEB-INF/jsp/fims/stat/stat01011-info.jsp" />
|
||||||
|
|
||||||
/**************************************************************************
|
|
||||||
* 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,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