lyhzzz hace 1 año
padre
commit
cc42c9a522

+ 2 - 1
src/main/java/com/fdkankan/fusion/common/ResultCode.java

@@ -67,7 +67,8 @@ public enum ResultCode {
     FILE_NOT_EXIST(7021,"文件不存在,或已被刪除"),
 
     CAMERA_SPACE_ERROR(7022, "相机容量不足"),
-    INQUEST_ERROR(7023, "该案件已有勘验笔录")
+    INQUEST_ERROR(7023, "该案件已有勘验笔录"),
+    INQUEST_ERROR2(7024, "该案件未有勘验笔录"),
 
 
     ;

+ 1 - 1
src/main/java/com/fdkankan/fusion/controller/CaseInquestController.java

@@ -56,7 +56,7 @@ public class CaseInquestController {
         }
         CaseInquest caseInquest = caseInquestService.getByCaseId(caseId);
         if(caseInquest == null){
-            throw new BusinessException(ResultCode.INQUEST_ERROR);
+            throw new BusinessException(ResultCode.INQUEST_ERROR2);
         }
         OutputStream os = res.getOutputStream();
 

+ 22 - 4
src/main/java/com/fdkankan/fusion/controller/TestController.java

@@ -3,6 +3,7 @@ package com.fdkankan.fusion.controller;
 import cn.hutool.http.HttpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.util.PoitlIOUtils;
 import com.dtflys.forest.annotation.Post;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultData;
@@ -20,9 +21,11 @@ import sun.java2d.pipe.SpanIterator;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.transform.Result;
+import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.HashMap;
 import java.util.List;
 import java.util.concurrent.ThreadPoolExecutor;
 
@@ -123,14 +126,29 @@ public class TestController {
         }
         CaseInquest caseInquest = caseInquestService.getByCaseId(caseId);
         if(caseInquest == null){
-            throw new BusinessException(ResultCode.INQUEST_ERROR);
+            throw new BusinessException(ResultCode.INQUEST_ERROR2);
         }
-        OutputStream os = res.getOutputStream();
 
         InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/inquest-template.docx");
         // 渲染模板
-        XWPFTemplate template = XWPFTemplate.compile(inputStream).render(caseInquest);
+        XWPFTemplate template = XWPFTemplate.compile(inputStream).render(new HashMap<>());
+
+        // 设置响应头,指定文件类型和内容长度
+        res.setContentType("application/octet-stream");
+        res.setHeader("Content-Disposition", "attachment; filename=output.docx");
+
+        try {
+            // 返回网络流
+            OutputStream out = res.getOutputStream();
+            BufferedOutputStream bos = new BufferedOutputStream(out);
+            template.write(bos);
+            bos.flush();
+            out.flush();
+            // 关闭流
+            PoitlIOUtils.closeQuietlyMulti(template, bos, out);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
 
-        template.writeAndClose(os);
     }
 }