itn 2023-08-02
발신번호 첨부파일 뷰어 기능 추가
@823e20c930b6de03c086958f30567608a4c38069
src/main/java/itn/com/cmm/web/EgovFileDownloadController.java
--- src/main/java/itn/com/cmm/web/EgovFileDownloadController.java
+++ src/main/java/itn/com/cmm/web/EgovFileDownloadController.java
@@ -464,7 +464,6 @@
 
 		String fileNm = (String) commandMap.get("fileNm");
 			try {
-				
 			
 			File uFile = new File("/usr/local/tomcat/file/sht/pdf/", fileNm);
 			//File uFile = new File("C:/TEST/", fileNm);
src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
--- src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
+++ src/main/java/itn/let/mjo/msg/web/MjonMsgController.java
@@ -5086,5 +5086,153 @@
     	return "/uss/ion/msg/pdfView";
     }
 	
+    @RequestMapping(value = {"/uss/ion/msg/pdfViewPhone.do"})
+   	public String pdfViewPhone(FileVO fileVO
+   			, ModelMap model
+   			, HttpServletRequest request) throws Exception {
+    	
+		FileVO fvo = fileService.selectFileInf(fileVO);
+		String path = "";
+		String fileType = "";
+		String[] imgExtArray = {"bmp", "gif", "jpeg", "jpg", "png", "tif", "tiff", "psd", "rle"};
+		List<String> imgExtList = new ArrayList<>(Arrays.asList(imgExtArray));
+		
+		if(fvo != null) {
+			if("pdf".equals(fvo.getFileExtsn().toLowerCase())) {
+				path = "/cmm/fms/FileDown.do?atchFileId="+ fvo.getAtchFileId() + "&fileSn=" + fvo.getFileSn();
+				fileType = "pdf";
+			} else if(imgExtList.contains(fvo.getFileExtsn().toLowerCase())) {
+				String storePath = fvo.getFileStreCours() + fvo.getStreFileNm();
+				path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn());
+				fileType = "img";
+			} else {
+				String storePath = fvo.getFileStreCours() + fvo.getStreFileNm();
+				path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn());
+				fileType = "etc";
+			}
+		}
+
+		
+		// 첨부파일 목록
+		List<FileVO> fileList = fileService.selectFileInfs(fileVO);
+		model.addAttribute("fileList", fileList);
+		
+		String phmId = request.getParameter("phmId");
+		String phoneNumber = request.getParameter("phoneNumber");
+		String userName = request.getParameter("userName");
+		String managerNm = request.getParameter("managerNm");
+		String dept = request.getParameter("dept");
+		String nameType = request.getParameter("nameType");
+		String phmType = request.getParameter("phmType");
+		String authYnTxt = request.getParameter("authYnTxt");
+		String phmAuthTypeTxt = request.getParameter("phmAuthTypeTxt");
+		String ownerName = request.getParameter("ownerName");
+		
+		// 필수서류
+		String requiredDocuments = "";
+		if (dept.equals("c")) {
+			// 기업
+			if (nameType.equals("1")) {
+				// 당사
+				requiredDocuments = "통신서비스이용증명원";
+			}
+			else if (nameType.equals("2")) {
+				// 대표
+				if (phmAuthTypeTxt.equals("휴대폰 인증")) {
+					// 휴대폰
+					// 인증완료
+				}
+				else {
+					// 서류
+					requiredDocuments = "통신서비스이용증명원";
+				}				
+			}
+			else if (nameType.equals("3")) {
+				// 직원
+				if (phmAuthTypeTxt.equals("휴대폰 인증")) {
+					// 휴대폰
+					requiredDocuments = "재직증명서류";
+				}
+				else {
+					// 서류
+					requiredDocuments = "통신서비스이용증명원, 재직증명서류";
+				}			
+			}
+			else if (nameType.equals("4")) {
+				// 타사
+				requiredDocuments = "거래관계확인서(계약서 등), 발신번호 사업자등록증, 재직증명서류(직원번호인 경우)<br />대리인 신분증 사본, 위임장, 통신서비스이용증명원";
+			}
+			else if (nameType.equals("5")) {
+				// 본인
+				if (phmAuthTypeTxt.equals("휴대폰 인증")) {
+					// 휴대폰
+					// 인증완료
+				}
+				else {
+					// 서류
+					requiredDocuments = "통신서비스이용증명원";
+				}
+			}
+			else {
+				// 타인
+				if (phmAuthTypeTxt.equals("휴대폰 인증")) {
+					// 휴대폰
+					
+				}
+				else {
+					// 서류
+					
+				}				
+			}
+		}
+		else {
+			// 개인
+			if (nameType.equals("5")) {
+				// 본인
+				if (phmAuthTypeTxt.equals("휴대폰 인증")) {
+					// 휴대폰
+					// 인증완료
+				}
+				else {
+					// 서류
+					requiredDocuments = "통신서비스이용증명원";
+				}
+			} 
+			else {
+				// 타인
+				if (phmAuthTypeTxt.equals("휴대폰 인증")) {
+					// 휴대폰
+					requiredDocuments = "위임장, 대리인 신분증 사본";
+				}
+				else {
+					// 서류
+					requiredDocuments = "타인(일반전화) : 통신서비스이용증명원, 위임장, 대리인 신분증 사본<br />회사번호일경우 : 통신서비스이용증명원, 사업자등록증, 재직증명서류";
+				}				
+			}			
+		}
 	
+		
+				
+		
+        
+		
+		model.addAttribute("pdfPath", path);
+		model.addAttribute("fileType", fileType);
+		model.addAttribute("atchFileId", fileVO.getAtchFileId());
+		model.addAttribute("fileSn", fileVO.getFileSn());
+		model.addAttribute("phmId", phmId);
+		model.addAttribute("phoneNumber", phoneNumber);
+		model.addAttribute("userName", userName);
+		model.addAttribute("managerNm", managerNm);
+		model.addAttribute("dept", dept);
+		model.addAttribute("nameType", nameType);
+		model.addAttribute("phmType", phmType);
+		model.addAttribute("authYnTxt", authYnTxt);
+		model.addAttribute("phmAuthTypeTxt", phmAuthTypeTxt);
+		model.addAttribute("ownerName", ownerName);
+		model.addAttribute("requiredDocuments", requiredDocuments);
+    	
+    	return "/uss/ion/msg/pdfViewPhone";
+    }
+    
 }
(No newline at end of file)
src/main/webapp/WEB-INF/decorators.xml
--- src/main/webapp/WEB-INF/decorators.xml
+++ src/main/webapp/WEB-INF/decorators.xml
@@ -152,7 +152,7 @@
       <pattern>/uss/ion/msg/weekendCsWork.do</pattern>
       <pattern>/uss/ion/msg/weekendCsWork2.do</pattern>
       <pattern>/uss/ion/msg/pdfView.do</pattern>
-      
+      <pattern>/uss/ion/msg/pdfViewPhone.do</pattern>
     </decorator>
     
 	<!-- 관리자 게시글 작성, 템플릿 미리보기(헤더풋터 없음) -->
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstListByType.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstListByType.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovMberCmpHstListByType.jsp
@@ -24,12 +24,12 @@
 // PdfView
 function pdfViewPop(atchFileId,mberNm,bizNo,ceoNm,hstManagerNm,hstMbtlNum) {
 	document.pdfForm.atchFileId.value = atchFileId;
+	document.pdfForm.fileSn.value = 0;
 	document.pdfForm.mberNm.value = mberNm;
 	document.pdfForm.bizNo.value = bizNo;
 	document.pdfForm.ceoNm.value = ceoNm;
 	document.pdfForm.hstManagerNm.value = hstManagerNm;
 	document.pdfForm.hstMbtlNum.value = hstMbtlNum;
-	document.pdfForm.fileSn.value = 0;
 	window.open("about:blank", 'pdfPopup', 'width=1020, height=800, top=100, left=0, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=no, location=no, scrollbars=no');
     document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfView.do'/>";
     document.pdfForm.target = "pdfPopup";
src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendNumberList.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendNumberList.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/msg/SendNumberList.jsp
@@ -34,10 +34,32 @@
 $( document ).ready(function() {
 	// 대시보드에 전달받은 파라미터 처리
 	fromDashboard();
+
 	//첨부파일 이미지 br태그 삭제 - import로 공통으로 사용해서 jsp에서 따로 처리
 	$(".brRm").children('br').remove();
 
 });
+
+//PdfView
+function pdfViewPhonePop(atchFileId,phmId,phoneNumber,userName,managerNm,dept,nameType,phmType,authYnTxt,phmAuthTypeTxt,ownerName) {
+	document.pdfForm.atchFileId.value = atchFileId;
+	document.pdfForm.fileSn.value = 0;
+	document.pdfForm.phmId.value = phmId;
+	document.pdfForm.phoneNumber.value = phoneNumber;
+	document.pdfForm.userName.value = userName;
+	document.pdfForm.managerNm.value = managerNm;
+	document.pdfForm.dept.value = dept;
+	document.pdfForm.nameType.value = nameType;
+	document.pdfForm.phmType.value = phmType;
+	document.pdfForm.authYnTxt.value = authYnTxt;
+	document.pdfForm.phmAuthTypeTxt.value = phmAuthTypeTxt;
+	document.pdfForm.ownerName.value = ownerName;
+
+	window.open("about:blank", 'pdfPhonePopup', 'width=1020, height=800, top=100, left=0, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=no, location=no, scrollbars=no');
+    document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>";
+    document.pdfForm.target = "pdfPhonePopup";
+    document.pdfForm.submit();	
+}
 
 // 대시보드에 전달받은 파라미터 처리
 function fromDashboard() {
@@ -257,17 +279,17 @@
 						<col style="width: 9%">
 						<col style="width: 9%">
 						<col style="width: 6%">
-						<col style="width: 6%">
+						<col style="width: 5%">
 						<col style="width: 3%">
 						<col style="width: 3%">
+						<col style="width: 5%">
+						<col style="width: 5%">						
 						<col style="width: 7%">
-						<col style="width: 5%">
-						<col style="width: 5%">
-						<col style="width: 5%">
-						<col style="width: 8%">
 						<col style="width: *%">
-						<col style="width: 8%">
-						<%-- <col style="width: 10%"> --%>
+						<col style="width: 5%">
+						<col style="width: 10%">
+						<col style="width: 7%">
+						<col style="width: 2%">
 					</colgroup>
 					<thead>
 						<tr>
@@ -278,17 +300,16 @@
 							<th>전화번호</th>
 							<th>대표<input type="button" class="sort sortBtn" id="sort_userName"></th>
 							<th>담당자<input type="button" class="sort sortBtn" id="sort_managerNm"></th>
-							<th>회원<%--<input type="button" class="sort sortBtn" id="sort_dept"> --%></th>
-							<th>구분<%--<input type="button" class="sort sortBtn" id="sort_nameType"> --%></th>
-							<!-- <th>타입(발신/수신/거부)<input type="button" class="sort sortBtn" id="sort_phmType"></th> -->
-							<th>인증여부<input type="button" class="sort sortBtn" id="sort_authYn"></th>
-							<th>관리자</th>
+							<th>회원</th>
+							<th>구분</th>
 							<th>인증<input type="button" class="sort sortBtn" id="sort_phmAuthType"></th>
 							<th>인증자<input type="button" class="sort sortBtn" id="sort_ownerName"></th>
+							<th>인증여부<input type="button" class="sort sortBtn" id="sort_authYn"></th>
 							<th>첨부파일</th>
+							<th>관리자</th>
 							<th>관리</th>
 							<th>등록일자<input type="button" class="sort sortBtn" id="sort_frstRegistPnttm"></th>
-							<!-- <th>삭제여부<input type="button" class="sort sortBtn" id="sort_delFlag"></th> -->
+							<th></th>
 						</tr>
 					</thead>
 					<tbody>
@@ -375,19 +396,6 @@
 								</a>
 							</td>
 							<%-- <td><c:out value="${result.phmTypeTxt}"/></td> --%>
-							<td>
-								<c:choose>
-									<c:when test="${result.phmType eq '03'}">
-										발신번호 차단
-									</c:when>
-									<c:otherwise>
-										<c:if test="${result.authYnTxt eq '심사중'}">인증요청</c:if> <!-- 코드에 심사중으로 등록되어 있지만 인증요청으로 화면에 뿌리기 위한 처리-->
-										<c:if test="${result.authYnTxt ne '심사중'}"><c:out value="${result.authYnTxt}"/></c:if>
-										
-									</c:otherwise>
-								</c:choose>
-							</td>
-							<td><c:out value="${result.admNm}"/></td>
 							<td title="<c:out value="${result.phmAuthTypeTxt}"/>">
 								<c:choose>
 									<c:when test="${result.phmAuthTypeTxt eq '휴대폰 인증'}">
@@ -411,26 +419,41 @@
 									</c:otherwise>
 								</c:choose>							
 							</td>
-							<td class="brRm">
-				            		<c:import url="/cmm/fms/selectAddrAgencyFileInfs.do" charEncoding="utf-8">
-										<c:param name="param_atchFileId" value="${result.atchFileId}" />
-									</c:import>	
+							<td>
+								<c:choose>
+									<c:when test="${result.phmType eq '03'}">
+										발신번호 차단
+									</c:when>
+									<c:otherwise>
+										<c:if test="${result.authYnTxt eq '심사중'}">인증요청</c:if> <!-- 코드에 심사중으로 등록되어 있지만 인증요청으로 화면에 뿌리기 위한 처리-->
+										<c:if test="${result.authYnTxt ne '심사중'}"><c:out value="${result.authYnTxt}"/></c:if>
+										
+									</c:otherwise>
+								</c:choose>
 							</td>
+							<td class="brRm">
+			            		<c:import url="/cmm/fms/selectAddrAgencyFileInfs.do" charEncoding="utf-8">
+									<c:param name="param_atchFileId" value="${result.atchFileId}" />
+								</c:import>	
+							</td>
+							<td><c:out value="${result.admNm}"/></td>
 							<td>
 								<c:if test="${result.authYn eq 'H'}">
-									<button class="btnType btnType20" onclick="updateAuthYn('<c:out value='${result.phmId}'/>', 'Y', '<c:out value='${result.userId}'/>'); return false;" >인증완료</button>
-									<button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;">반려</button>
+									<button class="btnType btnType20" onclick="updateAuthYn('<c:out value='${result.phmId}'/>', 'Y', '<c:out value='${result.userId}'/>'); return false;" style="padding: 0 5px 0 5px;">인증완료</button><button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;" style="padding: 0 5px 0 5px;">반려</button>
 								</c:if>
 								<c:if test="${result.authYn eq 'C'}">
-									<button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;">반려사유</button>
+									<button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;" style="padding: 0 5px 0 5px;">반려사유</button>
 								</c:if>
 							</td>
 							<td title="<c:out value="${result.frstRegistPnttm}"/>">
 								<fmt:parseDate value="${result.frstRegistPnttm}" var="frstRegistDateValue" pattern="yyyy-MM-dd HH:mm"/>
 								<fmt:formatDate value="${frstRegistDateValue}" pattern="MM-dd HH:mm"/>																						
 							</td>
-							
-							<%-- <td><c:out value="${result.delFlagTxt}"/></td> --%>
+							<td>
+                                <c:if test="${result.atchFileId ne '' && result.atchFileId ne null}">
+									<button class="btnType btnType20" onclick="pdfViewPhonePop('${result.atchFileId}','${result.phmId}','${result.phoneNumber}','${result.userName}','${result.managerNm}','${result.dept}','${result.nameType}','${result.phmType}','${result.authYnTxt}','${result.phmAuthTypeTxt}','${result.ownerName}'); return false;" style="height:20px !important; padding:0 2px !important;">V</button>
+					            </c:if>
+							</td>
 						</tr>
 						</c:forEach>
 						<c:if test="${empty resultList}">
@@ -459,9 +482,24 @@
 <form name="modiForm" id="modiForm" method="post">
 	<input name="mberId" type="hidden" />
 </form>
+
 <form name="popupForm" id="popupForm" method="post">
 	<input name="phmId" type="hidden" />
 </form>
 
+<form name="pdfForm" method="post">
+	<input type="hidden" name="atchFileId"/>
+	<input type="hidden" name="fileSn"/>
+	<input type="hidden" name="phmId"/>
+	<input type="hidden" name="phoneNumber"/>
+	<input type="hidden" name="userName"/>
+	<input type="hidden" name="managerNm"/>
+	<input type="hidden" name="dept"/>
+	<input type="hidden" name="nameType"/>
+	<input type="hidden" name="phmType"/>
+	<input type="hidden" name="authYnTxt"/>
+	<input type="hidden" name="phmAuthTypeTxt"/>
+	<input type="hidden" name="ownerName"/>
+</form>
 </body>
 </html>
src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfView.jsp
--- src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfView.jsp
+++ src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfView.jsp
@@ -46,7 +46,7 @@
 
 	<div class="pageCont" style="text-align: center; width: 1000px;">
 		<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
-			<p class="tType5">PDF 뷰어</p>
+			<p class="tType5">기업회원 신청 정보</p>
 		</div>
 		<div class="tableWrap">
 			<table class="tbType1">
 
src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp
@@ -0,0 +1,342 @@
+<%--
+  Class Name : weekendCsWork.jsp
+  Description : 발신번호 리스트 조회 페이지
+  Modification Information
+
+      수정일         수정자                   수정내용
+    -------    --------    ---------------------------
+    2021.03.31    신명섭          최초 생성
+
+    Copyright (C) 2009 by ITN  All right reserved.
+--%>
+<%@ page contentType="text/html; charset=utf-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
+<%   
+	response.setHeader("Cache-Control","no-store");   
+	response.setHeader("Pragma","no-cache");   
+	response.setDateHeader("Expires",0);   
+	if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); 
+%> 
+<!DOCTYPE html>
+<html lang="ko">
+
+<head>
+<link rel="stylesheet" href="/pb/css/reset.css">
+<link rel="stylesheet" href="/pb/css/common.css">
+<link rel="stylesheet" href="/pb/css/content.css?date=202301160001">
+<link rel="stylesheet" href="/pb/css/popup.css">
+
+<style>
+html {
+  overflow-x: hidden;
+  overflow-y: auto;
+}	
+</style>
+
+<script src="/pb/js/jquery-3.5.0.js"></script>
+<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
+<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script>
+
+<script type="text/javaScript" language="javascript">
+
+//PdfView
+function pdfViewPhonePop(atchFileId,fileSn) {
+	document.pdfForm.atchFileId.value = atchFileId;
+	document.pdfForm.fileSn.value = fileSn;
+    document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>";
+    document.pdfForm.submit();	
+}
+
+</script>
+
+</head>
+<body>
+
+	<div class="pageCont" style="text-align: center; width: 1000px;">
+		<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
+			<p class="tType5">발신번호 신청 정보</p>
+		</div>
+		<div class="tableWrap">
+			<table class="tbType1">
+				<colgroup>
+					<col style="width: 12%">
+					<col style="width: *%">
+					<col style="width: 11%">
+					<col style="width: 8%">
+					<col style="width: 8%">
+					<col style="width: 8%">
+					<col style="width: 8%">
+					<col style="width: 8%">
+					<col style="width: 15%">
+				</colgroup>
+				<thead>
+					<tr>
+						<th>발신번호</th>
+						<th>대표</th>
+						<th>담당자</th>
+						<th>회원</th>
+						<th>구분</th>
+						<th>인증방식</th>
+						<th>인증자</th>
+						<th>인증여부</th>
+						<th>다운로드</th>				
+					</tr>
+				</thead>
+				<tbody>
+					<tr>
+						<td title="${phoneNumber}">${phoneNumber}</td>
+						<td title="${userName}">${userName}</td>
+						<td title="${managerNm}">${managerNm}</td>
+						<td>
+							<c:choose>
+								<c:when test="${dept == 'c'}">
+									기업
+								</c:when>
+								<c:otherwise>
+									개인
+								</c:otherwise>
+							</c:choose>
+						</td>
+						<td>
+							<c:choose>
+								<c:when test="${not empty nameType}">
+									<c:choose>
+										<c:when test="${nameType == '1'}">
+											당사
+										</c:when>
+										<c:when test="${nameType == '2'}">
+											대표
+										</c:when>
+										<c:when test="${nameType == '3'}">
+											직원
+										</c:when>
+										<c:when test="${nameType == '4'}">
+											타사
+										</c:when>
+										<c:when test="${nameType == '5'}">
+											본인
+										</c:when>
+										<c:otherwise>
+											타인
+										</c:otherwise>
+									</c:choose>	
+								</c:when>
+								<c:otherwise>
+									없음
+								</c:otherwise>
+							</c:choose>						
+						</td>
+						<td>
+							<c:choose>
+								<c:when test="${phmAuthTypeTxt eq '휴대폰 인증'}">
+									휴대폰
+								</c:when>
+								<c:when test="${phmAuthTypeTxt eq '서류인증'}">
+									서류
+								</c:when>									
+								<c:otherwise>
+									<c:out value="${phmAuthTypeTxt}"/>
+								</c:otherwise>
+							</c:choose>													
+						</td>
+						<td>
+							<c:choose>
+								<c:when test="${phmAuthTypeTxt eq '서류인증'}">
+									
+								</c:when>									
+								<c:otherwise>
+									<c:out value="${ownerName}"/>
+								</c:otherwise>
+							</c:choose>							
+						</td>						
+						<td>
+							<c:choose>
+								<c:when test="${phmType eq '03'}">
+									발신번호 차단
+								</c:when>
+								<c:otherwise>
+									<c:if test="${authYnTxt eq '심사중'}">인증요청</c:if>
+									<c:if test="${authYnTxt ne '심사중'}"><c:out value="${authYnTxt}"/></c:if>
+								</c:otherwise>
+							</c:choose>
+						</td>
+						<td>
+			           		<c:import url="/cmm/fms/selectMberFileInfs.do" charEncoding="utf-8">
+								<c:param name="param_atchFileId" value="${atchFileId}" />
+							</c:import>											
+						</td>
+					</tr>
+				</tbody>
+			</table>	
+		</div>
+		
+		<br /><br />
+		<!-- 필수서류 체크 -->
+		<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;">
+			<p class="tType5">승인에 필요한 서류</p>
+		</div>
+		<div class="tableWrap">
+			<table class="tbType1">
+				<colgroup>
+					<col style="width: *%">
+				</colgroup>
+				<thead>
+					<tr>
+						<td class="left" style="padding: 10px 0 10px 0; line-height: 1.6em;">${requiredDocuments}</td>
+					</tr>
+				</thead>
+				</tbody>
+			</table>	
+		</div>		
+		
+
+		<c:if test="${not empty fileList}">
+			<div style="width: 100%; text-align: center; margin: 30px 0 30px 0;">		
+			<c:set var="plusCnt" value="0"/>
+			<c:set var="btnClass" value="btnType1"/>
+			<c:forEach var="result" items="${fileList}" varStatus="status">
+				<c:choose>
+					<c:when test="${result.fileSn eq fileSn}">
+						<c:set var="btnClass" value="btnType2"/>
+					</c:when>									
+					<c:otherwise>
+						<c:set var="btnClass" value="btnType1"/>
+					</c:otherwise>
+				</c:choose>			
+				<c:set var="plusCnt" value="${plusCnt + 1}"/>
+				<button class="<c:out value="${btnClass}"/>" onclick="pdfViewPhonePop('${result.atchFileId}','${result.fileSn}'); return false;"> 첨부파일 <c:out value="${plusCnt}"/> </button>
+			</c:forEach>
+			</div>
+		</c:if>
+
+		<c:if test="${fileType eq 'etc'}">
+			<div style="width: 100%; text-align: center; margin: 30px 0 30px 0; color: red;">
+				PDF 뷰어에서 지원하지 않는 형식의 파일입니다. 첨부파일 다운로드후 확인해주세요.
+			</div>
+		</c:if>		
+		<canvas id="the-canvas" name="the-canvas" style="min-width: 600px; max-width: 1000px; margin-top: 25px; margin-bottom: 25px;"></canvas>
+	
+		<div>
+		  <button class="btnType" id="prev">Previous</button>
+		  &nbsp;<span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>&nbsp;
+		  <button class="btnType" id="next">Next</button>
+		  
+		  <div style="float: right; margin-right: 10px;"><button onclick="javascript:self.close()" class="btnType">CLOSE</button></div>
+		</div>
+		
+	</div>
+
+	<form name="pdfForm" method="post">
+		<input type="hidden" name="atchFileId"/>
+		<input type="hidden" name="fileSn"/>
+		<input type="hidden" name="phmId" value="${phmId}"/>
+		<input type="hidden" name="phoneNumber" value="${phoneNumber}"/>
+		<input type="hidden" name="userName" value="${userName}"/>
+		<input type="hidden" name="managerNm" value="${managerNm}"/>
+		<input type="hidden" name="dept" value="${dept}"/>
+		<input type="hidden" name="nameType" value="${nameType}"/>
+		<input type="hidden" name="phmType" value="${phmType}"/>
+		<input type="hidden" name="authYnTxt" value="${authYnTxt}"/>
+		<input type="hidden" name="phmAuthTypeTxt" value="${phmAuthTypeTxt}"/>
+		<input type="hidden" name="ownerName" value="${ownerName}"/>
+	</form>
+
+</body>
+</html>
+	<script type="text/javaScript" language="javascript">
+		var pdfDoc = null;
+		var pageNum = 1;
+		var pageRendering = false;
+		var pageNumPending = null;
+		var scale = 1.4;
+		var canvas = document.getElementById('the-canvas');
+		var ctx = canvas.getContext('2d');
+		 /* var url = '/cmm/fms/FileDown.do?atchFileId=FILE_000000000019061&fileSn=0'; */ 
+// 		 var url = '/usr/local/tomcat/file/sht/pdf/2ccbb16e-62df-48c0-bbb1-3b6559bd4c36.pdf'; 
+		var url = '${pdfPath}';
+
+		/**
+		 * Get page info from document, resize canvas accordingly, and render page.
+		 * @param num Page number.
+		 */
+		function renderPage(num) {
+		  pageRendering = true;
+		  // Using promise to fetch the page
+		  pdfDoc.getPage(num).then(function(page) {
+		    var viewport = page.getViewport({scale: scale});
+		    canvas.height = viewport.height;
+		    canvas.width = viewport.width;
+
+		    // Render PDF page into canvas context
+		    var renderContext = {
+		      canvasContext: ctx,
+		      viewport: viewport
+		    };
+		    var renderTask = page.render(renderContext);
+
+		    // Wait for rendering to finish
+		    renderTask.promise.then(function() {
+		      pageRendering = false;
+		      if (pageNumPending !== null) {
+		        // New page rendering is pending
+		        renderPage(pageNumPending);
+		        pageNumPending = null;
+		      }
+		    });
+		  });
+
+		  // Update page counters
+		  document.getElementById('page_num').textContent = num;
+		}
+
+		/**
+		 * If another page rendering in progress, waits until the rendering is
+		 * finised. Otherwise, executes rendering immediately.
+		 */
+		function queueRenderPage(num) {
+		  if (pageRendering) {
+		    pageNumPending = num;
+		  } else {
+		    renderPage(num);
+		  }
+		}
+
+		/**
+		 * Displays previous page.
+		 */
+		function onPrevPage() {
+		  if (pageNum <= 1) {
+		    return;
+		  }
+		  pageNum--;
+		  queueRenderPage(pageNum);
+		}
+		document.getElementById('prev').addEventListener('click', onPrevPage);
+
+		/**
+		 * Displays next page.
+		 */
+		function onNextPage() {
+		  if (pageNum >= pdfDoc.numPages) {
+		    return;
+		  }
+		  pageNum++;
+		  queueRenderPage(pageNum);
+		}
+		document.getElementById('next').addEventListener('click', onNextPage);
+		/**
+		 * Asynchronously downloads PDF.
+		 */
+		pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
+		  pdfDoc = pdfDoc_;
+		  document.getElementById('page_count').textContent = pdfDoc.numPages;
+
+		  // Initial/first page rendering
+		  renderPage(pageNum);
+		});
+	</script>(No newline at end of file)
Add a comment
List