diff --git a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java index fd56d6c6..25c74b18 100644 --- a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java +++ b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java @@ -2678,6 +2678,270 @@ public class MjonPayController { return "/web/pay/PayUserSWListAjax"; } + @RequestMapping(value= {"/web/member/pay/PayPdfSWListPopUpAjax.do"}) + public String payPrintPdfSWDataAjax( + @ModelAttribute("searchVO") MjonMsgVO mjonMsgVO + , RedirectAttributes redirectAttributes + , ModelMap model) throws Exception { + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + String userNm = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getName()); + + mjonMsgVO.setUserId(userId); + model.addAttribute("userNm", userNm); + + mjonMsgVO.setFirstIndex(0); + mjonMsgVO.setRecordCountPerPage(10000); + + //결제 리스트 정보 불러오기 + List payUserList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); + model.addAttribute("payUserList", payUserList); + + Calendar cal = Calendar.getInstance(); + + int year = cal.get(Calendar.YEAR); + int month = cal.get(Calendar.MONTH) + 1; + int day = cal.get(Calendar.DAY_OF_MONTH); + + model.addAttribute("year", year); + model.addAttribute("month", month); + model.addAttribute("day", day); + + return "web/pay/PrintPayUserSWListPdfPopUp"; + } + + + /** + * 요금 사용내역 엑셀 다운 + * @param mjonMsgVO + * @param model + * @return "/web/member/pay/PayUserListAjax.do" + * @throws Exception + */ + @RequestMapping(value= {"/web/member/pay/PayUserSWListExcelDownload.do"}) + public void PayUserSWListExcelDownload(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO, + HttpServletRequest request, + HttpServletResponse response , + ModelMap model) throws Exception{ + + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + SXSSFWorkbook wb = new SXSSFWorkbook(100); + String fileName ="사용내역 엑셀 리스트"; // 저장 파일명 + String sheetTitle = "요금사용내역" ; // 셀 제목 + Sheet sheet = wb.createSheet(sheetTitle); + Cell cell = null; + Row row = null; + + CellStyle style = wb.createCellStyle(); + style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setBorderTop(CellStyle.BORDER_THIN); + + // 정렬 + style.setAlignment(CellStyle.ALIGN_CENTER); //가운데 정렬 + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); //높이 가운데 정렬 + + Font font = wb.createFont(); + font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold + + sheet.setColumnWidth(1, 5000); // 칼럼의 폭 조절 + sheet.setColumnWidth(4, 10000); // 칼럼의 폭 조절 + + try{ + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + mjonMsgVO.setUserId(userId); + + mjonMsgVO.setRecordCountPerPage(100000); + mjonMsgVO.setFirstIndex(0); + + if("".equals(mjonMsgVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + mjonMsgVO.setSearchSortCnd("regDate"); + mjonMsgVO.setSearchSortOrd("desc"); + } + + List payUserList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); + {//화면 리스트 + + row = sheet.createRow(0); + + sheet.addMergedRegion(new CellRangeAddress(0,1,0,0)); //셀병합 + sheet.addMergedRegion(new CellRangeAddress(0,1,1,1)); //셀병합 + sheet.addMergedRegion(new CellRangeAddress(0,1,2,2)); //셀병합 + sheet.addMergedRegion(new CellRangeAddress(0,1,3,3)); //셀병합 + + + cell = row.createCell(0); + cell.setCellValue("번호"); + cell.setCellStyle(style); + + cell = row.createCell(1); + cell.setCellValue("날짜"); + cell.setCellStyle(style); + + cell = row.createCell(2); + cell.setCellValue("문자유형"); + cell.setCellStyle(style); + + cell = row.createCell(3); + cell.setCellValue("발송건수"); + cell.setCellStyle(style); + + cell = row.createCell(4); + cell.setCellValue("내용"); + cell.setCellStyle(style); + + /*cell = row.createCell(5); + cell.setCellValue("충전"); + sheet.addMergedRegion(new CellRangeAddress(0,0,5,6)); //셀병합 + cell.setCellStyle(style); + + cell = row.createCell(6); + cell.setCellStyle(style);*/ + + cell = row.createCell(5); + cell.setCellValue("사용"); + sheet.addMergedRegion(new CellRangeAddress(0,0,5,6)); //셀병합 + cell.setCellStyle(style); + + cell = row.createCell(6); + cell.setCellStyle(style); + + + /*cell = row.createCell(9); + cell.setCellValue("잔액"); + sheet.addMergedRegion(new CellRangeAddress(0,0,9,10)); //셀병합 + cell.setCellStyle(style); + + cell = row.createCell(10); + cell.setCellStyle(style);*/ + + row = sheet.createRow(1); + + cell = row.createCell(0); + cell.setCellStyle(style); + + cell = row.createCell(1); + cell.setCellStyle(style); + + cell = row.createCell(2); + cell.setCellStyle(style); + + cell = row.createCell(3); + cell.setCellStyle(style); + + cell = row.createCell(4); + cell.setCellStyle(style); + + /*cell = row.createCell(5); + cell.setCellValue("충전금"); + cell.setCellStyle(style); + + cell = row.createCell(6); + cell.setCellValue("포인트"); + cell.setCellStyle(style);*/ + + cell = row.createCell(5); + cell.setCellValue("충전금"); + cell.setCellStyle(style); + + cell = row.createCell(6); + cell.setCellValue("포인트"); + cell.setCellStyle(style); + + /*cell = row.createCell(9); + cell.setCellValue("충전금"); + cell.setCellStyle(style); + + cell = row.createCell(10); + cell.setCellValue("포인트"); + cell.setCellStyle(style);*/ + + DecimalFormat formatter = new DecimalFormat("###,###.##"); + String befCash = ""; + String befPoint = ""; + String totPrice = ""; + String thisPoint = ""; + + for(int i=0; i < payUserList.size(); i++) { + + befCash = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getBefCash())); + befPoint = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getBefPoint())); + totPrice = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getTotPrice())); + thisPoint = formatter.format(Double.parseDouble(((MjonMsgVO)payUserList.get(i)).getThisPoint())); + + String msgType = "단문"; + if(payUserList.get(i).getMsgTypeTxt().equals("6") && payUserList.get(i).getFileCnt().equals("0")) { + msgType = "장문"; + }else if(payUserList.get(i).getMsgTypeTxt().equals("6") && !payUserList.get(i).getFileCnt().equals("0")) { + msgType = "그림"; + }else if(payUserList.get(i).getMsgTypeTxt().equals("8")) { + msgType = "알림톡"; + }else if(payUserList.get(i).getMsgTypeTxt().equals("9")) { + msgType = "친구톡"; + }else if(payUserList.get(i).getMsgTypeTxt().equals("fax")) { + msgType = "팩스"; + } + + int sendCount = ((MjonMsgVO)payUserList.get(i)).getSendCount(); + + + String sendSum = Integer.toString(sendCount); + + if(payUserList.get(i).getMsgTypeTxt().equals("fax")) { + sendSum = sendSum+"("+payUserList.get(i).getFileCnt()+")"; + } + + row = sheet.createRow(i+2); + for(int j=0 ; j < 7 ; j++) { + cell = row.createCell(j); + cell.setCellStyle(style); + if(j==0) cell.setCellValue(i+1); //번호 + if(j==1) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getRegDate()); //결제일시 + if(j==2) cell.setCellValue(msgType); //문자유형 + if(j==3) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendCnt()); //발송건수 + if(j==4) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSmsTxt()); //내용 + if(j==5) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendPrice()); //충전 - 충전금 + if(j==6) cell.setCellValue(0); //충전 - 포인트 + /*if(j==7) cell.setCellValue(totPrice); //사용 - 충전금 + if(j==8) cell.setCellValue(0); //사용 - 포인트 + if(j==9) cell.setCellValue(thisPoint); //잔액 - 충전금 + if(j==10) cell.setCellValue(befPoint); //잔액 - 포인트 +*/ } + } + } + response.setHeader("Set-Cookie", "fileDownload=true; path=/"); + SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyy_MM_dd_HH_mm_ss", Locale.KOREA ); + Date currentTime = new Date (); + String mTime = mSimpleDateFormat.format ( currentTime ); + fileName = fileName+"("+mTime+")"; + + response.setHeader("Content-Disposition", String.format("attachment; filename=\""+new String((fileName).getBytes("KSC5601"),"8859_1")+".xlsx")); + wb.write(response.getOutputStream()); + }catch(Exception e) { + response.setHeader("Set-Cookie", "fileDownload=false; path=/"); + response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + response.setHeader("Content-Type","text/html; charset=utf-8"); + OutputStream out = null; + try { + out = response.getOutputStream(); + byte[] data = new String("fail..").getBytes(); + out.write(data, 0, data.length); + } catch(Exception ignore) { + ignore.printStackTrace(); + } finally { + if(out != null) try { out.close(); } catch(Exception ignore) {} + } + }finally { + // 디스크 적었던 임시파일을 제거합니다. + wb.dispose(); + try { wb.close(); } catch(Exception ignore) {} + } + } + /** diff --git a/src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp index fbd6f933..d06836ca 100644 --- a/src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp @@ -71,7 +71,7 @@ $(document).ready(function(){ var frm = document.listForm; frm.method = "post"; - frm.action = "/web/member/pay/PayUserListExcelDownload.do"; + frm.action = "/web/member/pay/PayUserSWListExcelDownload.do"; frm.submit(); }); }); @@ -185,7 +185,7 @@ function fnShowPdfPrintPopup(){ $("#listForm").attr("target","msgSentPdfPrint"); window.open('', 'msgSentPdfPrint', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top +',scrollbars=1'); - $("#listForm").attr({"action":"/web/member/pay/PayPdfListPopUpAjax.do", "method":"post"}).submit(); + $("#listForm").attr({"action":"/web/member/pay/PayPdfSWListPopUpAjax.do", "method":"post"}).submit(); } //체크박스 전체선택/해제 @@ -219,9 +219,9 @@ function fnShowPdfPrintPopup(){ <%-- --%> - - - + + + <%-- @@ -248,18 +248,18 @@ function fnShowPdfPrintPopup(){ 내용 - 발송건수
성공 / 실패 + 발송건수 - 사용 - 반환(실패) + 사용 + 캐시 - - 캐시 + 포인트 + @@ -337,18 +337,19 @@ function fnShowPdfPrintPopup(){

- <%-- -

- - -

- --%> +

+ <%-- + --%> + 0 +

+ + <%--

- + --%> +
+
+
+ 문자온 CI +
+

(12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)

+

TEL 010-8432-9333

+
+
+
+

요금 사용내역

+
+
+ + + + + + + + + + + + +
발신자 정보
+  님의 사용내역을 아래와 같이 확인합니다. +
+
+
+
+
+ + + + + + + + + <%-- --%> + <%-- + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + --%> + + + <%-- + --%> + + + + + + + + + + +
사용날짜, 문자유형, 문자내용, 충전 충전금, 충전 포인트, 사용 충전금, 사용 포인트, 잔액 충전금, 잔액 포인트를 제공하는 표
날짜문자유형발송건수사용
충전금포인트
+ + +

+ + + 장문 + + + 그림 + + + 알림톡 + + + 친구톡 + + + 팩스 + + + 단문 + + +

+
+ + + () + + <%-- + + () + --%> + +

+ + +

+
+

+ +

+
+

+ + +

+
+

+ 0 +

+
+

+ + +

+
+

+ +

+
+ 사용내역이 없습니다. +
+
+
+
+ + + + + + + + + + + + + + + + +
공급가액, 부가세, 총 결제금액에 대한 표
대표번호010-8432-9333
이메일help@iten.co.kr
+
+
+

년   월  

+
+ 주식회사 아이티앤 대표이사 + 유 인 식 + +
+
+
+
+
+
+ +
+ + +