From 17cbd5b9f612f3d29f02f2722357ea334ede2b41 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 31 七月 2025 19:17:43 +0800
Subject: [PATCH] 提交再次试验需要将检验项目的结论重置为null
---
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