통계 관련 jsp 파일명, controller 파일명 수정

main
이범준 1 year ago
parent 5b67f2e365
commit f468100911

@ -115,4 +115,83 @@ public class Stat01Controller extends ApplicationController {
mav.addObject("stat", stat);
return mav;
}
/** .
* @return fims/stat/stat01010-main
*/
public ModelAndView comprehensiveStatisticsMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/stat/stat01010-main");
mav.addObject("pageName", "stat01010-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054","FIM002");
mav.addObject("FIM054List", commonCodes.get("FIM054"));
mav.addObject("FIM002List", commonCodes.get("FIM002"));
return mav;
}
/** .
* @return fims/stat/stat01020-main
*/
public ModelAndView crackdownStatisticsMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/stat/stat01020-main");
mav.addObject("pageName", "stat01020-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054","FIM002");
mav.addObject("FIM054List", commonCodes.get("FIM054"));
mav.addObject("FIM002List", commonCodes.get("FIM002"));
return mav;
}
/** .
* @return fims/stat/stat01030-main
*/
public ModelAndView levyStatisticsMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/stat/stat01030-main");
mav.addObject("pageName", "stat01030-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
mav.addObject("FIM054List", commonCodes.get("FIM054"));
return mav;
}
/** .
* @return fims/stat/stat01040-main
*/
public ModelAndView sendStatisticsMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/stat/stat01040-main");
mav.addObject("pageName", "stat01040-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
mav.addObject("FIM054List", commonCodes.get("FIM054"));
return mav;
}
/** .
* @return fims/stat/stat01050-main
*/
public ModelAndView receivingStatisticsMain() {
ModelAndView mav = new ModelAndView();
mav.setViewName("fims/stat/stat01050-main");
mav.addObject("pageName", "stat01050-main");
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054","FIM002");
mav.addObject("FIM054List", commonCodes.get("FIM054"));
mav.addObject("FIM002List", commonCodes.get("FIM002"));
return mav;
}
}

@ -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;
}
}

@ -402,68 +402,39 @@ public class CmnController {
return super.getStatistics(query);
}
}
@Controller
@RequestMapping(name="단속 통계", value="/stat/stat02")
class Stat02Controller extends cokr.xit.fims.stat.web.Stat02Controller {
@Override
@RequestMapping(name="단속 통계 메인", value="/010/main.do")
public ModelAndView statMain() {
return super.statMain();
}
@RequestMapping(name="종합 통계 메인", value="/010/main.do")
public ModelAndView comprehensiveStatisticsMain() {
return super.comprehensiveStatisticsMain();
}
@Controller
@RequestMapping(name="부과 통계", value="/stat/stat03")
class Stat03Controller extends cokr.xit.fims.stat.web.Stat03Controller {
@Override
@RequestMapping(name="부과 통계 메인", value="/010/main.do")
public ModelAndView statMain() {
return super.statMain();
}
@RequestMapping(name="단속 통계 메인", value="/020/main.do")
public ModelAndView crackdownStatisticsMain() {
return super.crackdownStatisticsMain();
}
@Controller
@RequestMapping(name="발송 통계", value="/stat/stat04")
class Stat04Controller extends cokr.xit.fims.stat.web.Stat04Controller {
@Override
@RequestMapping(name="발송 통계 메인", value="/010/main.do")
public ModelAndView statMain() {
return super.statMain();
@RequestMapping(name="부과 통계 메인", value="/030/main.do")
public ModelAndView levyStatisticsMain() {
return super.levyStatisticsMain();
}
}
@Controller
@RequestMapping(name="종합 통계", value="/stat/stat05")
class Stat05Controller extends cokr.xit.fims.stat.web.Stat05Controller {
@Override
@RequestMapping(name="종합 통계 메인", value="/010/main.do")
public ModelAndView statMain() {
return super.statMain();
@RequestMapping(name="발송 통계 메인", value="/040/main.do")
public ModelAndView sendStatisticsMain() {
return super.sendStatisticsMain();
}
}
@Controller
@RequestMapping(name="수납 통계", value="/stat/stat06")
class Stat06Controller extends cokr.xit.fims.stat.web.Stat06Controller {
@Override
@RequestMapping(name="수납 통계 메인", value="/010/main.do")
public ModelAndView statMain() {
return super.statMain();
@RequestMapping(name="수납 통계 메인", value="/050/main.do")
public ModelAndView receivingStatisticsMain() {
return super.receivingStatisticsMain();
}
}
@Controller
@RequestMapping(name="납부자", value="/payer")
class PayerController extends cokr.xit.fims.payer.web.PayerController {

@ -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>
<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>
<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>
<!-- / 상단 버튼 -->
<!-- 검색 조건 영역 -->
<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">
전체
<input type="checkbox" name="schExclEnd" class="form-check-input" />
서손자료 제외
</label>
<c:forEach items="${FIM054List}" var="item">
<label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="${item.code}" onchange="">
${item.value}
<input type="checkbox" name="schOnlyRent" class="form-check-input" />
렌트카차량(하허호후)만 조회
</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>
</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" />

@ -2,7 +2,7 @@
<%@ 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" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat-main.jsp" />
<input type="hidden" id="defaultStatDomain--${pageName}" value="crdn" />
@ -120,4 +120,4 @@
<script src="<c:url value="/resources/js/fims/stat/crdnGroupSubset.js?${ver}"/>"></script>
<script src="<c:url value="/resources/js/fims/stat/crdnPreset.js?${ver}"/>"></script>
<jsp:include page="/WEB-INF/jsp/fims/stat/stat02020-info.jsp" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat01021-info.jsp" />

@ -2,7 +2,7 @@
<%@ 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" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat-main.jsp" />
<input type="hidden" id="defaultStatDomain--${pageName}" value="levy" />
@ -61,4 +61,4 @@
</datalist>
<jsp:include page="/WEB-INF/jsp/fims/stat/stat03020-info.jsp" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat01031-info.jsp" />

@ -2,7 +2,7 @@
<%@ 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" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat-main.jsp" />
<input type="hidden" id="defaultStatDomain--${pageName}" value="sndb" />
@ -26,4 +26,4 @@
</option>
</datalist>
<jsp:include page="/WEB-INF/jsp/fims/stat/stat04020-info.jsp" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat01041-info.jsp" />

@ -2,7 +2,7 @@
<%@ 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" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat-main.jsp" />
<input type="hidden" id="defaultStatDomain--${pageName}" value="rcvm" />
@ -63,4 +63,4 @@
</datalist>
<jsp:include page="/WEB-INF/jsp/fims/stat/stat06020-info.jsp" />
<jsp:include page="/WEB-INF/jsp/fims/stat/stat01051-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…
Cancel
Save