From 393d6fbb340fd880740564b1624e1c3e60495284 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 12 四月 2025 11:30:24 +0800
Subject: [PATCH] 无源器件的总报告调整

---
 inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java |  464 ++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 292 insertions(+), 172 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 8b01a45..d0defa3 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
@@ -11,6 +11,7 @@
 import com.deepoove.poi.config.ConfigureBuilder;
 import com.deepoove.poi.data.*;
 import com.deepoove.poi.data.style.*;
+import com.deepoove.poi.data.style.Style;
 import com.deepoove.poi.util.TableTools;
 import com.spire.doc.FileFormat;
 import com.yuanchu.mom.dto.*;
@@ -18,18 +19,23 @@
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.*;
 import com.yuanchu.mom.vo.InsProductResult2VO;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.openxml4j.util.ZipSecureFile;
 import org.apache.poi.xwpf.usermodel.*;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHMerge;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVMerge;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
+import org.docx4j.XmlUtils;
+import org.docx4j.jaxb.Context;
+import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
+import org.docx4j.wml.*;
+import org.docx4j.wml.STBrType;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import javax.xml.bind.JAXBElement;
 import java.io.*;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -42,6 +48,7 @@
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+@Slf4j
 @Component
 public class WordUtils {
 
@@ -283,7 +290,6 @@
                         cells.add(cellRenderData);
                     }
                     else {
-                        i=i-1;
                         if (insOrderState.getVersion() == 1) {
                             //闈炵數璋冪増鏈�(绠�鍗曠増)
                             if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) {
@@ -905,7 +911,8 @@
                                     paragraphRenderDataList.add(paragraphRenderData);
                                     cellRenderData.setParagraphs(paragraphRenderDataList);
                                     cells.add(cellRenderData);
-                                } else if (j == bb - 1) {
+                                }
+                                else if (j == bb - 1) {
                                     //鏈�鍚庝竴鍒�
                                     if (i % (angles + 1) == 1) {
                                         textRenderData.setText("鍒ゅ畾");
@@ -2321,7 +2328,8 @@
                     }
                     result2VOS.add(insProductResult2VO1);
                 }
-            } else {
+            }
+            else {
                 insProductResult2VO.setValue(value.replace("\"", ""));
                 result2VOS.add(insProductResult2VO);
             }
@@ -2651,13 +2659,19 @@
                 if (vValues.size() > 0) {
                     //涓嶅悎鏍�
                     if (vValues.get(1) != 0) {
-                        productCount2 = productCount2 - 1 + vValues.get(1);
+                        productCount2 = productCount2 + vValues.get(1);
                     }
                     //鍚堟牸
                     if (vValues.get(0) != 0) {
                         if (fusheProduct.getInsResult() == 1) {
-                            productCount3 = productCount3 - 1 + vValues.get(0);
-                        } else productCount3 = productCount3 + vValues.get(0);
+                            productCount3 = productCount3  + vValues.get(0);
+                        }
+                    }
+                    // 鍒ゅ畾鏄惁鍑忔帀杈愬皠妫�楠岄」鏈韩
+                    if (fusheProduct.getInsResult() == 1) {
+                        productCount3 = productCount3 - 1;
+                    }else if(fusheProduct.getInsResult() == 0){
+                        productCount2 = productCount2 - 1;
                     }
                     //鎬绘暟=椤圭洰鎬绘暟-杈愬皠椤圭洰鏁伴噺+杈愬皠鍏蜂綋鐨�(鍚堟牸+涓嶅悎鏍�)鏁伴噺
                     productCount = productCount - 1 + vValues.stream().mapToLong(Long::longValue).sum();
@@ -2674,7 +2688,13 @@
         for (InsProduct insPro : insProducts) {
             InsProductWordDto insProductWordDto = new InsProductWordDto();
             insProductWordDto.setIndex(index1+"");//搴忓彿
-            insProductWordDto.setTerm(insPro.getInspectionItem()+"-"+insPro.getInspectionItemSubclass());//妫�楠岄」鐩�
+            if (insPro.getInspectionItem().contains("鐢佃矾璇曢獙")){
+                insProductWordDto.setTerm("鐢垫�ц兘鍙傛暟-"+insPro.getInspectionItemSubclass());//妫�楠岄」鐩�
+            }else if (insPro.getInspectionItem().contains("杈愬皠璇曢獙")){
+                insProductWordDto.setTerm("杈愬皠鎬ц兘鍙傛暟"+insPro.getInspectionItemSubclass());//妫�楠岄」鐩�
+            }else {
+                insProductWordDto.setTerm(insPro.getInspectionItem()+"-"+insPro.getInspectionItemSubclass());//妫�楠岄」鐩�
+            }
             if (ObjectUtils.isNotNull(insPro.getInsResult()) && insPro.getInsResult()==0) {
                 insProductWordDto.setResult("涓嶅悎鏍�");//缁撹
             } else {
@@ -2692,24 +2712,26 @@
         List<Map<String, Object>> tables2 = new ArrayList<>();
         if (strings.contains("鐢佃矾璇曢獙")) {
             /*鍕鹃�夌殑鐢佃矾璇曢獙琛�*/
-            for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) {
+            List<InsReportDto2> dto2s = insReportDto1.getInsReportDto2s().stream().filter(insReportDto2 -> insReportDto2.getLaboratory().equals("鐢佃矾璇曢獙")).collect(Collectors.toList());
+            for (InsReportDto2 insReportDto2 : dto2s) {
                 InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto2.getInsOrderUsersId());
                 InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId());
-                if (orderState.getLaboratory().equals("鐢佃矾璇曢獙")) {
-                    orderState.setNum(insOrderUser.getNum());
-                    if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
-                        getWord1(insOrderUser.getTerm(), orderState, tables2);
-                    } else {
-                        getWord2(insOrderUser.getTerm(), orderState, tables2);
-                    }
+                orderState.setNum(insOrderUser.getNum());
+                if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
+                    getWord1(insOrderUser.getTerm(), orderState, tables2);
+                } else {
+                    getWord2(insOrderUser.getTerm(), orderState, tables2);
                 }
             }
         }
         //杈愬皠琛ㄦ牸
         List<Map<String, Object>> tables3 = new ArrayList<>();
+        List<InsOrderFile> insOrderDocFiles = new ArrayList<>();;  // 鏆傚瓨闇�瑕佸悎骞惰〃鍗曞埌鐢熸垚word鏂囦欢鐨刣ocx鏂囦欢
+        // 缁熻杈愬皠瀹為獙琛ㄦ暟閲�
+        int radiationReportNum = 0;
         if (strings.contains("杩戝満") || strings.contains("杩滃満")) {
             /*杈愬皠鐨勮瘯楠岃〃*/
-            List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
+            List<InsOrderFile> insOrderFiles  = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                     .eq(InsOrderFile::getInsOrderId, orderId)
                     .eq(InsOrderFile::getInsSampleId, insReportDto1.getSampleId())
                     .like(InsOrderFile::getFileName, "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�")
@@ -2718,103 +2740,105 @@
                             .or()
                             .eq(InsOrderFile::getSonLaboratory, "杩戝満")
                     ));
-            if (insOrderFiles.size() > 0) {
-                int aa = 0;
-                for (InsOrderFile insOrderFile : insOrderFiles) {
-                    try {
-                        XWPFDocument circuitParamsDoc = new XWPFDocument(new FileInputStream(wordUrl + "/" + insOrderFile.getFileUrl()));
-                        // 閬嶅巻鐢佃矾鍙傛暟鏂囦欢鐨勬墍鏈夊厓绱狅紝娈佃惤鍜岃〃鏍�
-                        for (IBodyElement element : circuitParamsDoc.getBodyElements()) {
-                            Map<String, Object> table3 = new HashMap<>();
-                            TableRenderData tableData = new TableRenderData();
-                            List<RowRenderData> rows = new ArrayList<>();
-                            if (element instanceof XWPFTable) {
-                                aa += 1;
-                                XWPFTable tab = (XWPFTable) element;
-                                List<XWPFTableRow> row = tab.getRows();
-                                for (int i = 0; i < row.size(); i++) {
-                                    RowRenderData rowRenderData = new RowRenderData();
-                                    List<CellRenderData> cells = new ArrayList<>();
-                                    List<XWPFTableCell> cell = row.get(i).getTableCells();
-                                    for (int j = 0; j < cell.size(); j++) {
-                                        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) {
-                                            //鍚堝苟鍒�
-                                            CTHMerge hMerge = tcPr.getHMerge();
-                                            if (ObjectUtils.isNotEmpty(hMerge)) {
-                                                if (STMerge.RESTART.equals(hMerge.getVal()) || STMerge.CONTINUE.equals(hMerge.getVal())) {
-                                                    int index = j;
-                                                    String text = null;
-                                                    while (text == null || text.equals("")) {
-                                                        if (index < 0) {
-                                                            text = "/";
-                                                        }
-                                                        text = cell.get(index).getText();
-                                                        index--;
-                                                    }
-                                                    textRenderData.setText(text + "鈭�88" + aa + i);
-                                                }
-                                            }
-                                            //鍚堝苟琛�
-                                            CTVMerge vMerge = tcPr.getVMerge();
-                                            if (ObjectUtils.isNotEmpty(vMerge)) {
-                                                if (STMerge.RESTART.equals(vMerge.getVal()) || STMerge.CONTINUE.equals(vMerge.getVal())) {
-                                                    int index = i;
-                                                    String text = null;
-                                                    while (text == null || text.equals("")) {
-                                                        if (index < 0) {
-                                                            text = "/";
-                                                            break;
-                                                        }
-                                                        text = row.get(index).getCell(j).getText();
-                                                        index--;
-                                                    }
-                                                    if (text.equals("鍚堟牸") || text.equals("涓嶅悎鏍�")) {
-                                                        textRenderData.setText(text + "鈭�25" + aa + j);
-                                                    } else {
-                                                        textRenderData.setText(text + "鈭�22" + aa + j);
-                                                    }
-                                                }
-                                            }
-                                        } else {
-                                            textRenderData.setText(cell.get(j).getText());
-                                        }
-                                        renderData.add(textRenderData);
-                                        paragraphRenderData.setContents(renderData);
-                                        paragraphRenderDataList.add(paragraphRenderData);
-                                        cellRenderData.setParagraphs(paragraphRenderDataList);
-                                        cells.add(cellRenderData);
-                                    }
-                                    rowRenderData.setCells(cells);
-                                    rows.add(rowRenderData);
-                                }
-                                tableData.setRows(rows);
-                                table3.put("table3", tableData);
-                                tables3.add(table3);
-                            }
-                        }
-                    } catch (IOException e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
+            insOrderDocFiles.addAll(insOrderFiles);
+            radiationReportNum = insOrderFiles.size();
+//            if (insOrderFiles.size() > 0) {
+//                int aa = 0;
+//                for (InsOrderFile insOrderFile : insOrderFiles) {
+//                    try {
+//                        XWPFDocument circuitParamsDoc = new XWPFDocument(new FileInputStream(wordUrl + "/" + insOrderFile.getFileUrl()));
+//                        // 閬嶅巻鐢佃矾鍙傛暟鏂囦欢鐨勬墍鏈夊厓绱狅紝娈佃惤鍜岃〃鏍�
+//                        for (IBodyElement element : circuitParamsDoc.getBodyElements()) {
+//                            Map<String, Object> table3 = new HashMap<>();
+//                            TableRenderData tableData = new TableRenderData();
+//                            List<RowRenderData> rows = new ArrayList<>();
+//                            if (element instanceof XWPFTable) {
+//                                aa += 1;
+//                                XWPFTable tab = (XWPFTable) element;
+//                                List<XWPFTableRow> row = tab.getRows();
+//                                for (int i = 0; i < row.size(); i++) {
+//                                    RowRenderData rowRenderData = new RowRenderData();
+//                                    List<CellRenderData> cells = new ArrayList<>();
+//                                    List<XWPFTableCell> cell = row.get(i).getTableCells();
+//                                    for (int j = 0; j < cell.size(); j++) {
+//                                        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) {
+//                                            //鍚堝苟鍒�
+//                                            CTHMerge hMerge = tcPr.getHMerge();
+//                                            if (ObjectUtils.isNotEmpty(hMerge)) {
+//                                                if (STMerge.RESTART.equals(hMerge.getVal()) || STMerge.CONTINUE.equals(hMerge.getVal())) {
+//                                                    int index = j;
+//                                                    String text = null;
+//                                                    while (text == null || text.equals("")) {
+//                                                        if (index < 0) {
+//                                                            text = "/";
+//                                                        }
+//                                                        text = cell.get(index).getText();
+//                                                        index--;
+//                                                    }
+//                                                    textRenderData.setText(text + "鈭�88" + aa + i);
+//                                                }
+//                                            }
+//                                            //鍚堝苟琛�
+//                                            CTVMerge vMerge = tcPr.getVMerge();
+//                                            if (ObjectUtils.isNotEmpty(vMerge)) {
+//                                                if (STMerge.RESTART.equals(vMerge.getVal()) || STMerge.CONTINUE.equals(vMerge.getVal())) {
+//                                                    int index = i;
+//                                                    String text = null;
+//                                                    while (text == null || text.equals("")) {
+//                                                        if (index < 0) {
+//                                                            text = "/";
+//                                                            break;
+//                                                        }
+//                                                        text = row.get(index).getCell(j).getText();
+//                                                        index--;
+//                                                    }
+//                                                    if (text.equals("鍚堟牸") || text.equals("涓嶅悎鏍�")) {
+//                                                        textRenderData.setText(text + "鈭�25" + aa + j);
+//                                                    } else {
+//                                                        textRenderData.setText(text + "鈭�22" + aa + j);
+//                                                    }
+//                                                }
+//                                            }
+//                                        } else {
+//                                            textRenderData.setText(cell.get(j).getText());
+//                                        }
+//                                        renderData.add(textRenderData);
+//                                        paragraphRenderData.setContents(renderData);
+//                                        paragraphRenderDataList.add(paragraphRenderData);
+//                                        cellRenderData.setParagraphs(paragraphRenderDataList);
+//                                        cells.add(cellRenderData);
+//                                    }
+//                                    rowRenderData.setCells(cells);
+//                                    rows.add(rowRenderData);
+//                                }
+//                                tableData.setRows(rows);
+//                                table3.put("table3", tableData);
+//                                tables3.add(table3);
+//                            }
+//                        }
+//                    } catch (IOException e) {
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
         }
         //杈愬皠鐨勬爣棰�
         String title3 = "";
-        if (tables3.size() > 0) {
-            title3 = "杈愬皠鏂瑰悜鍥惧弬鏁�";
+        if (radiationReportNum > 0) {
+            title3 = "杈愬皠鎬ц兘鍙傛暟";
         }
         //鐜琛ㄦ牸
         List<Map<String, Object>> tables4 = new ArrayList<>();
@@ -2948,27 +2972,26 @@
 
         /*妫�楠屾牱鍝佷俊鎭�*/
         //鏍峰搧鐓х墖
+        List<UrlListDto> urlList = new ArrayList<>();
         //鑾峰彇闄勪欢鍥剧墖绫诲瀷
-        List<List<Map<String, Object>>> imageRows = new ArrayList<>();
-        List<Map<String, Object>> currentRow = new ArrayList<>();
         List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                 .eq(InsOrderFile::getType, 1)
                 .eq(InsOrderFile::getInsSampleId,insReportDto1.getSampleId())
                 .eq(InsOrderFile::getInsOrderId, orderId));
         if (CollectionUtils.isNotEmpty(insOrderFiles)) {
+            UrlListDto urlListDto = new UrlListDto();
             for (int i = 0; i < insOrderFiles.size(); i++) {
-                Map<String, Object> image = new HashMap<>();
-                PictureRenderData pictureRenderData = Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).sizeInCm(8, 10).create();
-                image.put("url", pictureRenderData);
-                currentRow.add(image);
-                if ((i + 1) % 2 == 0 || i == insOrderFiles.size() - 1) {
-                    imageRows.add(currentRow);
-                    currentRow = new ArrayList<>();
+                if (i % 2 == 0) {
+                    urlListDto = new UrlListDto();
+                    urlListDto.setImageOne(Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).create());
+                    if (i == insOrderFiles.size() - 1) {
+                        urlList.add(urlListDto);
+                    }
+                } else {
+                    urlListDto.setImageTwo(Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).create());
+                    urlList.add(urlListDto);
                 }
-            }
-            // 濡傛灉鏈�鍚庝竴琛屼笉瓒充袱涓紝涔熸坊鍔犲埌缁撴灉涓�
-            if (!currentRow.isEmpty()) {
-                imageRows.add(currentRow);
+
             }
         }
         //鏍峰搧缂栧彿鍙傜収涓婅堪sampleCode
@@ -2990,20 +3013,17 @@
             String insUser = insUserList.stream().map(insSampleUser -> {
                 User user = userMapper.selectById(insSampleUser.getUserId());
                 return user.getName();
-            }).collect(Collectors.joining(","));
+            }).distinct().collect(Collectors.joining(","));
             insUserDto.setInsUser(insUser);//娴嬭瘯浜哄憳
             List<InsSampleUser> checkUserList = entry.getValue().stream().filter(insSampleUser -> insSampleUser.getState() == 1).collect(Collectors.toList());//澶嶆牳浜�
             String checkUser = checkUserList.stream().map(insSampleUser -> {
                 User user = userMapper.selectById(insSampleUser.getUserId());
                 return user.getName();
-            }).collect(Collectors.joining(","));
+            }).distinct().collect(Collectors.joining(","));
             insUserDto.setCheckUser(checkUser);//瀹℃牳浜哄憳
             insUsers.add(insUserDto);
             index2++;
         }
-
-
-
 
         /*娴嬭瘯浠〃*/
         Set<String> deviceSet = new HashSet<>();
@@ -3048,6 +3068,7 @@
                 .bind("insProductList", new HackLoopTableRenderPolicy())
                 .bind("devList", new HackLoopTableRenderPolicy())
                 .bind("insUsers", new HackLoopTableRenderPolicy())
+                .bind("urlList", new HackLoopTableRenderPolicy())
                 .build();
         List<DevListDto> finalDevList = devList;
         String finalTitle = title3;
@@ -3070,9 +3091,9 @@
                     put("insProductList", insProductList);      //妫�楠屾儏鍐典竴瑙堣〃
                     put("tables2", tables2);                    //妫�娴嬬粨鏋�
                     put("title3", finalTitle);                  //妫�娴嬬粨鏋�
-                    put("tables3", tables3);                    //妫�娴嬬粨鏋�
+                    put("tables3", null);                    //妫�娴嬬粨鏋�
                     put("tables4", tables4);                    //妫�娴嬬粨鏋�
-                    put("images", imageRows);                   //鏍峰搧鐓х墖
+                    put("urlList", urlList);                   //鏍峰搧鐓х墖
                     put("insUsers", insUsers);                //妫�娴嬩汉鍛樹俊鎭�
                     put("devList", finalDevList);                //娴嬭瘯浠〃
                     put("writeUrl", null);                      //鎻愪氦浜�
@@ -3198,8 +3219,40 @@
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
-        //鐩綍鏇存柊
-        try{
+        // 鏇存柊琛ㄥ崟
+        try {
+            WordprocessingMLPackage targetDoc = WordprocessingMLPackage.load(new File(path));
+            List<Object> targetContent = targetDoc.getMainDocumentPart().getContent();
+            int targetIndex = findFirstTargetIndex(targetDoc, title3);
+            if (targetIndex != -1) {
+                List<Object> forms = new ArrayList<>();
+                for (InsOrderFile insOrderFile : insOrderDocFiles) {
+                    // 鍔犺浇婧愭枃妗e苟鎻愬彇琛ㄥ崟鍐呭锛堝亣璁句负琛ㄦ牸锛�
+                    WordprocessingMLPackage sourceDoc = WordprocessingMLPackage.load(new File(wordUrl + "/" + insOrderFile.getFileUrl()));
+                    List<Object> sourceContent = sourceDoc.getMainDocumentPart().getContent();
+                    for (Object obj : sourceContent) {
+                        if (obj instanceof JAXBElement) { // 妫�鏌ユ槸鍚︿负 JAXBElement
+                            JAXBElement jaxbElement = (JAXBElement)obj;
+                            Tbl table = (Tbl) XmlUtils.deepCopy(jaxbElement.getValue());
+                            targetIndex++;
+                            // 鎻掑叆鍒扮洰鏍囨钀戒箣鍚�
+                            targetContent.add(targetIndex, table);
+                            forms.add(table);
+                            // 鎻掑叆鍒嗛〉绗�
+                            P paragraphWithPageBreak = Context.getWmlObjectFactory().createP();
+                            R run = Context.getWmlObjectFactory().createR();
+                            Br br = Context.getWmlObjectFactory().createBr();
+                            br.setType(STBrType.PAGE); // 璁剧疆鍒嗛〉绗︾被鍨�
+                            run.getContent().add(br);
+                            paragraphWithPageBreak.getContent().add(run);
+                            targetIndex++;
+                            targetContent.add(targetIndex, paragraphWithPageBreak);
+                        }
+                    }
+                }
+            }
+            // 淇濆瓨淇敼鍚庣殑鏂囨。
+            targetDoc.save(new File(path));
             com.spire.doc.Document document = new com.spire.doc.Document();
             document.loadFromFile(path);
             // 鏇存柊鐩綍
@@ -3207,18 +3260,16 @@
             // 淇濆瓨鏂囨。
             document.saveToFile(path, FileFormat.Docx);
             document.close();
-        }
-        catch (Exception e) {
-            throw new RuntimeException(e);
+        }catch (Exception e){
+            log.error(e.getMessage());
         }
     }
-
 
     //鐢佃矾鎶ュ憡鐢ㄤ簬鎬绘姤鍛婄殑鏂规硶(澶╃嚎)
     private void getWord1(String term, InsOrderState insOrderState, List<Map<String, Object>> tables2) {
         AtomicInteger lable = new AtomicInteger(1);
         AtomicInteger index = new AtomicInteger();
-        String title = term + "鐢佃矾鍙傛暟";
+        String title = term + "鐢垫�ц兘鍙傛暟";
         InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
         //鏌ヨ椤圭洰
         List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
@@ -3365,7 +3416,7 @@
             int qq = 0;
             int ss = 0;
             //琛ㄦ牸鐨勮鏁�
-            for (int i = 0; i <= aa+1; i++) {
+         for (int i = 0; i <= aa+1; i++) {
                 RowRenderData rowRenderData = new RowRenderData();
                 RowStyle rowStyle = new RowStyle();
                 rowStyle.setHeight(40);
@@ -3447,7 +3498,9 @@
                         paragraphRenderDataList.add(paragraphRenderData);
                         cellRenderData.setParagraphs(paragraphRenderDataList);
                         cells.add(cellRenderData);
-                    } else {
+                    }
+                    else {
+                        int u = i;
                         i=i-1;
                         if (insOrderState.getVersion() == 1) {
                             //闈炵數璋冪増鏈�(绠�鍗曠増)
@@ -3533,8 +3586,9 @@
                                     if (i % 2 == 0) {
                                         //鏈�宸��
                                         String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
+                                        String text = value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))];
                                         try {
-                                            textRenderData.setText(value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))]);
+                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                         } catch (Exception e) {
                                             textRenderData.setText("");
                                         }
@@ -3622,7 +3676,8 @@
                                 } else if (j % 2 == 0) {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - cc - 1) * 4] + "鈭�5" + i + (j - 6));
+                                        String text = value.split(",")[(j - 6) / 2 + (i - cc - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -3634,7 +3689,8 @@
                                 } else {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - cc - 1) * 4] + "鈭�5" + i + (j - 5));
+                                        String text = value.split(",")[(j - 5) / 2 + (i - cc - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -3714,7 +3770,8 @@
                                 } else if (j % 2 == 0) {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "鈭�5" + i + (j - 6));
+                                        String text = value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -3726,7 +3783,8 @@
                                 } else {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "鈭�5" + i + (j - 5));
+                                        String text = value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -3806,7 +3864,8 @@
                                 } else if (j % 2 == 0) {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) * 4] + "鈭�5" + i + (j - 6));
+                                        String text = value.split(",")[(j - 6) / 2 + (i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -3818,7 +3877,8 @@
                                 } else {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) * 4] + "鈭�5" + i + (j - 5));
+                                        String text = value.split(",")[(j - 5) / 2 + (i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -3898,7 +3958,8 @@
                                 } else if (j % 2 == 0) {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 1) * 4] + "鈭�5" + i + (j - 6));
+                                        String text = value.split(",")[(j - 6) / 2 + (i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -3910,7 +3971,8 @@
                                 } else {
                                     String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                     try {
-                                        textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 1) * 4] + "鈭�5" + i + (j - 5));
+                                        String text = value.split(",")[(j - 5) / 2 + (i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 1) * 4];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                     } catch (Exception e) {
                                         textRenderData.setText("");
                                     }
@@ -4001,7 +4063,8 @@
                                         String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\[");
                                         String[] split = value[(i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                         try {
-                                            textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
+                                            String text = split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))];
+                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                         } catch (Exception e) {
                                             textRenderData.setText("");
                                         }
@@ -4013,7 +4076,8 @@
                                     cells.add(cellRenderData);
                                 }
                             }
-                        } else {
+                        }
+                        else {
                             //鐢佃皟鐗堟湰(澶嶆潅鐗�)
                             if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) {
                                 cc = (angles + 1) * portRow;
@@ -4104,7 +4168,8 @@
                                         String[] value = result2s.get(0).getValue().split("\\],\\[");
                                         String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                         try {
-                                            textRenderData.setText(split[(j - 5) + ((i + (angles - 1)) / (angles + 1) - 1) * (Math.min(ports, 8))]);
+                                            String text = split[(j - 5) + ((i + (angles - 1)) / (angles + 1) - 1) * (Math.min(ports, 8))];
+                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                         } catch (Exception e) {
                                             textRenderData.setText("");
                                         }
@@ -4219,13 +4284,15 @@
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             if (j % 2 == 0) {
                                                 try {
-                                                    textRenderData.setText(split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+                                                    String text = split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
                                             } else {
                                                 try {
-                                                    textRenderData.setText(split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+                                                    String text = split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
@@ -4342,13 +4409,15 @@
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             if (j % 2 == 0) {
                                                 try {
-                                                    textRenderData.setText(split[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+                                                    String text = split[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
                                             } else {
                                                 try {
-                                                    textRenderData.setText(split[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+                                                    String text = split[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
@@ -4465,13 +4534,15 @@
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             if (j % 2 == 0) {
                                                 try {
-                                                    textRenderData.setText(split[(j - 6) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+                                                    String text = split[(j - 6) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
                                             } else {
                                                 try {
-                                                    textRenderData.setText(split[(j - 5) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+                                                    String text = split[(j - 5) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
@@ -4587,13 +4658,15 @@
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             if (j % 2 == 0) {
                                                 try {
-                                                    textRenderData.setText(split[(j - 6) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+                                                    String text = split[(j - 6) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 6));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
                                             } else {
                                                 try {
-                                                    textRenderData.setText(split[(j - 5) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+                                                    String text = split[(j - 5) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
+                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�5" + i + (j - 5));
                                                 } catch (Exception e) {
                                                     textRenderData.setText("");
                                                 }
@@ -4692,7 +4765,8 @@
                                         String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\[");
                                         String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                         try {
-                                            textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
+                                            String text = split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))];
+                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                         } catch (Exception e) {
                                             textRenderData.setText("");
                                         }
@@ -4788,7 +4862,8 @@
                                         //鏈�宸��
                                         String[] value = result2s.get(0).getValue().split("\\],\\[");
                                         String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
-                                        textRenderData.setText(split[0] + "鈭�7" + i);
+                                        String text = split[0];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�7" + i);
                                     }
                                     renderData.add(textRenderData);
                                     paragraphRenderData.setContents(renderData);
@@ -4881,7 +4956,8 @@
                                         //鏈�宸��
                                         String[] value = result2s.get(0).getValue().split("\\],\\[");
                                         String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
-                                        textRenderData.setText(split[0] + "鈭�7" + i);
+                                        String text = split[0];
+                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "鈭�7" + i);
                                     }
                                     renderData.add(textRenderData);
                                     paragraphRenderData.setContents(renderData);
@@ -4983,7 +5059,8 @@
                                             String[] value = result2s.get(0).getValue().split("\\],\\[");
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             try {
-                                                textRenderData.setText(split[(j - 5) + ((i - (nn == 0 ? (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm) : nn)) / (angles + 2)) * Math.min(length, 8)]);
+                                                String text = split[(j - 5) + ((i - (nn == 0 ? (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm) : nn)) / (angles + 2)) * Math.min(length, 8)];
+                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                             } catch (Exception e) {
                                                 textRenderData.setText("");
                                             }
@@ -5090,7 +5167,8 @@
                                             String[] value = result2s.get(0).getValue().split("\\],\\[");
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             try {
-                                                textRenderData.setText(split[(j - 5) + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm) : nn) : pp)) / (angles + 2)) * Math.min(length, 8)]);
+                                                String text = split[(j - 5) + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm) : nn) : pp)) / (angles + 2)) * Math.min(length, 8)];
+                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                             } catch (Exception e) {
                                                 textRenderData.setText("");
                                             }
@@ -5197,7 +5275,8 @@
                                             String[] value = result2s.get(0).getValue().split("\\],\\[");
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             try {
-                                                textRenderData.setText(split[(j - 5) + ((i - rr) / (angles + 2)) * Math.min(length, 8)]);
+                                                String text = split[(j - 5) + ((i - rr) / (angles + 2)) * Math.min(length, 8)];
+                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                             } catch (Exception e) {
                                                 textRenderData.setText("");
                                             }
@@ -5303,7 +5382,8 @@
                                             String[] value = result2s.get(0).getValue().split("\\],\\[");
                                             String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                             try {
-                                                textRenderData.setText(split[(j - 5) + ((i - ss) / (angles + 2)) * Math.min(length, 8)]);
+                                                String text = split[(j - 5) + ((i - ss) / (angles + 2)) * Math.min(length, 8)];
+                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                             } catch (Exception e) {
                                                 textRenderData.setText("");
                                             }
@@ -5317,6 +5397,7 @@
                                 }
                             }
                         }
+                        i=u;
                     }
                 }
                 rowRenderData.setCells(cells);
@@ -5355,7 +5436,7 @@
     //鐢佃矾鎶ュ憡鐢ㄤ簬鎬绘姤鍛婄殑鏂规硶(鏃犳簮鍣ㄤ欢)
     private void getWord2(String term, InsOrderState insOrderState, List<Map<String, Object>> tables2) {
         AtomicInteger index = new AtomicInteger();
-        String title = term + "鐢佃矾鍙傛暟";
+        String title = term + "鐢垫�ц兘鍙傛暟";
         //鏌ヨ鏍峰搧
         InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
         //鏌ヨ椤圭洰
@@ -5387,7 +5468,7 @@
         List<RowRenderData> rows = new ArrayList<>();
         Set<String> itemSet = new HashSet<>();
         //琛ㄦ牸鐨勮鏁�
-        for (int i = 0; i < result2VOS.size()+1; i++) {
+        for (int i = 0; i < result2VOS.size(); i++) {
             RowRenderData rowRenderData = new RowRenderData();
             RowStyle rowStyle = new RowStyle();
             rowStyle.setHeight(40);
@@ -5555,4 +5636,43 @@
             }
         }
     }
+
+    // 鏌ユ壘鏂囨湰棣栨鍑虹幇琛�
+    private int findFirstTargetIndex(WordprocessingMLPackage targetDoc,String textStr){
+        int targetIndex = -1;
+        if(StringUtils.isEmpty(textStr)){
+            return targetIndex;
+        }
+        try {
+            List<Object> targetContent = targetDoc.getMainDocumentPart().getContent();
+            // 鏌ユ壘鐩爣娈佃惤
+            for (int i = 0; i < targetContent.size(); i++) {
+                Object obj = targetContent.get(i);
+                if (obj instanceof P) {
+                    P paragraph = (P) obj;
+                    for (Object runObj : paragraph.getContent()) {
+                        if (runObj instanceof R) {
+                            R run = (R) runObj;
+                            for (Object textObj : run.getContent()) {
+                                if (textObj instanceof JAXBElement) {
+                                    JAXBElement jaxbElement = (JAXBElement) textObj;
+                                    if(jaxbElement.getValue() instanceof Text){
+                                        Text text = (Text) jaxbElement.getValue();
+                                        if (text.getValue().contains(textStr)) {
+                                            targetIndex = i;
+                                            return targetIndex;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("findFirstTargetIndex<<<<<<<<<<:{}",e.getMessage());
+        }finally {
+            return targetIndex;
+        }
+    }
 }

--
Gitblit v1.9.3