Browse Source

스웨거 추가, 클래스 분리

pull/4/head
lkd9125 1 year ago
parent
commit
05c5aff86c
  1. 6
      pav-server/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java
  2. 44
      pav-server/src/main/java/com/palnet/biz/api/bas/flight/template/service/TemplateService.java
  3. 55
      pav-server/src/main/java/com/palnet/comn/utils/PdfUtils.java

6
pav-server/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java

@ -408,9 +408,11 @@ public class BasFlightController {
} }
@GetMapping("/laanc-pdf/download") @GetMapping("/laanc-pdf/download")
public void downloadPDF(int fileSno, HttpServletResponse response){ @Tag(name = "비행계획서", description = "비행계획서 관련 API")
@ApiOperation(value = "Laanc 공문 다운로드")
public void downloadPDF(int fileSno){
templateService.fileDownload(fileSno, response); templateService.fileDownload(fileSno);
} }
} }

44
pav-server/src/main/java/com/palnet/biz/api/bas/flight/template/service/TemplateService.java

@ -111,48 +111,12 @@ public class TemplateService {
* @param fileSno * @param fileSno
* @param response * @param response
*/ */
public void fileDownload(int fileSno, HttpServletResponse response) { public void fileDownload(int fileSno) {
ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null);
if(comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND); if(comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND);
InputStream inputStream = null; pdfUtils.fileDownload(comFileBas);
OutputStream outputStream = null;
try {
File pdfFile = new File(comFileBas.getFilePath() + comFileBas.getFileSaveNm());
inputStream = new FileInputStream(pdfFile);
String fileOriName = comFileBas.getFileOriNm();
fileOriName = URLEncoder.encode(comFileBas.getFileOriNm(), "UTF-8");
response.setContentType("application/octet-stream");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileOriName + "\"");
response.setContentLengthLong(Long.parseLong(comFileBas.getFileSize()));
response.setStatus(HttpServletResponse.SC_OK);
outputStream = response.getOutputStream();
byte[] buffer = new byte[1024]; //1KB 설정
int length;
while((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
Objects.requireNonNull(outputStream).flush();
outputStream.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }

55
pav-server/src/main/java/com/palnet/comn/utils/PdfUtils.java

@ -1,16 +1,22 @@
package com.palnet.comn.utils; package com.palnet.comn.utils;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringReader; import java.io.StringReader;
import java.net.URLEncoder;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.time.Instant; import java.time.Instant;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Objects;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -35,13 +41,16 @@ import com.itextpdf.tool.xml.pipeline.css.CssResolverPipeline;
import com.itextpdf.tool.xml.pipeline.end.PdfWriterPipeline; import com.itextpdf.tool.xml.pipeline.end.PdfWriterPipeline;
import com.itextpdf.tool.xml.pipeline.html.HtmlPipeline; import com.itextpdf.tool.xml.pipeline.html.HtmlPipeline;
import com.itextpdf.tool.xml.pipeline.html.HtmlPipelineContext; import com.itextpdf.tool.xml.pipeline.html.HtmlPipelineContext;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.bas.flight.template.vo.PdfBaseVO; import com.palnet.biz.api.bas.flight.template.vo.PdfBaseVO;
import com.palnet.biz.jpa.entity.ComFileBas; import com.palnet.biz.jpa.entity.ComFileBas;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
@Component @Component
public class PdfUtils { public class PdfUtils {
@Autowired
private HttpServletResponse response;
@Autowired @Autowired
private TemplateEngine templateEngine; private TemplateEngine templateEngine;
@ -166,4 +175,48 @@ public class PdfUtils {
return result; return result;
} }
/**
* 파일 Download
* @param comFileBas
*/
public void fileDownload(ComFileBas comFileBas){
InputStream inputStream = null;
OutputStream outputStream = null;
try {
File pdfFile = new File(comFileBas.getFilePath() + comFileBas.getFileSaveNm());
inputStream = new FileInputStream(pdfFile);
String fileOriName = comFileBas.getFileOriNm();
fileOriName = URLEncoder.encode(comFileBas.getFileOriNm(), "UTF-8");
response.setContentType("application/octet-stream");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileOriName + "\"");
response.setContentLengthLong(Long.parseLong(comFileBas.getFileSize()));
response.setStatus(HttpServletResponse.SC_OK);
outputStream = response.getOutputStream();
byte[] buffer = new byte[1024]; //1KB 설정
int length;
while((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
Objects.requireNonNull(outputStream).flush();
outputStream.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }

Loading…
Cancel
Save