xuhy
2025-04-10 4fcd294f79c626f3a8889d1e92a02d810c754747
bug修改
2个文件已删除
2个文件已修改
235 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordPdfGenerator.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordTemplateProcessor.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -46,6 +46,7 @@
import com.ruoyi.system.vo.CheckAcceptRecordVO;
import com.ruoyi.system.vo.TContractVO;
import com.ruoyi.web.controller.tool.NumberToChineseUtils;
import com.ruoyi.web.controller.tool.TencentCosUtil;
import com.ruoyi.web.controller.tool.WordUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -62,6 +63,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@@ -358,6 +360,8 @@
    }
    @Autowired
    private WordUtil wordUtil;
    @Autowired
    private TencentCosUtil tencentCosUtil;
    @ApiOperation(value = "生成合同附件")
    @PostMapping("/set")
    @Log(title = "生成合同附件", businessType = BusinessType.EXPORT)
@@ -531,13 +535,13 @@
        } else {
            fill(templateParam, "checkTime", "");
        }
        String url = tencentCosUtil.downLoadFileImg(contract.getSignature());
        return wordUtil.generatePdf(
                "/usr/local/project/file/",
                templateFileName,
                templateParam,
                "租赁合同",
                "/usr/local/project/file/");
                "/usr/local/project/file/",url);
    }
    private BigDecimal extracted(TContract contract,TContractDTO dto) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordPdfGenerator.java
File was deleted
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordTemplateProcessor.java
File was deleted
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/WordUtil.java
@@ -13,14 +13,7 @@
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -118,10 +111,10 @@
    }
    public String generatePdf(String basePackagePath, String templateFileName, Map<String,Object> templateParam, String fileName, String saveDirectory) {
    public String generatePdf(String basePackagePath, String templateFileName, Map<String,Object> templateParam, String fileName, String saveDirectory,String url) {
        try {
            fillTemplate(basePackagePath+templateFileName, saveDirectory+fileName+".docx", templateParam);
            fillTemplate(basePackagePath+templateFileName, saveDirectory+fileName+".docx", templateParam,url);
            // 创建 Freemarker 的 Configuration 对象,设置默认的不兼容改进选项
//            Configuration configuration = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
@@ -173,7 +166,7 @@
        }
    }
    public static void fillTemplate(String templatePath, String outputPath,Map<String, Object> dataMap) {
    public static void fillTemplate(String templatePath, String outputPath,Map<String, Object> dataMap,String url) {
        try (FileInputStream fis = new FileInputStream(templatePath)) {
            // 设置默认编码为UTF-8
            System.setProperty("file.encoding", "UTF-8");
@@ -181,9 +174,24 @@
            XWPFDocument document = new XWPFDocument(fis);
            XWPFParagraph pic = document.createParagraph();
            XWPFRun picRun = pic.createRun();
            Base64.Decoder decoder = Base64.getDecoder();
            byte[] imageByte = decoder.decode(url);
            InputStream stream = new ByteArrayInputStream(imageByte);
            File tempFile = File.createTempFile("/usr/local/project/file/temp", ".jpg");
            tempFile.deleteOnExit(); // 程序结束时删除文件
            try (OutputStream out = new FileOutputStream(tempFile);
                 InputStream in = stream) {
                byte[] buffer = new byte[1024];
                int length;
                // 从原始流读取数据并写入临时文件
                while ((length = in.read(buffer)) > 0) {
                    out.write(buffer, 0, length);
                }
            }
            dataMap.put("${picture}", picRun.addPicture(
                    new FileInputStream("/usr/local/project/file/1.jpg"), XWPFDocument.PICTURE_TYPE_JPEG,
                    "/usr/local/project/file/1.jpg",
                    new FileInputStream(tempFile), XWPFDocument.PICTURE_TYPE_JPEG,
                    "/usr/local/project/file/sign.jpg",
                    Units.toEMU(60),
                    Units.toEMU(30)
            ));