발신번호 첨부파일 뷰어 기능 추가
@823e20c930b6de03c086958f30567608a4c38069
--- src/main/java/itn/com/cmm/web/EgovFileDownloadController.java
+++ src/main/java/itn/com/cmm/web/EgovFileDownloadController.java
... | ... | @@ -464,7 +464,6 @@ |
| 464 | 464 |
|
| 465 | 465 |
String fileNm = (String) commandMap.get("fileNm");
|
| 466 | 466 |
try {
|
| 467 |
- |
|
| 468 | 467 |
|
| 469 | 468 |
File uFile = new File("/usr/local/tomcat/file/sht/pdf/", fileNm);
|
| 470 | 469 |
//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
... | ... | @@ -5086,5 +5086,153 @@ |
| 5086 | 5086 |
return "/uss/ion/msg/pdfView"; |
| 5087 | 5087 |
} |
| 5088 | 5088 |
|
| 5089 |
+ @RequestMapping(value = {"/uss/ion/msg/pdfViewPhone.do"})
|
|
| 5090 |
+ public String pdfViewPhone(FileVO fileVO |
|
| 5091 |
+ , ModelMap model |
|
| 5092 |
+ , HttpServletRequest request) throws Exception {
|
|
| 5093 |
+ |
|
| 5094 |
+ FileVO fvo = fileService.selectFileInf(fileVO); |
|
| 5095 |
+ String path = ""; |
|
| 5096 |
+ String fileType = ""; |
|
| 5097 |
+ String[] imgExtArray = {"bmp", "gif", "jpeg", "jpg", "png", "tif", "tiff", "psd", "rle"};
|
|
| 5098 |
+ List<String> imgExtList = new ArrayList<>(Arrays.asList(imgExtArray)); |
|
| 5099 |
+ |
|
| 5100 |
+ if(fvo != null) {
|
|
| 5101 |
+ if("pdf".equals(fvo.getFileExtsn().toLowerCase())) {
|
|
| 5102 |
+ path = "/cmm/fms/FileDown.do?atchFileId="+ fvo.getAtchFileId() + "&fileSn=" + fvo.getFileSn(); |
|
| 5103 |
+ fileType = "pdf"; |
|
| 5104 |
+ } else if(imgExtList.contains(fvo.getFileExtsn().toLowerCase())) {
|
|
| 5105 |
+ String storePath = fvo.getFileStreCours() + fvo.getStreFileNm(); |
|
| 5106 |
+ path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn()); |
|
| 5107 |
+ fileType = "img"; |
|
| 5108 |
+ } else {
|
|
| 5109 |
+ String storePath = fvo.getFileStreCours() + fvo.getStreFileNm(); |
|
| 5110 |
+ path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn()); |
|
| 5111 |
+ fileType = "etc"; |
|
| 5112 |
+ } |
|
| 5113 |
+ } |
|
| 5114 |
+ |
|
| 5115 |
+ |
|
| 5116 |
+ // 첨부파일 목록 |
|
| 5117 |
+ List<FileVO> fileList = fileService.selectFileInfs(fileVO); |
|
| 5118 |
+ model.addAttribute("fileList", fileList);
|
|
| 5119 |
+ |
|
| 5120 |
+ String phmId = request.getParameter("phmId");
|
|
| 5121 |
+ String phoneNumber = request.getParameter("phoneNumber");
|
|
| 5122 |
+ String userName = request.getParameter("userName");
|
|
| 5123 |
+ String managerNm = request.getParameter("managerNm");
|
|
| 5124 |
+ String dept = request.getParameter("dept");
|
|
| 5125 |
+ String nameType = request.getParameter("nameType");
|
|
| 5126 |
+ String phmType = request.getParameter("phmType");
|
|
| 5127 |
+ String authYnTxt = request.getParameter("authYnTxt");
|
|
| 5128 |
+ String phmAuthTypeTxt = request.getParameter("phmAuthTypeTxt");
|
|
| 5129 |
+ String ownerName = request.getParameter("ownerName");
|
|
| 5130 |
+ |
|
| 5131 |
+ // 필수서류 |
|
| 5132 |
+ String requiredDocuments = ""; |
|
| 5133 |
+ if (dept.equals("c")) {
|
|
| 5134 |
+ // 기업 |
|
| 5135 |
+ if (nameType.equals("1")) {
|
|
| 5136 |
+ // 당사 |
|
| 5137 |
+ requiredDocuments = "통신서비스이용증명원"; |
|
| 5138 |
+ } |
|
| 5139 |
+ else if (nameType.equals("2")) {
|
|
| 5140 |
+ // 대표 |
|
| 5141 |
+ if (phmAuthTypeTxt.equals("휴대폰 인증")) {
|
|
| 5142 |
+ // 휴대폰 |
|
| 5143 |
+ // 인증완료 |
|
| 5144 |
+ } |
|
| 5145 |
+ else {
|
|
| 5146 |
+ // 서류 |
|
| 5147 |
+ requiredDocuments = "통신서비스이용증명원"; |
|
| 5148 |
+ } |
|
| 5149 |
+ } |
|
| 5150 |
+ else if (nameType.equals("3")) {
|
|
| 5151 |
+ // 직원 |
|
| 5152 |
+ if (phmAuthTypeTxt.equals("휴대폰 인증")) {
|
|
| 5153 |
+ // 휴대폰 |
|
| 5154 |
+ requiredDocuments = "재직증명서류"; |
|
| 5155 |
+ } |
|
| 5156 |
+ else {
|
|
| 5157 |
+ // 서류 |
|
| 5158 |
+ requiredDocuments = "통신서비스이용증명원, 재직증명서류"; |
|
| 5159 |
+ } |
|
| 5160 |
+ } |
|
| 5161 |
+ else if (nameType.equals("4")) {
|
|
| 5162 |
+ // 타사 |
|
| 5163 |
+ requiredDocuments = "거래관계확인서(계약서 등), 발신번호 사업자등록증, 재직증명서류(직원번호인 경우)<br />대리인 신분증 사본, 위임장, 통신서비스이용증명원"; |
|
| 5164 |
+ } |
|
| 5165 |
+ else if (nameType.equals("5")) {
|
|
| 5166 |
+ // 본인 |
|
| 5167 |
+ if (phmAuthTypeTxt.equals("휴대폰 인증")) {
|
|
| 5168 |
+ // 휴대폰 |
|
| 5169 |
+ // 인증완료 |
|
| 5170 |
+ } |
|
| 5171 |
+ else {
|
|
| 5172 |
+ // 서류 |
|
| 5173 |
+ requiredDocuments = "통신서비스이용증명원"; |
|
| 5174 |
+ } |
|
| 5175 |
+ } |
|
| 5176 |
+ else {
|
|
| 5177 |
+ // 타인 |
|
| 5178 |
+ if (phmAuthTypeTxt.equals("휴대폰 인증")) {
|
|
| 5179 |
+ // 휴대폰 |
|
| 5180 |
+ |
|
| 5181 |
+ } |
|
| 5182 |
+ else {
|
|
| 5183 |
+ // 서류 |
|
| 5184 |
+ |
|
| 5185 |
+ } |
|
| 5186 |
+ } |
|
| 5187 |
+ } |
|
| 5188 |
+ else {
|
|
| 5189 |
+ // 개인 |
|
| 5190 |
+ if (nameType.equals("5")) {
|
|
| 5191 |
+ // 본인 |
|
| 5192 |
+ if (phmAuthTypeTxt.equals("휴대폰 인증")) {
|
|
| 5193 |
+ // 휴대폰 |
|
| 5194 |
+ // 인증완료 |
|
| 5195 |
+ } |
|
| 5196 |
+ else {
|
|
| 5197 |
+ // 서류 |
|
| 5198 |
+ requiredDocuments = "통신서비스이용증명원"; |
|
| 5199 |
+ } |
|
| 5200 |
+ } |
|
| 5201 |
+ else {
|
|
| 5202 |
+ // 타인 |
|
| 5203 |
+ if (phmAuthTypeTxt.equals("휴대폰 인증")) {
|
|
| 5204 |
+ // 휴대폰 |
|
| 5205 |
+ requiredDocuments = "위임장, 대리인 신분증 사본"; |
|
| 5206 |
+ } |
|
| 5207 |
+ else {
|
|
| 5208 |
+ // 서류 |
|
| 5209 |
+ requiredDocuments = "타인(일반전화) : 통신서비스이용증명원, 위임장, 대리인 신분증 사본<br />회사번호일경우 : 통신서비스이용증명원, 사업자등록증, 재직증명서류"; |
|
| 5210 |
+ } |
|
| 5211 |
+ } |
|
| 5212 |
+ } |
|
| 5089 | 5213 |
|
| 5214 |
+ |
|
| 5215 |
+ |
|
| 5216 |
+ |
|
| 5217 |
+ |
|
| 5218 |
+ |
|
| 5219 |
+ model.addAttribute("pdfPath", path);
|
|
| 5220 |
+ model.addAttribute("fileType", fileType);
|
|
| 5221 |
+ model.addAttribute("atchFileId", fileVO.getAtchFileId());
|
|
| 5222 |
+ model.addAttribute("fileSn", fileVO.getFileSn());
|
|
| 5223 |
+ model.addAttribute("phmId", phmId);
|
|
| 5224 |
+ model.addAttribute("phoneNumber", phoneNumber);
|
|
| 5225 |
+ model.addAttribute("userName", userName);
|
|
| 5226 |
+ model.addAttribute("managerNm", managerNm);
|
|
| 5227 |
+ model.addAttribute("dept", dept);
|
|
| 5228 |
+ model.addAttribute("nameType", nameType);
|
|
| 5229 |
+ model.addAttribute("phmType", phmType);
|
|
| 5230 |
+ model.addAttribute("authYnTxt", authYnTxt);
|
|
| 5231 |
+ model.addAttribute("phmAuthTypeTxt", phmAuthTypeTxt);
|
|
| 5232 |
+ model.addAttribute("ownerName", ownerName);
|
|
| 5233 |
+ model.addAttribute("requiredDocuments", requiredDocuments);
|
|
| 5234 |
+ |
|
| 5235 |
+ return "/uss/ion/msg/pdfViewPhone"; |
|
| 5236 |
+ } |
|
| 5237 |
+ |
|
| 5090 | 5238 |
}(No newline at end of file) |
--- src/main/webapp/WEB-INF/decorators.xml
+++ src/main/webapp/WEB-INF/decorators.xml
... | ... | @@ -152,7 +152,7 @@ |
| 152 | 152 |
<pattern>/uss/ion/msg/weekendCsWork.do</pattern> |
| 153 | 153 |
<pattern>/uss/ion/msg/weekendCsWork2.do</pattern> |
| 154 | 154 |
<pattern>/uss/ion/msg/pdfView.do</pattern> |
| 155 |
- |
|
| 155 |
+ <pattern>/uss/ion/msg/pdfViewPhone.do</pattern> |
|
| 156 | 156 |
</decorator> |
| 157 | 157 |
|
| 158 | 158 |
<!-- 관리자 게시글 작성, 템플릿 미리보기(헤더풋터 없음) --> |
--- 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 @@ |
| 24 | 24 |
// PdfView |
| 25 | 25 |
function pdfViewPop(atchFileId,mberNm,bizNo,ceoNm,hstManagerNm,hstMbtlNum) {
|
| 26 | 26 |
document.pdfForm.atchFileId.value = atchFileId; |
| 27 |
+ document.pdfForm.fileSn.value = 0; |
|
| 27 | 28 |
document.pdfForm.mberNm.value = mberNm; |
| 28 | 29 |
document.pdfForm.bizNo.value = bizNo; |
| 29 | 30 |
document.pdfForm.ceoNm.value = ceoNm; |
| 30 | 31 |
document.pdfForm.hstManagerNm.value = hstManagerNm; |
| 31 | 32 |
document.pdfForm.hstMbtlNum.value = hstMbtlNum; |
| 32 |
- document.pdfForm.fileSn.value = 0; |
|
| 33 | 33 |
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');
|
| 34 | 34 |
document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfView.do'/>"; |
| 35 | 35 |
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
... | ... | @@ -34,10 +34,32 @@ |
| 34 | 34 |
$( document ).ready(function() {
|
| 35 | 35 |
// 대시보드에 전달받은 파라미터 처리 |
| 36 | 36 |
fromDashboard(); |
| 37 |
+ |
|
| 37 | 38 |
//첨부파일 이미지 br태그 삭제 - import로 공통으로 사용해서 jsp에서 따로 처리 |
| 38 | 39 |
$(".brRm").children('br').remove();
|
| 39 | 40 |
|
| 40 | 41 |
}); |
| 42 |
+ |
|
| 43 |
+//PdfView |
|
| 44 |
+function pdfViewPhonePop(atchFileId,phmId,phoneNumber,userName,managerNm,dept,nameType,phmType,authYnTxt,phmAuthTypeTxt,ownerName) {
|
|
| 45 |
+ document.pdfForm.atchFileId.value = atchFileId; |
|
| 46 |
+ document.pdfForm.fileSn.value = 0; |
|
| 47 |
+ document.pdfForm.phmId.value = phmId; |
|
| 48 |
+ document.pdfForm.phoneNumber.value = phoneNumber; |
|
| 49 |
+ document.pdfForm.userName.value = userName; |
|
| 50 |
+ document.pdfForm.managerNm.value = managerNm; |
|
| 51 |
+ document.pdfForm.dept.value = dept; |
|
| 52 |
+ document.pdfForm.nameType.value = nameType; |
|
| 53 |
+ document.pdfForm.phmType.value = phmType; |
|
| 54 |
+ document.pdfForm.authYnTxt.value = authYnTxt; |
|
| 55 |
+ document.pdfForm.phmAuthTypeTxt.value = phmAuthTypeTxt; |
|
| 56 |
+ document.pdfForm.ownerName.value = ownerName; |
|
| 57 |
+ |
|
| 58 |
+ 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');
|
|
| 59 |
+ document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>"; |
|
| 60 |
+ document.pdfForm.target = "pdfPhonePopup"; |
|
| 61 |
+ document.pdfForm.submit(); |
|
| 62 |
+} |
|
| 41 | 63 |
|
| 42 | 64 |
// 대시보드에 전달받은 파라미터 처리 |
| 43 | 65 |
function fromDashboard() {
|
... | ... | @@ -257,17 +279,17 @@ |
| 257 | 279 |
<col style="width: 9%"> |
| 258 | 280 |
<col style="width: 9%"> |
| 259 | 281 |
<col style="width: 6%"> |
| 260 |
- <col style="width: 6%"> |
|
| 282 |
+ <col style="width: 5%"> |
|
| 261 | 283 |
<col style="width: 3%"> |
| 262 | 284 |
<col style="width: 3%"> |
| 285 |
+ <col style="width: 5%"> |
|
| 286 |
+ <col style="width: 5%"> |
|
| 263 | 287 |
<col style="width: 7%"> |
| 264 |
- <col style="width: 5%"> |
|
| 265 |
- <col style="width: 5%"> |
|
| 266 |
- <col style="width: 5%"> |
|
| 267 |
- <col style="width: 8%"> |
|
| 268 | 288 |
<col style="width: *%"> |
| 269 |
- <col style="width: 8%"> |
|
| 270 |
- <%-- <col style="width: 10%"> --%> |
|
| 289 |
+ <col style="width: 5%"> |
|
| 290 |
+ <col style="width: 10%"> |
|
| 291 |
+ <col style="width: 7%"> |
|
| 292 |
+ <col style="width: 2%"> |
|
| 271 | 293 |
</colgroup> |
| 272 | 294 |
<thead> |
| 273 | 295 |
<tr> |
... | ... | @@ -278,17 +300,16 @@ |
| 278 | 300 |
<th>전화번호</th> |
| 279 | 301 |
<th>대표<input type="button" class="sort sortBtn" id="sort_userName"></th> |
| 280 | 302 |
<th>담당자<input type="button" class="sort sortBtn" id="sort_managerNm"></th> |
| 281 |
- <th>회원<%--<input type="button" class="sort sortBtn" id="sort_dept"> --%></th> |
|
| 282 |
- <th>구분<%--<input type="button" class="sort sortBtn" id="sort_nameType"> --%></th> |
|
| 283 |
- <!-- <th>타입(발신/수신/거부)<input type="button" class="sort sortBtn" id="sort_phmType"></th> --> |
|
| 284 |
- <th>인증여부<input type="button" class="sort sortBtn" id="sort_authYn"></th> |
|
| 285 |
- <th>관리자</th> |
|
| 303 |
+ <th>회원</th> |
|
| 304 |
+ <th>구분</th> |
|
| 286 | 305 |
<th>인증<input type="button" class="sort sortBtn" id="sort_phmAuthType"></th> |
| 287 | 306 |
<th>인증자<input type="button" class="sort sortBtn" id="sort_ownerName"></th> |
| 307 |
+ <th>인증여부<input type="button" class="sort sortBtn" id="sort_authYn"></th> |
|
| 288 | 308 |
<th>첨부파일</th> |
| 309 |
+ <th>관리자</th> |
|
| 289 | 310 |
<th>관리</th> |
| 290 | 311 |
<th>등록일자<input type="button" class="sort sortBtn" id="sort_frstRegistPnttm"></th> |
| 291 |
- <!-- <th>삭제여부<input type="button" class="sort sortBtn" id="sort_delFlag"></th> --> |
|
| 312 |
+ <th></th> |
|
| 292 | 313 |
</tr> |
| 293 | 314 |
</thead> |
| 294 | 315 |
<tbody> |
... | ... | @@ -375,19 +396,6 @@ |
| 375 | 396 |
</a> |
| 376 | 397 |
</td> |
| 377 | 398 |
<%-- <td><c:out value="${result.phmTypeTxt}"/></td> --%>
|
| 378 |
- <td> |
|
| 379 |
- <c:choose> |
|
| 380 |
- <c:when test="${result.phmType eq '03'}">
|
|
| 381 |
- 발신번호 차단 |
|
| 382 |
- </c:when> |
|
| 383 |
- <c:otherwise> |
|
| 384 |
- <c:if test="${result.authYnTxt eq '심사중'}">인증요청</c:if> <!-- 코드에 심사중으로 등록되어 있지만 인증요청으로 화면에 뿌리기 위한 처리-->
|
|
| 385 |
- <c:if test="${result.authYnTxt ne '심사중'}"><c:out value="${result.authYnTxt}"/></c:if>
|
|
| 386 |
- |
|
| 387 |
- </c:otherwise> |
|
| 388 |
- </c:choose> |
|
| 389 |
- </td> |
|
| 390 |
- <td><c:out value="${result.admNm}"/></td>
|
|
| 391 | 399 |
<td title="<c:out value="${result.phmAuthTypeTxt}"/>">
|
| 392 | 400 |
<c:choose> |
| 393 | 401 |
<c:when test="${result.phmAuthTypeTxt eq '휴대폰 인증'}">
|
... | ... | @@ -411,26 +419,41 @@ |
| 411 | 419 |
</c:otherwise> |
| 412 | 420 |
</c:choose> |
| 413 | 421 |
</td> |
| 414 |
- <td class="brRm"> |
|
| 415 |
- <c:import url="/cmm/fms/selectAddrAgencyFileInfs.do" charEncoding="utf-8"> |
|
| 416 |
- <c:param name="param_atchFileId" value="${result.atchFileId}" />
|
|
| 417 |
- </c:import> |
|
| 422 |
+ <td> |
|
| 423 |
+ <c:choose> |
|
| 424 |
+ <c:when test="${result.phmType eq '03'}">
|
|
| 425 |
+ 발신번호 차단 |
|
| 426 |
+ </c:when> |
|
| 427 |
+ <c:otherwise> |
|
| 428 |
+ <c:if test="${result.authYnTxt eq '심사중'}">인증요청</c:if> <!-- 코드에 심사중으로 등록되어 있지만 인증요청으로 화면에 뿌리기 위한 처리-->
|
|
| 429 |
+ <c:if test="${result.authYnTxt ne '심사중'}"><c:out value="${result.authYnTxt}"/></c:if>
|
|
| 430 |
+ |
|
| 431 |
+ </c:otherwise> |
|
| 432 |
+ </c:choose> |
|
| 418 | 433 |
</td> |
| 434 |
+ <td class="brRm"> |
|
| 435 |
+ <c:import url="/cmm/fms/selectAddrAgencyFileInfs.do" charEncoding="utf-8"> |
|
| 436 |
+ <c:param name="param_atchFileId" value="${result.atchFileId}" />
|
|
| 437 |
+ </c:import> |
|
| 438 |
+ </td> |
|
| 439 |
+ <td><c:out value="${result.admNm}"/></td>
|
|
| 419 | 440 |
<td> |
| 420 | 441 |
<c:if test="${result.authYn eq 'H'}">
|
| 421 |
- <button class="btnType btnType20" onclick="updateAuthYn('<c:out value='${result.phmId}'/>', 'Y', '<c:out value='${result.userId}'/>'); return false;" >인증완료</button>
|
|
| 422 |
- <button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;">반려</button>
|
|
| 442 |
+ <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>
|
|
| 423 | 443 |
</c:if> |
| 424 | 444 |
<c:if test="${result.authYn eq 'C'}">
|
| 425 |
- <button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;">반려사유</button>
|
|
| 445 |
+ <button class="btnType btnType20" onclick="returnPop('<c:out value="${result.phmId}"/>'); return false;" style="padding: 0 5px 0 5px;">반려사유</button>
|
|
| 426 | 446 |
</c:if> |
| 427 | 447 |
</td> |
| 428 | 448 |
<td title="<c:out value="${result.frstRegistPnttm}"/>">
|
| 429 | 449 |
<fmt:parseDate value="${result.frstRegistPnttm}" var="frstRegistDateValue" pattern="yyyy-MM-dd HH:mm"/>
|
| 430 | 450 |
<fmt:formatDate value="${frstRegistDateValue}" pattern="MM-dd HH:mm"/>
|
| 431 | 451 |
</td> |
| 432 |
- |
|
| 433 |
- <%-- <td><c:out value="${result.delFlagTxt}"/></td> --%>
|
|
| 452 |
+ <td> |
|
| 453 |
+ <c:if test="${result.atchFileId ne '' && result.atchFileId ne null}">
|
|
| 454 |
+ <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>
|
|
| 455 |
+ </c:if> |
|
| 456 |
+ </td> |
|
| 434 | 457 |
</tr> |
| 435 | 458 |
</c:forEach> |
| 436 | 459 |
<c:if test="${empty resultList}">
|
... | ... | @@ -459,9 +482,24 @@ |
| 459 | 482 |
<form name="modiForm" id="modiForm" method="post"> |
| 460 | 483 |
<input name="mberId" type="hidden" /> |
| 461 | 484 |
</form> |
| 485 |
+ |
|
| 462 | 486 |
<form name="popupForm" id="popupForm" method="post"> |
| 463 | 487 |
<input name="phmId" type="hidden" /> |
| 464 | 488 |
</form> |
| 465 | 489 |
|
| 490 |
+<form name="pdfForm" method="post"> |
|
| 491 |
+ <input type="hidden" name="atchFileId"/> |
|
| 492 |
+ <input type="hidden" name="fileSn"/> |
|
| 493 |
+ <input type="hidden" name="phmId"/> |
|
| 494 |
+ <input type="hidden" name="phoneNumber"/> |
|
| 495 |
+ <input type="hidden" name="userName"/> |
|
| 496 |
+ <input type="hidden" name="managerNm"/> |
|
| 497 |
+ <input type="hidden" name="dept"/> |
|
| 498 |
+ <input type="hidden" name="nameType"/> |
|
| 499 |
+ <input type="hidden" name="phmType"/> |
|
| 500 |
+ <input type="hidden" name="authYnTxt"/> |
|
| 501 |
+ <input type="hidden" name="phmAuthTypeTxt"/> |
|
| 502 |
+ <input type="hidden" name="ownerName"/> |
|
| 503 |
+</form> |
|
| 466 | 504 |
</body> |
| 467 | 505 |
</html> |
--- 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 @@ |
| 46 | 46 |
|
| 47 | 47 |
<div class="pageCont" style="text-align: center; width: 1000px;"> |
| 48 | 48 |
<div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;"> |
| 49 |
- <p class="tType5">PDF 뷰어</p> |
|
| 49 |
+ <p class="tType5">기업회원 신청 정보</p> |
|
| 50 | 50 |
</div> |
| 51 | 51 |
<div class="tableWrap"> |
| 52 | 52 |
<table class="tbType1"> |
+++ src/main/webapp/WEB-INF/jsp/uss/ion/msg/pdfViewPhone.jsp
... | ... | @@ -0,0 +1,342 @@ |
| 1 | +<%-- | |
| 2 | + Class Name : weekendCsWork.jsp | |
| 3 | + Description : 발신번호 리스트 조회 페이지 | |
| 4 | + Modification Information | |
| 5 | + | |
| 6 | + 수정일 수정자 수정내용 | |
| 7 | + ------- -------- --------------------------- | |
| 8 | + 2021.03.31 신명섭 최초 생성 | |
| 9 | + | |
| 10 | + Copyright (C) 2009 by ITN All right reserved. | |
| 11 | +--%> | |
| 12 | +<%@ page contentType="text/html; charset=utf-8"%> | |
| 13 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 14 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 15 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 16 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 17 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
| 18 | +<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%> | |
| 19 | +<% | |
| 20 | + response.setHeader("Cache-Control","no-store"); | |
| 21 | + response.setHeader("Pragma","no-cache"); | |
| 22 | + response.setDateHeader("Expires",0); | |
| 23 | + if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); | |
| 24 | +%> | |
| 25 | +<!DOCTYPE html> | |
| 26 | +<html lang="ko"> | |
| 27 | + | |
| 28 | +<head> | |
| 29 | +<link rel="stylesheet" href="/pb/css/reset.css"> | |
| 30 | +<link rel="stylesheet" href="/pb/css/common.css"> | |
| 31 | +<link rel="stylesheet" href="/pb/css/content.css?date=202301160001"> | |
| 32 | +<link rel="stylesheet" href="/pb/css/popup.css"> | |
| 33 | + | |
| 34 | +<style> | |
| 35 | +html { | |
| 36 | + overflow-x: hidden; | |
| 37 | + overflow-y: auto; | |
| 38 | +} | |
| 39 | +</style> | |
| 40 | + | |
| 41 | +<script src="/pb/js/jquery-3.5.0.js"></script> | |
| 42 | +<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script> | |
| 43 | +<script src="//mozilla.github.io/pdf.js/build/pdf.js"></script> | |
| 44 | + | |
| 45 | +<script type="text/javaScript" language="javascript"> | |
| 46 | + | |
| 47 | +//PdfView | |
| 48 | +function pdfViewPhonePop(atchFileId,fileSn) { | |
| 49 | + document.pdfForm.atchFileId.value = atchFileId; | |
| 50 | + document.pdfForm.fileSn.value = fileSn; | |
| 51 | + document.pdfForm.action = "<c:url value='/uss/ion/msg/pdfViewPhone.do'/>"; | |
| 52 | + document.pdfForm.submit(); | |
| 53 | +} | |
| 54 | + | |
| 55 | +</script> | |
| 56 | + | |
| 57 | +</head> | |
| 58 | +<body> | |
| 59 | + | |
| 60 | + <div class="pageCont" style="text-align: center; width: 1000px;"> | |
| 61 | + <div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;"> | |
| 62 | + <p class="tType5">발신번호 신청 정보</p> | |
| 63 | + </div> | |
| 64 | + <div class="tableWrap"> | |
| 65 | + <table class="tbType1"> | |
| 66 | + <colgroup> | |
| 67 | + <col style="width: 12%"> | |
| 68 | + <col style="width: *%"> | |
| 69 | + <col style="width: 11%"> | |
| 70 | + <col style="width: 8%"> | |
| 71 | + <col style="width: 8%"> | |
| 72 | + <col style="width: 8%"> | |
| 73 | + <col style="width: 8%"> | |
| 74 | + <col style="width: 8%"> | |
| 75 | + <col style="width: 15%"> | |
| 76 | + </colgroup> | |
| 77 | + <thead> | |
| 78 | + <tr> | |
| 79 | + <th>발신번호</th> | |
| 80 | + <th>대표</th> | |
| 81 | + <th>담당자</th> | |
| 82 | + <th>회원</th> | |
| 83 | + <th>구분</th> | |
| 84 | + <th>인증방식</th> | |
| 85 | + <th>인증자</th> | |
| 86 | + <th>인증여부</th> | |
| 87 | + <th>다운로드</th> | |
| 88 | + </tr> | |
| 89 | + </thead> | |
| 90 | + <tbody> | |
| 91 | + <tr> | |
| 92 | + <td title="${phoneNumber}">${phoneNumber}</td> | |
| 93 | + <td title="${userName}">${userName}</td> | |
| 94 | + <td title="${managerNm}">${managerNm}</td> | |
| 95 | + <td> | |
| 96 | + <c:choose> | |
| 97 | + <c:when test="${dept == 'c'}"> | |
| 98 | + 기업 | |
| 99 | + </c:when> | |
| 100 | + <c:otherwise> | |
| 101 | + 개인 | |
| 102 | + </c:otherwise> | |
| 103 | + </c:choose> | |
| 104 | + </td> | |
| 105 | + <td> | |
| 106 | + <c:choose> | |
| 107 | + <c:when test="${not empty nameType}"> | |
| 108 | + <c:choose> | |
| 109 | + <c:when test="${nameType == '1'}"> | |
| 110 | + 당사 | |
| 111 | + </c:when> | |
| 112 | + <c:when test="${nameType == '2'}"> | |
| 113 | + 대표 | |
| 114 | + </c:when> | |
| 115 | + <c:when test="${nameType == '3'}"> | |
| 116 | + 직원 | |
| 117 | + </c:when> | |
| 118 | + <c:when test="${nameType == '4'}"> | |
| 119 | + 타사 | |
| 120 | + </c:when> | |
| 121 | + <c:when test="${nameType == '5'}"> | |
| 122 | + 본인 | |
| 123 | + </c:when> | |
| 124 | + <c:otherwise> | |
| 125 | + 타인 | |
| 126 | + </c:otherwise> | |
| 127 | + </c:choose> | |
| 128 | + </c:when> | |
| 129 | + <c:otherwise> | |
| 130 | + 없음 | |
| 131 | + </c:otherwise> | |
| 132 | + </c:choose> | |
| 133 | + </td> | |
| 134 | + <td> | |
| 135 | + <c:choose> | |
| 136 | + <c:when test="${phmAuthTypeTxt eq '휴대폰 인증'}"> | |
| 137 | + 휴대폰 | |
| 138 | + </c:when> | |
| 139 | + <c:when test="${phmAuthTypeTxt eq '서류인증'}"> | |
| 140 | + 서류 | |
| 141 | + </c:when> | |
| 142 | + <c:otherwise> | |
| 143 | + <c:out value="${phmAuthTypeTxt}"/> | |
| 144 | + </c:otherwise> | |
| 145 | + </c:choose> | |
| 146 | + </td> | |
| 147 | + <td> | |
| 148 | + <c:choose> | |
| 149 | + <c:when test="${phmAuthTypeTxt eq '서류인증'}"> | |
| 150 | + | |
| 151 | + </c:when> | |
| 152 | + <c:otherwise> | |
| 153 | + <c:out value="${ownerName}"/> | |
| 154 | + </c:otherwise> | |
| 155 | + </c:choose> | |
| 156 | + </td> | |
| 157 | + <td> | |
| 158 | + <c:choose> | |
| 159 | + <c:when test="${phmType eq '03'}"> | |
| 160 | + 발신번호 차단 | |
| 161 | + </c:when> | |
| 162 | + <c:otherwise> | |
| 163 | + <c:if test="${authYnTxt eq '심사중'}">인증요청</c:if> | |
| 164 | + <c:if test="${authYnTxt ne '심사중'}"><c:out value="${authYnTxt}"/></c:if> | |
| 165 | + </c:otherwise> | |
| 166 | + </c:choose> | |
| 167 | + </td> | |
| 168 | + <td> | |
| 169 | + <c:import url="/cmm/fms/selectMberFileInfs.do" charEncoding="utf-8"> | |
| 170 | + <c:param name="param_atchFileId" value="${atchFileId}" /> | |
| 171 | + </c:import> | |
| 172 | + </td> | |
| 173 | + </tr> | |
| 174 | + </tbody> | |
| 175 | + </table> | |
| 176 | + </div> | |
| 177 | + | |
| 178 | + <br /><br /> | |
| 179 | + <!-- 필수서류 체크 --> | |
| 180 | + <div class="listTop" style="float: left; margin-top: 0px; padding-top: 0px;"> | |
| 181 | + <p class="tType5">승인에 필요한 서류</p> | |
| 182 | + </div> | |
| 183 | + <div class="tableWrap"> | |
| 184 | + <table class="tbType1"> | |
| 185 | + <colgroup> | |
| 186 | + <col style="width: *%"> | |
| 187 | + </colgroup> | |
| 188 | + <thead> | |
| 189 | + <tr> | |
| 190 | + <td class="left" style="padding: 10px 0 10px 0; line-height: 1.6em;">${requiredDocuments}</td> | |
| 191 | + </tr> | |
| 192 | + </thead> | |
| 193 | + </tbody> | |
| 194 | + </table> | |
| 195 | + </div> | |
| 196 | + | |
| 197 | + | |
| 198 | + <c:if test="${not empty fileList}"> | |
| 199 | + <div style="width: 100%; text-align: center; margin: 30px 0 30px 0;"> | |
| 200 | + <c:set var="plusCnt" value="0"/> | |
| 201 | + <c:set var="btnClass" value="btnType1"/> | |
| 202 | + <c:forEach var="result" items="${fileList}" varStatus="status"> | |
| 203 | + <c:choose> | |
| 204 | + <c:when test="${result.fileSn eq fileSn}"> | |
| 205 | + <c:set var="btnClass" value="btnType2"/> | |
| 206 | + </c:when> | |
| 207 | + <c:otherwise> | |
| 208 | + <c:set var="btnClass" value="btnType1"/> | |
| 209 | + </c:otherwise> | |
| 210 | + </c:choose> | |
| 211 | + <c:set var="plusCnt" value="${plusCnt + 1}"/> | |
| 212 | + <button class="<c:out value="${btnClass}"/>" onclick="pdfViewPhonePop('${result.atchFileId}','${result.fileSn}'); return false;"> 첨부파일 <c:out value="${plusCnt}"/> </button> | |
| 213 | + </c:forEach> | |
| 214 | + </div> | |
| 215 | + </c:if> | |
| 216 | + | |
| 217 | + <c:if test="${fileType eq 'etc'}"> | |
| 218 | + <div style="width: 100%; text-align: center; margin: 30px 0 30px 0; color: red;"> | |
| 219 | + PDF 뷰어에서 지원하지 않는 형식의 파일입니다. 첨부파일 다운로드후 확인해주세요. | |
| 220 | + </div> | |
| 221 | + </c:if> | |
| 222 | + <canvas id="the-canvas" name="the-canvas" style="min-width: 600px; max-width: 1000px; margin-top: 25px; margin-bottom: 25px;"></canvas> | |
| 223 | + | |
| 224 | + <div> | |
| 225 | + <button class="btnType" id="prev">Previous</button> | |
| 226 | + <span>Page: <span id="page_num"></span> / <span id="page_count"></span></span> | |
| 227 | + <button class="btnType" id="next">Next</button> | |
| 228 | + | |
| 229 | + <div style="float: right; margin-right: 10px;"><button onclick="javascript:self.close()" class="btnType">CLOSE</button></div> | |
| 230 | + </div> | |
| 231 | + | |
| 232 | + </div> | |
| 233 | + | |
| 234 | + <form name="pdfForm" method="post"> | |
| 235 | + <input type="hidden" name="atchFileId"/> | |
| 236 | + <input type="hidden" name="fileSn"/> | |
| 237 | + <input type="hidden" name="phmId" value="${phmId}"/> | |
| 238 | + <input type="hidden" name="phoneNumber" value="${phoneNumber}"/> | |
| 239 | + <input type="hidden" name="userName" value="${userName}"/> | |
| 240 | + <input type="hidden" name="managerNm" value="${managerNm}"/> | |
| 241 | + <input type="hidden" name="dept" value="${dept}"/> | |
| 242 | + <input type="hidden" name="nameType" value="${nameType}"/> | |
| 243 | + <input type="hidden" name="phmType" value="${phmType}"/> | |
| 244 | + <input type="hidden" name="authYnTxt" value="${authYnTxt}"/> | |
| 245 | + <input type="hidden" name="phmAuthTypeTxt" value="${phmAuthTypeTxt}"/> | |
| 246 | + <input type="hidden" name="ownerName" value="${ownerName}"/> | |
| 247 | + </form> | |
| 248 | + | |
| 249 | +</body> | |
| 250 | +</html> | |
| 251 | + <script type="text/javaScript" language="javascript"> | |
| 252 | + var pdfDoc = null; | |
| 253 | + var pageNum = 1; | |
| 254 | + var pageRendering = false; | |
| 255 | + var pageNumPending = null; | |
| 256 | + var scale = 1.4; | |
| 257 | + var canvas = document.getElementById('the-canvas'); | |
| 258 | + var ctx = canvas.getContext('2d'); | |
| 259 | + /* var url = '/cmm/fms/FileDown.do?atchFileId=FILE_000000000019061&fileSn=0'; */ | |
| 260 | +// var url = '/usr/local/tomcat/file/sht/pdf/2ccbb16e-62df-48c0-bbb1-3b6559bd4c36.pdf'; | |
| 261 | + var url = '${pdfPath}'; | |
| 262 | + | |
| 263 | + /** | |
| 264 | + * Get page info from document, resize canvas accordingly, and render page. | |
| 265 | + * @param num Page number. | |
| 266 | + */ | |
| 267 | + function renderPage(num) { | |
| 268 | + pageRendering = true; | |
| 269 | + // Using promise to fetch the page | |
| 270 | + pdfDoc.getPage(num).then(function(page) { | |
| 271 | + var viewport = page.getViewport({scale: scale}); | |
| 272 | + canvas.height = viewport.height; | |
| 273 | + canvas.width = viewport.width; | |
| 274 | + | |
| 275 | + // Render PDF page into canvas context | |
| 276 | + var renderContext = { | |
| 277 | + canvasContext: ctx, | |
| 278 | + viewport: viewport | |
| 279 | + }; | |
| 280 | + var renderTask = page.render(renderContext); | |
| 281 | + | |
| 282 | + // Wait for rendering to finish | |
| 283 | + renderTask.promise.then(function() { | |
| 284 | + pageRendering = false; | |
| 285 | + if (pageNumPending !== null) { | |
| 286 | + // New page rendering is pending | |
| 287 | + renderPage(pageNumPending); | |
| 288 | + pageNumPending = null; | |
| 289 | + } | |
| 290 | + }); | |
| 291 | + }); | |
| 292 | + | |
| 293 | + // Update page counters | |
| 294 | + document.getElementById('page_num').textContent = num; | |
| 295 | + } | |
| 296 | + | |
| 297 | + /** | |
| 298 | + * If another page rendering in progress, waits until the rendering is | |
| 299 | + * finised. Otherwise, executes rendering immediately. | |
| 300 | + */ | |
| 301 | + function queueRenderPage(num) { | |
| 302 | + if (pageRendering) { | |
| 303 | + pageNumPending = num; | |
| 304 | + } else { | |
| 305 | + renderPage(num); | |
| 306 | + } | |
| 307 | + } | |
| 308 | + | |
| 309 | + /** | |
| 310 | + * Displays previous page. | |
| 311 | + */ | |
| 312 | + function onPrevPage() { | |
| 313 | + if (pageNum <= 1) { | |
| 314 | + return; | |
| 315 | + } | |
| 316 | + pageNum--; | |
| 317 | + queueRenderPage(pageNum); | |
| 318 | + } | |
| 319 | + document.getElementById('prev').addEventListener('click', onPrevPage); | |
| 320 | + | |
| 321 | + /** | |
| 322 | + * Displays next page. | |
| 323 | + */ | |
| 324 | + function onNextPage() { | |
| 325 | + if (pageNum >= pdfDoc.numPages) { | |
| 326 | + return; | |
| 327 | + } | |
| 328 | + pageNum++; | |
| 329 | + queueRenderPage(pageNum); | |
| 330 | + } | |
| 331 | + document.getElementById('next').addEventListener('click', onNextPage); | |
| 332 | + /** | |
| 333 | + * Asynchronously downloads PDF. | |
| 334 | + */ | |
| 335 | + pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) { | |
| 336 | + pdfDoc = pdfDoc_; | |
| 337 | + document.getElementById('page_count').textContent = pdfDoc.numPages; | |
| 338 | + | |
| 339 | + // Initial/first page rendering | |
| 340 | + renderPage(pageNum); | |
| 341 | + }); | |
| 342 | + </script>(No newline at end of file) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?