diff --git a/src/main/java/itn/com/cmm/util/PdfUtil.java b/src/main/java/itn/com/cmm/util/PdfUtil.java index bc205360..a93216c0 100644 --- a/src/main/java/itn/com/cmm/util/PdfUtil.java +++ b/src/main/java/itn/com/cmm/util/PdfUtil.java @@ -1,12 +1,22 @@ package itn.com.cmm.util; +import java.awt.Image; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.util.UUID; +import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.io.FileUtils; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.PDPageContentStream; +import org.apache.pdfbox.pdmodel.common.PDRectangle; +import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; + /** * * @author : 이호영 @@ -88,4 +98,53 @@ public final class PdfUtil { } + public static String makeImgPdf(String imgDir,String extsn) throws Exception { + PDDocument doc = new PDDocument(); + String uuid = UUID.randomUUID().toString(); + try { + File copy1 = new File(imgDir); + File copy2 = new File(imgDir + "." +extsn); + + + FileUtils.copyFile(copy1, copy2); + File imgFiles = new File(imgDir + "." +extsn); + Image img = ImageIO.read(imgFiles); + + PDPage page = new PDPage(PDRectangle.A4); + doc.addPage(page); + + PDImageXObject pdImage = PDImageXObject.createFromFile(imgFiles.toString(), doc); + int pageWidth = Math.round(page.getCropBox().getWidth()); + int pageHeight = Math.round(page.getCropBox().getHeight()); + + float imgRatio = 1; + if ( pageWidth < img.getWidth(null)) { + imgRatio = (float)img.getWidth(null) / (float)pageWidth; + } + + int imgWidth = Math.round(img.getWidth(null) / imgRatio); + int imgHeight = Math.round(img.getHeight(null) / imgRatio); + + int pageWidthPosition = (pageWidth - imgWidth) / 2; + int pageHeightPosition = (pageWidth - imgWidth) / 2; + + PDPageContentStream contents = new PDPageContentStream(doc, page); + contents.drawImage(pdImage, pageWidthPosition, pageHeightPosition, imgWidth, imgHeight); + contents.close(); + doc.save("/usr/local/tomcat/file/sht/pdf/" + uuid + ".pdf"); + + } catch (Exception e) { + System.out.println("Exception! : " + e.getMessage()); + } + + try { + doc.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + return uuid + ".pdf"; + } + + } diff --git a/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java b/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java index d0a3d9a4..2c9f7e60 100644 --- a/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java +++ b/src/main/java/itn/com/cmm/web/EgovFileDownloadController.java @@ -452,4 +452,75 @@ public class EgovFileDownloadController { } } + + /** + * 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다. + * + * @param commandMap + * @param response + * @throws Exception + */ + @RequestMapping(value = "/cmm/fms/FileDowntest.do") + public void FileDowntest(@RequestParam Map commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception { + + String fileNm = (String) commandMap.get("fileNm"); + try { + + + File uFile = new File("/usr/local/tomcat/file/sht/pdf/", fileNm); + long fSize = uFile.length(); + + if (fSize > 0) { + String mimetype = "application/x-msdownload"; + + response.setContentType(mimetype); + setDisposition(fileNm, request, response); + //response.setContentLength(fSize); + + BufferedInputStream in = null; + BufferedOutputStream out = null; + + try { + in = new BufferedInputStream(new FileInputStream(uFile)); + out = new BufferedOutputStream(response.getOutputStream()); + + FileCopyUtils.copy(in, out); + out.flush(); + } catch (Exception ex) { + LOGGER.debug("IGNORED: {}", ex.getMessage()); + } finally { + if (in != null) { + try { + in.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + if (out != null) { + try { + out.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORED: {}", ignore.getMessage()); + } + } + } + + } else { + response.setContentType("application/x-msdownload"); + + PrintWriter printwriter = response.getWriter(); + printwriter.println(""); + printwriter.println("


Could not get file name:
" + fileNm + "

"); + printwriter.println("


Back

"); + printwriter.println("


© webAccess"); + printwriter.println(""); + printwriter.flush(); + printwriter.close(); + } + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + } + } diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java b/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java index dc4d986a..f9fe0495 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/service/MjonKakaoATService.java @@ -18,6 +18,9 @@ public interface MjonKakaoATService { //알림톡 전송내역 상세 KakaoVO selectMjonKakaoATVO(KakaoVO mjonKakaoATVO) throws Exception; + // 알림톡 금일/금월/금년 통계 + KakaoVO selectMjonKakaoAtThisSum(KakaoVO mjonKakaoATVO) throws Exception; + //알림톡 예약 발송 리스트 List selectReserveMjonKakaoATGroupList(KakaoVO searchVO) throws Exception; diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java index 95a59740..1ff99bc3 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATDAO.java @@ -31,6 +31,11 @@ public class MjonKakaoATDAO extends EgovAbstractDAO { return (KakaoVO) select("mjonKakaoATDAO.selectMjonKakaoATVO", p_mjonKakaoATVO); } + // 알림톡 금일/금월/금년 통계 + public KakaoVO selectMjonKakaoAtThisSum(KakaoVO p_mjonKakaoATVO) throws Exception{ + return (KakaoVO) select("mjonKakaoATDAO.selectMjonKakaoAtThisSum", p_mjonKakaoATVO); + } + @SuppressWarnings("unchecked") public List selectReserveMjonKakaoATGroupList(KakaoVO p_mjonKakaoATVO) throws Exception{ return (List)list("mjonKakaoATDAO.selectReserveMjonKakaoATGroupList", p_mjonKakaoATVO); diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java index fb8b4cbb..f0686fae 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/service/impl/MjonKakaoATServiceImpl.java @@ -125,6 +125,16 @@ public class MjonKakaoATServiceImpl extends EgovAbstractServiceImpl implements M return result; } + // 알림톡 금일/금월/금년 통계 + @Override + public KakaoVO selectMjonKakaoAtThisSum(KakaoVO p_mjonKakaoATVO) throws Exception { + KakaoVO result = new KakaoVO(); + + result = mjonKakaoATDAO.selectMjonKakaoAtThisSum(p_mjonKakaoATVO); + + return result; + } + @Override public List selectReserveMjonKakaoATGroupList(KakaoVO p_mjonKakaoATVO) throws Exception { return mjonKakaoATDAO.selectReserveMjonKakaoATGroupList(p_mjonKakaoATVO); diff --git a/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java b/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java index 7ddaa800..24bca3cb 100644 --- a/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java +++ b/src/main/java/itn/let/kakao/admin/kakaoAt/web/MjonKakaoATController.java @@ -13,6 +13,7 @@ import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.HandlerMapping; +import org.springframework.web.servlet.ModelAndView; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; @@ -262,6 +263,33 @@ public class MjonKakaoATController { } + // 알림톡 금일/금월/금년 통계 + @RequestMapping(value = "/uss/umt/user/selectMjonKakaoAtThisSumAjax.do") + public ModelAndView DashBoardAdminLogAjax( + @ModelAttribute("kakaoVO") KakaoVO kakaoVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + boolean isSuccess = true; + String msg = ""; + KakaoVO result = null; + + try { + result = mjonKakaoATService.selectMjonKakaoAtThisSum(kakaoVO); + } + catch(Exception e) { + isSuccess = false; + msg = e.getMessage(); + } + + modelAndView.addObject("result", result); + modelAndView.addObject("isSuccess", isSuccess); + modelAndView.addObject("msg", msg); + + return modelAndView; + } + /** * 알림톡 상세 전송 리스트 * @param searchVO diff --git a/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java b/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java index ba2e51a0..c2a03178 100644 --- a/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java +++ b/src/main/java/itn/let/kakao/kakaoComm/KakaoVO.java @@ -238,6 +238,61 @@ public class KakaoVO extends MjonMsgVO{ private String imageTitle; //친구톡 이미지 제목 private String imageLink; //친구톡 이미지 클릭시 링크 주소 private String jsonText; //json 파일 생성시 내용 저장(혹시 몰라서 내용도 별도로 저장함) + + private String successDay; + private String successMonth; + private String successYear; + private String successCntDay; + private String successCntMonth; + private String successCntYear; + + public String getSuccessDay() { + return successDay; + } + + public void setSuccessDay(String successDay) { + this.successDay = successDay; + } + + public String getSuccessMonth() { + return successMonth; + } + + public void setSuccessMonth(String successMonth) { + this.successMonth = successMonth; + } + + public String getSuccessYear() { + return successYear; + } + + public void setSuccessYear(String successYear) { + this.successYear = successYear; + } + + public String getSuccessCntDay() { + return successCntDay; + } + + public void setSuccessCntDay(String successCntDay) { + this.successCntDay = successCntDay; + } + + public String getSuccessCntMonth() { + return successCntMonth; + } + + public void setSuccessCntMonth(String successCntMonth) { + this.successCntMonth = successCntMonth; + } + + public String getSuccessCntYear() { + return successCntYear; + } + + public void setSuccessCntYear(String successCntYear) { + this.successCntYear = successCntYear; + } public static long getSerialversionuid() { return serialVersionUID; diff --git a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java index 8e0e13e4..f2ced2c4 100644 --- a/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java +++ b/src/main/java/itn/let/mjo/msg/web/MjonMsgController.java @@ -1,5 +1,6 @@ package itn.let.mjo.msg.web; +import java.io.File; import java.io.OutputStream; import java.net.URL; import java.text.SimpleDateFormat; @@ -13,7 +14,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Random; -import java.util.stream.Collector; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -52,6 +52,7 @@ import itn.com.cmm.service.EgovFileMngService; import itn.com.cmm.service.EgovFileMngUtil; import itn.com.cmm.service.FileVO; import itn.com.cmm.util.MJUtil; +import itn.com.cmm.util.PdfUtil; import itn.com.cmm.util.RedirectUrlMaker; import itn.com.cmm.util.StringUtil; import itn.com.utl.fcc.service.EgovStringUtil; @@ -158,6 +159,9 @@ public class MjonMsgController { @Resource(name = "egovMberCmpHstService") private EgovMberCmpHstService egovMberCmpHstService; + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + //배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"} private String[][] sendMsgExcelValue ={ {"0" ,"번호" , "1" , "" }, @@ -5038,6 +5042,26 @@ public class MjonMsgController { return "/uss/ion/msg/weekendCsWork2"; } + + @RequestMapping(value = {"/uss/ion/msg/pdfView.do"}) + public String pdfView(FileVO fileVO, ModelMap model) throws Exception { + + FileVO fvo = fileService.selectFileInf(fileVO); + String path = ""; + + if(fvo != null) { + if("pdf".equals(fvo.getFileExtsn())) { + path = "/cmm/fms/FileDown.do?atchFileId="+ fvo.getAtchFileId() + "&fileSn=" + fvo.getFileSn(); + }else { + String storePath = fvo.getFileStreCours() + fvo.getStreFileNm(); + path = "/cmm/fms/FileDowntest.do?fileNm="+ PdfUtil.makeImgPdf(storePath, fvo.getFileExtsn()); + } + } + + model.addAttribute("pdfPath", path); + + return "/uss/ion/msg/pdfView"; + } diff --git a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java index d83b6d70..864ffc5b 100644 --- a/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java +++ b/src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java @@ -2164,6 +2164,21 @@ public class MjonMsgCampainDataController { System.out.println("mjonMsgVO.getMsgType2() ::: "+mjonMsgVO.getMsgType()); + // MSG_TYPE 다시계산 + if(mjonMsgVO.getFileName1() != null) { + mjonMsgVO.setMsgType("6"); + }else { + if(FrBytes < 2000) { + if(FrBytes > 90) {// 90Byte 초과시 장문 + mjonMsgVO.setMsgType("6"); + }else {// 그외 단문 + mjonMsgVO.setMsgType("4"); + } + } + } + + System.out.println("mjonMsgVO.getMsgType3() ::: "+mjonMsgVO.getMsgType()); + //각 문자 종류별 단가 셋팅해주기 float tmpEachPrice = 0; if(mjonMsgVO.getMsgType().equals("4")) { diff --git a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java index 8e9e44bd..2b09674e 100644 --- a/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java +++ b/src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java @@ -2316,6 +2316,21 @@ public class MjonMsgDataController { System.out.println("mjonMsgVO.getMsgType2() ::: "+mjonMsgVO.getMsgType()); + // MSG_TYPE 다시계산 + if(mjonMsgVO.getFileName1() != null) { + mjonMsgVO.setMsgType("6"); + }else { + if(FrBytes < 2000) { + if(FrBytes > 90) {// 90Byte 초과시 장문 + mjonMsgVO.setMsgType("6"); + }else {// 그외 단문 + mjonMsgVO.setMsgType("4"); + } + } + } + + System.out.println("mjonMsgVO.getMsgType3() ::: "+mjonMsgVO.getMsgType()); + //각 문자 종류별 단가 셋팅해주기 float tmpEachPrice = 0; if(mjonMsgVO.getMsgType().equals("4")) { diff --git a/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml index 1b556b37..6b13e13f 100644 --- a/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/kakao/MjonKakaoATData_SQL_mysql.xml @@ -1043,6 +1043,47 @@ + + +