This commit is contained in:
Rinjae
2025-09-05 17:16:26 +09:00
commit c54ef1903f
4947 changed files with 817291 additions and 0 deletions
@@ -0,0 +1,294 @@
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="java.io.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/jsp/common/include/localemessage.jsp" %>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jsp:include page="/jsp/common/include/css.jsp"/>
<jsp:include page="/jsp/common/include/script.jsp"/>
<script language="javascript" >
var url = '<c:url value="/onl/transaction/online/transactionStatus.json" />';
var url_view = '<c:url value="/onl/transaction/online/transactionStatus.view" />';
var url_excel= '<c:url value="/onl/transaction/online/transactionStatus.excel"/>';
var timer;
var recentYn="N";
function list(recentYn){
var postData = getSearchForJqgrid("cmd","LIST"); //jqgrid에서는 object 로
postData["recentYn"] = recentYn;
$("#grid").setGridParam({ url:url,postData: postData }).trigger("reloadGrid");
}
function refreshGrid(recentYn){
timer = setInterval(function(){
list(recentYn);
},5000);
}
$(document).ready(function() {
var gridPostData = getSearchForJqgrid("cmd", "LIST"); //jqgrid에서는 object 로
$('#grid').jqGrid({
datatype : "json",
mtype : 'POST',
url : url,
postData : gridPostData,
colNames : [
'업무구분코드',
'<%= localeMessage.getString("eaiMsg.bizCodeName") %>',
'100',
'200',
'300',
'400',
'100',
'200',
'300',
'400',
'900',
'300',
'400',
'900',
'IF',
'<%= localeMessage.getString("tranStat.recv") %>',
'<%= localeMessage.getString("common.total") %>',
],
colModel : [
{ name : 'BIZCODE' , hidden : true },
{ name : 'BIZNAME' , align : 'left' },
{ name : 'P100' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'P200' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'P300' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'P400' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E100' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E200' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E300' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E400' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E900' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E9300' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E9400' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'E9900' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum'},
{ name : 'AVGEAI' , align : 'center' , width:'46' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'avg'},
{ name : 'AVGPSV' , align : 'center' , width:'46' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'avg'},
{ name : 'AVGTOTAL' , align : 'center' , width:'46' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'avg'}
],
jsonReader : {
repeatitems : false
},
footerrow:true,
userDataOnFooter:true,
rowNum: 10000,
height : 480,
viewrecords : true,
autowidth: true,
gridview: true,
frozen:true,
ondblClickRow : function(rowId) {
var rowData = $(this).getRowData(rowId);
var key = rowData['BIZCODE'];
var url2 = url_view;
url2 += "?cmd=DETAIL";
url2 += '&menuId='+'${param.menuId}';
url2 += "&searchEaiBzwkDstcd="+key;
goNav(url2);
},
gridComplete:function (d){
var colModel = $(this).getGridParam("colModel");
for(var i = 0 ; i< colModel.length; i++){
$(this).setColProp(colModel[i].name, {sortable : false});
}
},
loadComplete:function (d){
//$("#grid").tuiTableRowSpan("0");
var rowCnt = $('#grid').getGridParam("reccount");
var colModel = $(this).getGridParam("colModel");
for(var i = 0 ; i< colModel.length; i++){
$(this).setColProp(colModel[i].name, {sortable : false});
var propName = colModel[i].name;
var summaryType = colModel[i].summaryType;
var Total = $('#grid').jqGrid('getCol',propName,false,'sum');
if(summaryType =='avg'){
if(rowCnt == 0)
Total = 0;
else
Total = (Total/rowCnt).toFixed(3); //avg를 바로 쓰면 row 수가 +1 되어 계산됨.
}
eval("$('#grid').jqGrid('footerData','set',{BIZNAME:'합계', "+propName+":Total});");
}
//$(".ui-jqgrid-ftable tr:first").children("td").css("background-color", "#D4F4FA"); // td 배경색
$(".ui-jqgrid-ftable tr:first").css("height", "30px"); // tr 높이
$(".ui-jqgrid-ftable tr:first").css("font-size", "10pt"); // tr 글자 크기
$(".ui-jqgrid-ftable td:eq(1)").css("text-align", "center"); // td 글자 정렬
//$(".ui-jqgrid-ftable").css('position','fixed'); // 소계 하단에 고정
$(".ui-jqgrid-ftable").css('bottom','0');
},
loadError: function (jqXHR, textStatus, errorThrown) {
if(jqXHR.status == 401) {
var location ='<%=request.getContextPath()%>/';
comloadError(jqXHR, textStatus, errorThrown ,location);
}
}
});
$("#grid").jqGrid('setGroupHeaders', {
useColSpanStyle: true,
groupHeaders:[
{startColumnName: 'P100', numberOfColumns: 4, titleText: '<%= localeMessage.getString("tranStat.tranNo") %>'},
{startColumnName: 'E100', numberOfColumns: 5, titleText: '<%= localeMessage.getString("tranStat.errNo") %>'},
{startColumnName: 'E9300', numberOfColumns: 3, titleText: '<%= localeMessage.getString("tranStat.timeout") %>'},
{startColumnName: 'AVGEAI', numberOfColumns: 3, titleText: '<%= localeMessage.getString("tranStat.avgTime") %>'}
]
});
$("#btn_10min").click(function(){
$("#btn_10min").hide();
$("#btn_search").show();
recentYn ="Y";
list(recentYn);
});
$("#btn_search").click(function(){
//$("#btn_10min").show();
//$("#btn_search").hide();
if($("#recentYnVal").is(":checked")){ //최근10분여부
recentYn="Y";
}else{
recentYn="N";
}
list(recentYn);
});
$("#btn_detail").click(function(){
var args = new Object();
args['userId'] = $("input[name=userId]").val();
var url2 = url_view;
url2 += "?cmd=POPUP";
showModal(url2,args,470,740);
});
$("#btn_initialize").click(function(){
if(confirm("초기화 하시겠습니까?")){
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'INITIALIZE',recentYn:recentYn},
success:function(json){
alert("성공하였습니다.");
},
error:function(e){
alert(e.responseText);
}
});
}else{
return false;
}
});
$("#btn_download").click(function(event) {
event.stopPropagation(); // Do not propagate the event.
// Create an object that will manage to download the file.
var merge = new Array();
merge.push(makeMerge("업무구분","0","1","0","0"));
merge.push(makeMerge("구간별 처리건수","0","0","1","4"));
merge.push(makeMerge("구간별 에러건수","0","0","5","9"));
merge.push(makeMerge("타임아웃","0","0","10","12"));
merge.push(makeMerge("평균처리시간(초)","0","0","13","15"));
gridToExcelSubmit(url,"LIST_GRID_TO_EXCEL",$("#grid"),$("#ajaxForm"),"업무별 거래현황",merge);
return false;
});
$("#btn_excel").click(function(event) {
event.stopPropagation(); // Do not propagate the event.
var target = "excelDown" ; // iframe의 name
var merge = new Array();
merge.push(makeMerge("업무구분","0","1","0","0"));
merge.push(makeMerge("구간별 처리건수","0","0","1","4"));
merge.push(makeMerge("구간별 에러건수","0","0","5","9"));
merge.push(makeMerge("타임아웃","0","0","10","12"));
merge.push(makeMerge("평균처리시간(초)","0","0","13","15"));
gridToExcelSubmit(url_excel,"LIST_GRID_TO_EXCEL",$("#grid"),$("#ajaxForm"),'업무별 거래현황',merge);
return false;
});
buttonControl();
/* timer = setInterval(function(){
list(recentYn);
},5000); */
//$("#btn_search").hide();
//refresh 체크박스
$("input:checkbox").on('click',function(){
var refresh = $("#refresh").is(":checked");
clearInterval(timer);
if(refresh){ //refresh 설정
if($("#recentYnVal").is(":checked")){ //최근10분여부
refreshGrid("Y");
}else{
refreshGrid("N");
}
}
});
});
</script>
</head>
<body>
<div class="right_box">
<div class="content_top">
<ul class="path">
<li><a href="#">${rmsMenuPath}</a></li>
</ul>
</div><!-- end content_top -->
<div class="content_middle">
<div class="search_wrap">
<input type="checkbox" id="refresh" value="Y" />&nbsp;<b>Auto Refresh</b>
&nbsp;<input type="checkbox" id="recentYnVal" value="N"/>&nbsp;<b><%= localeMessage.getString("tranStat.rec10Min") %></b>&nbsp;&nbsp;
<%-- <img src="<c:url value="/img/btn_10min.png" />" alt="" id="btn_10min" level="W" /> --%>
<button type="button" class="cssbtn" id="btn_detail" level="R" ><i class="material-icons">details</i> <%= localeMessage.getString("button.detail") %></button>
<button type="button" class="cssbtn" id="btn_excel" level="W" ><i class="material-icons">table_view</i> <%= localeMessage.getString("button.excel") %></button>
<button type="button" class="cssbtn" id="btn_initialize" level="W" ><i class="material-icons">restart_alt</i> <%= localeMessage.getString("button.reset") %></button>
<button type="button" class="cssbtn" id="btn_search" level="R" ><i class="material-icons">search</i> <%= localeMessage.getString("button.search") %></button>
<%-- <img src="<c:url value="/img/btn_detail.png" />" alt="" id="btn_detail" level="R" /> --%>
<%-- <img src="<c:url value="/img/btn_excel.png" />" alt="" id="btn_excel" level="W" /> --%>
<%-- <img src="<c:url value="/img/btn_initialize.png" />" alt="" id="btn_initialize" level="W" /> --%>
<%-- <img src="<c:url value="/img/btn_search.png"/>" alt="" id="btn_search" level="R" /> --%>
<%-- <img id="btn_excel" src="<c:url value="/img/btn_excel.png"/>" level="W" status="DETAIL"/> --%>
</div>
<div class="title"><%= localeMessage.getString("tranStat.title") %><span class="tooltip"><%= localeMessage.getString("tranStat.tooltip") %></span></div>
<ajax>
<table id="grid" ></table>
</ajax>
<div id="pager"></div>
</div><!-- end content_middle -->
</div><!-- end right_box -->
</body>
<iframe name=excelDown width=0 height=0></iframe>
</html>
@@ -0,0 +1,464 @@
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="java.io.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/jsp/common/include/localemessage.jsp" %>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jsp:include page="/jsp/common/include/css.jsp"/>
<link rel="stylesheet" type="text/css" media="screen" href="<c:url value="/css/w2ui-1.4.3.css"/>" />
<jsp:include page="/jsp/common/include/script.jsp"/>
<script language="javascript" src="<c:url value="/js/w2ui-1.4.3.js"/>"></script>
<script language="javascript" >
var url = '<c:url value="/onl/transaction/online/transactionStatus.json" />';
var url_view = '<c:url value="/onl/transaction/online/transactionStatus.view" />';
var url_excel= '<c:url value="/onl/transaction/online/transactionStatus.excel"/>';
var recentYn="N";
//합계만보기
var onlySum = "N";
var stop = false;
var timer;
var selectName = "searchEaiBzwkDstcd"; // selectBox Name
function w2GridToExcelSubmit(url,cmd,gridObj,formObject,fileName,merge){
var postData = formObject.serializeArray();
postData.push({
name : "cmd",
value : cmd
});
//fileName 필수값 아님
if (fileName != undefined){
postData.push({
name : "fileName",
value : fileName
});
}
//grid data
var data = gridObj.records;
var gridData = new Array();
var records= new Array();
for ( var i = 0; i < data.length; i++) {
records[i] = new Object();
records[i]['P100'] = data[i]['P100'].toString();
records[i]['P200'] = data[i]['P200'].toString();
records[i]['P300'] = data[i]['P300'].toString();
records[i]['P400'] = data[i]['P400'].toString();
records[i]['E100'] = data[i]['E100'].toString();
records[i]['E200'] = data[i]['E200'].toString();
records[i]['E300'] = data[i]['E300'].toString();
records[i]['E400'] = data[i]['E400'].toString();
records[i]['E900'] = data[i]['E900'].toString();
records[i]['E9300'] = data[i]['E9300'].toString();
records[i]['E9400'] = data[i]['E9400'].toString();
records[i]['E9900'] = data[i]['E9900'].toString();
records[i]['BIZNAME'] = data[i]['BIZNAME'];
records[i]['SVCCODE'] = data[i]['SVCCODE'];
records[i]['INSTNAME'] = data[i]['INSTNAME'];
records[i]['SVCNAME'] = data[i]['SVCNAME'];
records[i]['AVGEAI'] = data[i]['AVGEAI'].toString();
records[i]['AVGPSV'] = data[i]['AVGPSV'].toString();
records[i]['AVGTOTAL'] = data[i]['AVGTOTAL'].toString();
gridData.push(records[i]);
}
postData.push({
name : "gridData",
value : JSON.stringify(gridData)
});
//grid titles
var colM = gridObj.columns;
var headers = new Array();
var headerTitles = new Array();
for(var i=0;i<colM.length;i++){
if (colM[i].hidden){
}else{
headers.push(colM[i].field);
headerTitles.push(colM[i].caption);
}
}
postData.push({
name : "header",
value : JSON.stringify(headers)
});
postData.push({
name : "headerTitle",
value : JSON.stringify(headerTitles)
});
if (merge != undefined){
postData.push({
name : "merge",
value : JSON.stringify(merge)
});
}
var form="<form action='"+url+"' method='post' target='excelDown' accept-charset='utf-8' >";
$.each(postData,function(_,obj){
form +="<input type='hidden' name='"+obj.name+"' value='"+obj.value+"'/>";
});
form += "</form>";
$(form).appendTo("body").submit().remove();
}
function init(callback,recentYn,onlySum) {
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'LIST_DETAIL_COMBO'},
success:function(json){
new makeOptions("CODE","NAME").setObj($("select[name=searchEaiBzwkDstcd]")).setNoValueInclude(true).setNoValue("","전체").setData(json.bizList).setFormat(codeName3OptionFormat).rendering();
$("select[name=searchEaiBzwkDstcd]").val("${param.searchEaiBzwkDstcd}");
setSearchable(selectName); // 콤보에 searchable 설정
if (typeof callback === 'function') {
callback(recentYn,onlySum);
}
},
error:function(e){
alert(e.responseText);
}
});
}
function detail(recentYn,onlySum){
//console.log("recentYn : "+recentYn );
w2ui['myGrid'].clear();
var postData = getSearchForJqgrid("cmd","DETAIL");
postData['totalCount']=0;
postData['page']=1;
postData['rows']=1;
postData['recentYn']=recentYn;
postData['onlySum']=onlySum;
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:postData,
success:function(json){
var data = json;
var records = data.rows;
var cnt = 1;
//grid에서 recid가 반드시 필요.
for(var idx in records){
//insert recid
records[idx]['recid'] = parseInt(idx)+1;
}
var total = parseInt(data.records);
//add records
w2ui['myGrid'].total = total;
//data count
w2ui['myGrid'].records = records;
//add summary
var summary = data.summary;
//변환
/* summary.AVGEAI = String((summary.AVGEAI/total).toFixed(3));
summary.AVGPSV = String((summary.AVGPSV/total).toFixed(3));
summary.AVGTOTAL = String((summary.AVGTOTAL/total).toFixed(3)); */
//추가데이터
summary.recid = 99999;
summary.BIZNAME =" 합 계";
summary.SVCCODE ="";
summary.INSTNAME ="";
summary.summary = true;
w2ui['myGrid'].summary[0]=summary;
//summary.summary = true;
w2ui['myGrid'].refresh();
},
error:function(xhr,status,error){
alert(JSON.parse(xhr.responseText).errorMsg);
//clearInterval(timer);
}
});
}
function thousandsSeparator(record, ind, col_ind){
var n = record[this.columns[col_ind].field];
if(n==null) return;
n = n.toString();
while(true){
var n2= n.replace(/(\d)(\d{3})($|,|\.)/g,'$1,$2$3');
if (n==n2) break;
n=n2;
}
return n;
};
function refreshGrid(recentYn){
timer = setInterval(function(){
if(stop) return;
//합계만보기
if($("#onlySum").is(":checked")){ //최근10분여부
onlySum="Y";
}else{
onlySum="N";
}
detail(recentYn,onlySum);
},5000);
function sumFormatter(record, ind, col_ind){
var n = record[this.columns[col_ind].field];
if(n==null || n == 0) return;
return String(n.toFixed(3));
};
}
$( document ).ready(function() {
init(detail,"N");
$('#myGrid').w2grid({
name : 'myGrid',
datatype:'json',
method:'POST',
//url : url,
//data : postData,
show :{ emptyRecords:false
},
columnGroups : [
{span : 4, caption:'<%= localeMessage.getString("tranStat.interface") %>'},
{span : 4, caption:'<%= localeMessage.getString("tranStat.tranNo") %>'},
{span : 3, caption:'<%= localeMessage.getString("tranStat.avgTime") %>'},
{span : 5, caption:'<%= localeMessage.getString("tranStat.errNo") %>'},
{span : 3, caption:'<%= localeMessage.getString("tranStat.timeout") %>'}
],
columns: [
{ field : 'BIZNAME' , type:'text' , caption : '<%= localeMessage.getString("eaiMsg.bizCodeName") %>' , size: '120px' },
{ field : 'SVCNAME' ,type:'text' ,caption : '<%= localeMessage.getString("eaiMsg.svcDesc") %>' , size: '250px'},
{ field : 'SVCCODE' , type:'text' , caption : '<%= localeMessage.getString("eaiMsg.serviceCode") %>' , size: '170px' },
{ field : 'INSTNAME' , type:'text' , caption : '<%= localeMessage.getString("scheduler.instance") %>' , size: '90px' },
{ field : 'P100' ,type:'text' ,caption : '100' , size: '80px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'P200' ,type:'text' ,caption : '200' , size: '80px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'P300' ,type:'text' ,caption : '300' , size: '80px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'P400' ,type:'text' ,caption : '400' , size: '80px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'AVGEAI' ,type:'text' ,caption : 'IF' , size: '50px' ,style:'text-align:right' },
{ field : 'AVGPSV' ,type:'text' ,caption : '<%= localeMessage.getString("tranStat.recv") %>' , size: '50px' ,style:'text-align:right' },
{ field : 'AVGTOTAL' ,type:'text' ,caption : '<%= localeMessage.getString("common.total") %>' , size: '50px' ,style:'text-align:right' },
{ field : 'E100' ,type:'text' ,caption : '100' , size: '65px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'E200' ,type:'text' ,caption : '200' , size: '65px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'E300' ,type:'text' ,caption : '300' , size: '65px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'E400' ,type:'text' ,caption : '400' , size: '65px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'E900' ,type:'text' ,caption : '900' , size: '65px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'E9300' ,type:'text' ,caption : '300' , size: '50px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'E9400' ,type:'text' ,caption : '400' , size: '50px' ,style:'text-align:right', render:thousandsSeparator },
{ field : 'E9900' ,type:'text' ,caption : '900' , size: '50px' ,style:'text-align:right', render:thousandsSeparator }
]
,summary:[
{ recid : 99999, BIZNAME:"합 계", SVCNAME:" ", SVCCODE:"", INSTNAME:"", P100:"0", P200:"0", P300:"0", P400:"0",
AVGEAI:"0.000", AVGPSV:"0.00", AVGTOTAL:"0.000",
E100:"0", E200:"0", E300:"0", E400:"0", E900:"0", E9300:"0", E9400:"0", E9900:"0" }
]
});
//w2ui['myGrid'].hideColumn('BIZCODE');
$("input[name^=search]").keydown(function(key){
if (key.keyCode == 13){
$("#btn_search").click();
}
});
$("#btn_10min").click(function(){
recentYn="Y";
//합계만보기
if($("#onlySum").is(":checked")){ //최근10분여부
onlySum="Y";
}else{
onlySum="N";
}
detail(recentYn,onlySum);
});
$("#btn_detail").click(function(){
var args = new Object();
args['userId'] = $("input[name=userId]").val();
var url2 = url_view;
url2 += "?cmd=POPUP";
showModal(url2,args,470,740);
});
$("#btn_initialize").click(function(){
if(confirm("초기화 하시겠습니까?")){
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'INITIALIZE',recentYn:recentYn},
success:function(json){
alert("성공하였습니다.");
},
error:function(e){
alert(e.responseText);
}
});
}else{
return false;
}
});
$("#btn_stop").click(function(){
detail(false);
if(stop){
$("#btn_stop").attr('src','<c:url value="/images/bt/bt_stop.gif"/>');
stop = false;
}else{
$("#btn_stop").attr('src','<c:url value="/images/bt/bt_stop.gif"/>');
stop = true;
}
});
$("#btn_download").click(function(event) {
event.stopPropagation(); // Do not propagate the event.
// Create an object that will manage to download the file.
var merge = new Array();
merge.push(makeMerge("API","0","0","0","3"));
merge.push(makeMerge("전문구간별 처리건수","0","0","4","7"));
merge.push(makeMerge("평균처리시간(초)","0","0","8","10"));
merge.push(makeMerge("전문구간별 에러건수","0","0","11","15"));
merge.push(makeMerge("타임아웃","0","0","16","18"));
w2GridToExcelSubmit(url_excel,"LIST_GRID_TO_EXCEL",w2ui['myGrid'],$("#ajaxForm"),"전문별 거래현황",merge);
return false;
});
$("#btn_search").click(function(){
if($("#recentYnVal").is(":checked")){ //최근10분여부
recentYn="Y";
}else{
recentYn="N";
}
//합계만보기
if($("#onlySum").is(":checked")){ //최근10분여부
onlySum="Y";
}else{
onlySum="N";
}
detail(recentYn,onlySum);
});
$("#btn_excel").click(function(event) {
event.stopPropagation(); // Do not propagate the event.
var target = "excelDown" ; // iframe의 name
var merge = new Array();
merge.push(makeMerge("API","0","0","0","3"));
merge.push(makeMerge("구간별 처리건수","0","0","4","7"));
merge.push(makeMerge("평균처리시간(초)","0","0","8","10"));
merge.push(makeMerge("구간별 에러건수","0","0","11","15"));
merge.push(makeMerge("타임아웃","0","0","16","18"));
w2GridToExcelSubmit(url_excel,"LIST_GRID_TO_EXCEL",w2ui['myGrid'],$("#ajaxForm"),"전문별 거래현황",merge);
return false;
});
buttonControl();
/*
timer = setInterval(function(){
if(stop) return;
detail(recentYn);
},5000);
*/
//refresh 체크박스
$("input:checkbox").on('click',function(){
var refresh = $("#refresh").is(":checked");
clearInterval(timer);
if(refresh){ //refresh 설정
if($("#recentYnVal").is(":checked")){ //최근10분여부
refreshGrid("Y");
}else{
refreshGrid("N");
}
}
});
});
</script>
</head>
</body>
<body>
<div class="right_box">
<div class="content_top">
<ul class="path">
<li><a href="#">${rmsMenuPath}</a></li>
</ul>
</div><!-- end content_top -->
<div class="content_middle">
<div class="search_wrap">
<input type="checkbox" id="onlySum" value="Y" />&nbsp;<b><%= localeMessage.getString("tranStatDetail.example") %></b>&nbsp;
<input type="checkbox" id="refresh" value="Y" />&nbsp;<b>Auto Refresh</b>&nbsp;
<input type="checkbox" id="recentYnVal" value="N"/>&nbsp;<b><%= localeMessage.getString("tranStat.rec10Min") %></b>&nbsp;&nbsp;
<button type="button" class="cssbtn" id="btn_detail" level="R" ><i class="material-icons">details</i> <%= localeMessage.getString("button.detail") %></button>
<button type="button" class="cssbtn" id="btn_excel" level="W" ><i class="material-icons">table_view</i> <%= localeMessage.getString("button.excel") %></button>
<button type="button" class="cssbtn" id="btn_initialize" level="W" ><i class="material-icons">restart_alt</i> <%= localeMessage.getString("button.reset") %></button>
<button type="button" class="cssbtn" id="btn_search" level="R" ><i class="material-icons">search</i> <%= localeMessage.getString("button.search") %></button>
<%-- <img src="<c:url value="/img/btn_10min.png"/>" alt="" id="btn_10min" level="W" /> --%>
<%-- <img src="<c:url value="/img/btn_detail.png"/>" alt="" id="btn_detail" level="R" /> --%>
<%-- <img src="<c:url value="/img/btn_excel.png"/>" alt="" id="btn_download" level="W"/> --%>
<%-- <img src="<c:url value="/img/btn_initialize.png"/>" alt="" id="btn_initialize" level="W" /> --%>
<%-- <img src="<c:url value="/img/btn_search.png"/>" alt="" id="btn_search" level="R" /> --%>
</div>
<div class="title"><%= localeMessage.getString("tranStatDetail.title") %><span class="tooltip"><%= localeMessage.getString("tranStat.tooltip") %></span></div>
<table class="search_condition" cellspacing=0;>
<tbody>
<tr>
<th style="width:180px;"><%= localeMessage.getString("eaiMsg.bizCodeName") %></th>
<td style="width:400px;">
<div class="select-style">
<select name="searchEaiBzwkDstcd" value="${param.searchEaiBzwkDstcd}">
</select>
</div>
</td>
<th style="width:180px;"><%= localeMessage.getString("tranStatDetail.search") %></th>
<td>
<div style="position: relative; width: 100%;">
<input type="text" name="searchFilter" value="${param.searchFilter}">
</div>
</td>
</tr>
</tbody>
</table>
<div id="myGrid" style="width:100%;height:500px" ></div>
</div><!-- end content_middle -->
</div><!-- end right_box -->
</body>
</html>
@@ -0,0 +1,280 @@
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<%@ page import="java.io.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<jsp:include page="/jsp/common/include/css.jsp"/>
<jsp:include page="/jsp/common/include/script.jsp"/>
<script language="javascript" >
var url = '<c:url value="/onl/transaction/online/transactionStatus.json" />';
var url_view = '<c:url value="/onl/transaction/online/transactionStatus.view" />';
var timer;
var recentYn="N";
var selectName = "searchEaiBzwkDstcd"; // selectBox Name
function init(callback,recentYn) {
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'LIST_DETAIL_COMBO'},
success:function(json){
new makeOptions("BIZCODE","BIZNAME").setObj($("select[name=searchEaiBzwkDstcd]")).setNoValueInclude(true).setNoValue("","전체").setData(json.bizList).setFormat(codeName3OptionFormat).rendering();
$("select[name=searchEaiBzwkDstcd]").val("${param.searchEaiBzwkDstcd}");
setSearchable(selectName); // 콤보에 searchable 설정
if (typeof callback === 'function') {
callback(recentYn);
}
},
error:function(e){
alert(e.responseText);
}
});
}
function detail(recentYn){
var postData = getSearchForJqgrid("cmd","DETAIL"); //jqgrid에서는 object 로
postData["recentYn"] = recentYn;
$("#grid").setGridParam({ url:url,postData: postData }).trigger("reloadGrid");
}
$(document).ready(function() {
init(detail,"N");
$('#grid').jqGrid({
datatype : "json",
mtype : 'POST',
//url : url,
//postData : gridPostData,
colNames : [
'업무구분코드',
'업무구분명',
'서비스코드',
'인스턴스명',
'100',
'200',
'300',
'400',
'100',
'200',
'300',
'400',
'900',
'300',
'400',
'900',
'IF',
'수동',
'총',
'서비스설명'
],
colModel : [
{ name : 'BIZCODE' , hidden : true },
{ name : 'BIZNAME' , align : 'left' , width:'100' },
{ name : 'SVCCODE' , align : 'left' , width:'128' },
{ name : 'INSTNAME' , align : 'center' , width:'70' },
{ name : 'P100' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'P200' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'P300' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'P400' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E100' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E200' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E300' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E400' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E900' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E9300' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E9400' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'E9900' , align : 'center' , width:'50' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'sum' },
{ name : 'AVGEAI' , align : 'center' , width:'46' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'avg' },
{ name : 'AVGPSV' , align : 'center' , width:'46' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'avg' },
{ name : 'AVGTOTAL' , align : 'center' , width:'46' ,formatter:'integer',formatoptions:{thousandsSeparator:","},summaryType:'avg' },
{ name : 'SVCNAME' , align : 'left' }
],
jsonReader : {
repeatitems : false
},
footerrow:true,
userDataOnFooter:true,
rowNum: 10000,
height: 480,
viewrecords : true,
gridview: true,
ondblClickRow : function(rowId) {
},
gridComplete:function (d){
var colModel = $(this).getGridParam("colModel");
for(var i = 0 ; i< colModel.length; i++){
$(this).setColProp(colModel[i].name, {sortable : false});
}
},
loadComplete:function (d){
var sum = d.summary;
var colModel = $(this).getGridParam("colModel");
var rowCnt = $('#grid').getGridParam("reccount");
for(var i = 0 ; i< colModel.length; i++){
$(this).setColProp(colModel[i].name, {sortable : false});
var propName = colModel[i].name;
var summaryType = colModel[i].summaryType;
var Total = sum[propName];
if(summaryType =='avg'){
if(rowCnt == 0)
Total = 0;
else
Total = (Total/rowCnt).toFixed(3); //avg를 바로 쓰면 row 수가 +1 되어 계산됨.
}
if(colModel[i].formatter == 'integer')
eval("$('#grid').jqGrid('footerData','set',{BIZNAME:'합계', "+propName+":Total});");
}
$(".ui-jqgrid-ftable tr:first").children("td").css("background-color", "#D4F4FA"); // td 배경색
$(".ui-jqgrid-ftable tr:first").css("height", "30px"); // tr 높이
$(".ui-jqgrid-ftable tr:first").css("font-size", "10pt"); // tr 글자 크기
$(".ui-jqgrid-ftable td:eq(1)").css("text-align", "center"); // td 글자 정렬
//Merge Col Cells
$(".ui-jqgrid-ftable td:eq(1)").css('width','');
$(".ui-jqgrid-ftable td:eq(1)").attr('colspan','3');
$(".ui-jqgrid-ftable td:eq(2)").hide();
$(".ui-jqgrid-ftable td:eq(3)").hide();
//위치 화면 하단에 고정
$(".ui-jqgrid-ftable").css('position','fixed'); //
$(".ui-jqgrid-ftable").css('bottom','0');
},
loadError:function(xhr,status,error){
//alert(error+","+status);
//clearInterval(timer);
}
});
$("#grid").jqGrid('setGroupHeaders', {
useColSpanStyle: true,
groupHeaders:[
{startColumnName: 'BIZNAME', numberOfColumns: 3, titleText: 'IF'},
{startColumnName: 'P100', numberOfColumns: 4, titleText: '전문구간별 처리건수'},
{startColumnName: 'E100', numberOfColumns: 5, titleText: '전문구간별 에러건수'},
{startColumnName: 'E9300', numberOfColumns: 3, titleText: '타임 아웃'},
{startColumnName: 'AVGEAI', numberOfColumns: 3, titleText: '평균처리시간(초)'}
]
});
$("#btn_10min").click(function(){
recentYn="Y";
detail(recentYn);
});
$("#btn_detail").click(function(){
var args = new Object();
args['userId'] = $("input[name=userId]").val();
var url2 = url_view;
url2 += "?cmd=POPUP";
showModal(url2,args,470,740);
});
$("#btn_initialize").click(function(){
$.ajax({
type : "POST",
url:url,
dataType:"json",
data:{cmd: 'INITIALIZE',recentYn:recentYn},
success:function(json){
alert("성공하였습니다.");
},
error:function(e){
alert(e.responseText);
}
});
});
$("#btn_download").click(function(event) {
event.stopPropagation(); // Do not propagate the event.
// Create an object that will manage to download the file.
var merge = new Array();
merge.push(makeMerge("IF","0","0","0","2"));
merge.push(makeMerge("전문구간별 처리건수","0","0","3","6"));
merge.push(makeMerge("전문구간별 에러건수","0","0","7","11"));
merge.push(makeMerge("타임아웃","0","0","12","14"));
merge.push(makeMerge("평균처리시간(초)","0","0","15","17"));
merge.push(makeMerge("서비스설명","0","1","18","18"));
gridToExcelSubmit(url,"LIST_GRID_TO_EXCEL",$("#grid"),$("#ajaxForm"),"전문별 거래현황",merge);
return false;
});
buttonControl();
//detail(recentYn);
timer = setInterval(function(){
detail(recentYn);
},5000);
});
</script>
</head>
<body>
<!-- path -->
<div class="container">
<div class="right full">
<p class="nav">${rmsMenuPath}</p>
</div>
</div>
<!-- title -->
<div class="container" id="title">
<div class="left full ">
<p class="title"><img class="title_image" src="<c:url value="/images/title_bullet.gif"/>">전문별 거래현황(일누적)</p>
</div>
</div>
<!-- line -->
<div class="container">
<div class="left full title_line "> </div>
</div>
<!-- comment -->
<div class="container">
<div class="left full" >
<p class="comment" >100=요청수신 200=요청송신 300=응답수신 400=응답송신 900=IF내부에러</p>
</div>
</div>
<!-- button -->
<table width="100%" height="35px" >
<tr>
<td>
<table width="100%">
<tr>
<td class="search_td_title" width="80px">업무구분명</td><td><select name="searchEaiBzwkDstcd" value="${param.searchEaiBzwkDstcd}"style="width:100%"></select></td>
<td class="search_td_title" width="180px">IF서비스코드필터(콤마구분)</td><td><input type="text" name="searchFilter" value="${param.searchFilter}" style="width:100%"></td>
</tr>
</table>
</td>
<td align="right" width="300px">
<img id="btn_10min" level="W" src="<c:url value="/images/bt/bt_10min.gif"/>"/>
<img id="btn_detail" level="R" src="<c:url value="/images/bt/bt_detail.gif"/>"/>
<img id="btn_initialize" level="W" src="<c:url value="/images/bt/bt_initialize.gif"/>"/>
<img id="btn_download" level="W" src="<c:url value="/images/bt/bt_download.gif"/>"/>
</td>
</tr>
</table>
<!-- grid -->
<table id="grid" ></table>
<div id="pager"></div>
</body>
</html>
@@ -0,0 +1,142 @@
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ page import="java.io.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="/jsp/common/include/localemessage.jsp" %>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<jsp:include page="/jsp/common/include/css.jsp"/>
<jsp:include page="/jsp/common/include/script.jsp"/>
<script language="javascript" >
var url = '<c:url value="/onl/transaction/online/transactionStatus.json" />';
var userId = window.dialogArguments["userId"];
function isValid(){
return true;
}
function unformatterFunction(cellvalue, options, rowObject){
/* var str = $('input:checkbox', rowObject).attr('checked');
if (str=="checked"){
return "true";
}else{
return "false";
} */
return $('input:checkbox', rowObject).is(':checked') ? "true" : "false";
}
function formatterFunction(cellvalue, options, rowObject){
var rowId = options["rowId"];
var name = options["colModel"]["name"];
// debugger;
if (cellvalue == "true"){
return "<input type ='checkbox' id ='chk"+name + rowId + "' checked='checked' />";
}else if (cellvalue == "false"){
return "<input type ='checkbox' id ='chk"+name + rowId + "' />";
}else{
return "";
}
}
$(document).ready(function() {
$('#grid').jqGrid({
datatype:"json",
mtype: 'POST',
url: url,
postData : { cmd : 'LIST_USER_BIZ' , userId : userId
},
colNames:['<input type="checkbox" id="chkCheck" checked="checked" />',
'<%= localeMessage.getString("eaiMsg.bizCode") %>',
'<%= localeMessage.getString("eaiMsg.bizCodeName") %>'
],
colModel:[
{ name : 'CHK' , align:'center' , unformat: unformatterFunction, formatter: formatterFunction},
{ name : 'EAIBZWKDSTCD' , align:'left' , key :true },
{ name : 'BZWKDSTICNAME' , align:'left' }
],
cmTemplate: {
sortable: false,
},
jsonReader: {
repeatitems:false
},
rowNum: 10000,
height: '640',
autowidth: true,
viewrecords: true,
ondblClickRow: function(rowId) {
}
});
$("#chkCheck").click(function(e){
e = e || event;/* get IE event ( not passed ) */
e.stopPropagation ? e.stopPropagation() : e.cancelBubble = false;
$("input[id*=chkCHK]").prop("checked",$(this).is(":checked"));
});
$("#btn_modify").click(function(){
if (!isValid()){
return;
}
var data = $("#grid").getRowData();
var gridData = new Array();
for (var i = 0; i <data.length; i++) {
if (data[i]['CHK'] == "false") continue;
gridData.push($("#grid").jqGrid('getRowData', data[i]['EAIBZWKDSTCD']));
}
var postData = new Array();
postData.push({ name: "cmd" , value:"CHANGE_USER_BIZ"});
postData.push({ name: "userId" , value:userId});
postData.push({ name: "gridData" , value:JSON.stringify(gridData)});
$.ajax({
type : "POST",
url:url,
data:postData,
success:function(args){
alert("<%= localeMessage.getString("common.saveMsg") %>");
$("#btn_close").trigger("click");
},
error:function(e){
alert(e.responseText);
}
});
});
$("#btn_close").click(function(){
window.close();
});
buttonControl();
});
</script>
</head>
<body>
<div class="popup_box">
<div class="search_wrap">
<button type="button" class="cssbtn" id="btn_modify" level="W" ><i class="material-icons">save</i> <%= localeMessage.getString("button.modify") %></button>
<button type="button" class="cssbtn" id="btn_close" level="W" ><i class="material-icons">cancel</i> <%= localeMessage.getString("button.close") %></button>
<%-- <img src="<c:url value="/img/btn_modify.png"/>" alt="" id="btn_modify" level="R" /> --%>
<%-- <img src="<c:url value="/img/btn_close.png"/>" alt="" id="btn_close" level="R" /> --%>
</div>
<div class="title"><%= localeMessage.getString("tranStatPop.title") %></div>
<table id="grid" ></table>
<div id="pager"></div>
</div><!-- end.popup_box -->
</body>
</html>