From 8be39a2e4058dc1fa29b697e720f5d44dca4ce24 Mon Sep 17 00:00:00 2001 From: rosewiper Date: Fri, 6 Sep 2024 09:59:39 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=ED=86=B5?= =?UTF-8?q?=EA=B3=84=EA=B4=80=EB=A6=AC=20>=20=EC=9D=BC/=EC=9B=94=20?= =?UTF-8?q?=EB=A7=A4=EC=B6=9C=EC=95=A1=20=ED=99=94=EB=A9=B4=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EB=B0=9C=EC=86=A1?= =?UTF-8?q?=EA=B2=B0=EA=B3=BC,=20=EC=98=88=EC=95=BD=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20=EB=B0=9C=EC=86=A1=EC=9D=BC=EC=9E=90=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20=EC=88=98=EC=A0=95=20=20=20-=2030=EB=B6=84?= =?UTF-8?q?=20=EC=A7=80=EC=97=B0=EB=90=9C=20=EA=B2=BD=EC=9A=B0=EC=97=90?= =?UTF-8?q?=EB=8F=84=20=EB=B0=9C=EC=86=A1=EC=8B=9C=EA=B0=84=EC=9D=80=2030?= =?UTF-8?q?=EB=B6=84=20=EB=8D=94=ED=95=B4=EC=A7=84=20=EC=8B=9C=EA=B0=84?= =?UTF-8?q?=EC=9D=B4=20=EC=95=84=EB=8B=8C=20=EC=9B=90=EB=9E=98=20=EB=B3=B4?= =?UTF-8?q?=EB=82=B4=EB=A0=A4=ED=96=88=EB=8D=98=20=EC=8B=9C=EA=B0=84?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=ED=91=9C=EC=8B=9C=EB=90=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD(=EA=B4=80=EB=A6=AC=EC=9E=90?= =?UTF-8?q?=EC=97=90=EC=84=9C=EB=8A=94=2030=EB=B6=84=20=EC=A7=80=EC=97=B0?= =?UTF-8?q?=EB=90=9C=20=EC=8B=9C=EA=B0=84=EC=9C=BC=EB=A1=9C=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=EB=90=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/mjo/pay/service/MjonPayVO.java | 27 ++ .../let/mjo/pay/web/MjonPayController.java | 431 +++++++++++++++++- .../sqlmap/let/pay/MjonPay_SQL_mysql.xml | 37 +- .../WEB-INF/jsp/uss/ion/pay/PayDayChart.jsp | 147 ++++-- .../WEB-INF/jsp/uss/ion/pay/PayMonthChart.jsp | 186 +++++++- .../WEB-INF/jsp/uss/ion/pay/RefundList.jsp | 4 +- 6 files changed, 775 insertions(+), 57 deletions(-) diff --git a/src/main/java/itn/let/mjo/pay/service/MjonPayVO.java b/src/main/java/itn/let/mjo/pay/service/MjonPayVO.java index 601e1507..e61daec4 100644 --- a/src/main/java/itn/let/mjo/pay/service/MjonPayVO.java +++ b/src/main/java/itn/let/mjo/pay/service/MjonPayVO.java @@ -207,6 +207,7 @@ public class MjonPayVO extends ComDefaultVO{ private String amtCellSum; //휴대폰 결제 금액 private String amtBankSum; //즉시이체 결제 금액 private String amtVbankSum; //전용계좌 결제 금액 + private String amtAfterPaySum; //전용계좌 결제 금액 private String amtRefundSum; //환불 금액 private String amtTotSum; //결제 금액 총액 @@ -215,6 +216,7 @@ public class MjonPayVO extends ComDefaultVO{ private String amtCellSumTot; //전체 휴대폰 결제 금액 private String amtBankSumTot; //전체 즉시이체 결제 금액 private String amtVbankSumTot; //전체 전용계좌 결제 금액 + private String amtAfterPaySumTot; //전체 전용계좌 결제 금액 private String amtRefundSumTot; //환불 금액 private String amtTotSumTot; //전체 결제 금액 총액 @@ -223,6 +225,7 @@ public class MjonPayVO extends ComDefaultVO{ private String amtCellCnt; //휴대폰 결제 수 private String amtBankCnt; //즉시이체 결제 수 private String amtVbankCnt; //전용계좌 결제 수 + private String amtAfterPayCnt; //전용계좌 결제 수 private String amtRefundCnt; //환불 수 private String amtTotCnt; //결제 수 총수 @@ -1708,6 +1711,30 @@ public class MjonPayVO extends ComDefaultVO{ public void setTrdNo(String trdNo) { this.trdNo = trdNo; } + + public String getAmtAfterPaySum() { + return amtAfterPaySum; + } + + public void setAmtAfterPaySum(String amtAfterPaySum) { + this.amtAfterPaySum = amtAfterPaySum; + } + + public String getAmtAfterPaySumTot() { + return amtAfterPaySumTot; + } + + public void setAmtAfterPaySumTot(String amtAfterPaySumTot) { + this.amtAfterPaySumTot = amtAfterPaySumTot; + } + + public String getAmtAfterPayCnt() { + return amtAfterPayCnt; + } + + public void setAmtAfterPayCnt(String amtAfterPayCnt) { + this.amtAfterPayCnt = amtAfterPayCnt; + } } 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 45abff3a..e753ea0d 100644 --- a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java +++ b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java @@ -5352,7 +5352,7 @@ public class MjonPayController { if("".equals(mjonPayVO.getSearchSortCnd())){ //최초조회시 최신것 조회List mjonPayVO.setSearchSortCnd("regDate"); - mjonPayVO.setSearchSortOrd("desc"); + mjonPayVO.setSearchSortOrd("asc"); } List resultList = mjonPayService.selectPayDayChart(mjonPayVO); @@ -5363,7 +5363,7 @@ public class MjonPayController { mjonPayVO.setRecordCountPerPage(10000); if("".equals(mjonPayVO.getSearchSortCnd())){ //최초조회시 최신것 조회List mjonPayVO.setSearchSortCnd("regDate"); - mjonPayVO.setSearchSortOrd("desc"); + mjonPayVO.setSearchSortOrd("asc"); } List resultList2 = mjonPayService.selectPayDayChart(mjonPayVO); @@ -5373,6 +5373,7 @@ public class MjonPayController { long amtCellSumTot = 0; //전체 휴대폰 결제 금액 long amtBankSumTot = 0; //전체 즉시이체 결제 금액 long amtVbankSumTot = 0; //전체 전용계좌 결제 금액 + long amtAfterPaySumTot = 0; //전체 전용계좌 결제 금액 long amtRefundSumTot = 0; //전체 환불 금액 long amtTotSumTot = 0; //전체 결제 금액 총액 @@ -5382,6 +5383,7 @@ public class MjonPayController { amtCellSumTot += Long.parseLong(item.getAmtCellSum()); amtBankSumTot += Long.parseLong(item.getAmtBankSum()); amtVbankSumTot += Long.parseLong(item.getAmtVbankSum()); + amtAfterPaySumTot += Long.parseLong(item.getAmtAfterPaySum()); amtRefundSumTot += Long.parseLong(item.getAmtRefundSum()); amtTotSumTot += Long.parseLong(item.getAmtTotSum()); } @@ -5391,6 +5393,7 @@ public class MjonPayController { mjonPayVO.setAmtCellSumTot(amtCellSumTot + ""); mjonPayVO.setAmtBankSumTot(amtBankSumTot + ""); mjonPayVO.setAmtVbankSumTot(amtVbankSumTot + ""); + mjonPayVO.setAmtAfterPaySumTot(amtAfterPaySumTot + ""); mjonPayVO.setAmtRefundSumTot(amtRefundSumTot + ""); mjonPayVO.setAmtTotSumTot(amtTotSumTot + ""); @@ -5402,8 +5405,217 @@ public class MjonPayController { return "/uss/ion/pay/PayDayChart"; } + + /* + * 일별 매출 통계 엑셀 다운로드 + * + * */ + @RequestMapping(value= {"/uss/ion/pay/payDayChartExcelDownload.do"}) + public void payDayChartExcelDownload( MjonPayVO mjonPayVO, + HttpServletRequest request, + HttpServletResponse response , + ModelMap model) throws Exception { + + mjonPayVO.setRecordCountPerPage(mjonPayVO.getPageUnit()); + mjonPayVO.setFirstIndex(0); + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ + mjonPayVO.setSiteId(loginVO.getSiteId()); + } + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + SXSSFWorkbook wb = new SXSSFWorkbook(100); + CellStyle style = wb.createCellStyle(); + style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setBorderTop(CellStyle.BORDER_THIN); + Font font = wb.createFont(); + font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold + + Cell cell = null; + Row row = null; + + String fileName ="일별 매출 통계"; + + String sheetTitle = ""; + try{ + List resultList = mjonPayService.selectPayDayChart(mjonPayVO); + { //화면 리스트 + sheetTitle = "일별 매출 통계" ; //제목 + Sheet sheet = wb.createSheet(sheetTitle); + row = sheet.createRow(0); + + 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("간편결제"); + cell.setCellStyle(style); + + cell = row.createCell(6); + cell.setCellValue("후불결제"); + cell.setCellStyle(style); + + cell = row.createCell(7); + cell.setCellValue("환불"); + cell.setCellStyle(style); + + cell = row.createCell(8); + cell.setCellValue("합계(VAT포함)"); + cell.setCellStyle(style); + + long amtCardSumTot = 0; //전체 신용카드 결제 금액 + long amtCellSumTot = 0; //전체 휴대폰 결제 금액 + long amtBankSumTot = 0; //전체 즉시이체 결제 금액 + long amtVbankSumTot = 0; //전체 전용계좌 결제 금액 + long amtSpaySumTot = 0; //전체 간편결제 결제 금액 + long amtAfterPaySumTot = 0; //전체 후불결제 금액 + long amtRefundSumTot = 0; //전체 환불 금액 + long amtTotSumTot = 0; //전체 결제 금액 총액 + + for(int i=0; i < resultList.size(); i++){ + row = sheet.createRow(i+1); + for(int j=0 ; j < 9 ; j++) { + cell = row.createCell(j); + cell.setCellStyle(style); + + String regDate = (resultList.get(i)).getRegDate(); + String amtCardSum = (resultList.get(i)).getAmtCardSum(); + String amtCellSum = (resultList.get(i)).getAmtCellSum(); + String amtBankSum = (resultList.get(i)).getAmtBankSum(); + String amtVbankSum = (resultList.get(i)).getAmtVbankSum(); + String amtSpaySum = (resultList.get(i)).getAmtSpaySum(); + String amtAfterPaySum = (resultList.get(i)).getAmtAfterPaySum(); + String amtRefundSum = (resultList.get(i)).getAmtRefundSum(); + String amtTotSum = (resultList.get(i)).getAmtTotSum(); + + if(j==0) cell.setCellValue(regDate); //결제월 + if(j==1) { + cell.setCellValue(amtCardSum); //신용카드 + amtCardSumTot += Long.parseLong(amtCardSum); + } + if(j==2) { + cell.setCellValue(amtCellSum); //휴대폰 + amtCellSumTot += Long.parseLong(amtCellSum); + } + if(j==3) { + cell.setCellValue(amtBankSum); //즉시이체 + amtBankSumTot += Long.parseLong(amtBankSum); + } + if(j==4) { + cell.setCellValue(amtVbankSum); //전용계좌 + amtVbankSumTot += Long.parseLong(amtVbankSum); + } + if(j==5) { + cell.setCellValue(amtSpaySum); //간편결제 + amtSpaySumTot += Long.parseLong(amtSpaySum); + } + if(j==6) { + cell.setCellValue(amtAfterPaySum); //후불결제 + amtAfterPaySumTot += Long.parseLong(amtAfterPaySum); + } + if(j==7) { + cell.setCellValue(amtRefundSum); //환불 + amtRefundSumTot += Long.parseLong(amtRefundSum); + } + if(j==8) { + cell.setCellValue(amtTotSum); //합계(VAT포함) + amtTotSumTot += Long.parseLong(amtTotSum); + } + + } + } + + //전체 합계 행 추가 + row = sheet.createRow(resultList.size()+1); + cell = row.createCell(0); + cell.setCellStyle(style); + cell.setCellValue("합계"); //결제월 + + cell = row.createCell(1); + cell.setCellStyle(style); + cell.setCellValue(amtCardSumTot); //신용카드 + + cell = row.createCell(2); + cell.setCellStyle(style); + cell.setCellValue(amtCellSumTot); //휴대폰 + + cell = row.createCell(3); + cell.setCellStyle(style); + cell.setCellValue(amtBankSumTot); //즉시이체 + + cell = row.createCell(4); + cell.setCellStyle(style); + cell.setCellValue(amtVbankSumTot); //전용계좌 + + cell = row.createCell(5); + cell.setCellStyle(style); + cell.setCellValue(amtSpaySumTot); //간편결제 + + cell = row.createCell(6); + cell.setCellStyle(style); + cell.setCellValue(amtAfterPaySumTot); //후불결제 + + cell = row.createCell(7); + cell.setCellStyle(style); + cell.setCellValue(amtRefundSumTot); //환불 + + cell = row.createCell(8); + cell.setCellStyle(style); + cell.setCellValue(amtTotSumTot); //합계(VAT포함) + + } + 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) {} + if(wb != null) try { wb.dispose(); wb.close(); } catch(Exception ignore) {} + } + }finally { + // 디스크 적었던 임시파일을 제거합니다. + wb.dispose(); + try { wb.close(); } catch(Exception ignore) {} + } + } + + /** - * 월별 결제 통계 + * 월별 매출 통계 * @param searchVO * @param model * @return "/uss/ion/pay/payDayChart" @@ -5434,7 +5646,7 @@ public class MjonPayController { } if("".equals(mjonPayVO.getSearchSortCnd())){ //최초조회시 최신것 조회List mjonPayVO.setSearchSortCnd("regDate"); - mjonPayVO.setSearchSortOrd("desc"); + mjonPayVO.setSearchSortOrd("asc"); } mjonPayVO.setFirstIndex(0); @@ -5447,6 +5659,7 @@ public class MjonPayController { long amtCellSumTot = 0; //전체 휴대폰 결제 금액 long amtBankSumTot = 0; //전체 즉시이체 결제 금액 long amtVbankSumTot = 0; //전체 전용계좌 결제 금액 + long amtAfterPaySumTot = 0; //전체 후불결제 금액 long amtRefundSumTot = 0; //전체 환불 금액 long amtTotSumTot = 0; //전체 결제 금액 총액 @@ -5456,6 +5669,7 @@ public class MjonPayController { amtCellSumTot += Long.parseLong(item.getAmtCellSum()); amtBankSumTot += Long.parseLong(item.getAmtBankSum()); amtVbankSumTot += Long.parseLong(item.getAmtVbankSum()); + amtAfterPaySumTot += Long.parseLong(item.getAmtAfterPaySum()); amtRefundSumTot += Long.parseLong(item.getAmtRefundSum()); amtTotSumTot += Long.parseLong(item.getAmtTotSum()); } @@ -5465,6 +5679,7 @@ public class MjonPayController { mjonPayVO.setAmtCellSumTot(amtCellSumTot + ""); mjonPayVO.setAmtBankSumTot(amtBankSumTot + ""); mjonPayVO.setAmtVbankSumTot(amtVbankSumTot + ""); + mjonPayVO.setAmtAfterPaySumTot(amtAfterPaySumTot + ""); mjonPayVO.setAmtRefundSumTot(amtRefundSumTot + ""); mjonPayVO.setAmtTotSumTot(amtTotSumTot + ""); @@ -5478,6 +5693,214 @@ public class MjonPayController { return "/uss/ion/pay/PayMonthChart"; } + + /* + * 월별 매출 통계 엑셀 다운로드 + * + * */ + @RequestMapping(value= {"/uss/ion/pay/payMonthChartExcelDownload.do"}) + public void payMonthChartExcelDownload( MjonPayVO mjonPayVO, + HttpServletRequest request, + HttpServletResponse response , + ModelMap model) throws Exception { + + mjonPayVO.setRecordCountPerPage(mjonPayVO.getPageUnit()); + mjonPayVO.setFirstIndex(0); + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + if(null != loginVO && !"super".equals(loginVO.getSiteId())){ + mjonPayVO.setSiteId(loginVO.getSiteId()); + } + // 메모리에 100개의 행을 유지합니다. 행의 수가 넘으면 디스크에 적습니다. + SXSSFWorkbook wb = new SXSSFWorkbook(100); + CellStyle style = wb.createCellStyle(); + style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setBorderTop(CellStyle.BORDER_THIN); + Font font = wb.createFont(); + font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold + + Cell cell = null; + Row row = null; + + String fileName ="월별 매출 통계"; + + String sheetTitle = ""; + try{ + List resultList = mjonPayService.selectPayMonthChart(mjonPayVO); + { //화면 리스트 + sheetTitle = "월별 매출 통계" ; //제목 + Sheet sheet = wb.createSheet(sheetTitle); + row = sheet.createRow(0); + + 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("간편결제"); + cell.setCellStyle(style); + + cell = row.createCell(6); + cell.setCellValue("후불결제"); + cell.setCellStyle(style); + + cell = row.createCell(7); + cell.setCellValue("환불"); + cell.setCellStyle(style); + + cell = row.createCell(8); + cell.setCellValue("합계(VAT포함)"); + cell.setCellStyle(style); + + long amtCardSumTot = 0; //전체 신용카드 결제 금액 + long amtCellSumTot = 0; //전체 휴대폰 결제 금액 + long amtBankSumTot = 0; //전체 즉시이체 결제 금액 + long amtVbankSumTot = 0; //전체 전용계좌 결제 금액 + long amtSpaySumTot = 0; //전체 간편결제 결제 금액 + long amtAfterPaySumTot = 0; //전체 후불결제 금액 + long amtRefundSumTot = 0; //전체 환불 금액 + long amtTotSumTot = 0; //전체 결제 금액 총액 + + for(int i=0; i < resultList.size(); i++){ + row = sheet.createRow(i+1); + for(int j=0 ; j < 9 ; j++) { + cell = row.createCell(j); + cell.setCellStyle(style); + + String regDate = (resultList.get(i)).getRegDate(); + String amtCardSum = (resultList.get(i)).getAmtCardSum(); + String amtCellSum = (resultList.get(i)).getAmtCellSum(); + String amtBankSum = (resultList.get(i)).getAmtBankSum(); + String amtVbankSum = (resultList.get(i)).getAmtVbankSum(); + String amtSpaySum = (resultList.get(i)).getAmtSpaySum(); + String amtAfterPaySum = (resultList.get(i)).getAmtAfterPaySum(); + String amtRefundSum = (resultList.get(i)).getAmtRefundSum(); + String amtTotSum = (resultList.get(i)).getAmtTotSum(); + + if(j==0) cell.setCellValue(regDate); //결제월 + if(j==1) { + cell.setCellValue(amtCardSum); //신용카드 + amtCardSumTot += Long.parseLong(amtCardSum); + } + if(j==2) { + cell.setCellValue(amtCellSum); //휴대폰 + amtCellSumTot += Long.parseLong(amtCellSum); + } + if(j==3) { + cell.setCellValue(amtBankSum); //즉시이체 + amtBankSumTot += Long.parseLong(amtBankSum); + } + if(j==4) { + cell.setCellValue(amtVbankSum); //전용계좌 + amtVbankSumTot += Long.parseLong(amtVbankSum); + } + if(j==5) { + cell.setCellValue(amtSpaySum); //간편결제 + amtSpaySumTot += Long.parseLong(amtSpaySum); + } + if(j==6) { + cell.setCellValue(amtAfterPaySum); //후불결제 + amtAfterPaySumTot += Long.parseLong(amtAfterPaySum); + } + if(j==7) { + cell.setCellValue(amtRefundSum); //환불 + amtRefundSumTot += Long.parseLong(amtRefundSum); + } + if(j==8) { + cell.setCellValue(amtTotSum); //합계(VAT포함) + amtTotSumTot += Long.parseLong(amtTotSum); + } + + } + } + + //총합계 행 추가 + row = sheet.createRow(resultList.size()+1); + cell = row.createCell(0); + cell.setCellStyle(style); + cell.setCellValue("합계"); //결제월 + + cell = row.createCell(1); + cell.setCellStyle(style); + cell.setCellValue(amtCardSumTot); //신용카드 + + cell = row.createCell(2); + cell.setCellStyle(style); + cell.setCellValue(amtCellSumTot); //휴대폰 + + cell = row.createCell(3); + cell.setCellStyle(style); + cell.setCellValue(amtBankSumTot); //즉시이체 + + cell = row.createCell(4); + cell.setCellStyle(style); + cell.setCellValue(amtVbankSumTot); //전용계좌 + + cell = row.createCell(5); + cell.setCellStyle(style); + cell.setCellValue(amtSpaySumTot); //간편결제 + + cell = row.createCell(6); + cell.setCellStyle(style); + cell.setCellValue(amtAfterPaySumTot); //후불결제 + + cell = row.createCell(7); + cell.setCellStyle(style); + cell.setCellValue(amtRefundSumTot); //환불 + + cell = row.createCell(8); + cell.setCellStyle(style); + cell.setCellValue(amtTotSumTot); //합계(VAT포함) + + } + 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) {} + if(wb != null) try { wb.dispose(); wb.close(); } catch(Exception ignore) {} + } + }finally { + // 디스크 적었던 임시파일을 제거합니다. + wb.dispose(); + try { wb.close(); } catch(Exception ignore) {} + } + } + /* @RequestMapping(value= {"/web/main/vacTest.do"}) public void vacTest() throws Exception { diff --git a/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml index c0fa44ab..75d69bfc 100644 --- a/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml @@ -1651,7 +1651,9 @@ ROUND(IFNULL(S6.AMT, 0)) AS amtRefundSum, IFNULL(S6.CNT, 0) AS amtRefundCnt, ROUND(IFNULL(S7.AMT, 0)) AS amtSpaySum, - IFNULL(S7.CNT, 0) AS amtSpayCnt + IFNULL(S7.CNT, 0) AS amtSpayCnt, + ROUND(IFNULL(S8.AMT, 0)) AS amtAfterPaySum, + IFNULL(S8.CNT, 0) AS amtAfterPayCnt FROM (SELECT DATE_FORMAT(t1.REG_DATE, '%Y-%m-%d') AS REG_DATE , SUM(t1.AMT) AS AMT, COUNT(0) AS CNT, @@ -1768,6 +1770,23 @@ ) S7 ON S7.REG_DATE = S1.REG_DATE + LEFT JOIN + ( SELECT DATE_FORMAT(t8.REG_DATE, '%Y-%m-%d') AS REG_DATE , + SUM(t8.AMT) AS AMT, + COUNT(0) AS CNT + FROM MJ_PG t8 + WHERE t8.PG_STATUS = 1 + AND t8.pay_method ='AFTERPAY' + + AND = #ntceBgnde# ]]> + + + AND + + GROUP BY DATE_FORMAT(t8.REG_DATE, '%Y-%m-%d') + ) + S8 + ON S8.REG_DATE = S1.REG_DATE ORDER BY 1=1 ,$searchSortCnd$ @@ -1790,7 +1809,8 @@ ROUND(IFNULL(S4.AMT, 0)) AS amtBankSum, ROUND(IFNULL(S5.AMT, 0)) AS amtVbankSum, ROUND(IFNULL(S6.AMT, 0)) AS amtRefundSum, - ROUND(IFNULL(S7.AMT, 0)) AS amtSpaySum + ROUND(IFNULL(S7.AMT, 0)) AS amtSpaySum, + ROUND(IFNULL(S8.AMT, 0)) AS amtAfterPaySum FROM (SELECT DATE_FORMAT(t1.REG_DATE, '%Y-%m') AS REG_DATE , SUM(t1.AMT) AS AMT, t1.moid AS MOID @@ -1879,6 +1899,19 @@ ) S7 ON S7.REG_DATE = S1.REG_DATE + LEFT JOIN + ( SELECT DATE_FORMAT(t8.REG_DATE, '%Y-%m') AS REG_DATE , + SUM(t8.AMT) AS AMT + FROM MJ_PG t8 + WHERE t8.PG_STATUS = 1 + AND t8.pay_method ='AFTERPAY' + + AND + + GROUP BY DATE_FORMAT(t8.REG_DATE, '%Y-%m') + ) + S8 + ON S8.REG_DATE = S1.REG_DATE ORDER BY 1=1 ,$searchSortCnd$ diff --git a/src/main/webapp/WEB-INF/jsp/uss/ion/pay/PayDayChart.jsp b/src/main/webapp/WEB-INF/jsp/uss/ion/pay/PayDayChart.jsp index d0eaef2e..73e41db8 100644 --- a/src/main/webapp/WEB-INF/jsp/uss/ion/pay/PayDayChart.jsp +++ b/src/main/webapp/WEB-INF/jsp/uss/ion/pay/PayDayChart.jsp @@ -105,6 +105,44 @@ function fnSetCalMonth(val) { form.ntceEnddeYYYMMDD.value = year + "-" + month + "-" + date; } + +function fnGoPayList(payType, payDate){ + + var form = document.payParamForm; + form.searchCondition2.value = payType; + form.searchStartDate.value= payDate; + form.searchEndDate.value= payDate; + + form.action=""; + form.submit(); + +} + +function fnGoPayRefundList(refundType, refundDate){ + + var form = document.payRefParamForm; + + form.searchCondition2.value = refundType; + form.searchStartDate.value= refundDate; + form.searchEndDate.value= refundDate; + + form.action=""; + form.submit(); + +} + +function payDayExcelDownload(){ + + var form = document.payExcelDwnForm; + + $('#excelNtceBgnde').val($('#ntceBgndeYYYMMDD').val()) ; + $('#excelNtceEndde').val($('#ntceEnddeYYYMMDD').val()) ; + + form.action=""; + form.submit(); + +} +