문자 / 알림톡 전송결과 코드 엑셀다운로드 Service 로 로직 변경
This commit is contained in:
parent
d54b4613c6
commit
856bc61f15
@ -90,8 +90,8 @@ public class MjonKakaoSendResultController {
|
||||
* @return ""
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value= {"/uss/ion/kakaoat/sendresult/KakaoResultCodeExcelDownload.do"})
|
||||
public void kakaoResultCodeExcelDownload( MjonMsgResultCodeVO mjonMsgResultCodeVO,
|
||||
@RequestMapping(value= {"/uss/ion/kakaoat/sendresult/KakaoResultCodeExcelDownload_back.do"})
|
||||
public void kakaoResultCodeExcelDownload_back( MjonMsgResultCodeVO mjonMsgResultCodeVO,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response ,
|
||||
ModelMap model) throws Exception {
|
||||
@ -177,6 +177,30 @@ public class MjonKakaoSendResultController {
|
||||
try { wb.close(); } catch(Exception ignore) {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 카카오 알림톡 발송 결과 코드 엑셀 다운로드
|
||||
* @param MjonMsgResultCodeVO
|
||||
* @param model
|
||||
* @return ""
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value= {"/uss/ion/kakaoat/sendresult/KakaoResultCodeExcelDownload.do"})
|
||||
public void kakaoResultCodeExcelDownload( MjonMsgResultCodeVO mjonMsgResultCodeVO,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response) throws Exception {
|
||||
|
||||
|
||||
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
if(null != loginVO && !"super".equals(loginVO.getSiteId())){
|
||||
mjonMsgResultCodeVO.setSiteId(loginVO.getSiteId());
|
||||
}
|
||||
|
||||
//발송결과 코드 엑셀다운로드 요청
|
||||
String menuType = "Kakao";
|
||||
mjonMsgService.getMsgResultCodeExcelDownload(menuType, kakaoResultCodeExcelValue, mjonMsgResultCodeVO, request, response);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@ -2,6 +2,9 @@ package itn.let.mjo.msg.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import itn.let.mjo.reservmsg.service.MjonResvMsgVO;
|
||||
|
||||
public interface MjonMsgService {
|
||||
@ -236,4 +239,8 @@ public interface MjonMsgService {
|
||||
List<MjonMsgVO> selectMjonHoliMsgList(MjonMsgVO mjonMsgVO) throws Exception;
|
||||
|
||||
void updateHoliMsgResultYn(MjonMsgVO mjonMsgVO) throws Exception;
|
||||
|
||||
//관리자 문자/알림톡 전송 결과 코드 엑셀다운로드
|
||||
void getMsgResultCodeExcelDownload(String menuType, String[][] msgResultCodeExcelValue, MjonMsgResultCodeVO mjonMsgResultCodeVO, HttpServletRequest request, HttpServletResponse response);
|
||||
|
||||
}
|
||||
|
||||
@ -1,13 +1,22 @@
|
||||
package itn.let.mjo.msg.service.impl;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.Font;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
@ -1180,4 +1189,98 @@ public class MjonMsgServiceImpl extends EgovAbstractServiceImpl implements MjonM
|
||||
mjonMsgDAO.updateHoliMsgResultYn(mjonMsgVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getMsgResultCodeExcelDownload(String menuType, String[][] msgResultCodeExcelValue, MjonMsgResultCodeVO mjonMsgResultCodeVO, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
mjonMsgResultCodeVO.setRecordCountPerPage(100000);
|
||||
mjonMsgResultCodeVO.setFirstIndex(0);
|
||||
|
||||
// 메모리에 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 = "문자 발송 결과 코드 리스트(중계사별)";
|
||||
|
||||
if(menuType.equals("Kakao")) {
|
||||
fileName ="카카오 알림톡 발송 결과 코드 리스트(중계사별)";
|
||||
sheetTitle = "카카오 알림톡 발송 결과 코드 리스트(중계사별)" ;
|
||||
}
|
||||
|
||||
try{
|
||||
List<MjonMsgResultCodeVO> resultList = new ArrayList<MjonMsgResultCodeVO>();
|
||||
|
||||
if(menuType.equals("Msg")) {
|
||||
resultList = mjonMsgDAO.selectMsgResultCodeListPageing(mjonMsgResultCodeVO);
|
||||
}else{
|
||||
mjonMsgResultCodeVO.setAgentCode("04");
|
||||
resultList = mjonMsgDAO.selectKakaoResultCodeListPageing(mjonMsgResultCodeVO);
|
||||
}
|
||||
|
||||
{ //화면 리스트
|
||||
|
||||
Sheet sheet = wb.createSheet(sheetTitle);
|
||||
row = sheet.createRow(0);
|
||||
for(int i=0 ; i < msgResultCodeExcelValue.length ; i++) {
|
||||
cell = row.createCell(i);
|
||||
cell.setCellStyle(style);
|
||||
cell.setCellValue(msgResultCodeExcelValue[i][1]);
|
||||
}
|
||||
|
||||
for(int i=0; i < resultList.size(); i++){
|
||||
row = sheet.createRow(i+1);
|
||||
for(int j=0 ; j < msgResultCodeExcelValue.length ; j++) {
|
||||
cell = row.createCell(j);
|
||||
cell.setCellStyle(style);
|
||||
|
||||
if(j==0) cell.setCellValue(i+1); //번호
|
||||
if(j==1) cell.setCellValue(resultList.get(i).getAgentCodeTxt()); //전송사 코드
|
||||
if(j==2) cell.setCellValue(resultList.get(i).getResultCode()); //결과코드1
|
||||
if(j==3) cell.setCellValue(resultList.get(i).getResultCode2()); //결과코드2
|
||||
if(j==4) cell.setCellValue(resultList.get(i).getResultCodeTxt()); //코드설명
|
||||
if(j==5) cell.setCellValue(resultList.get(i).getResultCodeNm()); //코드이름
|
||||
if(j==6) cell.setCellValue(resultList.get(i).getLastUpdtPnttm()); //등록일자
|
||||
}
|
||||
}
|
||||
}
|
||||
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) {}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -12,7 +12,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -40,8 +39,6 @@ import org.springframework.web.servlet.HandlerMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.hanju.util.Authentication;
|
||||
|
||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import itn.com.cmm.ComDefaultCodeVO;
|
||||
@ -72,14 +69,11 @@ import itn.let.mjo.msgsent.service.MjonMsgRecvTestService;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgRecvTestVO;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentTestService;
|
||||
import itn.let.mjo.msgsent.service.MjonMsgSentTestVO;
|
||||
import itn.let.mjo.pay.service.MjonPayService;
|
||||
import itn.let.mjo.payva.service.VacsVactService;
|
||||
import itn.let.mjo.payva.service.VacsVactVO;
|
||||
import itn.let.mjo.reservmsg.service.MjonReservMsgService;
|
||||
import itn.let.mjo.reservmsg.service.MjonResvMsgVO;
|
||||
import itn.let.sts.com.StatsVO;
|
||||
import itn.let.uat.uia.service.AuthCertVO;
|
||||
import itn.let.uat.uia.web.ClientIP;
|
||||
import itn.let.uat.uia.web.EmailVO;
|
||||
import itn.let.uat.uia.web.SendLogVO;
|
||||
import itn.let.uat.uia.web.SendMail;
|
||||
@ -2701,88 +2695,17 @@ public class MjonMsgController {
|
||||
@RequestMapping(value= {"/uss/ion/msg/MsgResultCodeExcelDownload.do"})
|
||||
public void msgResultCodeExcelDownload( MjonMsgResultCodeVO mjonMsgResultCodeVO,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response ,
|
||||
ModelMap model) throws Exception {
|
||||
HttpServletResponse response ) throws Exception {
|
||||
|
||||
mjonMsgResultCodeVO.setRecordCountPerPage(100000);
|
||||
mjonMsgResultCodeVO.setFirstIndex(0);
|
||||
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
|
||||
if(null != loginVO && !"super".equals(loginVO.getSiteId())){
|
||||
mjonMsgResultCodeVO.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 menuType = "Msg";
|
||||
mjonMsgService.getMsgResultCodeExcelDownload(menuType, msgResultCodeExcelValue, mjonMsgResultCodeVO, request, response);
|
||||
|
||||
String sheetTitle = "";
|
||||
try{
|
||||
//List<MjonMsgVO> resultList = mjonMsgService.selectMjonMsgGroupList(mjonMsgVO);
|
||||
List<MjonMsgResultCodeVO> resultList = mjonMsgService.selectMsgResultCodeListPageing(mjonMsgResultCodeVO);
|
||||
{ //화면 리스트
|
||||
sheetTitle = "문자 발송 결과 코드 리스트(중계사별)" ; //제목
|
||||
Sheet sheet = wb.createSheet(sheetTitle);
|
||||
row = sheet.createRow(0);
|
||||
for(int i=0 ; i < msgResultCodeExcelValue.length ; i++) {
|
||||
cell = row.createCell(i);
|
||||
cell.setCellStyle(style);
|
||||
cell.setCellValue(msgResultCodeExcelValue[i][1]);
|
||||
}
|
||||
|
||||
for(int i=0; i < resultList.size(); i++){
|
||||
row = sheet.createRow(i+1);
|
||||
for(int j=0 ; j < msgResultCodeExcelValue.length ; j++) {
|
||||
cell = row.createCell(j);
|
||||
cell.setCellStyle(style);
|
||||
|
||||
if(j==0) cell.setCellValue(i+1); //번호
|
||||
if(j==1) cell.setCellValue(resultList.get(i).getAgentCodeTxt()); //전송사 코드
|
||||
if(j==2) cell.setCellValue(resultList.get(i).getResultCode()); //결과코드1
|
||||
if(j==3) cell.setCellValue(resultList.get(i).getResultCode2()); //결과코드2
|
||||
if(j==4) cell.setCellValue(resultList.get(i).getResultCodeTxt()); //코드설명
|
||||
if(j==5) cell.setCellValue(resultList.get(i).getResultCodeNm()); //코드이름
|
||||
if(j==6) cell.setCellValue(resultList.get(i).getLastUpdtPnttm()); //등록일자
|
||||
}
|
||||
}
|
||||
}
|
||||
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) {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user