From d589bf94e8f1863336d23fdd951049622b64db68 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 22 十一月 2024 16:36:43 +0800
Subject: [PATCH] csv文件调整

---
 inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java |   87 ++++++++++++++++++++++++-------------------
 1 files changed, 49 insertions(+), 38 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
index 3a383e1..50dabb3 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
@@ -25,6 +25,7 @@
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
+
 import javax.annotation.Resource;
 import java.io.*;
 import java.nio.file.Files;
@@ -1486,22 +1487,13 @@
                 lable.getAndIncrement();
             });
         });
-        String url;
-        try {
-            ZipSecureFile.setMinInflateRatio(0.0001);
-            InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx");
-            File file = File.createTempFile("temp", ".tmp");
-            OutputStream outputStream = new FileOutputStream(file);
-            IOUtils.copy(inputStream, outputStream);
-            url = file.getAbsolutePath();
-        } catch (FileNotFoundException e) {
-            throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
+
+        ZipSecureFile.setMinInflateRatio(0.0001);
+        InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx");
+
         ConfigureBuilder builder = Configure.builder();
         builder.useSpringEL(true);
-        XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
+        XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
                 new HashMap<String, Object>() {{
                     put("title", title);
                     put("tables", tables);
@@ -1519,7 +1511,7 @@
             FileInputStream stream = new FileInputStream(path);
             XWPFDocument document = new XWPFDocument(stream);
             List<XWPFTable> xwpfTables = document.getTables();
-            for (int i = 1; i < xwpfTables.size(); i++) {
+            for (int i = 0; i < xwpfTables.size(); i++) {
                 Set<String> set1 = new HashSet<>();
                 Map<String, Map<String, Integer>> maps = new HashMap<>();
                 for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) {
@@ -1740,8 +1732,15 @@
                                         CellRenderData cellRenderData = new CellRenderData();
                                         List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                                         ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
+                                        ParagraphStyle paragraphStyle = new ParagraphStyle();
+                                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
+                                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                                         List<RenderData> renderData = new ArrayList<>();
                                         TextRenderData textRenderData = new TextRenderData();
+                                        Style style = new Style();
+                                        style.setFontFamily("瀹嬩綋");
+                                        style.setColor("000000");
+                                        textRenderData.setStyle(style);
                                         CTTcPr tcPr = cell.get(j).getCTTc().getTcPr();
                                         if (tcPr != null) {
                                             //鍚堝苟鍒�
@@ -1774,9 +1773,9 @@
                                                         text = row.get(index).getCell(j).getText();
                                                         index--;
                                                     }
-                                                    if (text.equals("鍚堟牸")|| text.equals("涓嶅悎鏍�")){
+                                                    if (text.equals("鍚堟牸") || text.equals("涓嶅悎鏍�")) {
                                                         textRenderData.setText(text + "鈭�25" + aa + j);
-                                                    }else {
+                                                    } else {
                                                         textRenderData.setText(text + "鈭�22" + aa + j);
                                                     }
                                                 }
@@ -2082,20 +2081,8 @@
                 tables4.add(table4);
             }
         }
-
-        String url;
-        try {
-            ZipSecureFile.setMinInflateRatio(0.0001);
-            InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
-            File file = File.createTempFile("temp", ".tmp");
-            OutputStream outputStream = new FileOutputStream(file);
-            IOUtils.copy(inputStream, outputStream);
-            url = file.getAbsolutePath();
-        } catch (FileNotFoundException e) {
-            throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
+        ZipSecureFile.setMinInflateRatio(0.0001);
+        InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
         StringBuilder standardMethod2 = new StringBuilder();
         for (String s : standardMethod) {
             standardMethod2.append("锛沑n").append(s);
@@ -2131,7 +2118,9 @@
         List<Map<String, String>> finalDeviceList = deviceList;
         List<Map<String, String>> sampleList = insSampleMapper.selectSampleList(orderId);
         Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery()
-                .eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId();
+                .eq(InsSampleUser::getInsSampleId, orderId)
+                .eq(InsSampleUser::getState,0)
+                .last("limit 1")).getUserId();
         String signatureUrl;
         try {
             signatureUrl = userMapper.selectById(userId).getSignatureUrl();
@@ -2173,7 +2162,7 @@
             title3 = "杈愬皠鏂瑰悜鍥惧弬鏁�";
         }
         String finalTitle = title3;
-        XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
+        XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
                 new HashMap<String, Object>() {{
                     put("order", insOrder);
                     put("report", insReport);
@@ -2275,17 +2264,17 @@
                     for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) {
                         if (v.get("ec") > v.get("sc")) {
                             try {
-                                TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec"));
+                                mergeCellsHorizontally(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec"));
+//                                TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec"));
                             } catch (Exception e) {
-                                System.out.println("鍚堝苟鍑洪敊");
                             }
                         }
                     }
                     if (v.get("er") > v.get("sr")) {
                         try {
-                            TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
+                            mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
+//                            TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
                         } catch (Exception e) {
-                            System.out.println("鍚堝苟鍑洪敊");
                         }
                     }
                 }
@@ -3729,4 +3718,26 @@
             });
         });
     }
-}
+
+    // 姘村钩鍚堝苟鍗曞厓鏍�
+    private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) {
+        for (int i = fromCol; i <= toCol; i++) {
+            if (i == fromCol) {
+                table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);
+            } else {
+                table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);
+            }
+        }
+    }
+
+    // 鍨傜洿鍚堝苟鍗曞厓鏍�
+    private static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) {
+        for (int i = fromRow; i <= toRow; i++) {
+            if (i == fromRow) {
+                table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART);
+            } else {
+                table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE);
+            }
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3