Browse Source

모니터링 화면 2개 추가

junekeunsong 4 years ago
parent
commit
6e309f7ff3

+ 12 - 0
src/main/java/com/lemon/lifecenter/controller/ApiMoniteringController.java

@@ -72,4 +72,16 @@ public class ApiMoniteringController extends LifeCenterController {
         mv.addObject("pageSize", dto.getLimitMax());
         return mv;
     }
+    
+    @RequestMapping("/chart")
+    public ModelAndView chart() {
+        ModelAndView mv = setMV("api/moniter/chart");
+        return mv;
+    }
+    
+    @RequestMapping("/state")
+    public ModelAndView state() {
+        ModelAndView mv = setMV("api/moniter/state");
+        return mv;
+    }
 }

+ 267 - 0
src/main/webapp/WEB-INF/jsp/api/moniter/chart.jsp

@@ -0,0 +1,267 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<jsp:include page="${data._INCLUDE}/header.jsp"></jsp:include>
+<script>
+var startDate = "<c:out value='${startDate}'/>";
+var endDate   = "<c:out value='${endDate}'/>";
+
+    $(function() {
+        $("input[name=\"startDate\"]").daterangepicker({
+            singleDatePicker : true,
+            showDropdowns : true,
+//             startDate : "<c:out value='${startDate}'/>",
+            locale : {
+                //format : "M/DD hh:mm A"
+                format : "YYYY-MM-DD"
+            },
+            maxDate : new Date()
+        });
+        $("input[name=\"endDate\"]").daterangepicker({
+            singleDatePicker : true,
+            showDropdowns : true,
+//             startDate : "<c:out value='${endDate}'/>",
+            locale : {
+                //format : "M/DD hh:mm A"
+                format : "YYYY-MM-DD"
+            },
+            maxDate : new Date()
+        });
+        
+        $("input[name=\"startDate\"]").val( startDate );
+        $("input[name=\"endDate\"]").val( endDate );
+    });
+
+function getExcel(){
+    if( $.trim( $( "#downMemo" ).val() ) == "" ){
+        alertBox({ txt : "사유를 입력해주세요" });
+        $( ".modal-header>.modal-title h3" ).remove();
+        return false;
+    }
+    var newForm = $( "#searchForm" ).clone();
+    
+    newForm.attr( "id", "excelForm" );
+    newForm.attr( "method", "post" );
+    newForm.attr( "action", "./excel" );
+    newForm.attr( "target", "_blank" );
+    newForm.hide();
+    
+    $( document.body ).append( newForm );
+    newForm.submit();
+    $( "button.close" ).click();
+    $( "#downMemo" ).val( "" );
+    $( "#excelForm" ).remove();
+    
+}
+</script>
+</head>
+<body>
+    <div class="modal fade" id="excelDownMemo" tabindex="-1" role="dialog" aria-hidden="true" data-memoid="">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">생활치료센터 리스트 Excel 다운로드</h5>
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
+                            aria-hidden="true">&times;</span> </button>
+                </div>
+                <div class="modal-body m-3">
+                    <table class="table mobile-table">
+                        <colgroup>
+                            <col style="width: 20%">
+                            <col style="width: 80%">
+                        </colgroup>
+                        <tr>
+                            <th><span class="fix">*</span>다운로드 사유</th>
+                            <td>
+                                <div class="form-row">
+                                    <textarea id="downMemo" name="downMemo" class="form-control" cols="" rows="6" placeholder="" maxlength="200"></textarea>
+                                </div>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+                <div class="addMemoTools modal-footer">
+                    <button type="button" class="btn btn-outline-primary" data-dismiss="modal">취소</button>
+                    <button type="button" class="btn btn-primary" onclick="getExcel();">제출 후 다운로드</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    
+    <div class="wrapper">
+        <jsp:include page="${data._INCLUDE}/sidebar.jsp"></jsp:include>
+        
+        <div class="main">
+            <jsp:include page="${data._INCLUDE}/top.jsp"></jsp:include>
+
+            <main class="content">
+                <div class="container-fluid p-0">
+                    <!-- 환지관리 START -->
+                    <div class="row">
+                        <div class="col-12 col-lg-6">
+                            <h1 class="h3 mb-3">생활치료센터 오픈API 통계</h1>
+                        </div>
+                        <div class="col-12 col-lg-6  text-right">
+                            <nav aria-label="breadcrumb">
+                                <ol class="breadcrumb">
+                                    <li class="breadcrumb-item"><a href="javscript:;">Home</a></li>
+                                    <li class="breadcrumb-item active">생활치료센터 오픈API 통계</li>
+                                </ol>
+                            </nav>
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-12">
+                            <div class="card">
+                                <form action="?" method="get" id="searchForm">
+                                    <div class="card-body">
+                                        <table class="table mobile-table">
+                                            <colgroup>
+                                                <col style="width:10%">
+                                                <col style="width:40%">
+                                                <col style="width:10%">
+                                                <col style="width:40%">
+                                            </colgroup>
+                                            <tr>
+                                                <th>지역</th>
+                                                <td>
+                                                    <select class="custom-select form-control" name="locationCode">
+                                                        <option value="">전체</option>
+                                                        <c:forEach var="i" items="${locationList}">
+                                                            <option value="${i.locationCode}" <c:if test="${i.locationCode eq locationCode}"> selected="selected"</c:if>><c:out value="${i.locationName}"/></option>
+                                                        </c:forEach>
+                                                    </select>
+                                                </td>
+                                                <th>생활치료센터명</th>
+                                                <td>
+                                                    <input type="text" class="form-control" name="centerName" placeholder="생활치료센터명" value="<c:out value="${centerName}" />">
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <th>등록일</th>
+                                                <td>
+                                                    <div class="row">
+                                                        <div class="col-lg-5 col-sm-5">
+                                                            <div class="form-group calendar-bar mb-xl-0">
+                                                                <input class="form-control" type="text" name="startDate" placeholder="검색 시작일자" autocomplete="off">
+                                                                <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
+                                                            </div>
+                                                        </div>
+                                                        <div class="col-lg-2 col-sm-2 text-center">
+                                                            ~
+                                                        </div>
+                                                        <div class="col-lg-5 col-sm-5">
+                                                            <div class="form-group calendar-bar mb-xl-0">
+                                                                <input class="form-control" type="text" name="endDate" placeholder="검색 종료일자" autocomplete="off">
+                                                                <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </td>
+                                                <td colspan="2">
+                                                    <button class="btn btn-primary">검색</button>
+                                                </td>
+                                            </tr>
+                                        </table>
+                                    </div>
+                                </form>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-12">
+                            <div class="card">
+                                <div class="card-body">
+                                    <div class="row mb-3">
+                                        <div class="col-6">
+                                            전체 :
+                                            <fmt:formatNumber value="${total}" pattern="#,###" />
+                                        </div>
+                                        <div class="col-6 text-right">
+                                            <button class="btn btn-success" data-toggle="modal" data-target="#excelDownMemo">Excel 다운로드</button>
+                                            <c:if test="${role._CREATE eq 'Y'}">
+                                                <button class="btn btn-primary" onclick="location.href='./new';">생활치료센터 신규 등록</button>
+                                            </c:if>
+                                        </div>
+                                    </div>
+                                    <div class="table-responsive">
+                                        <table class="table table-striped text-center">
+                                            <colgroup>
+                                                <col style=" width: 5%; ">
+                                                <col style=" width: 14%; ">
+                                                <col style=" width: 6%; ">
+                                                <col style=" width: 12%; ">
+                                                <col style=" width: 8%; ">
+                                                <col style=" width: 8%; ">
+                                            </colgroup>
+                                            <thead>
+                                                <tr>
+                                                    <th rowspan="2">번호</th>
+                                                    <th rowspan="2">생활치료센터</th>
+                                                    <th rowspan="2">지역</th>
+                                                    <th rowspan="2">협력병원</th>
+                                                    <th rowspan="2">API 호출 횟수</th>
+                                                    <th rowspan="2">API 호출 건수</th>
+                                                </tr>
+                                            </thead>
+                                            <tbody>
+                                                <c:choose>
+                                                    <c:when test="${total > 0}">
+                                                        <c:forEach var="l" items="${item}" varStatus="lStatus">
+                                                            <c:set var="viewLink" value="./info?centerCode=${l.centerCode}" />
+                                                            <c:set var="pageNum" value="${ ( total - lStatus.index ) - ( (page - 1) * pageSize ) }" />
+                                                            
+                                                            <tr>
+                                                                <td><fmt:formatNumber value="${pageNum}" pattern="#,###" /></td>
+                                                                <td>
+                                                                    <c:out value="${l.centerName}" />
+                                                                </td>
+                                                                <td><c:out value="${l.locationName}" /></td>
+                                                                <td><c:out value="${l.cooperativeName}" /></td>
+                                                                <td><c:out value="${l.apiCount}"/></td>
+                                                                <td><c:out value="${l.numberOfCase}"/></td>
+                                                            </tr>
+                                                        </c:forEach>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <tr>
+                                                            <td colspan="13">오픈API 통계 정보가 없습니다.</td>
+                                                        </tr>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </tbody>
+                                        </table>
+                                    </div>
+                                    <div class="row mt-5">
+                                        <div class="col-12 col-lg-6 mb-2">
+                                        </div>
+                                        <div class="col-12 col-lg-6 mb-2">
+                                            <jsp:include page="${data._INCLUDE}/paging.jsp" flush="true">
+                                                <jsp:param name="firstPageNo" value="${paging.firstPageNo}" />
+                                                <jsp:param name="prevPageNo"  value="${paging.prevPageNo}" />
+                                                <jsp:param name="startPageNo" value="${paging.startPageNo}" />
+                                                <jsp:param name="pageNo"      value="${paging.pageNo}" />
+                                                <jsp:param name="endPageNo"   value="${paging.endPageNo}" />
+                                                <jsp:param name="nextPageNo"  value="${paging.nextPageNo}" />
+                                                <jsp:param name="finalPageNo" value="${paging.finalPageNo}" />
+                                                <jsp:param name="preFix"      value="${paging.preFix}" />
+                                                <jsp:param name="url"         value="${paging.url}" />
+                                                <jsp:param name="total"       value="${paging.totalCount}" />
+                                            </jsp:include>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 환자관리 END -->
+                </div>
+            </main>
+
+            <jsp:include page="${data._INCLUDE}/footer.jsp"></jsp:include>
+        </div>
+    </div>
+</body>
+</html>

+ 267 - 0
src/main/webapp/WEB-INF/jsp/api/moniter/state.jsp

@@ -0,0 +1,267 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<jsp:include page="${data._INCLUDE}/header.jsp"></jsp:include>
+<script>
+var startDate = "<c:out value='${startDate}'/>";
+var endDate   = "<c:out value='${endDate}'/>";
+
+    $(function() {
+        $("input[name=\"startDate\"]").daterangepicker({
+            singleDatePicker : true,
+            showDropdowns : true,
+//             startDate : "<c:out value='${startDate}'/>",
+            locale : {
+                //format : "M/DD hh:mm A"
+                format : "YYYY-MM-DD"
+            },
+            maxDate : new Date()
+        });
+        $("input[name=\"endDate\"]").daterangepicker({
+            singleDatePicker : true,
+            showDropdowns : true,
+//             startDate : "<c:out value='${endDate}'/>",
+            locale : {
+                //format : "M/DD hh:mm A"
+                format : "YYYY-MM-DD"
+            },
+            maxDate : new Date()
+        });
+        
+        $("input[name=\"startDate\"]").val( startDate );
+        $("input[name=\"endDate\"]").val( endDate );
+    });
+
+function getExcel(){
+    if( $.trim( $( "#downMemo" ).val() ) == "" ){
+        alertBox({ txt : "사유를 입력해주세요" });
+        $( ".modal-header>.modal-title h3" ).remove();
+        return false;
+    }
+    var newForm = $( "#searchForm" ).clone();
+    
+    newForm.attr( "id", "excelForm" );
+    newForm.attr( "method", "post" );
+    newForm.attr( "action", "./excel" );
+    newForm.attr( "target", "_blank" );
+    newForm.hide();
+    
+    $( document.body ).append( newForm );
+    newForm.submit();
+    $( "button.close" ).click();
+    $( "#downMemo" ).val( "" );
+    $( "#excelForm" ).remove();
+    
+}
+</script>
+</head>
+<body>
+    <div class="modal fade" id="excelDownMemo" tabindex="-1" role="dialog" aria-hidden="true" data-memoid="">
+        <div class="modal-dialog" role="document">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">생활치료센터 리스트 Excel 다운로드</h5>
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
+                            aria-hidden="true">&times;</span> </button>
+                </div>
+                <div class="modal-body m-3">
+                    <table class="table mobile-table">
+                        <colgroup>
+                            <col style="width: 20%">
+                            <col style="width: 80%">
+                        </colgroup>
+                        <tr>
+                            <th><span class="fix">*</span>다운로드 사유</th>
+                            <td>
+                                <div class="form-row">
+                                    <textarea id="downMemo" name="downMemo" class="form-control" cols="" rows="6" placeholder="" maxlength="200"></textarea>
+                                </div>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+                <div class="addMemoTools modal-footer">
+                    <button type="button" class="btn btn-outline-primary" data-dismiss="modal">취소</button>
+                    <button type="button" class="btn btn-primary" onclick="getExcel();">제출 후 다운로드</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    
+    <div class="wrapper">
+        <jsp:include page="${data._INCLUDE}/sidebar.jsp"></jsp:include>
+        
+        <div class="main">
+            <jsp:include page="${data._INCLUDE}/top.jsp"></jsp:include>
+
+            <main class="content">
+                <div class="container-fluid p-0">
+                    <!-- 환지관리 START -->
+                    <div class="row">
+                        <div class="col-12 col-lg-6">
+                            <h1 class="h3 mb-3">생활치료센터 오픈API 통계</h1>
+                        </div>
+                        <div class="col-12 col-lg-6  text-right">
+                            <nav aria-label="breadcrumb">
+                                <ol class="breadcrumb">
+                                    <li class="breadcrumb-item"><a href="javscript:;">Home</a></li>
+                                    <li class="breadcrumb-item active">생활치료센터 오픈API 통계</li>
+                                </ol>
+                            </nav>
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-12">
+                            <div class="card">
+                                <form action="?" method="get" id="searchForm">
+                                    <div class="card-body">
+                                        <table class="table mobile-table">
+                                            <colgroup>
+                                                <col style="width:10%">
+                                                <col style="width:40%">
+                                                <col style="width:10%">
+                                                <col style="width:40%">
+                                            </colgroup>
+                                            <tr>
+                                                <th>지역</th>
+                                                <td>
+                                                    <select class="custom-select form-control" name="locationCode">
+                                                        <option value="">전체</option>
+                                                        <c:forEach var="i" items="${locationList}">
+                                                            <option value="${i.locationCode}" <c:if test="${i.locationCode eq locationCode}"> selected="selected"</c:if>><c:out value="${i.locationName}"/></option>
+                                                        </c:forEach>
+                                                    </select>
+                                                </td>
+                                                <th>생활치료센터명</th>
+                                                <td>
+                                                    <input type="text" class="form-control" name="centerName" placeholder="생활치료센터명" value="<c:out value="${centerName}" />">
+                                                </td>
+                                            </tr>
+                                            <tr>
+                                                <th>등록일</th>
+                                                <td>
+                                                    <div class="row">
+                                                        <div class="col-lg-5 col-sm-5">
+                                                            <div class="form-group calendar-bar mb-xl-0">
+                                                                <input class="form-control" type="text" name="startDate" placeholder="검색 시작일자" autocomplete="off">
+                                                                <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
+                                                            </div>
+                                                        </div>
+                                                        <div class="col-lg-2 col-sm-2 text-center">
+                                                            ~
+                                                        </div>
+                                                        <div class="col-lg-5 col-sm-5">
+                                                            <div class="form-group calendar-bar mb-xl-0">
+                                                                <input class="form-control" type="text" name="endDate" placeholder="검색 종료일자" autocomplete="off">
+                                                                <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
+                                                            </div>
+                                                        </div>
+                                                    </div>
+                                                </td>
+                                                <td colspan="2">
+                                                    <button class="btn btn-primary">검색</button>
+                                                </td>
+                                            </tr>
+                                        </table>
+                                    </div>
+                                </form>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-12">
+                            <div class="card">
+                                <div class="card-body">
+                                    <div class="row mb-3">
+                                        <div class="col-6">
+                                            전체 :
+                                            <fmt:formatNumber value="${total}" pattern="#,###" />
+                                        </div>
+                                        <div class="col-6 text-right">
+                                            <button class="btn btn-success" data-toggle="modal" data-target="#excelDownMemo">Excel 다운로드</button>
+                                            <c:if test="${role._CREATE eq 'Y'}">
+                                                <button class="btn btn-primary" onclick="location.href='./new';">생활치료센터 신규 등록</button>
+                                            </c:if>
+                                        </div>
+                                    </div>
+                                    <div class="table-responsive">
+                                        <table class="table table-striped text-center">
+                                            <colgroup>
+                                                <col style=" width: 5%; ">
+                                                <col style=" width: 14%; ">
+                                                <col style=" width: 6%; ">
+                                                <col style=" width: 12%; ">
+                                                <col style=" width: 8%; ">
+                                                <col style=" width: 8%; ">
+                                            </colgroup>
+                                            <thead>
+                                                <tr>
+                                                    <th rowspan="2">번호</th>
+                                                    <th rowspan="2">생활치료센터</th>
+                                                    <th rowspan="2">지역</th>
+                                                    <th rowspan="2">협력병원</th>
+                                                    <th rowspan="2">API 호출 횟수</th>
+                                                    <th rowspan="2">API 호출 건수</th>
+                                                </tr>
+                                            </thead>
+                                            <tbody>
+                                                <c:choose>
+                                                    <c:when test="${total > 0}">
+                                                        <c:forEach var="l" items="${item}" varStatus="lStatus">
+                                                            <c:set var="viewLink" value="./info?centerCode=${l.centerCode}" />
+                                                            <c:set var="pageNum" value="${ ( total - lStatus.index ) - ( (page - 1) * pageSize ) }" />
+                                                            
+                                                            <tr>
+                                                                <td><fmt:formatNumber value="${pageNum}" pattern="#,###" /></td>
+                                                                <td>
+                                                                    <c:out value="${l.centerName}" />
+                                                                </td>
+                                                                <td><c:out value="${l.locationName}" /></td>
+                                                                <td><c:out value="${l.cooperativeName}" /></td>
+                                                                <td><c:out value="${l.apiCount}"/></td>
+                                                                <td><c:out value="${l.numberOfCase}"/></td>
+                                                            </tr>
+                                                        </c:forEach>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <tr>
+                                                            <td colspan="13">오픈API 통계 정보가 없습니다.</td>
+                                                        </tr>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </tbody>
+                                        </table>
+                                    </div>
+                                    <div class="row mt-5">
+                                        <div class="col-12 col-lg-6 mb-2">
+                                        </div>
+                                        <div class="col-12 col-lg-6 mb-2">
+                                            <jsp:include page="${data._INCLUDE}/paging.jsp" flush="true">
+                                                <jsp:param name="firstPageNo" value="${paging.firstPageNo}" />
+                                                <jsp:param name="prevPageNo"  value="${paging.prevPageNo}" />
+                                                <jsp:param name="startPageNo" value="${paging.startPageNo}" />
+                                                <jsp:param name="pageNo"      value="${paging.pageNo}" />
+                                                <jsp:param name="endPageNo"   value="${paging.endPageNo}" />
+                                                <jsp:param name="nextPageNo"  value="${paging.nextPageNo}" />
+                                                <jsp:param name="finalPageNo" value="${paging.finalPageNo}" />
+                                                <jsp:param name="preFix"      value="${paging.preFix}" />
+                                                <jsp:param name="url"         value="${paging.url}" />
+                                                <jsp:param name="total"       value="${paging.totalCount}" />
+                                            </jsp:include>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <!-- 환자관리 END -->
+                </div>
+            </main>
+
+            <jsp:include page="${data._INCLUDE}/footer.jsp"></jsp:include>
+        </div>
+    </div>
+</body>
+</html>