Browse Source

教育培训登记簿生成 代码提交

jingyuanchao 2 years ago
parent
commit
6b86f40cb9

+ 13 - 16
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java

@@ -12,6 +12,7 @@ import com.xunmei.file.utils.FileDownUtils;
 import com.xunmei.file.utils.FileUploadUtils;
 import com.xunmei.file.utils.PdfUtil;
 import com.xunmei.file.vo.ItextPdfTableVo;
+import com.xunmei.file.vo.PdfFilePathVo;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -57,17 +58,16 @@ public class LocalSysFileServiceImpl implements ISysFileService {
     @Autowired
     private HttpServletRequest request;
 
-    private static String getLocalFilePath(String businessType, String fileName) {
+    private static PdfFilePathVo getLocalFilePath(String localFilePath, String businessType, String fileName) {
         final String path = File.separator + businessType + File.separator + DateUtil.format(new Date(), "yyyy" + File.separator + "MM" + File.separator + "dd" + File.separator);
-        File desc = new File(path + fileName);
-        log.info("当前上传文件地址:{}", desc.getAbsolutePath());
-        if (!desc.exists()) {
-            if (!desc.getParentFile().exists()) {
-                log.info("创建文件夹:{}", desc.getParentFile());
-                desc.getParentFile().mkdirs();
-            }
+        final File file = new File(localFilePath + path);
+        if (!file.exists()) {
+            file.mkdirs();
         }
-        return desc.getPath();
+        PdfFilePathVo pathVo = new PdfFilePathVo();
+        pathVo.setAbsolutePath(localFilePath + path + fileName);
+        pathVo.setRelativePath(path + fileName);
+        return pathVo;
     }
 
     /**
@@ -174,23 +174,20 @@ public class LocalSysFileServiceImpl implements ISysFileService {
 
     @Override
     public String generateEduTrainingPdf(Map<String, Object> data) throws Exception {
-        String filePath = getLocalFilePath("edu", data.get("fileName").toString());
-        log.info("生成教育培训登记簿,当前地址为:{}", filePath);
-        final ItextPdfTableVo pdfTableVo = PdfUtil.createTable(filePath, 6, 10);
+        PdfFilePathVo pathVo = getLocalFilePath(localFilePath, "edu", data.get("fileName").toString());
+        log.info("生成教育培训登记簿,当前绝对地址为:{}", pathVo.getAbsolutePath());
+        final ItextPdfTableVo pdfTableVo = PdfUtil.createTable(pathVo.getAbsolutePath(), 6, 10);
         final Document document = pdfTableVo.getDocument();
         final PdfWriter writer = pdfTableVo.getWriter();
         final PdfPTable table = pdfTableVo.getTable();
         final BaseFont fs = pdfTableVo.getFs();
         final Font tableFont = pdfTableVo.getTableFont();
-
         PdfUtil.dealHeader(document, fs, "学 习 教 育 记 录", 24);
-
         PdfUtil.dealEduBody(document, table, tableFont, data);
-
         document.close();
         writer.close();
         //此处返回  /statics/edu/xxx.pdf
-        return this.prefix + filePath;
+        return this.prefix + pathVo.getRelativePath();
     }
 
 }

+ 3 - 1
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/utils/PdfUtil.java

@@ -5,6 +5,7 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.lowagie.text.*;
 import com.lowagie.text.pdf.*;
 import com.xunmei.file.vo.ItextPdfTableVo;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.ApplicationContext;
 import org.springframework.core.io.Resource;
 
@@ -15,7 +16,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-
+@Slf4j
 public class PdfUtil {
 
 
@@ -30,6 +31,7 @@ public class PdfUtil {
     public static ItextPdfTableVo createTable(String filename, int numColumns, int fontSize) throws Exception {
         Document document = new Document(PageSize.A4, 0, 0, 50, 0);//SUPPRESS
         FileOutputStream fos = new FileOutputStream(filename);
+        log.info("filename,{}",filename);
         final PdfWriter writer = PdfWriter.getInstance(document, fos);
         document.open();
         // 使用语言包字

+ 17 - 0
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/vo/PdfFilePathVo.java

@@ -0,0 +1,17 @@
+package com.xunmei.file.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jingyuanchao
+ * @date 2023/9/5 12:55
+ */
+@Data
+public class PdfFilePathVo {
+
+    @ApiModelProperty(value = "绝对地址")
+    private String absolutePath;
+    @ApiModelProperty(value = "相对地址")
+    private String relativePath;
+}