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