From a4ee8b2e144ae1118ff714554911b7d34705416e Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期三, 07 五月 2025 17:45:52 +0800
Subject: [PATCH] 导出添加自定义签名功能

---
 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
index 35ccbc6..08556d3 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.lang.UUID;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.deepoove.poi.XWPFTemplate;
@@ -13,6 +14,7 @@
 import com.ruoyi.common.core.domain.entity.User;
 import com.ruoyi.common.utils.QueryWrappers;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.SignatureImageUtil;
 import com.ruoyi.framework.exception.ErrorException;
 import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
 import com.ruoyi.process.dto.ProcessReportDto;
@@ -21,7 +23,6 @@
 import com.ruoyi.process.service.ProcessReportService;
 import com.ruoyi.system.mapper.UserMapper;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.xwpf.usermodel.*;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -53,20 +54,32 @@
 
     @Resource
     private ProcessReportMapper processReportMapper;
+    @Value("${file.path}")
+    private String imgUrl;
 
     @Resource
     private UserMapper userMapper;
 
     @Override
-    public IPage<ProcessReport> pageProcessReport(Page page, ProcessReport processReport) {
-        IPage<ProcessReport> processReportIPage = processReportMapper.pageProcessReport(page, QueryWrappers.queryWrappers(processReport));
+    public IPage<ProcessReportDto> pageProcessReport(Page page, ProcessReportDto processReport) {
+        IPage<ProcessReportDto> processReportIPage = processReportMapper.pageProcessReport(page, QueryWrappers.queryWrappers(processReport));
 
         return processReportIPage;
     }
 
     @Override
     public void exportProcessReport(ProcessReportDto dto, HttpServletResponse response) {
-        List<ProcessReport> processReports = processReportMapper.exportProcessReport();
+        List<ProcessReportDto> processReports = processReportMapper.exportProcessReport();
+        for (ProcessReportDto processReport : processReports) {
+            // 鍙戦�佷汉鐢熸垚绛惧悕鍥剧墖
+            processReport.setSendUserRender(StringUtils.isNotBlank(processReport.getSendUserUrl())
+                    ? Pictures.ofLocal(imgUrl + "/" + processReport.getSendUserUrl()).create() : null);
+
+            // 绛炬敹浜虹敓鎴愬浘鐗�
+            processReport.setSignatoryRender(StringUtils.isNotBlank(processReport.getSignatory())
+                    ? Pictures.ofStream(SignatureImageUtil.saveImageToFile(processReport.getSignatory())).create() : null);
+        }
+
         // 鑾峰彇璺緞
         InputStream inputStream = this.getClass().getResourceAsStream("/static/report-deal.docx");
         Configure configure = Configure.builder()
@@ -86,6 +99,7 @@
             template.write(os);
             os.flush();
             os.close();
+            inputStream.close();
         } catch (Exception e) {
             e.printStackTrace();
             throw new RuntimeException("瀵煎嚭澶辫触");

--
Gitblit v1.9.3