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 | 423 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 272 insertions(+), 151 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 6fcbefd..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 { @@ -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 { @@ -2706,9 +2726,12 @@ } //杈愬皠琛ㄦ牸 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瀽鐨勮緪灏勭珯鐐规姤鍛�") @@ -2717,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<>(); @@ -2959,13 +2984,14 @@ 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 (i == insOrderFiles.size() - 1) { - urlList.add(urlListDto); - } + } } //鏍峰搧缂栧彿鍙傜収涓婅堪sampleCode @@ -3065,7 +3091,7 @@ put("insProductList", insProductList); //妫�楠屾儏鍐典竴瑙堣〃 put("tables2", tables2); //妫�娴嬬粨鏋� put("title3", finalTitle); //妫�娴嬬粨鏋� - put("tables3", tables3); //妫�娴嬬粨鏋� + put("tables3", null); //妫�娴嬬粨鏋� put("tables4", tables4); //妫�娴嬬粨鏋� put("urlList", urlList); //鏍峰搧鐓х墖 put("insUsers", insUsers); //妫�娴嬩汉鍛樹俊鎭� @@ -3193,27 +3219,57 @@ } catch (IOException e) { throw new RuntimeException(e); } -// //鐩綍鏇存柊 -// try{ -// com.spire.doc.Document document = new com.spire.doc.Document(); -// document.loadFromFile(path); -// // 鏇存柊鐩綍 -// document.updateTableOfContents(); -// // 淇濆瓨鏂囨。 -// document.saveToFile(path, FileFormat.Docx); -// document.close(); -// } -// catch (Exception e) { -// throw new RuntimeException(e); -// } + // 鏇存柊琛ㄥ崟 + 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); + // 鏇存柊鐩綍 + document.updateTableOfContents(); + // 淇濆瓨鏂囨。 + document.saveToFile(path, FileFormat.Docx); + document.close(); + }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() @@ -3530,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(""); } @@ -3619,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(""); } @@ -3631,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(""); } @@ -3711,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(""); } @@ -3723,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(""); } @@ -3803,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(""); } @@ -3815,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(""); } @@ -3895,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(""); } @@ -3907,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(""); } @@ -3998,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(""); } @@ -4102,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(""); } @@ -4217,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(""); } @@ -4340,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(""); } @@ -4463,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(""); } @@ -4585,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(""); } @@ -4690,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(""); } @@ -4786,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); @@ -4879,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); @@ -4981,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(""); } @@ -5088,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(""); } @@ -5195,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(""); } @@ -5301,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(""); } @@ -5354,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()); //鏌ヨ椤圭洰 @@ -5386,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); @@ -5554,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