일문자 통계관리 API 기능 추가

This commit is contained in:
name 2023-07-28 15:38:45 +09:00
parent e3faf8639a
commit 25dacf7516
5 changed files with 437 additions and 221 deletions

View File

@ -167,6 +167,58 @@ public class MjonMsgVO extends ComDefaultVO{
private String sendKind; //문자전송 타입(H:홈페이지, A:API) private String sendKind; //문자전송 타입(H:홈페이지, A:API)
private int aSuccessCount; // API 문자발송 성공건수
private int aSendCount; // API 문자 발송건수
private int rateSuccessCount; // 홈페이지 전송 성공율
private int rateApiSuccessCount; // API 전송 성공율
private int totalSendCount; // 전체 문자발송 건수
private int totalSuccessCount; // 전체 문자발송 성공건수
private int totalRateSuccessCount; // 전체 문자발송 성공율
public int getRateSuccessCount() {
return rateSuccessCount;
}
public void setRateSuccessCount(int rateSuccessCount) {
this.rateSuccessCount = rateSuccessCount;
}
public int getRateApiSuccessCount() {
return rateApiSuccessCount;
}
public void setRateApiSuccessCount(int rateApiSuccessCount) {
this.rateApiSuccessCount = rateApiSuccessCount;
}
public int getTotalSendCount() {
return totalSendCount;
}
public void setTotalSendCount(int totalSendCount) {
this.totalSendCount = totalSendCount;
}
public int getTotalSuccessCount() {
return totalSuccessCount;
}
public void setTotalSuccessCount(int totalSuccessCount) {
this.totalSuccessCount = totalSuccessCount;
}
public int getTotalRateSuccessCount() {
return totalRateSuccessCount;
}
public void setTotalRateSuccessCount(int totalRateSuccessCount) {
this.totalRateSuccessCount = totalRateSuccessCount;
}
public int getaSuccessCount() {
return aSuccessCount;
}
public void setaSuccessCount(int aSuccessCount) {
this.aSuccessCount = aSuccessCount;
}
public int getaSendCount() {
return aSendCount;
}
public void setaSendCount(int aSendCount) {
this.aSendCount = aSendCount;
}
public String getSendKind() { public String getSendKind() {
return sendKind; return sendKind;
} }

View File

@ -5017,25 +5017,47 @@
<!-- 일별 문자발송 건수 --> <!-- 일별 문자발송 건수 -->
<select id="mjonMsgDAO.selectMsgDayChart_230125" parameterClass="mjonMsgVO" resultClass="mjonMsgVO"> <select id="mjonMsgDAO.selectMsgDayChart_230125" parameterClass="mjonMsgVO" resultClass="mjonMsgVO">
SELECT a.SEND_DATE AS regDate SELECT
a.SEND_DATE AS regDate
, a.send_cnt AS sendCount , a.send_cnt AS sendCount
, a.success_cnt AS successCount , a.success_cnt AS successCount
, IFNULL(ROUND((a.success_cnt / a.send_cnt ) * 100), 0) AS rateSuccessCount
, IFNULL(a.API_SEND_CNT, 0) AS aSendCount
, IFNULL(a.API_SUCCESS_CNT, 0) AS aSuccessCount
, IFNULL(ROUND((a.API_SUCCESS_CNT / a.API_SEND_CNT ) * 100), 0) AS rateApiSuccessCount
, (IFNULL(a.send_cnt, 0) + IFNULL(a.API_SEND_CNT, 0)) AS totalSendCount
, (IFNULL(a.success_cnt, 0) + IFNULL(a.API_SUCCESS_CNT, 0)) AS totalSuccessCount
, IFNULL(ROUND(((IFNULL(a.success_cnt, 0) + IFNULL(a.API_SUCCESS_CNT, 0)) / (IFNULL(a.send_cnt, 0) + IFNULL(a.API_SEND_CNT, 0))) * 100), 0) AS totalRateSuccessCount
, DATE_FORMAT(a.regist_pnttm, '%H:%i:%s') AS registPnttm , DATE_FORMAT(a.regist_pnttm, '%H:%i:%s') AS registPnttm
/*
, a.regist_pnttm AS registPnttm
*/
, COUNT(a.SEND_DATE) OVER() AS totCnt /** 전체 건수 */ , COUNT(a.SEND_DATE) OVER() AS totCnt /** 전체 건수 */
FROM mj_sttst_msg a FROM
mj_sttst_msg a
WHERE 1=1 WHERE 1=1
AND <![CDATA[ a.send_date <= DATE_FORMAT(NOW(), '%Y-%m-%d') ]]> AND <![CDATA[ a.send_date <= DATE_FORMAT(NOW(), '%Y-%m-%d') ]]>
<isNotEmpty property="ntceBgnde"> <isNotEmpty property="ntceBgnde">
AND <![CDATA[ a.send_date >= #ntceBgnde# ]]> AND <![CDATA[ a.send_date >= #ntceBgnde# ]]>
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="ntceEndde"> <isNotEmpty property="ntceEndde">
AND <![CDATA[ a.send_date <= #ntceEndde# ]]> AND <![CDATA[ a.send_date <= #ntceEndde# ]]>
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="sendKind">
<isEqual property="sendKind" compareValue="H">
AND a.send_cnt != 0
</isEqual>
<isEqual property="sendKind" compareValue="A">
AND a.API_SEND_CNT != 0
</isEqual>
</isNotEmpty>
<isEmpty property="sendKind">
AND (a.send_cnt != 0 || a.API_SEND_CNT != 0)
</isEmpty>
ORDER BY a.SEND_DATE DESC ORDER BY a.SEND_DATE DESC
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select> </select>

View File

@ -8,39 +8,49 @@
<typeAlias alias="mjonMsgVO" type="itn.let.mjo.msg.service.MjonMsgVO"/> <typeAlias alias="mjonMsgVO" type="itn.let.mjo.msg.service.MjonMsgVO"/>
<insert id="mjonSttst.insertMjSttstMsgBulk" parameterClass="mjonMsgVO"> <insert id="mjonSttst.insertMjSttstMsgBulk" parameterClass="mjonMsgVO">
INSERT INTO mj_sttst_msg INSERT INTO MJ_STTST_MSG
(send_date, send_cnt, success_cnt, regist_pnttm) (
send_date
, send_cnt
, success_cnt
, API_SEND_CNT
, API_SUCCESS_CNT
, regist_pnttm
)
select aa.regDate
, aa.sendCount
, aa.successCount
, now()
from (
SELECT SELECT
M2.regDate , aa.regDate
SUM(M2.sendCount) AS sendCount , , aa.hSendCount
SUM(M2.successCount) AS successCount , aa.hSuccessCount
, aa.aSendCount
FROM ( SELECT , aa.aSuccessCount
M.REQ_DATE AS regDate , now()
/*발송일*/ FROM(
SELECT
, IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount M2.regDate
/*발송건수*/ , SUM(M2.hSendCount) AS hSendCount
, SUM(M2.hSuccessCount) AS hSuccessCount
, SUM(M2.aSendCount) AS aSendCount
, SUM(M2.aSuccessCount) AS aSuccessCount
FROM(
SELECT
M.REQ_DATE AS regDate /*발송일*/
, IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount /*발송건수*/
, M.aSendCount /*API 발송건수*/
, M.hSendCount /*홈페이지 발송건수*/
, MSG_GROUP_ID , MSG_GROUP_ID
, (SELECT
, COUNT(0)
(SELECT COUNT(0) FROM
FROM MJ_MSG_DATA A MJ_MSG_DATA A
WHERE A.USER_ID NOT IN ('hftest', WHERE 1=1
'itntest', AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
'imotest',
'itntestBatch')
AND A.RESERVE_C_YN = 'N' AND A.RESERVE_C_YN = 'N'
AND A.MSG_GROUP_ID = M.MSG_GROUP_ID AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
AND (CASE AND M.SEND_KIND = 'H'
AND (
CASE
WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0')) WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
@ -57,78 +67,24 @@
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S' THEN 'S'
WHEN ( WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL )
A.RSLT_CODE IS NULL
AND A.RSLT_CODE2 IS NULL
AND A.SENT_DATE IS NULL
AND A.RSLT_DATE IS NULL
)
THEN 'W' THEN 'W'
ELSE 'F' ELSE 'F'
END ) = 'S' END
) ) = 'S'
AS successCount ) AS hSuccessCount /*홈페이지 성공건수*/
/*성공건수*/ , (SELECT
COUNT(0)
FROM ( SELECT DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE , FROM
SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT , MJ_MSG_DATA A
P.MSG_GROUP_ID WHERE 1=1
FROM MJ_MSG_GROUP_DATA P AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
WHERE USER_ID NOT IN ('hftest',
'itntest',
'imotest',
'itntestBatch')
AND P.RESERVE_C_YN = 'N'
AND P.req_date > DATE_ADD(now(), interval -14 day)
GROUP BY P.MSG_GROUP_ID
)
M
)
M2
GROUP BY M2.regDate
)aa
on DUPLICATE KEY UPDATE
send_cnt=aa.sendCount
, success_cnt=aa.successCount
, regist_pnttm=now()
</insert>
<insert id="mjonSttst.insertMjSttstMsgDayBulk" parameterClass="mjonMsgVO">
INSERT INTO mj_sttst_msg
(send_date, send_cnt, success_cnt, regist_pnttm)
select aa.regDate
, aa.sendCount
, aa.successCount
, now()
from (
SELECT
M2.regDate ,
SUM(M2.sendCount) AS sendCount ,
SUM(M2.successCount) AS successCount
FROM ( SELECT
M.REQ_DATE AS regDate
/*발송일*/
, IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount
/*발송건수*/
, MSG_GROUP_ID
, (SELECT COUNT(0)
FROM MJ_MSG_DATA A
WHERE A.USER_ID NOT IN ('hftest',
'itntest',
'imotest',
'itntestBatch')
AND A.RESERVE_C_YN = 'N' AND A.RESERVE_C_YN = 'N'
AND A.MSG_GROUP_ID = M.MSG_GROUP_ID AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
AND M.SEND_KIND = 'A'
AND ( AND (
CASE CASE
WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND(A.RSLT_CODE2 = '0')) WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0') WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
THEN 'S' THEN 'S'
@ -144,40 +100,159 @@
THEN 'S' THEN 'S'
WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001') WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S' THEN 'S'
WHEN ( WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL )
A.RSLT_CODE IS NULL
AND A.RSLT_CODE2 IS NULL
AND A.SENT_DATE IS NULL
AND A.RSLT_DATE IS NULL
)
THEN 'W' THEN 'W'
ELSE 'F' ELSE 'F'
END ) = 'S' END ) = 'S'
) ) AS aSuccessCount /*API 성공건수*/
AS successCount FROM(
/*성공건수*/ SELECT
DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE
FROM ( SELECT DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE , , SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT
SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT , , P.MSG_GROUP_ID
P.MSG_GROUP_ID , P.SEND_KIND
FROM MJ_MSG_GROUP_DATA P , IF(P.SEND_KIND = 'A', SUM(P.MSG_GROUP_CNT), 0) AS aSendCount
WHERE USER_ID NOT IN ('hftest', , IF(P.SEND_KIND = 'H', SUM(P.MSG_GROUP_CNT), 0) AS hSendCount
'itntest', FROM
'imotest', MJ_MSG_GROUP_DATA P
'itntestBatch') WHERE 1=1
AND USER_ID NOT IN ('hftest', 'itntest', 'imotest', 'itntestBatch')
AND P.RESERVE_C_YN = 'N' AND P.RESERVE_C_YN = 'N'
GROUP BY P.MSG_GROUP_ID AND P.req_date > DATE_ADD(now(), interval -14 day)
) GROUP BY
M P.MSG_GROUP_ID
) )M
M2 )M2
GROUP BY M2.regDate GROUP BY M2.regDate
)aa )aa
on DUPLICATE KEY UPDATE ON DUPLICATE KEY UPDATE
send_cnt=aa.sendCount send_cnt =aa.hSendCount
, success_cnt=aa.successCount , success_cnt =aa.hSuccessCount
, regist_pnttm=now() , API_SEND_CNT =aa.aSendCount
, API_SUCCESS_CNT =aa.aSuccessCount
, regist_pnttm =now()
</insert>
<insert id="mjonSttst.insertMjSttstMsgDayBulk" parameterClass="mjonMsgVO">
INSERT INTO MJ_STTST_MSG
(
send_date
, send_cnt
, success_cnt
, API_SEND_CNT
, API_SUCCESS_CNT
, regist_pnttm
)
SELECT
aa.regDate
, aa.hSendCount
, aa.hSuccessCount
, aa.aSendCount
, aa.aSuccessCount
, now()
FROM(
SELECT
M2.regDate
, SUM(M2.sendCount) AS sendCount
, SUM(M2.successCount) AS successCount
FROM(
SELECT
M.REQ_DATE AS regDate /*발송일*/
, IFNULL(M.MSG_GROUP_CNT, 0) AS sendCount /*발송건수*/
, M.aSendCount /*API 발송건수*/
, M.hSendCount /*홈페이지 발송건수*/
, MSG_GROUP_ID
, (SELECT
COUNT(0)
FROM
MJ_MSG_DATA A
WHERE 1=1
AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
AND A.RESERVE_C_YN = 'N'
AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
AND M.SEND_KIND = 'H'
AND (
CASE
WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
THEN 'S'
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
THEN 'S'
WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800')
THEN 'S'
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600')
THEN 'S'
WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S'
WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000')
THEN 'S'
WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S'
WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S'
WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL )
THEN 'W'
ELSE 'F'
END
) = 'S'
) AS hSuccessCount /*홈페이지 성공건수*/
, (SELECT
COUNT(0)
FROM
MJ_MSG_DATA A
WHERE 1=1
AND A.USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
AND A.RESERVE_C_YN = 'N'
AND A.MSG_GROUP_ID = M.MSG_GROUP_ID
AND M.SEND_KIND = 'A'
AND (
CASE
WHEN A.AGENT_CODE = '01' AND (A.RSLT_CODE = '100' AND (A.RSLT_CODE2 = '0'))
THEN 'S'
WHEN A.AGENT_CODE = '02' AND (A.RSLT_CODE = '0')
THEN 'S'
WHEN A.AGENT_CODE = '03' AND (A.RSLT_CODE = '100' OR A.RSLT_CODE = '101' OR A.RSLT_CODE = '110' OR A.RSLT_CODE = '800')
THEN 'S'
WHEN A.AGENT_CODE = '04' AND (A.RSLT_CODE = '4100' OR A.RSLT_CODE = '6600')
THEN 'S'
WHEN A.AGENT_CODE = '05' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S'
WHEN A.AGENT_CODE = '07' AND (A.RSLT_CODE = '6' OR A.RSLT_CODE = '1000')
THEN 'S'
WHEN A.AGENT_CODE = '08' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S'
WHEN A.AGENT_CODE = '09' AND (A.RSLT_CODE = '1000' OR A.RSLT_CODE = '1001')
THEN 'S'
WHEN (A.RSLT_CODE IS NULL AND A.RSLT_CODE2 IS NULL AND A.SENT_DATE IS NULL AND A.RSLT_DATE IS NULL )
THEN 'W'
ELSE 'F'
END ) = 'S'
) AS aSuccessCount /*API 성공건수*/
FROM(
SELECT
DATE_FORMAT(P.REQ_DATE, '%Y-%m-%d') AS REQ_DATE
, SUM(P.MSG_GROUP_CNT) AS MSG_GROUP_CNT
, P.MSG_GROUP_ID
, P.SEND_KIND
, IF(P.SEND_KIND = 'A', SUM(P.MSG_GROUP_CNT), 0) AS aSendCount
, IF(P.SEND_KIND = 'H', SUM(P.MSG_GROUP_CNT), 0) AS hSendCount
FROM
MJ_MSG_GROUP_DATA P
WHERE 1=1
AND USER_ID NOT IN ('hftest','itntest','imotest','itntestBatch')
AND P.RESERVE_C_YN = 'N'
GROUP BY
P.MSG_GROUP_ID
)M
)M2
GROUP BY M2.regDate
)aa
ON DUPLICATE KEY UPDATE
send_cnt =aa.hSendCount
, success_cnt =aa.hSuccessCount
, API_SEND_CNT =aa.aSendCount
, API_SUCCESS_CNT =aa.aSuccessCount
, regist_pnttm =now()
</insert> </insert>
<insert id="mjonSttst.insertMjSttstMsgRankBulk" parameterClass="mjonMsgVO"> <insert id="mjonSttst.insertMjSttstMsgRankBulk" parameterClass="mjonMsgVO">

View File

@ -11,14 +11,34 @@
response.setDateHeader("Expires",0); response.setDateHeader("Expires",0);
if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache");
%> %>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>일별 문자발송건수 통계</title> <title>일별 문자발송건수 통계</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script> <script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script> <script type="text/javascript" src="<c:url value='/js/EgovCalPopup.js'/>"></script>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$( document ).ready(function(){
var selectSendKind = $("#sendKind option:selected").val();
if(selectSendKind == "H"){
$('.all').css('display', 'none');
$('.api').css('display', 'none');
setThead(1);
}else if(selectSendKind == "A"){
$('.all').css('display', 'none');
$('.homePage').css('display', 'none');
setThead(1);
}else{
setThead(3);
}
});
function setThead(index){
$("#sendHead").attr('colspan',index);
$("#successHead").attr('colspan',index);
$("#rateHead").attr('colspan',index);
}
function fn_search(){ function fn_search(){
linkPage(1); linkPage(1);
} }
@ -48,6 +68,8 @@ function init_date(){
$('#ntceEnddeYYYMMDD').val(''); $('#ntceEnddeYYYMMDD').val('');
$('#ntceBgnde').val(''); $('#ntceBgnde').val('');
$('#ntceEndde').val(''); $('#ntceEndde').val('');
$('#sendKind').val('').prop("selected",true);
} }
//기간선택 select //기간선택 select
@ -89,12 +111,9 @@ function fnSetCalMonth(val) {
cursor: pointer; cursor: pointer;
} }
</style> </style>
</head>
<body>
<compress:html> <compress:html>
<form name="listForm" action="<c:url value='/uss/ion/msg/msgDayChart_230125.do'/>" method="post"> <form name="listForm" action="<c:url value='/uss/ion/msg/msgDayChart_230125.do'/>" method="post">
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/> <input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" /> <input type="hidden" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
@ -111,6 +130,11 @@ function fnSetCalMonth(val) {
<div class="pageCont"> <div class="pageCont">
<div class="listSerch"> <div class="listSerch">
<select id="sendKind" name="sendKind" onchange="">
<option value=""<c:if test="${searchVO.sendKind eq ''}">selected="selected"</c:if>>발송방식 전체</option>
<option value="H"<c:if test="${searchVO.sendKind eq 'H'}">selected="selected"</c:if>>WEB</option>
<option value="A"<c:if test="${searchVO.sendKind eq 'A'}">selected="selected"</c:if>>API</option>
</select>
<select name="setCalMonth" onchange="fnSetCalMonth(this.value)"> <select name="setCalMonth" onchange="fnSetCalMonth(this.value)">
<option value="0">전체</option> <option value="0">전체</option>
<option value="1">1개월</option> <option value="1">1개월</option>
@ -126,15 +150,13 @@ function fnSetCalMonth(val) {
&nbsp;&nbsp;~ &nbsp;&nbsp;~
<a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);"> <a href="#" onclick="javascript:fn_egov_NormalCalendar(document.forms.listForm, document.forms.listForm.ntceEnddeYYYMMDD);">
<input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly="" <input style="width:auto;min-width: 83px;" type="text" class="date_format" name="ntceEnddeYYYMMDD" id="ntceEnddeYYYMMDD" size="4" maxlength="4" readonly=""
value="<c:out value="${searchVO.ntceEndde}" />" value="<c:out value="${searchVO.ntceEndde}" />" >
>
<input type="button" class="calBtn"> <input type="button" class="calBtn">
</a> </a>
<a href="#" style="margin-left: 17px;" onclick="init_date(); return false;"> <a href="#" style="margin-left: 17px;" onclick="init_date(); return false;">
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘"> <img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘">
</a> </a>
<input type="button" class="btnType1" style="margin-left:10px;" value="검색" onclick="fn_search(); return false;"> <input type="button" class="btnType1" style="margin-left:10px;" value="검색" onclick="fn_search(); return false;">
</div> </div>
<div class="listTop"> <div class="listTop">
<p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건 <p class="tType5">총 <span class="tType4 c_456ded fwBold"><fmt:formatNumber value="${paginationInfo.totalRecordCount}" pattern="#,###" /></span>건
@ -154,30 +176,77 @@ function fnSetCalMonth(val) {
<div class="tableWrap"> <div class="tableWrap">
<table class="tbType1"> <table class="tbType1">
<colgroup> <colgroup>
<col style="width: auto;">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%"> <col style="width: 25%">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
<col style="width: 25%" class="all">
<col style="width: 25%" class="homePage">
<col style="width: 25%" class="api">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>발송일</th> <th rowspan="2" style="vertical-align: middle;">발송일</th>
<th>발송건수</th> <th id="sendHead">발송건수</th>
<th>성공건수</th> <th id="successHead">성공건수</th>
<th>성공율</th> <th id="rateHead">성공율</th>
</tr>
<tr>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
<th class="all">전체</th>
<th class="homePage">WEB</th>
<th class="api">API</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="result" items="${resultList}" varStatus="status"> <c:forEach var="result" items="${resultList}" varStatus="status">
<tr> <tr>
<td><c:out value="${result.regDate}"/></td> <td>
<td><fmt:formatNumber value="${result.sendCount}" pattern="#,###" /></td> <c:out value="${result.regDate}"/>
<td><fmt:formatNumber value="${result.successCount}" pattern="#,###" /></td> </td>
<td><fmt:formatNumber value="${(result.successCount / result.sendCount) * 100}" pattern="#,###" />%</td> <td class="all">
<fmt:formatNumber value="${result.totalSendCount}" pattern="#,###" />
</td>
<td class="homePage">
<fmt:formatNumber value="${result.sendCount}" pattern="#,###" />
</td>
<td class="api">
<fmt:formatNumber value="${result.aSendCount}" pattern="#,###" />
</td>
<td class="all">
<fmt:formatNumber value="${result.totalSuccessCount}" pattern="#,###" />
</td>
<td class="homePage">
<fmt:formatNumber value="${result.successCount}" pattern="#,###" />
</td>
<td class="api">
<fmt:formatNumber value="${result.aSuccessCount}" pattern="#,###" />
</td>
<td class="all">
<fmt:formatNumber value="${result.totalRateSuccessCount}" pattern="#,###" />%
</td>
<td class="homePage">
<fmt:formatNumber value="${result.rateSuccessCount}" pattern="#,###" />%
</td>
<td class="api">
<fmt:formatNumber value="${result.rateApiSuccessCount}" pattern="#,###" />%
</td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty resultList}"> <c:if test="${empty resultList}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr> <tr>
<td colspan="10"><spring:message code="common.nodata.msg" /></td>
</tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>
@ -197,5 +266,3 @@ function fnSetCalMonth(val) {
</div> </div>
</form> </form>
</compress:html> </compress:html>
</body>
</html>