Преглед на файлове

登记簿批量导出代码提交

jingyuanchao преди 1 година
родител
ревизия
c1d58466c8

+ 3 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/controller/CoreRegisterBookPdfController.java

@@ -1,6 +1,7 @@
 package com.xunmei.core.registerbook.controller;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfPageDto;
@@ -110,7 +111,7 @@ public class CoreRegisterBookPdfController extends BaseController {
 
     @ApiOperation(value = "下载服务器上的压缩包")
     @PostMapping("/downLoad")
-    public void downLoad(@RequestBody PdfLocalFileTempVo tempVo, HttpServletResponse response) {
-        registerBookPdfService.downLoad(tempVo, response);
+    public void downLoad(@RequestBody JSONObject object, HttpServletResponse response) {
+        registerBookPdfService.downLoad(object, response);
     }
 }

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/ICoreRegisterBookPdfService.java

@@ -1,5 +1,6 @@
 package com.xunmei.core.registerbook.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.registerbook.domain.CoreRegisterBookPdf;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
@@ -33,5 +34,5 @@ public interface ICoreRegisterBookPdfService extends IService<CoreRegisterBookPd
 
     List<PdfLocalFileTempVo> getDownLoadList(CoreRegisterBookPdfExportDto exportDto);
 
-    void downLoad(PdfLocalFileTempVo tempVo, HttpServletResponse response);
+    void downLoad(JSONObject tempVo, HttpServletResponse response);
 }

+ 16 - 12
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/impl/CoreRegisterBookPdfServiceImpl.java

@@ -3,6 +3,7 @@ package com.xunmei.core.registerbook.service.impl;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -32,7 +33,6 @@ import org.apache.commons.io.FileUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.BoundValueOperations;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
@@ -41,6 +41,7 @@ import org.springframework.stereotype.Service;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.nio.file.Files;
 import java.util.*;
@@ -75,11 +76,10 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
         } else {
             wrapper.eq(CoreRegisterBookPdf::getOrgId, req.getOrgId());
         }
-        if(!ObjectUtil.isNull(req.getRegisterBookType()))
-        {
+        if (!ObjectUtil.isNull(req.getRegisterBookType())) {
             wrapper.eq(CoreRegisterBookPdf::getRegisterBookType, req.getRegisterBookType());
         }
-        if(req.getDate()!=null){
+        if (req.getDate() != null) {
             wrapper.between(CoreRegisterBookPdf::getDate, DateUtil.beginOfMonth(req.getDate()), DateUtil.endOfMonth(req.getDate()));
             wrapper.orderByDesc(CoreRegisterBookPdf::getDate);
         }
@@ -215,7 +215,7 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
         }
         List<PdfLocalFileTempVo> list = new ArrayList<>();
         for (String key : keys) {
-            String json =  redisTemplate.opsForValue().get(key);
+            String json = redisTemplate.opsForValue().get(key);
             PdfLocalFileTempVo pdfLocalFileTempVo = JSON.parseObject(json, PdfLocalFileTempVo.class);
             if (pdfLocalFileTempVo == null || ObjectUtil.notEqual(pdfLocalFileTempVo.getIsRegisterBookPage(), exportDto.getIsRegisterBookPage())) {
                 continue;
@@ -237,10 +237,12 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
     }
 
     @Override
-    public void downLoad(PdfLocalFileTempVo tempVo, HttpServletResponse response) {
+    public void downLoad(JSONObject tempVo, HttpServletResponse response) {
+        final String localPathPrefix = fileService.getLocalPathPrefix().getData();
         ServletOutputStream out = null;
         ByteArrayOutputStream baos = null;
-        File file = FileUtils.getFile(tempVo.getLocalFileName());
+        String localFileName = tempVo.get("localFileName").toString();
+        File file = FileUtils.getFile(localFileName);
         if (!file.exists()) {
             response.setStatus(HttpStatus.NOT_FOUND.value());
             return;
@@ -256,11 +258,13 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
             }
             baos.flush();
             response.setContentType("application/octet-stream");
-
-
-            String header = "attachment; filename=" + URLEncoder.encode(tempVo.getZipName(), "UTF-8");
-            if(header.matches("[a-zA-Z0-9._\\-]+") ){
-                response.setHeader(HttpHeaders.CONTENT_DISPOSITION,header);
+            localFileName = localFileName.replace(localPathPrefix + File.separator , "");
+            final BoundValueOperations<String, String> ops = redisTemplate.boundValueOps(URLDecoder.decode(localFileName, "UTF-8"));
+            final String string = ops.get();
+            final PdfLocalFileTempVo object = JSON.parseObject(string, PdfLocalFileTempVo.class);
+            String header = "attachment; filename=" + URLEncoder.encode(object.getZipName(), "UTF-8");
+            if (header.matches("[a-zA-Z0-9._\\-]+")) {
+                response.setHeader(HttpHeaders.CONTENT_DISPOSITION, header);
             }
             response.setContentLength(baos.size());
             baos.writeTo(out);

+ 11 - 9
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/utils/PdfUtil.java

@@ -351,16 +351,17 @@ public class PdfUtil {
         //预设案由
         PdfPCell contentCell = new PdfPCell();
         contentCell.setColspan(6);
-        contentCell.addElement(new Paragraph(new Chunk(data.get("presetCase").toString(), tableFont)));
+        final Paragraph presetCase = new Paragraph(new Chunk(data.get("presetCase").toString(), tableFont));
+        presetCase.setSpacingAfter(8F);
+        contentCell.addElement(presetCase);
         contentCell.setBorder(Rectangle.LEFT | Rectangle.RIGHT | Rectangle.BOTTOM);
         table.addCell(contentCell);
 
         //演练情况
         PdfPCell noteCell = new PdfPCell();
         noteCell.setColspan(6);
-        Paragraph paragraph = new Paragraph();
-        String noteText = data.get("drillSituation").toString();
-        paragraph.add(new Chunk(noteText, tableFont));
+        Paragraph paragraph = new Paragraph(new Chunk(data.get("drillSituation").toString(), tableFont));
+        paragraph.setSpacingAfter(8F);
         noteCell.addElement(paragraph);
         noteCell.setBorder(Rectangle.LEFT | Rectangle.RIGHT);
         table.addCell(noteCell);
@@ -380,11 +381,11 @@ public class PdfUtil {
         //签字区域
         PdfPCell signCell = new PdfPCell();
         signCell.setColspan(6);
-        Paragraph signParagraph = new Paragraph();
-        signParagraph.add(new Chunk("参会演练人员(签字):", tableFont));
+        Paragraph signParagraph = new Paragraph(new Chunk("参会演练人员(签字):", tableFont));
+        signParagraph.setSpacingAfter(8F);
         signCell.addElement(signParagraph);
         signCell.setBorder(Rectangle.LEFT | Rectangle.RIGHT);
-        table.addCell(signCell);
+        //table.addCell(signCell);
         //签字区域-图片填充
         final PdfPTable imageTable = getImage((List<String>) data.get("image"), 12,100,100,3);
         final PdfPCell cell = new PdfPCell();
@@ -395,8 +396,9 @@ public class PdfUtil {
         cell.setPaddingTop(8f);
         cell.setColspan(6);
         cell.setBorder(Rectangle.LEFT | Rectangle.RIGHT | Rectangle.BOTTOM);
-        cell.addElement(imageTable);
-        table.addCell(cell);
+       // cell.addElement(imageTable);
+        signCell.addElement(imageTable);
+        table.addCell(signCell);
         //点评总结
         PdfPCell commentCell = new PdfPCell();
         commentCell.setColspan(6);