@@ -190,6 +190,8 @@
|
|||||||
var key = "${param.clientId}";
|
var key = "${param.clientId}";
|
||||||
if (key != "" && key != "null") {
|
if (key != "" && key != "null") {
|
||||||
isDetail = true;
|
isDetail = true;
|
||||||
|
} else {
|
||||||
|
$('input[name="grantTypes_"]').prop('checked', true);
|
||||||
}
|
}
|
||||||
init(key, detail);
|
init(key, detail);
|
||||||
|
|
||||||
@@ -506,18 +508,17 @@
|
|||||||
<td><input type="text" name="scope"/></td>
|
<td><input type="text" name="scope"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><%= localeMessage.getString("clntManDtl.grntTp") %>
|
<th><%= localeMessage.getString("clntManDtl.grntTp") %> <small>(*)</small></th>
|
||||||
(<%= localeMessage.getString("clntManDtl.sprt") %> ,) <small>(*)</small></th>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="checkbox" name="grantTypes_" value="client_credentials"> client_credentials
|
<input type="checkbox" name="grantTypes_" value="client_credentials"> client_credentials
|
||||||
<%-- <input type="checkbox" name="grantTypes_" value="authorization_code"> authorization_code--%>
|
<%-- <input type="checkbox" name="grantTypes_" value="authorization_code"> authorization_code--%>
|
||||||
<%-- <input type="checkbox" name="grantTypes_" value="password"> password--%>
|
<%-- <input type="checkbox" name="grantTypes_" value="password"> password--%>
|
||||||
<input type="checkbox" name="grantTypes_" value="refresh_token"> refresh_token
|
<!-- <input type="checkbox" name="grantTypes_" value="refresh_token"> refresh_token -->
|
||||||
</td>
|
</td>
|
||||||
<input type="hidden" name="grantTypes"/>
|
<input type="hidden" name="grantTypes"/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr style="display: none;">
|
||||||
<th>REDIRECT URI</th>
|
<th>REDIRECT URI</th>
|
||||||
<td><input type="text" name="redirectUri"/></td>
|
<td><input type="text" name="redirectUri"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -538,7 +539,7 @@
|
|||||||
</th>
|
</th>
|
||||||
<td><input type="text" name="accessTokenValiditySeconds"/></td>
|
<td><input type="text" name="accessTokenValiditySeconds"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr style="display: none;">
|
||||||
<th><%= localeMessage.getString("clntManDtl.rfrshTknExprtnDt") %>
|
<th><%= localeMessage.getString("clntManDtl.rfrshTknExprtnDt") %>
|
||||||
</th>
|
</th>
|
||||||
<td><input type="text" name="refreshTokenValiditySeconds"/></td>
|
<td><input type="text" name="refreshTokenValiditySeconds"/></td>
|
||||||
@@ -555,7 +556,7 @@
|
|||||||
</th>
|
</th>
|
||||||
<td><input type="text" name="allowedIps"/></td>
|
<td><input type="text" name="allowedIps"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr style="display: none;">
|
||||||
<th>Security Key</th>
|
<th>Security Key</th>
|
||||||
<td><textarea name="securityKey" rows="3" style="width:100%;"></textarea></td>
|
<td><textarea name="securityKey" rows="3" style="width:100%;"></textarea></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -416,12 +416,13 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'API명',
|
'API ID', 'API 명',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
],
|
],
|
||||||
colModel: [
|
colModel: [
|
||||||
{ name: 'apiName', align: 'left', width: '250', sortable: false },
|
{ name: 'apiName', align: 'left', width: '150', sortable: false },
|
||||||
|
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
|
||||||
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
@@ -458,7 +459,7 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID',
|
'통계시간', 'API ID', '인스턴스', '업무구분', '클라이언트ID',
|
||||||
'Inbound Adapter', 'Outbound Adapter',
|
'Inbound Adapter', 'Outbound Adapter',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
@@ -602,7 +603,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>API명</th>
|
<th>API ID</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -418,12 +418,13 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'API명',
|
'API ID', 'API 명',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
],
|
],
|
||||||
colModel: [
|
colModel: [
|
||||||
{ name: 'apiName', align: 'left', width: '250', sortable: false },
|
{ name: 'apiName', align: 'left', width: '150', sortable: false },
|
||||||
|
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
|
||||||
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
@@ -580,7 +581,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>API명</th>
|
<th>API ID</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -431,12 +431,13 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'API명',
|
'API ID', 'API 명',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
],
|
],
|
||||||
colModel: [
|
colModel: [
|
||||||
{ name: 'apiName', align: 'left', width: '250', sortable: false },
|
{ name: 'apiName', align: 'left', width: '150', sortable: false },
|
||||||
|
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
|
||||||
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
@@ -609,7 +610,7 @@
|
|||||||
<input type="text" name="searchEndTime" value="${param.searchEndTime}" style="width:60px;">
|
<input type="text" name="searchEndTime" value="${param.searchEndTime}" style="width:60px;">
|
||||||
<span style="color:#888; font-size:12px; margin-left:10px;">(최대 1시간, 초과시 자동 조정)</span>
|
<span style="color:#888; font-size:12px; margin-left:10px;">(최대 1시간, 초과시 자동 조정)</span>
|
||||||
</td>
|
</td>
|
||||||
<th style="width:100px;">API명</th>
|
<th style="width:100px;">API ID</th>
|
||||||
<td style="width:400px">
|
<td style="width:400px">
|
||||||
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -421,12 +421,13 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'API명',
|
'API ID', 'API 명',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
],
|
],
|
||||||
colModel: [
|
colModel: [
|
||||||
{ name: 'apiName', align: 'left', width: '250', sortable: false },
|
{ name: 'apiName', align: 'left', width: '150', sortable: false },
|
||||||
|
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
|
||||||
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
@@ -463,7 +464,7 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID',
|
'통계시간', 'API ID', '인스턴스', '업무구분', '클라이언트ID',
|
||||||
'Inbound Adapter', 'Outbound Adapter',
|
'Inbound Adapter', 'Outbound Adapter',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
@@ -510,11 +511,21 @@
|
|||||||
$("input[name=searchStartDateTime]").inputmask("9999-99", { 'autoUnmask': true });
|
$("input[name=searchStartDateTime]").inputmask("9999-99", { 'autoUnmask': true });
|
||||||
$("input[name=searchEndDateTime]").inputmask("9999-99", { 'autoUnmask': true });
|
$("input[name=searchEndDateTime]").inputmask("9999-99", { 'autoUnmask': true });
|
||||||
|
|
||||||
// 기본값 설정 (최근 12개월)
|
// 기본값 설정: 올해 1월 ~ 지난달 (현재가 1월이면 작년 1월 ~ 작년 12월)
|
||||||
var today = new Date();
|
var today = new Date();
|
||||||
var endMonth = today.getFullYear() + '-' + (today.getMonth() + 1 < 10 ? '0' : '') + (today.getMonth() + 1);
|
var startDate, endDate;
|
||||||
var startDate = new Date(today.getFullYear(), today.getMonth() - 11, 1);
|
if (today.getMonth() === 0) { // 1월
|
||||||
var startMonth = startDate.getFullYear() + '-' + (startDate.getMonth() + 1 < 10 ? '0' : '') + (startDate.getMonth() + 1);
|
startDate = new Date(today.getFullYear() - 1, 0, 1);
|
||||||
|
endDate = new Date(today.getFullYear() - 1, 11, 1);
|
||||||
|
} else {
|
||||||
|
startDate = new Date(today.getFullYear(), 0, 1);
|
||||||
|
endDate = new Date(today.getFullYear(), today.getMonth() - 1, 1);
|
||||||
|
}
|
||||||
|
function toMonthStr(d) {
|
||||||
|
return d.getFullYear() + '-' + (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth() + 1);
|
||||||
|
}
|
||||||
|
var startMonth = toMonthStr(startDate);
|
||||||
|
var endMonth = toMonthStr(endDate);
|
||||||
|
|
||||||
if (!$("input[name=searchStartDateTime]").val()) {
|
if (!$("input[name=searchStartDateTime]").val()) {
|
||||||
$("input[name=searchStartDateTime]").val(startMonth);
|
$("input[name=searchStartDateTime]").val(startMonth);
|
||||||
@@ -593,7 +604,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>API명</th>
|
<th>API ID</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -397,12 +397,13 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'API명',
|
'API ID', 'API 명',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
],
|
],
|
||||||
colModel: [
|
colModel: [
|
||||||
{ name: 'apiName', align: 'left', width: '250', sortable: false },
|
{ name: 'apiName', align: 'left', width: '150', sortable: false },
|
||||||
|
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
|
||||||
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
@@ -439,7 +440,7 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID',
|
'통계시간', 'API ID', '인스턴스', '업무구분', '클라이언트ID',
|
||||||
'Inbound Adapter', 'Outbound Adapter',
|
'Inbound Adapter', 'Outbound Adapter',
|
||||||
'총건수', '성공', 'Timeout', '시스템오류',
|
'총건수', '성공', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
@@ -563,7 +564,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>API명</th>
|
<th>API ID</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
<input type="text" name="searchApiName" value="${param.searchApiName}">
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -65,9 +65,27 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 조회구분(searchType)에 따라 '구분' / '구분명' 컬럼의 헤더명·폭·표시여부를 조정
|
||||||
|
function applyGridColumnsByType(type) {
|
||||||
|
var $g = $("#grid");
|
||||||
|
if (type === 'API') {
|
||||||
|
$g.jqGrid('setLabel', 'orgName', 'API ID');
|
||||||
|
$g.jqGrid('setLabel', 'apiDesc', 'API명');
|
||||||
|
$g.jqGrid('setColProp', 'orgName', { widthOrg: 150, width: 150 });
|
||||||
|
$g.jqGrid('setColProp', 'apiDesc', { widthOrg: 250, width: 250 });
|
||||||
|
$g.jqGrid('showCol', 'apiDesc');
|
||||||
|
} else {
|
||||||
|
$g.jqGrid('setLabel', 'orgName', (type === 'DATE') ? '사용일' : '제휴사');
|
||||||
|
$g.jqGrid('setColProp', 'orgName', { widthOrg: 250, width: 250 });
|
||||||
|
$g.jqGrid('hideCol', 'apiDesc');
|
||||||
|
}
|
||||||
|
$g.jqGrid('setGridWidth', $('#content_middle').width(), true);
|
||||||
|
}
|
||||||
|
|
||||||
function search() {
|
function search() {
|
||||||
var postData = getPostData("cmd", "LIST");
|
var postData = getPostData("cmd", "LIST");
|
||||||
if (postData) {
|
if (postData) {
|
||||||
|
applyGridColumnsByType($('input[name="searchType"]:checked').val());
|
||||||
$("#grid").setGridParam({ url: url, postData: postData }).trigger("reloadGrid");
|
$("#grid").setGridParam({ url: url, postData: postData }).trigger("reloadGrid");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -186,12 +204,13 @@
|
|||||||
mtype: 'POST',
|
mtype: 'POST',
|
||||||
postData: gridPostData,
|
postData: gridPostData,
|
||||||
colNames: [
|
colNames: [
|
||||||
'구분',
|
'제휴사', 'API명',
|
||||||
'총건수', '성공', '성공율(%)', '실패율(%)', 'Timeout', '시스템오류',
|
'총건수', '성공', '성공율(%)', '실패율(%)', 'Timeout', '시스템오류',
|
||||||
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
|
||||||
],
|
],
|
||||||
colModel: [
|
colModel: [
|
||||||
{ name: 'orgName', align: 'left', width: '250', sortable: false },
|
{ name: 'orgName', align: 'left', width: '250', sortable: false },
|
||||||
|
{ name: 'apiDesc', align: 'left', width: '250', sortable: false, hidden: true },
|
||||||
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
|
||||||
{ name: 'successRate', align: 'right', width: '80', formatter: decimalFormatter, sortable: false },
|
{ name: 'successRate', align: 'right', width: '80', formatter: decimalFormatter, sortable: false },
|
||||||
@@ -225,10 +244,23 @@
|
|||||||
$("input[name=searchStartDate], input[name=searchEndDate]").inputmask("9999-99-99", { 'autoUnmask': true });
|
$("input[name=searchStartDate], input[name=searchEndDate]").inputmask("9999-99-99", { 'autoUnmask': true });
|
||||||
$("input[name=searchStartDate], input[name=searchEndDate]").datepicker();
|
$("input[name=searchStartDate], input[name=searchEndDate]").datepicker();
|
||||||
|
|
||||||
|
// 기본값 설정: 이번달 1일 ~ 어제 (오늘이 1일이면 지난달 1일 ~ 지난달 말일)
|
||||||
var today = getToday();
|
var today = getToday();
|
||||||
var startDate = today.substring(0,6)+"01";
|
var now = new Date();
|
||||||
var endDate = today;
|
function toYmd(d) {
|
||||||
|
var m = d.getMonth() + 1;
|
||||||
|
var day = d.getDate();
|
||||||
|
return d.getFullYear() + '' + (m < 10 ? '0' : '') + m + (day < 10 ? '0' : '') + day;
|
||||||
|
}
|
||||||
|
var startDate, endDate;
|
||||||
|
if (now.getDate() === 1) {
|
||||||
|
startDate = toYmd(new Date(now.getFullYear(), now.getMonth() - 1, 1));
|
||||||
|
endDate = toYmd(new Date(now.getFullYear(), now.getMonth(), 0));
|
||||||
|
} else {
|
||||||
|
startDate = today.substring(0,6) + "01";
|
||||||
|
endDate = toYmd(new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!$("input[name=searchStartDate]").val()) {
|
if (!$("input[name=searchStartDate]").val()) {
|
||||||
$("input[name=searchStartDate]").val(startDate);
|
$("input[name=searchStartDate]").val(startDate);
|
||||||
@@ -302,11 +334,11 @@
|
|||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchOrgName" id="searchOrgName" value="${param.searchOrgName}">
|
<input type="text" name="searchOrgName" id="searchOrgName" value="${param.searchOrgName}">
|
||||||
</td>
|
</td>
|
||||||
<th style="width:120px;">API명</th>
|
<th style="width:120px;">API ID</th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="searchApiName" id="searchApiName" value="${param.searchApiName}">
|
<input type="text" name="searchApiName" id="searchApiName" value="${param.searchApiName}">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
@@ -281,6 +281,9 @@ $(document).ready(function() {
|
|||||||
<%-- <img id="btn_excel" src="<c:url value="/img/btn_excel.png"/>" level="W" status="DETAIL"/> --%>
|
<%-- <img id="btn_excel" src="<c:url value="/img/btn_excel.png"/>" level="W" status="DETAIL"/> --%>
|
||||||
</div>
|
</div>
|
||||||
<div class="title"><%= localeMessage.getString("tranStat.title") %><span class="tooltip"><%= localeMessage.getString("tranStat.tooltip") %></span></div>
|
<div class="title"><%= localeMessage.getString("tranStat.title") %><span class="tooltip"><%= localeMessage.getString("tranStat.tooltip") %></span></div>
|
||||||
|
<div style="padding-bottom: 10px; color: #555">
|
||||||
|
※ 100 : 송신>APIM 200 : APIM>수신 300 : 수신>APIM 400 : APIM>송신
|
||||||
|
</div>
|
||||||
<ajax>
|
<ajax>
|
||||||
<table id="grid" ></table>
|
<table id="grid" ></table>
|
||||||
</ajax>
|
</ajax>
|
||||||
|
|||||||
@@ -437,6 +437,9 @@ $( document ).ready(function() {
|
|||||||
<%-- <img src="<c:url value="/img/btn_search.png"/>" alt="" id="btn_search" level="R" /> --%>
|
<%-- <img src="<c:url value="/img/btn_search.png"/>" alt="" id="btn_search" level="R" /> --%>
|
||||||
</div>
|
</div>
|
||||||
<div class="title"><%= localeMessage.getString("tranStatDetail.title") %><span class="tooltip"><%= localeMessage.getString("tranStat.tooltip") %></span></div>
|
<div class="title"><%= localeMessage.getString("tranStatDetail.title") %><span class="tooltip"><%= localeMessage.getString("tranStat.tooltip") %></span></div>
|
||||||
|
<div style="padding-bottom: 10px; color: #555">
|
||||||
|
※ 100 : 송신>APIM 200 : APIM>수신 300 : 수신>APIM 400 : APIM>송신
|
||||||
|
</div>
|
||||||
<table class="search_condition" cellspacing=0;>
|
<table class="search_condition" cellspacing=0;>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -253,7 +253,7 @@
|
|||||||
var name = $(this).attr("name");
|
var name = $(this).attr("name");
|
||||||
if ("${rmsMenuAuth}" =="W"){ //2020.07.08 admin 만 버튼보이게 수정
|
if ("${rmsMenuAuth}" =="W"){ //2020.07.08 admin 만 버튼보이게 수정
|
||||||
$("#"+name).show();
|
$("#"+name).show();
|
||||||
$("input[name="+name+"]").css("width","185px");
|
$("input[name="+name+"]").css("width","calc(100% - 60px)");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -261,7 +261,7 @@
|
|||||||
var name = $(this).attr("name");
|
var name = $(this).attr("name");
|
||||||
if($("input[name="+name+"]").val().trim() != ""){
|
if($("input[name="+name+"]").val().trim() != ""){
|
||||||
$("#"+name).show();
|
$("#"+name).show();
|
||||||
$("input[name="+name+"]").css("width","185px");
|
$("input[name="+name+"]").css("width","calc(100% - 60px)");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -977,15 +977,21 @@ html,hbody {
|
|||||||
<input type=hidden name=realHeader>
|
<input type=hidden name=realHeader>
|
||||||
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.common")%></div>
|
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.common")%></div>
|
||||||
<table class="table_row" cellspacing="0">
|
<table class="table_row" cellspacing="0">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
</colgroup>
|
||||||
<tr>
|
<tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.eaiSvcSerno")%></th>
|
<th><%=localeMessage.getString("trackingDetail.eaiSvcSerno")%></th>
|
||||||
<td colspan="3"><input type="text" name="eaiSvcSerno" readonly="readonly"/> </td>
|
<td colspan="3"><input type="text" name="eaiSvcSerno" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.eaiBzwkDstcd")%></th>
|
<th><%=localeMessage.getString("trackingDetail.eaiBzwkDstcd")%></th>
|
||||||
<td style="width:30%;"><input type="text" name="eaiBzwkDstcd" readonly="readonly"/> </td>
|
<td><input type="text" name="eaiBzwkDstcd" readonly="readonly"/> </td>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.msgDpstYMS")%></th>
|
<th><%=localeMessage.getString("trackingDetail.msgDpstYMS")%></th>
|
||||||
<td style="width:30%;"><input type="text" name="msgDpstYMS" readonly="readonly"/> </td>
|
<td><input type="text" name="msgDpstYMS" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><%= localeMessage.getString("eaiMessage.eaiSvcName")%></th><td><input type="text" name="eaiSvcName" readonly="readonly" />
|
<th><%= localeMessage.getString("eaiMessage.eaiSvcName")%></th><td><input type="text" name="eaiSvcName" readonly="readonly" />
|
||||||
@@ -1019,11 +1025,17 @@ html,hbody {
|
|||||||
</table>
|
</table>
|
||||||
<div class="table_row_title">API 정보</div>
|
<div class="table_row_title">API 정보</div>
|
||||||
<table class="table_row" cellspacing="0">
|
<table class="table_row" cellspacing="0">
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
</colgroup>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:20%;">APP(Client) ID</th>
|
<th>APP(Client) ID</th>
|
||||||
<td style="width:30%;"><input type="text" name="clientId" readonly="readonly"/> </td>
|
<td><input type="text" name="clientId" readonly="readonly"/> </td>
|
||||||
<th style="width:20%;">APP 명</th>
|
<th>APP 명</th>
|
||||||
<td style="width:30%;"><input type="text" name="clientName" readonly="readonly"/> </td>
|
<td><input type="text" name="clientName" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>법인 ID</th><td ><input type="text" name="orgId" readonly="readonly"/> </td>
|
<th>법인 ID</th><td ><input type="text" name="orgId" readonly="readonly"/> </td>
|
||||||
@@ -1145,20 +1157,27 @@ html,hbody {
|
|||||||
</div><!-- end.container-1 -->
|
</div><!-- end.container-1 -->
|
||||||
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.inbound")%></div>
|
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.inbound")%></div>
|
||||||
<table class="table_row" cellspacing="0" >
|
<table class="table_row" cellspacing="0" >
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
</colgroup>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.svcMotivUseDstcd")%></th>
|
<%-- <th style="width:20%;"><%=localeMessage.getString("trackingDetail.svcMotivUseDstcd")%></th>
|
||||||
<td style="width:30%;"><input type="text" name="svcMotivUseDstcd" readonly="readonly"/> </td>
|
<td style="width:30%;"><input type="text" name="svcMotivUseDstcd" readonly="readonly"/> </td> --%>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.gstatSysAdptrBzwkGroupName")%></th>
|
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.gstatSysAdptrBzwkGroupName")%></th>
|
||||||
<td style="width:30%;"><input type="text" name="gstatSysAdptrBzwkGroupName" readonly="readonly"/>
|
<td style="width:30%;"><input type="text" name="gstatSysAdptrBzwkGroupName" readonly="readonly" style="width: calc(100% - 60px);"/>
|
||||||
<%-- <img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="gstatSysAdptrBzwkGroupName" class="adapter_btn" level="W"/> --%>
|
<%-- <img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="gstatSysAdptrBzwkGroupName" class="adapter_btn" level="W"/> --%>
|
||||||
<button type="button" class="cssbtn smallBtn2" id="gstatSysAdptrBzwkGroupName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
<button type="button" class="cssbtn smallBtn2" id="gstatSysAdptrBzwkGroupName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th><%=localeMessage.getString("trackingDetail.flowCtrlRoutName")%></th><td><input type="text" name="flowCtrlRoutName" readonly="readonly"/> </td>
|
|
||||||
<th><%=localeMessage.getString("trackingDetail.stndMsgUseYn")%></th><td><input type="text" name="stndMsgUseYn" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.stndMsgUseYn")%></th><td><input type="text" name="stndMsgUseYn" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
|
<th><%=localeMessage.getString("trackingDetail.flowCtrlRoutName")%></th><td><input type="text" name="flowCtrlRoutName" readonly="readonly"/> </td>
|
||||||
|
|
||||||
|
</tr> --%>
|
||||||
|
<%-- <tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.svcPrcssDsticName")%></th><td><input type="text" name="svcPrcssDsticName" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.svcPrcssDsticName")%></th><td><input type="text" name="svcPrcssDsticName" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.svcBfClmnLogYn")%></th><td><input type="text" name="svcBfClmnLogYn" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.svcBfClmnLogYn")%></th><td><input type="text" name="svcBfClmnLogYn" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -1169,39 +1188,52 @@ html,hbody {
|
|||||||
<tr>
|
<tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.gstatSvcDsticName")%></th><td><input type="text" name="gstatSvcDsticName" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.gstatSvcDsticName")%></th><td><input type="text" name="gstatSvcDsticName" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.prsntMsgIdName")%></th><td><input type="text" name="prsntMsgIdName" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.prsntMsgIdName")%></th><td><input type="text" name="prsntMsgIdName" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr> --%>
|
||||||
</table>
|
</table>
|
||||||
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.outbound")%></div>
|
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.outbound")%></div>
|
||||||
<table class="table_row" cellspacing="0" >
|
<table class="table_row" cellspacing="0" >
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
</colgroup>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.psvIntfacDsticName")%></th>
|
<%-- <th style="width:20%;"><%=localeMessage.getString("trackingDetail.psvIntfacDsticName")%></th>--%>
|
||||||
<td style="width:30%;"><input type="text" name="psvIntfacDsticName" readonly="readonly"/> </td>
|
<%-- <td style="width:30%;"><input type="text" name="psvIntfacDsticName" readonly="readonly"/> </td> --%>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.psvSysAdptrBzwkGroupName")%></th>
|
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.psvSysAdptrBzwkGroupName")%></th>
|
||||||
<td style="width:30%;"><input type="text" name="psvSysAdptrBzwkGroupName" readonly="readonly"/>
|
<td style="width:30%;"><input type="text" name="psvSysAdptrBzwkGroupName" readonly="readonly" style="width: calc(100% - 60px);"/>
|
||||||
<%-- <img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="psvSysAdptrBzwkGroupName" class="adapter_btn" level="W"/> --%>
|
<%-- <img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="psvSysAdptrBzwkGroupName" class="adapter_btn" level="W"/> --%>
|
||||||
<button type="button" class="cssbtn smallBtn2" id="psvSysAdptrBzwkGroupName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
<button type="button" class="cssbtn smallBtn2" id="psvSysAdptrBzwkGroupName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
||||||
</td>
|
</td>
|
||||||
|
<th><%=localeMessage.getString("trackingDetail.psvBzwkSysName")%></th><td><input type="text" name="psvBzwkSysName" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.outbndRoutName")%></th><td><input type="text" name="outbndRoutName" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.outbndRoutName")%></th><td><input type="text" name="outbndRoutName" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.toutVal")%></th><td><input type="text" name="toutVal" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.toutVal")%></th><td><input type="text" name="toutVal" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.psvSysSvcDsticName")%></th><td><input type="text" name="psvSysSvcDsticName" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.psvSysSvcDsticName")%></th><td><input type="text" name="psvSysSvcDsticName" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.psvBzwkSysName")%></th><td><input type="text" name="psvBzwkSysName" readonly="readonly"/> </td>
|
|
||||||
</tr>
|
</tr>--%>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.rspnsErrFldName")%></th><td><input type="text" name="rspnsErrFldName" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.rspnsErrFldName")%></th><td><input type="text" name="rspnsErrFldName" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.psvSysIdName")%></th><td><input type="text" name="psvSysIdName" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.psvSysIdName")%></th><td><input type="text" name="psvSysIdName" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr> --%>
|
||||||
</table>
|
</table>
|
||||||
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.MAPPING")%></div>
|
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.MAPPING")%></div>
|
||||||
<table class="table_row" cellspacing="0" >
|
<table class="table_row" cellspacing="0" >
|
||||||
|
<colgroup>
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
<col style="width:180px"/>
|
||||||
|
<col style="width:300px" />
|
||||||
|
</colgroup>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.chngYn")%></th>
|
<th><%=localeMessage.getString("trackingDetail.chngYn")%></th>
|
||||||
<td style="width:30%;"><input type="text" name="chngYn" readonly="readonly"/> </td>
|
<td><input type="text" name="chngYn" readonly="readonly"/> </td>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.chngMsgIdName")%></th>
|
<th><%=localeMessage.getString("trackingDetail.chngMsgIdName")%></th>
|
||||||
<td style="width:30%;"><input type="text" name="chngMsgIdName" readonly="readonly"/>
|
<td><input type="text" name="chngMsgIdName" readonly="readonly" style="width: calc(100% - 60px);"/>
|
||||||
<!-- img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="chngMsgIdName" class="layout_btn" /-->
|
<!-- img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="chngMsgIdName" class="layout_btn" /-->
|
||||||
<button type="button" class="cssbtn smallBtn2" id="chngMsgIdName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
<button type="button" class="cssbtn smallBtn2" id="chngMsgIdName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
||||||
</td>
|
</td>
|
||||||
@@ -1210,7 +1242,7 @@ html,hbody {
|
|||||||
<th><%=localeMessage.getString("trackingDetail.bascRspnsChngYn")%></th><td><input type="text" name="bascRspnsChngYn" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.bascRspnsChngYn")%></th><td><input type="text" name="bascRspnsChngYn" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.bascRspnsChngMsgIdName")%></th>
|
<th><%=localeMessage.getString("trackingDetail.bascRspnsChngMsgIdName")%></th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="bascRspnsChngMsgIdName" readonly="readonly"/>
|
<input type="text" name="bascRspnsChngMsgIdName" readonly="readonly" style="width: calc(100% - 60px);"/>
|
||||||
<!-- img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="bascRspnsChngMsgIdName" class="layout_btn" /-->
|
<!-- img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="bascRspnsChngMsgIdName" class="layout_btn" /-->
|
||||||
<button type="button" class="cssbtn smallBtn2" id="bascRspnsChngMsgIdName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
<button type="button" class="cssbtn smallBtn2" id="bascRspnsChngMsgIdName" style="vertical-align:middle; font-weight:bold;" level="W"><i class="material-icons">details</i><%= localeMessage.getString("button.detail") %></button>
|
||||||
</td>
|
</td>
|
||||||
@@ -1220,10 +1252,10 @@ html,hbody {
|
|||||||
<th><%=localeMessage.getString("trackingDetail.errRspnsChngYn")%></th><td><input type="text" name="errRspnsChngYn" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.errRspnsChngYn")%></th><td><input type="text" name="errRspnsChngYn" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.errRspnsChngMsgIdName")%></th>
|
<th><%=localeMessage.getString("trackingDetail.errRspnsChngMsgIdName")%></th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="errRspnsChngMsgIdName" readonly="readonly"/>
|
<input type="text" name="errRspnsChngMsgIdName" readonly="readonly" style="width: calc(100% - 60px);"/>
|
||||||
<img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="errRspnsChngMsgIdName" class="layout_btn" /> </td>
|
<img src="<c:url value="/images/bt/pop_detail.gif"/>" alt="" id="errRspnsChngMsgIdName" class="layout_btn" /> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<%-- <tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.inptMsgIDName")%></th>
|
<th><%=localeMessage.getString("trackingDetail.inptMsgIDName")%></th>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" name="inptMsgIDName" readonly="readonly" />
|
<input type="text" name="inptMsgIDName" readonly="readonly" />
|
||||||
@@ -1233,9 +1265,9 @@ html,hbody {
|
|||||||
<tr>
|
<tr>
|
||||||
<th><%=localeMessage.getString("trackingDetail.bascRspnsMsgCmprCtnt")%></th><td><input type="text" name="bascRspnsMsgCmprCtnt" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.bascRspnsMsgCmprCtnt")%></th><td><input type="text" name="bascRspnsMsgCmprCtnt" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.flovrYn")%></th><td><input type="text" name="flovrYn" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.flovrYn")%></th><td><input type="text" name="flovrYn" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr> --%>
|
||||||
</table>
|
</table>
|
||||||
<div class="table_row_title"><%=localeMessage.getString("trackingDetail.etc")%></div>
|
<%-- <div class="table_row_title"><%=localeMessage.getString("trackingDetail.etc")%></div>
|
||||||
<table class="table_row" cellspacing="0" >
|
<table class="table_row" cellspacing="0" >
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.rspnsErrcdName")%></th>
|
<th style="width:20%;"><%=localeMessage.getString("trackingDetail.rspnsErrcdName")%></th>
|
||||||
@@ -1267,7 +1299,7 @@ html,hbody {
|
|||||||
<th><%=localeMessage.getString("trackingDetail.trackAsisKey3Ctnt")%></th><td><input type="text" name="trackAsisKey3Ctnt" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.trackAsisKey3Ctnt")%></th><td><input type="text" name="trackAsisKey3Ctnt" readonly="readonly"/> </td>
|
||||||
<th><%=localeMessage.getString("trackingDetail.trackAsisKey4Ctnt")%></th><td><input type="text" name="trackAsisKey4Ctnt" readonly="readonly"/> </td>
|
<th><%=localeMessage.getString("trackingDetail.trackAsisKey4Ctnt")%></th><td><input type="text" name="trackAsisKey4Ctnt" readonly="readonly"/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table> --%>
|
||||||
</form>
|
</form>
|
||||||
</div><!-- end.popup_box -->
|
</div><!-- end.popup_box -->
|
||||||
<div id="bizLogObjectDialog" style="white-space: pre-wrap; overflow-y:auto" title="Biz Log Object Detail">
|
<div id="bizLogObjectDialog" style="white-space: pre-wrap; overflow-y:auto" title="Biz Log Object Detail">
|
||||||
|
|||||||
@@ -57,19 +57,19 @@ public class ApiUseStatsService
|
|||||||
|
|
||||||
String dataSql = "";
|
String dataSql = "";
|
||||||
if ("ORG".equals(search.getSearchType())) {
|
if ("ORG".equals(search.getSearchType())) {
|
||||||
dataSql = "SELECT NVL(NVL(B.ORGNAME, D.ORG_NAME),'미분류') AS ORGNAME";
|
dataSql = "SELECT NVL(NVL(B.ORGNAME, D.ORG_NAME),'미분류') AS ORGNAME, '' AS APIDESC";
|
||||||
dataSql += getQueryBody(search);
|
dataSql += getQueryBody(search);
|
||||||
dataSql += " GROUP BY NVL(NVL(B.ORGNAME, D.ORG_NAME),'미분류')";
|
dataSql += " GROUP BY NVL(NVL(B.ORGNAME, D.ORG_NAME),'미분류')";
|
||||||
dataSql += " ORDER BY ORGNAME";
|
dataSql += " ORDER BY ORGNAME";
|
||||||
}
|
}
|
||||||
else if ("API".equals(search.getSearchType())) {
|
else if ("API".equals(search.getSearchType())) {
|
||||||
dataSql = "SELECT A.API_NAME ";
|
dataSql = "SELECT A.API_NAME, A.EAISVCDESC ";
|
||||||
dataSql += getQueryBody(search);
|
dataSql += getQueryBody(search);
|
||||||
dataSql += " GROUP BY A.API_NAME";
|
dataSql += " GROUP BY A.API_NAME, A.EAISVCDESC ";
|
||||||
dataSql += " ORDER BY API_NAME";
|
dataSql += " ORDER BY API_NAME";
|
||||||
}
|
}
|
||||||
else if ("DATE".equals(search.getSearchType())) {
|
else if ("DATE".equals(search.getSearchType())) {
|
||||||
dataSql = "SELECT TO_CHAR(STAT_TIME,'YYYY-MM-DD') AS STAT_TIME ";
|
dataSql = "SELECT TO_CHAR(STAT_TIME,'YYYY-MM-DD') AS STAT_TIME, '' AS APIDESC ";
|
||||||
dataSql += getQueryBody(search);
|
dataSql += getQueryBody(search);
|
||||||
dataSql += " GROUP BY TO_CHAR(STAT_TIME,'YYYY-MM-DD')";
|
dataSql += " GROUP BY TO_CHAR(STAT_TIME,'YYYY-MM-DD')";
|
||||||
dataSql += " ORDER BY STAT_TIME";
|
dataSql += " ORDER BY STAT_TIME";
|
||||||
@@ -85,7 +85,7 @@ public class ApiUseStatsService
|
|||||||
StringBuilder where = buildNativeWhere(search);
|
StringBuilder where = buildNativeWhere(search);
|
||||||
|
|
||||||
String totalSql;
|
String totalSql;
|
||||||
totalSql = "SELECT '합계' AS ORGNAME ";
|
totalSql = "SELECT '합계' AS ORGNAME, '' AS APIDESC ";
|
||||||
totalSql += getQueryBody(search);
|
totalSql += getQueryBody(search);
|
||||||
|
|
||||||
Query totalQuery = entityManager.createNativeQuery(totalSql);
|
Query totalQuery = entityManager.createNativeQuery(totalSql);
|
||||||
@@ -109,6 +109,7 @@ public class ApiUseStatsService
|
|||||||
+ " FROM ("
|
+ " FROM ("
|
||||||
+ " SELECT A.STAT_TIME "
|
+ " SELECT A.STAT_TIME "
|
||||||
+ " , A.API_NAME"
|
+ " , A.API_NAME"
|
||||||
|
+ " , C.EAISVCDESC"
|
||||||
+ " , A.CLIENT_ID "
|
+ " , A.CLIENT_ID "
|
||||||
+ " , A.TOTAL_CNT"
|
+ " , A.TOTAL_CNT"
|
||||||
+ " , A.SUCCESS_CNT"
|
+ " , A.SUCCESS_CNT"
|
||||||
@@ -118,13 +119,13 @@ public class ApiUseStatsService
|
|||||||
+ " , A.MIN_RESP_TIME"
|
+ " , A.MIN_RESP_TIME"
|
||||||
+ " , A.MAX_RESP_TIME"
|
+ " , A.MAX_RESP_TIME"
|
||||||
+ " , CASE WHEN API_NAME LIKE '%1' THEN SUBSTR(OUTBOUND_ADAPTER,2,3) ELSE SUBSTR(INBOUND_ADAPTER,2,3) END AS ORG_CODE"
|
+ " , CASE WHEN API_NAME LIKE '%1' THEN SUBSTR(OUTBOUND_ADAPTER,2,3) ELSE SUBSTR(INBOUND_ADAPTER,2,3) END AS ORG_CODE"
|
||||||
+ " FROM API_STATS_DAY A "
|
+ " FROM API_STATS_DAY A LEFT OUTER JOIN TSEAIHE01 C ON A.API_NAME = C.EAISVCNAME "
|
||||||
+ " WHERE A.STAT_TIME >= :searchStartDate "
|
+ " WHERE A.STAT_TIME >= :searchStartDate "
|
||||||
+ " AND A.STAT_TIME <= :searchEndDate ";
|
+ " AND A.STAT_TIME <= :searchEndDate ";
|
||||||
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(search.getSearchApiName())) {
|
if (StringUtils.isNotBlank(search.getSearchApiName())) {
|
||||||
dataSql += " AND A.API_NAME LIKE :searchApiName ";
|
dataSql += " AND UPPER(A.API_NAME) LIKE :searchApiName ";
|
||||||
}
|
}
|
||||||
|
|
||||||
dataSql += " ) A"
|
dataSql += " ) A"
|
||||||
@@ -160,15 +161,16 @@ public class ApiUseStatsService
|
|||||||
private ApiStatsUI toVO(Object[] row) {
|
private ApiStatsUI toVO(Object[] row) {
|
||||||
ApiStatsUI vo = new ApiStatsUI();
|
ApiStatsUI vo = new ApiStatsUI();
|
||||||
vo.setOrgName(StringUtils.toString(row[0]));
|
vo.setOrgName(StringUtils.toString(row[0]));
|
||||||
vo.setTotalCnt(StringUtils.toLong(row[1]));
|
vo.setApiDesc(StringUtils.toString(row[1]));
|
||||||
vo.setSuccessCnt(StringUtils.toLong(row[2]));
|
vo.setTotalCnt(StringUtils.toLong(row[2]));
|
||||||
vo.setSuccessRate(StringUtils.toDecimal(row[3]).setScale(2, RoundingMode.HALF_UP));
|
vo.setSuccessCnt(StringUtils.toLong(row[3]));
|
||||||
vo.setFailRate(StringUtils.toDecimal(row[4]).setScale(2, RoundingMode.HALF_UP));
|
vo.setSuccessRate(StringUtils.toDecimal(row[4]).setScale(2, RoundingMode.HALF_UP));
|
||||||
vo.setTimeoutCnt(StringUtils.toLong(row[5]));
|
vo.setFailRate(StringUtils.toDecimal(row[5]).setScale(2, RoundingMode.HALF_UP));
|
||||||
vo.setSystemErrCnt(StringUtils.toLong(row[6]));
|
vo.setTimeoutCnt(StringUtils.toLong(row[6]));
|
||||||
vo.setAvgRespTime(StringUtils.toDecimal(row[7]));
|
vo.setSystemErrCnt(StringUtils.toLong(row[7]));
|
||||||
vo.setMinRespTime(StringUtils.toDecimal(row[8]));
|
vo.setAvgRespTime(StringUtils.toDecimal(row[8]));
|
||||||
vo.setMaxRespTime(StringUtils.toDecimal(row[9]));
|
vo.setMinRespTime(StringUtils.toDecimal(row[9]));
|
||||||
|
vo.setMaxRespTime(StringUtils.toDecimal(row[10]));
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import java.io.IOException;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -18,7 +20,10 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
|
||||||
import com.eactive.eai.rms.common.vo.GridResponse;
|
import com.eactive.eai.rms.common.vo.GridResponse;
|
||||||
|
import com.eactive.eai.rms.data.entity.onl.apim.obp.ObpGwMetricJpaDAO;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsDay;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsDay;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsDayService;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsDayService;
|
||||||
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
||||||
@@ -38,6 +43,7 @@ public class ApiStatsDayController {
|
|||||||
private final ApiStatsDayService service;
|
private final ApiStatsDayService service;
|
||||||
private final ApiStatsUIMapper mapper;
|
private final ApiStatsUIMapper mapper;
|
||||||
private final ApiStatsExcelExportService excelExportService;
|
private final ApiStatsExcelExportService excelExportService;
|
||||||
|
private final ObpGwMetricJpaDAO apiNameDao;
|
||||||
|
|
||||||
@GetMapping(value = "/onl/kjb/statistics/apiStatsDayMan.view")
|
@GetMapping(value = "/onl/kjb/statistics/apiStatsDayMan.view")
|
||||||
public String view() {
|
public String view() {
|
||||||
@@ -66,9 +72,38 @@ public class ApiStatsDayController {
|
|||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsDayMan.json", params = "cmd=LIST_SUMMARY")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsDayMan.json", params = "cmd=LIST_SUMMARY")
|
||||||
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
||||||
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
||||||
|
fillApiDesc(page.getContent());
|
||||||
return ResponseEntity.ok(new GridResponse<>(page));
|
return ResponseEntity.ok(new GridResponse<>(page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 요약 통계 행의 apiName(=API ID)으로 TSEAIHE01 을 조회하여 API 명(EAISVCDESC)을 채운다.
|
||||||
|
* 매칭되는 항목이 없으면 공란으로 둔다.
|
||||||
|
*/
|
||||||
|
private void fillApiDesc(List<ApiStatsUI> rows) {
|
||||||
|
if (rows == null || rows.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> apiIds = rows.stream()
|
||||||
|
.map(ApiStatsUI::getApiName)
|
||||||
|
.filter(id -> id != null && !id.isEmpty())
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if (apiIds.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// API_STATS_DAY 와 동일한 APIGW 스키마에서 조회
|
||||||
|
DataSourceContextHolder.setDataSourceType(
|
||||||
|
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
|
||||||
|
|
||||||
|
Map<String, String> nameMap = apiNameDao.selectApiNames(apiIds);
|
||||||
|
for (ApiStatsUI row : rows) {
|
||||||
|
row.setApiDesc(nameMap.get(row.getApiName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsDayMan.json", params = "cmd=EXCEL_EXPORT")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsDayMan.json", params = "cmd=EXCEL_EXPORT")
|
||||||
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
||||||
log.info("Excel export started - search: {}", search);
|
log.info("Excel export started - search: {}", search);
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import java.io.IOException;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -18,7 +20,10 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
|
||||||
import com.eactive.eai.rms.common.vo.GridResponse;
|
import com.eactive.eai.rms.common.vo.GridResponse;
|
||||||
|
import com.eactive.eai.rms.data.entity.onl.apim.obp.ObpGwMetricJpaDAO;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsHour;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsHour;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsHourService;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsHourService;
|
||||||
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
||||||
@@ -38,6 +43,7 @@ public class ApiStatsHourController {
|
|||||||
private final ApiStatsHourService service;
|
private final ApiStatsHourService service;
|
||||||
private final ApiStatsUIMapper mapper;
|
private final ApiStatsUIMapper mapper;
|
||||||
private final ApiStatsExcelExportService excelExportService;
|
private final ApiStatsExcelExportService excelExportService;
|
||||||
|
private final ObpGwMetricJpaDAO apiNameDao;
|
||||||
|
|
||||||
@GetMapping(value = "/onl/kjb/statistics/apiStatsHourMan.view")
|
@GetMapping(value = "/onl/kjb/statistics/apiStatsHourMan.view")
|
||||||
public String view() {
|
public String view() {
|
||||||
@@ -66,9 +72,38 @@ public class ApiStatsHourController {
|
|||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsHourMan.json", params = "cmd=LIST_SUMMARY")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsHourMan.json", params = "cmd=LIST_SUMMARY")
|
||||||
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
||||||
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
||||||
|
fillApiDesc(page.getContent());
|
||||||
return ResponseEntity.ok(new GridResponse<>(page));
|
return ResponseEntity.ok(new GridResponse<>(page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 요약 통계 행의 apiName(=API ID)으로 TSEAIHE01 을 조회하여 API 명(EAISVCDESC)을 채운다.
|
||||||
|
* 매칭되는 항목이 없으면 공란으로 둔다.
|
||||||
|
*/
|
||||||
|
private void fillApiDesc(List<ApiStatsUI> rows) {
|
||||||
|
if (rows == null || rows.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> apiIds = rows.stream()
|
||||||
|
.map(ApiStatsUI::getApiName)
|
||||||
|
.filter(id -> id != null && !id.isEmpty())
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if (apiIds.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// API_STATS_HOUR 와 동일한 APIGW 스키마에서 조회
|
||||||
|
DataSourceContextHolder.setDataSourceType(
|
||||||
|
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
|
||||||
|
|
||||||
|
Map<String, String> nameMap = apiNameDao.selectApiNames(apiIds);
|
||||||
|
for (ApiStatsUI row : rows) {
|
||||||
|
row.setApiDesc(nameMap.get(row.getApiName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsHourMan.json", params = "cmd=EXCEL_EXPORT")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsHourMan.json", params = "cmd=EXCEL_EXPORT")
|
||||||
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
||||||
log.info("Excel export started - search: {}", search);
|
log.info("Excel export started - search: {}", search);
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import java.io.IOException;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -18,7 +20,10 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
|
||||||
import com.eactive.eai.rms.common.vo.GridResponse;
|
import com.eactive.eai.rms.common.vo.GridResponse;
|
||||||
|
import com.eactive.eai.rms.data.entity.onl.apim.obp.ObpGwMetricJpaDAO;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMinute;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMinute;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMinuteService;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMinuteService;
|
||||||
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
||||||
@@ -38,6 +43,7 @@ public class ApiStatsMinuteController {
|
|||||||
private final ApiStatsMinuteService service;
|
private final ApiStatsMinuteService service;
|
||||||
private final ApiStatsUIMapper mapper;
|
private final ApiStatsUIMapper mapper;
|
||||||
private final ApiStatsExcelExportService excelExportService;
|
private final ApiStatsExcelExportService excelExportService;
|
||||||
|
private final ObpGwMetricJpaDAO apiNameDao;
|
||||||
|
|
||||||
@GetMapping(value = "/onl/kjb/statistics/apiStatsMinuteMan.view")
|
@GetMapping(value = "/onl/kjb/statistics/apiStatsMinuteMan.view")
|
||||||
public String view() {
|
public String view() {
|
||||||
@@ -66,9 +72,38 @@ public class ApiStatsMinuteController {
|
|||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsMinuteMan.json", params = "cmd=LIST_SUMMARY")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsMinuteMan.json", params = "cmd=LIST_SUMMARY")
|
||||||
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
||||||
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
||||||
|
fillApiDesc(page.getContent());
|
||||||
return ResponseEntity.ok(new GridResponse<>(page));
|
return ResponseEntity.ok(new GridResponse<>(page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 요약 통계 행의 apiName(=API ID)으로 TSEAIHE01 을 조회하여 API 명(EAISVCDESC)을 채운다.
|
||||||
|
* 매칭되는 항목이 없으면 공란으로 둔다.
|
||||||
|
*/
|
||||||
|
private void fillApiDesc(List<ApiStatsUI> rows) {
|
||||||
|
if (rows == null || rows.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> apiIds = rows.stream()
|
||||||
|
.map(ApiStatsUI::getApiName)
|
||||||
|
.filter(id -> id != null && !id.isEmpty())
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if (apiIds.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// API_STATS_MINUTE 와 동일한 APIGW 스키마에서 조회
|
||||||
|
DataSourceContextHolder.setDataSourceType(
|
||||||
|
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
|
||||||
|
|
||||||
|
Map<String, String> nameMap = apiNameDao.selectApiNames(apiIds);
|
||||||
|
for (ApiStatsUI row : rows) {
|
||||||
|
row.setApiDesc(nameMap.get(row.getApiName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsMinuteMan.json", params = "cmd=EXCEL_EXPORT")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsMinuteMan.json", params = "cmd=EXCEL_EXPORT")
|
||||||
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
||||||
log.info("Excel export started - search: {}", search);
|
log.info("Excel export started - search: {}", search);
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import java.io.IOException;
|
|||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -18,7 +20,10 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
|
||||||
import com.eactive.eai.rms.common.vo.GridResponse;
|
import com.eactive.eai.rms.common.vo.GridResponse;
|
||||||
|
import com.eactive.eai.rms.data.entity.onl.apim.obp.ObpGwMetricJpaDAO;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMonth;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMonth;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMonthService;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsMonthService;
|
||||||
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
||||||
@@ -38,6 +43,7 @@ public class ApiStatsMonthController {
|
|||||||
private final ApiStatsMonthService service;
|
private final ApiStatsMonthService service;
|
||||||
private final ApiStatsUIMapper mapper;
|
private final ApiStatsUIMapper mapper;
|
||||||
private final ApiStatsExcelExportService excelExportService;
|
private final ApiStatsExcelExportService excelExportService;
|
||||||
|
private final ObpGwMetricJpaDAO apiNameDao;
|
||||||
|
|
||||||
@GetMapping(value = "/onl/kjb/statistics/apiStatsMonthMan.view")
|
@GetMapping(value = "/onl/kjb/statistics/apiStatsMonthMan.view")
|
||||||
public String view() {
|
public String view() {
|
||||||
@@ -66,9 +72,38 @@ public class ApiStatsMonthController {
|
|||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsMonthMan.json", params = "cmd=LIST_SUMMARY")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsMonthMan.json", params = "cmd=LIST_SUMMARY")
|
||||||
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
||||||
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
||||||
|
fillApiDesc(page.getContent());
|
||||||
return ResponseEntity.ok(new GridResponse<>(page));
|
return ResponseEntity.ok(new GridResponse<>(page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 요약 통계 행의 apiName(=API ID)으로 TSEAIHE01 을 조회하여 API 명(EAISVCDESC)을 채운다.
|
||||||
|
* 매칭되는 항목이 없으면 공란으로 둔다.
|
||||||
|
*/
|
||||||
|
private void fillApiDesc(List<ApiStatsUI> rows) {
|
||||||
|
if (rows == null || rows.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> apiIds = rows.stream()
|
||||||
|
.map(ApiStatsUI::getApiName)
|
||||||
|
.filter(id -> id != null && !id.isEmpty())
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if (apiIds.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// API_STATS_MONTH 와 동일한 APIGW 스키마에서 조회
|
||||||
|
DataSourceContextHolder.setDataSourceType(
|
||||||
|
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
|
||||||
|
|
||||||
|
Map<String, String> nameMap = apiNameDao.selectApiNames(apiIds);
|
||||||
|
for (ApiStatsUI row : rows) {
|
||||||
|
row.setApiDesc(nameMap.get(row.getApiName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsMonthMan.json", params = "cmd=EXCEL_EXPORT")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsMonthMan.json", params = "cmd=EXCEL_EXPORT")
|
||||||
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
||||||
log.info("Excel export started - search: {}", search);
|
log.info("Excel export started - search: {}", search);
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.eactive.ext.kjb.statistics;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.Year;
|
import java.time.Year;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -17,7 +19,10 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceContextHolder;
|
||||||
|
import com.eactive.eai.rms.common.datasource.DataSourceTypeManager;
|
||||||
import com.eactive.eai.rms.common.vo.GridResponse;
|
import com.eactive.eai.rms.common.vo.GridResponse;
|
||||||
|
import com.eactive.eai.rms.data.entity.onl.apim.obp.ObpGwMetricJpaDAO;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsYear;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsYear;
|
||||||
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsYearService;
|
import com.eactive.eai.rms.data.entity.onl.kjb.statistics.ApiStatsYearService;
|
||||||
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
import com.eactive.ext.kjb.statistics.mapping.ApiStatsUIMapper;
|
||||||
@@ -37,6 +42,7 @@ public class ApiStatsYearController {
|
|||||||
private final ApiStatsYearService service;
|
private final ApiStatsYearService service;
|
||||||
private final ApiStatsUIMapper mapper;
|
private final ApiStatsUIMapper mapper;
|
||||||
private final ApiStatsExcelExportService excelExportService;
|
private final ApiStatsExcelExportService excelExportService;
|
||||||
|
private final ObpGwMetricJpaDAO apiNameDao;
|
||||||
|
|
||||||
@GetMapping(value = "/onl/kjb/statistics/apiStatsYearMan.view")
|
@GetMapping(value = "/onl/kjb/statistics/apiStatsYearMan.view")
|
||||||
public String view() {
|
public String view() {
|
||||||
@@ -65,9 +71,38 @@ public class ApiStatsYearController {
|
|||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsYearMan.json", params = "cmd=LIST_SUMMARY")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsYearMan.json", params = "cmd=LIST_SUMMARY")
|
||||||
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
public ResponseEntity<GridResponse<ApiStatsUI>> selectSummaryList(ApiStatsSearch search, Pageable pageable) {
|
||||||
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
Page<ApiStatsUI> page = service.selectSummaryList(search, pageable);
|
||||||
|
fillApiDesc(page.getContent());
|
||||||
return ResponseEntity.ok(new GridResponse<>(page));
|
return ResponseEntity.ok(new GridResponse<>(page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 요약 통계 행의 apiName(=API ID)으로 TSEAIHE01 을 조회하여 API 명(EAISVCDESC)을 채운다.
|
||||||
|
* 매칭되는 항목이 없으면 공란으로 둔다.
|
||||||
|
*/
|
||||||
|
private void fillApiDesc(List<ApiStatsUI> rows) {
|
||||||
|
if (rows == null || rows.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> apiIds = rows.stream()
|
||||||
|
.map(ApiStatsUI::getApiName)
|
||||||
|
.filter(id -> id != null && !id.isEmpty())
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if (apiIds.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// API_STATS_YEAR 와 동일한 APIGW 스키마에서 조회
|
||||||
|
DataSourceContextHolder.setDataSourceType(
|
||||||
|
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
|
||||||
|
|
||||||
|
Map<String, String> nameMap = apiNameDao.selectApiNames(apiIds);
|
||||||
|
for (ApiStatsUI row : rows) {
|
||||||
|
row.setApiDesc(nameMap.get(row.getApiName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/onl/kjb/statistics/apiStatsYearMan.json", params = "cmd=EXCEL_EXPORT")
|
@PostMapping(value = "/onl/kjb/statistics/apiStatsYearMan.json", params = "cmd=EXCEL_EXPORT")
|
||||||
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
public void exportToExcel(ApiStatsSearch search, HttpServletResponse response) throws IOException {
|
||||||
log.info("Excel export started - search: {}", search);
|
log.info("Excel export started - search: {}", search);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import lombok.Data;
|
|||||||
public class ApiStatsUI {
|
public class ApiStatsUI {
|
||||||
private String statTime;
|
private String statTime;
|
||||||
private String apiName;
|
private String apiName;
|
||||||
|
private String apiDesc;
|
||||||
private String gwInstanceId;
|
private String gwInstanceId;
|
||||||
private String bizDivCode;
|
private String bizDivCode;
|
||||||
private String clientId;
|
private String clientId;
|
||||||
|
|||||||
Reference in New Issue
Block a user