Browse Source

导出word开发

anderx 3 years ago
parent
commit
5400917b4c

+ 13 - 23
src/main/java/com/goafanti/RD/service/impl/RDServiceImpl.java

@@ -157,41 +157,31 @@ public class RDServiceImpl extends BaseMybatisDao<RdDetailsMapper> implements RD
 
     @Override
     public void pushDownloadDetailsWord(Long id, HttpServletResponse response) {
-        OutRdDetails bo = rdDetailsMapper.details(id);
-        //        rdDetailsMapper.updateBrowseOrDownload(id, 1);
-        OutWordRdDetails data =new OutWordRdDetails();
-        BeanUtils.copyProperties(bo,data);
-        if (bo.getRdStartStr()!=null&&bo.getRdEndStr()!=null){
-            data.setStartEndTime(bo.getRdStartStr()+"~"+bo.getRdEndStr());
-        }else {
-            data.setStartEndTime("");
-        }
-        String tableName = data.getRdName();
-        String realFileName = uploadPath+"/tmp/"+new Date().getTime() + ".doc";
-        String attName = data.getRdName()+new Date().getTime() + ".doc";
-        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+        OutWordRdDetails data = getOutWordRdDetails(id);
+
         WordUtils wordUtils=new WordUtils();
-        wordUtils.pushWord(data,response,tableName,attName,realFileName);
+        wordUtils.pushWord(data,response,uploadPath);
     }
 
 
     @Override
     public void pushDownloadDetailsPDF(Long id, HttpServletResponse response) {
+        OutWordRdDetails data = getOutWordRdDetails(id);
+        PDFUtils pdfUtils=new PDFUtils();
+        pdfUtils.pushPDF(data,response,uploadPath);
+    }
+
+    private OutWordRdDetails getOutWordRdDetails(Long id) {
         OutRdDetails bo = rdDetailsMapper.details(id);
 //        rdDetailsMapper.updateBrowseOrDownload(id, 1);
         OutWordRdDetails data = new OutWordRdDetails();
         BeanUtils.copyProperties(bo, data);
-        if (bo.getRdStartStr()!=null&&bo.getRdEndStr()!=null){
-            data.setStartEndTime(bo.getRdStartStr()+"~"+bo.getRdEndStr());
-        }else {
+        if (bo.getRdStartStr() != null && bo.getRdEndStr() != null) {
+            data.setStartEndTime(bo.getRdStartStr() + "~" + bo.getRdEndStr());
+        } else {
             data.setStartEndTime("");
         }
-        String tableName = data.getRdName();
-        String realFileName = uploadPath+"/tmp/"+new Date().getTime() + ".pdf";
-        String attName = data.getRdName()+new Date().getTime() + ".pdf";
-        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-        PDFUtils pdfUtils=new PDFUtils();
-        pdfUtils.pushPDF(data,response,tableName,attName,realFileName);
+        return data;
     }
 
 

+ 7 - 3
src/main/java/com/goafanti/common/utils/pdf/PDFUtils.java

@@ -7,20 +7,24 @@ import com.itextpdf.text.Font;
 import com.itextpdf.text.pdf.BaseFont;
 import com.itextpdf.text.pdf.PdfWriter;
 import org.apache.pdfbox.pdmodel.PDDocument;
+import org.springframework.http.MediaType;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.awt.*;
 import java.io.*;
+import java.util.Date;
 
 public class PDFUtils {
 
 
-    public  void pushPDF(OutWordRdDetails data, HttpServletResponse response,String tableName,String attName,String realFileName) {
-
+    public  void pushPDF(OutWordRdDetails data, HttpServletResponse response,String uploadPath) {
+        String attName = data.getRdName()+new Date().getTime() + ".pdf";
+        String realFileName = uploadPath+"/tmp/"+new Date().getTime() + ".pdf";
+        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
         Document document=new Document();
         try {
-            FileUtils.setAttachmentResponseHeader(response, tableName,attName);
+            FileUtils.setAttachmentResponseHeader(response, data.getRdName(),attName);
             FileOutputStream outputStream = new FileOutputStream(realFileName);
             PdfWriter.getInstance(document, outputStream);
             document.open();

+ 5 - 42
src/main/java/com/goafanti/common/utils/word/WordUtils.java

@@ -1,19 +1,12 @@
 package com.goafanti.common.utils.word;
 
-import com.alibaba.fastjson.JSON;
 import com.goafanti.RD.bo.OutWordRdDetails;
-import com.goafanti.common.constant.AFTConstants;
-import com.goafanti.common.utils.DateUtils;
-import com.goafanti.common.utils.StringUtils;
 import com.goafanti.common.utils.excel.FileUtils;
 
 
-import com.goafanti.common.utils.pdf.PDFUtils;
 import com.lowagie.text.*;
 import com.lowagie.text.Font;
-import com.lowagie.text.pdf.BaseFont;
 import com.lowagie.text.rtf.RtfWriter2;
-import com.sushengren.easyword.EasyWord;
 import org.springframework.http.MediaType;
 
 
@@ -22,47 +15,17 @@ import javax.servlet.http.HttpServletResponse;
 import java.awt.*;
 import java.io.*;
 import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
 
 public class WordUtils {
 
 
-    /**
-     * 导出word文件
-     */
-    public void download(HttpServletResponse response, String tableName, Object data,String uploadPath) throws IOException {
 
-        if(StringUtils.isEmpty(tableName) ){
-            return;
-        }
-
-        try {
-            String realFileName = tableName+DateUtils.parseDateToStr(AFTConstants.YYYYMMDDHHMMSS, new Date())+".docx";
-            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, tableName,realFileName);
-            String url=uploadPath+"/tmp/RD_details_word_template.docx";
-            //获取resources下目中录模板文件
-//            File file = new ClassPathResource(url).getFile();
-            File file=new File(url);
-            //以流的形式 获取resources下目中录模板文件
-//            InputStream file = new ClassPathResource(url).getInputStream();
-            EasyWord.Builder of = EasyWord.of(file);
-            of.doWrite(data);
-            of.toOutputStream(response.getOutputStream());
-        } catch (Exception e) {
-            // 重置response
-            response.reset();
-            response.setContentType("application/json");
-            response.setCharacterEncoding("utf-8");
-            Map<String, String> map = new HashMap<>();
-            map.put("status", "failure");
-            map.put("message", "下载文件失败" + e.getMessage());
-            response.getWriter().println(JSON.toJSONString(map));
-        }
-    }
 
-    public void pushWord(OutWordRdDetails data, HttpServletResponse response, String tableName, String attName, String realFileName) {
+    public void pushWord(OutWordRdDetails data, HttpServletResponse response,  String uploadPath) {
+        String tableName = data.getRdName();
+        String realFileName = uploadPath+"/tmp/"+new Date().getTime() + ".doc";
+        String attName = data.getRdName()+new Date().getTime() + ".doc";
+        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
         Document document=new Document(PageSize.A4);
         try {
             FileUtils.setAttachmentResponseHeader(response, tableName,attName);