From 087991c76f078defe5eb55d84223021b4199fb3d Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 17 二月 2025 11:22:50 +0800 Subject: [PATCH] 设备模块修改bug --- inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java | 663 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 577 insertions(+), 86 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 0e5e6ce..e698902 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 @@ -18,6 +18,7 @@ import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; +import com.yuanchu.mom.vo.InsProductResult2VO; import org.apache.commons.io.IOUtils; import org.apache.poi.openxml4j.util.ZipSecureFile; import org.apache.poi.xwpf.usermodel.*; @@ -25,6 +26,7 @@ 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.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -94,7 +96,7 @@ GiveCode giveCode; - //鐢熸垚绔欑偣鐢佃矾璇曢獙鎶ュ憡 + //鐢熸垚绔欑偣鐢佃矾璇曢獙鎶ュ憡(澶╃嚎) public void generateWord(String term, InsOrderState insOrderState) { AtomicInteger lable = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(); @@ -138,29 +140,29 @@ int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1; //鍏堝垽鏂槸1绠�鍗曠増杩樻槸0澶嶆潅鐗� if (insOrderState.getVersion() == 1) { - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�")) { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�")) { aa += 2 * portRow; } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("闅旂搴�")) { + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害")) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("浜掕皟")) { + if (inspectionItemSubclass.contains("浜掕皟")) { aa += (angles + 1) * portRow * often; } } else { - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�")) { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�")) { aa += (angles + 1) * portRow; } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害") && insProductResult2.getFrequency().equals(s) @@ -168,15 +170,15 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("闅旂搴�")) { + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) - .getInspectionItemSubclass().equals("闅旂搴�") && insProductResult2.getFrequency().equals(s) + .getInspectionItemSubclass().equals("鍚屽垪闅旂搴�") && insProductResult2.getFrequency().equals(s) ).collect(Collectors.toList()); int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害")) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("绔彛闂撮殧绂诲害") && insProductResult2.getFrequency().equals(s) @@ -184,7 +186,7 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("寮傛瀬鍖栭殧绂诲害") && insProductResult2.getFrequency().equals(s) @@ -192,16 +194,16 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("浜掕皟")) { + if (inspectionItemSubclass.contains("浜掕皟")) { aa += (angles + 1) * portRow * often; } - if (inspectionItemSubclass.equals("鏈�澶ц�﹀悎搴�")) { + if (inspectionItemSubclass.contains("鏈�澶ц�﹀悎搴�")) { aa += (angles + 1); } - if (inspectionItemSubclass.equals("鏈�灏忚�﹀悎搴�")) { + if (inspectionItemSubclass.contains("鏈�灏忚�﹀悎搴�")) { aa += (angles + 1); } - if (inspectionItemSubclass.equals("骞呭害鍋忓樊")) { + if (inspectionItemSubclass.contains("骞呭害鍋忓樊")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("骞呭害鍋忓樊")&& insProductResult2.getFrequency().equals(s) @@ -209,7 +211,7 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); } - if (inspectionItemSubclass.equals("鏈�澶х浉浣嶅亸宸�")) { + if (inspectionItemSubclass.contains("鏈�澶х浉浣嶅亸宸�")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("鏈�澶х浉浣嶅亸宸�")&& insProductResult2.getFrequency().equals(s) @@ -265,7 +267,7 @@ } else { if (insOrderState.getVersion() == 1) { //闈炵數璋冪増鏈�(绠�鍗曠増) - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) { cc = 2 * portRow; if (itemSet.add("鐢靛帇椹绘尝姣�")) { index.getAndIncrement(); @@ -365,7 +367,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害") && i > cc && i <= cc + portRow) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害") && i > cc && i <= cc + portRow) { dd = cc + portRow; if (itemSet.add("鍚屾瀬鍖栭殧绂诲害")) { index.getAndIncrement(); @@ -457,13 +459,13 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("闅旂搴�") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) { + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) { ee = (dd == 0 ? cc : dd) + portRow; - if (itemSet.add("闅旂搴�")) { + if (itemSet.add("鍚屽垪闅旂搴�")) { index.getAndIncrement(); } List<InsProduct> products = insProducts.stream() - .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("闅旂搴�")) + .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屽垪闅旂搴�")) .collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -549,7 +551,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow; if (itemSet.add("绔彛闂撮殧绂诲害")) { index.getAndIncrement(); @@ -641,7 +643,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害") && i >(ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)&& i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害") && i >(ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)&& i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow; if (itemSet.add("寮傛瀬鍖栭殧绂诲害")) { index.getAndIncrement(); @@ -733,7 +735,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) { + if (inspectionItemSubclass.contains("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) { if (itemSet.add("浜掕皟")) { index.getAndIncrement(); } @@ -827,7 +829,7 @@ } } else { //鐢佃皟鐗堟湰(澶嶆潅鐗�) - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) { cc = (angles + 1) * portRow; if (itemSet.add("鐢靛帇椹绘尝姣�")) { index.getAndIncrement(); @@ -928,7 +930,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -1051,8 +1053,8 @@ } } } - if (inspectionItemSubclass.equals("闅旂搴�")) { - List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("闅旂搴�")).collect(Collectors.toList()); + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�")) { + List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屽垪闅旂搴�")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) .collect(Collectors.toList()); @@ -1061,7 +1063,7 @@ int k = (angles + 1) * portRow2; if (i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + k) { ee = (dd == 0 ? cc : dd) + k; - if (itemSet.add("闅旂搴�")) { + if (itemSet.add("鍚屽垪闅旂搴�")) { index.getAndIncrement(); } //闅旂搴︽墍鍦ㄨ @@ -1174,7 +1176,7 @@ } } } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害")) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("绔彛闂撮殧绂诲害")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -1297,7 +1299,7 @@ } } } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("寮傛瀬鍖栭殧绂诲害")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -1419,7 +1421,7 @@ } } } - if (inspectionItemSubclass.equals("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) && i <= ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often)) { + if (inspectionItemSubclass.contains("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) && i <= ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often)) { hh = (int) ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often); if (itemSet.add("浜掕皟")) { index.getAndIncrement(); @@ -1516,7 +1518,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鏈�澶ц�﹀悎搴�") && i > (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) && i <= ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1))) { + if (inspectionItemSubclass.contains("鏈�澶ц�﹀悎搴�") && i > (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) && i <= ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1))) { mm = ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1)); if (itemSet.add("鏈�澶ц�﹀悎搴�")) { index.getAndIncrement(); @@ -1609,7 +1611,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鏈�灏忚�﹀悎搴�") && i > (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) && i <= ((mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1))) { + if (inspectionItemSubclass.contains("鏈�灏忚�﹀悎搴�") && i > (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) && i <= ((mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1))) { nn = (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1); if (itemSet.add("鏈�灏忚�﹀悎搴�")) { index.getAndIncrement(); @@ -1702,7 +1704,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("骞呭害鍋忓樊")) { + if (inspectionItemSubclass.contains("骞呭害鍋忓樊")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("骞呭害鍋忓樊")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -1808,7 +1810,7 @@ } } } - if (inspectionItemSubclass.equals("鏈�澶х浉浣嶅亸宸�")) { + if (inspectionItemSubclass.contains("鏈�澶х浉浣嶅亸宸�")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏈�澶х浉浣嶅亸宸�")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -1948,6 +1950,303 @@ }); ZipSecureFile.setMinInflateRatio(0.0001); InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx"); + + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("title", title); + put("tables", tables); + }}); + String name = insOrder.getEntrustCode().replace("/", "") + "-" +insSample.getSampleCode()+"-"+ title + ".docx"; + String url = UUID.randomUUID() + "_" + name; + try { + template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + url))); + } catch (IOException e) { + throw new RuntimeException(e); + } + // 澶勭悊鍚堝苟鍗曞厓鏍肩殑闂 + String path = wordUrl + "/" + url; + try { + ZipSecureFile.setMinInflateRatio(0.0001); + FileInputStream stream = new FileInputStream(path); + XWPFDocument document = new XWPFDocument(stream); + List<XWPFTable> xwpfTables = document.getTables(); + for (int i = 0; i < xwpfTables.size(); i++) { + Set<String> set1 = new HashSet<>(); + Map<String, Map<String, Integer>> maps = new HashMap<>(); + for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) { + for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) { + if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("鈭�") > -1) { + String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�"); + if (set1.add(split[1])) { + Map<String, Integer> map = new HashMap<>(); + map.put("sr", j); + map.put("sc", k); + map.put("er", j + 0); + map.put("ec", k + 0); + maps.put(split[1], map); + } else { + Map<String, Integer> map1 = maps.get(split[1]); + if (j == map1.get("sr")) { + map1.put("ec", map1.get("ec") + 1); + } else if (k == map1.get("sc")) { + map1.put("er", map1.get("er") + 1); + } + } + String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�")[0]; + xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); + xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str); + xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); + xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER); + } + } + } + + // 鍗曞厓鏍兼帓搴�, 閬垮厤鏍煎紡閿欎贡 + List<Map.Entry<String, Map<String, Integer>>> entries = new ArrayList<>(maps.entrySet()); + entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc")); + + // 鎸夌収椤哄簭娣诲姞杩涢泦鍚� + List<String> list = new ArrayList<>(); + for (Map.Entry<String, Map<String, Integer>> entry : entries) { + list.add(entry.getKey()); + } + /*List<String> list = new ArrayList<>(); + for (String s : maps.keySet()) { + list.add(s); + }*/ + for (int a = list.size() - 1; a >= 0; a--) { + Map<String, Integer> v = maps.get(list.get(a)); + for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) { + if (v.get("ec") > v.get("sc")) { + try { + TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); + } catch (Exception e) { + } + } + } + if (v.get("er") > v.get("sr")) { + try { + TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); + } catch (Exception e) { + } + } + } + } + FileOutputStream fileOutputStream = new FileOutputStream(path); + document.write(fileOutputStream); + fileOutputStream.close(); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + InsOrderFile insOrderFile = new InsOrderFile(); + insOrderFile.setInsOrderId(insOrderState.getInsOrderId()); + insOrderFile.setInsSampleId(insOrderState.getInsSampleId()); + insOrderFile.setFileName(name); + insOrderFile.setType(2); + insOrderFile.setFileUrl(url); + insOrderFile.setSonLaboratory("鐢佃矾璇曢獙"); + insOrderFileMapper.insert(insOrderFile); + } + + //鐢熸垚绔欑偣鐢佃矾璇曢獙鎶ュ憡(鏃犳簮鍣ㄤ欢) + public void generateWord2(String term, InsOrderState insOrderState) { + AtomicInteger index = new AtomicInteger(); + String title = term + "鐢佃矾鍙傛暟"; + List<Map<String, Object>> tables = new ArrayList<>(); + //鏌ヨ璁㈠崟 + InsOrder insOrder = insOrderMapper.selectById(insOrderState.getInsOrderId()); + //鏌ヨ鏍峰搧 + InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); + //鏌ヨ椤圭洰 + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState,1) + .eq(InsProduct::getInsSampleId, insSample.getId()) + .eq(InsProduct::getSonLaboratory, "鐢佃矾璇曢獙")); + //璁$畻琛屾暟 + List<InsProductResult2VO> result2VOS = new ArrayList<>(); + List<InsProductResult2VO> insProductResult2VOS = insProductResult2Mapper.selectWordHang(insOrderState.getNum(), insProducts.stream().map(InsProduct::getId).collect(Collectors.toList())); + for (InsProductResult2VO insProductResult2VO : insProductResult2VOS) { + String[] split = insProductResult2VO.getPort().split(","); + String value = insProductResult2VO.getValue().replace("[[", "").replace("]]", ""); + if (split.length>1){ + for (int i = 0; i < split.length; i++) { + InsProductResult2VO insProductResult2VO1 = new InsProductResult2VO(); + BeanUtils.copyProperties(insProductResult2VO,insProductResult2VO1); + //绔彛 + insProductResult2VO1.setPort(split[i]); + //鍊� + try{ + insProductResult2VO1.setValue(value.split(",")[i].replace("\"","")); + }catch (Exception e){ + insProductResult2VO1.setValue(""); + } + result2VOS.add(insProductResult2VO1); + } + } + else { + insProductResult2VO.setValue(value.replace("\"","")); + result2VOS.add(insProductResult2VO); + } + } + List<RowRenderData> rows = new ArrayList<>(); + Set<String> itemSet = new HashSet<>(); + //琛ㄦ牸鐨勮鏁� + for (int i = 0; i < result2VOS.size(); i++) { + RowRenderData rowRenderData = new RowRenderData(); + RowStyle rowStyle = new RowStyle(); + rowStyle.setHeight(40); + rowRenderData.setRowStyle(rowStyle); + List<CellRenderData> cells = new ArrayList<>(); + //琛ㄦ牸鐨勫垪鏁� + for (int j = 0; j < 8; j++) { + CellRenderData cellRenderData = new CellRenderData(); + CellStyle cellStyle = new CellStyle(); + cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); + cellRenderData.setCellStyle(cellStyle); + 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); + if (j==0){ + //绗竴鍒�(搴忓彿) + if (itemSet.add(result2VOS.get(i).getInspectionItemSubclass())) { + index.getAndIncrement(); + } + textRenderData.setText(index + "鈭�1" + index); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==1){ + //绗簩鍒�(妫�楠岄」鐩�) + textRenderData.setText(result2VOS.get(i).getInspectionItemSubclass()+ "鈭�2" + index); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==2){ + //绗笁鍒�(鍗曚綅) + textRenderData.setText(result2VOS.get(i).getUnit()+ "鈭�3" + index); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==3){ + //绗洓鍒�(鏍囧噯涓庤姹�) + textRenderData.setText(result2VOS.get(i).getAsk()); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==4){ + //绗簲鍒�(绔彛) + try{ + textRenderData.setText(result2VOS.get(i).getPort()); + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==5){ + //绗叚鍒�(棰戞) + try{ + textRenderData.setText(result2VOS.get(i).getFrequency()); + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==6){ + //绗竷鍒�(妫�楠屽��) + try{ + textRenderData.setText(result2VOS.get(i).getValue()); + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else { + //鏈�鍚庝竴鍒�(缁撹) + try{ + if (result2VOS.get(i).getResult().equals("1")) { + textRenderData.setText("鍚堟牸"); + }else if (result2VOS.get(i).getResult().equals("0")){ + textRenderData.setText("涓嶅悎鏍�"); + }else { + textRenderData.setText("涓嶅垽瀹�"); + } + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + } + rowRenderData.setCells(cells); + if (rowRenderData.getCells().size() != 0) { + rows.add(rowRenderData); + } + } + TableRenderData tableRenderData = new TableRenderData(); + tableRenderData.setRows(rows); + int countSize = tableRenderData.getRows().get(0).getCells().size(); + for (RowRenderData row : tableRenderData.getRows()) { + if (row.getCells().size() != countSize) { + throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑"); + } + } + TableStyle tableStyle = new TableStyle(); + tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH); + tableStyle.setAlign(TableRowAlign.CENTER); + BorderStyle borderStyle = new BorderStyle(); + borderStyle.setColor("000000"); + borderStyle.setType(XWPFTable.XWPFBorderType.THICK); + borderStyle.setSize(4); + tableStyle.setLeftBorder(borderStyle); + tableStyle.setTopBorder(borderStyle); + tableStyle.setRightBorder(borderStyle); + tableStyle.setBottomBorder(borderStyle); + tableRenderData.setTableStyle(tableStyle); + Map<String, Object> table = new HashMap<>(); + table.put("table", tableRenderData); + tables.add(table); + + ZipSecureFile.setMinInflateRatio(0.0001); + InputStream inputStream = this.getClass().getResourceAsStream("/static/word2.docx"); ConfigureBuilder builder = Configure.builder(); builder.useSpringEL(true); @@ -2421,7 +2720,11 @@ InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId()); if (orderState.getLaboratory().equals("鐢佃矾璇曢獙")) { orderState.setNum(insOrderUser.getNum()); - getWord1(insOrderUser.getTerm(), orderState, tables2); + if(!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")){ + getWord1(insOrderUser.getTerm(), orderState, tables2); + }else { + getWord2(insOrderUser.getTerm(), orderState, tables2); + } } } } @@ -2783,25 +3086,24 @@ } - //鐢佃矾鎶ュ憡鐢ㄤ簬鎬绘姤鍛婄殑鏂规硶 + //鐢佃矾鎶ュ憡鐢ㄤ簬鎬绘姤鍛婄殑鏂规硶(澶╃嚎) private void getWord1(String term, InsOrderState insOrderState,List<Map<String, Object>> tables2) { AtomicInteger lable = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(); String title = term + "鐢佃矾鍙傛暟"; InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); - - //鏌ヨ椤圭洰 - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + //鏌ヨ椤圭洰 + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getState,1) .eq(InsProduct::getInsSampleId, insSample.getId()) .eq(InsProduct::getSonLaboratory, "鐢佃矾璇曢獙")); - //鑾峰彇鏈�澶х鍙f暟閲�,瑙掑害鏁伴噺,棰戞鏁伴噺 - List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() + //鑾峰彇鏈�澶х鍙f暟閲�,瑙掑害鏁伴噺,棰戞鏁伴噺 + List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() .eq(InsProductResult2::getNum, insOrderState.getNum()) .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()))); - //鎸夌収棰戞鍒嗚〃(鏌ヨ鎵�鏈夐娈�) - List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList()); - frequencys.forEach(s -> { + //鎸夌収棰戞鍒嗚〃(鏌ヨ鎵�鏈夐娈�) + List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList()); + frequencys.forEach(s -> { int ports = 0;//绔彛鏁� int angles = 0;//瑙掑害鏁� List<InsProductResult2> productResult2s = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)).collect(Collectors.toList()); @@ -2824,29 +3126,30 @@ int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1; //鍏堝垽鏂槸1绠�鍗曠増杩樻槸0澶嶆潅鐗� if (insOrderState.getVersion() == 1) { - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�")) { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�")) { aa += 2 * portRow; } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("闅旂搴�")) { + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害")) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) { aa += 1 * portRow; } - if (inspectionItemSubclass.equals("浜掕皟")) { + if (inspectionItemSubclass.contains("浜掕皟")) { aa += (angles + 1) * portRow * often; } - } else { - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�")) { + } + else { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�")) { aa += (angles + 1) * portRow; } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害") && insProductResult2.getFrequency().equals(s) @@ -2854,15 +3157,15 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("闅旂搴�")) { + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) - .getInspectionItemSubclass().equals("闅旂搴�") && insProductResult2.getFrequency().equals(s) + .getInspectionItemSubclass().equals("鍚屽垪闅旂搴�") && insProductResult2.getFrequency().equals(s) ).collect(Collectors.toList()); int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害")) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("绔彛闂撮殧绂诲害") && insProductResult2.getFrequency().equals(s) @@ -2870,7 +3173,7 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("寮傛瀬鍖栭殧绂诲害") && insProductResult2.getFrequency().equals(s) @@ -2878,16 +3181,16 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); } - if (inspectionItemSubclass.equals("浜掕皟")) { + if (inspectionItemSubclass.contains("浜掕皟")) { aa += (angles + 1) * portRow * often; } - if (inspectionItemSubclass.equals("鏈�澶ц�﹀悎搴�")) { + if (inspectionItemSubclass.contains("鏈�澶ц�﹀悎搴�")) { aa += (angles + 1); } - if (inspectionItemSubclass.equals("鏈�灏忚�﹀悎搴�")) { + if (inspectionItemSubclass.contains("鏈�灏忚�﹀悎搴�")) { aa += (angles + 1); } - if (inspectionItemSubclass.equals("骞呭害鍋忓樊")) { + if (inspectionItemSubclass.contains("骞呭害鍋忓樊")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("骞呭害鍋忓樊")&& insProductResult2.getFrequency().equals(s) @@ -2895,7 +3198,7 @@ int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); } - if (inspectionItemSubclass.equals("鏈�澶х浉浣嶅亸宸�")) { + if (inspectionItemSubclass.contains("鏈�澶х浉浣嶅亸宸�")) { List<InsProductResult2> result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("鏈�澶х浉浣嶅亸宸�")&& insProductResult2.getFrequency().equals(s) @@ -2951,7 +3254,7 @@ } else { if (insOrderState.getVersion() == 1) { //闈炵數璋冪増鏈�(绠�鍗曠増) - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) { cc = 2 * portRow; if (itemSet.add("鐢靛帇椹绘尝姣�")) { index.getAndIncrement(); @@ -3051,7 +3354,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害") && i > cc && i <= cc + portRow) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害") && i > cc && i <= cc + portRow) { dd = cc + portRow; if (itemSet.add("鍚屾瀬鍖栭殧绂诲害")) { index.getAndIncrement(); @@ -3143,13 +3446,13 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("闅旂搴�") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) { + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) { ee = (dd == 0 ? cc : dd) + portRow; - if (itemSet.add("闅旂搴�")) { + if (itemSet.add("鍚屽垪闅旂搴�")) { index.getAndIncrement(); } List<InsProduct> products = insProducts.stream() - .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("闅旂搴�")) + .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屽垪闅旂搴�")) .collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -3235,7 +3538,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow; if (itemSet.add("绔彛闂撮殧绂诲害")) { index.getAndIncrement(); @@ -3327,7 +3630,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害") && i >(ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)&& i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害") && i >(ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)&& i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow; if (itemSet.add("寮傛瀬鍖栭殧绂诲害")) { index.getAndIncrement(); @@ -3419,7 +3722,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) { + if (inspectionItemSubclass.contains("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) { if (itemSet.add("浜掕皟")) { index.getAndIncrement(); } @@ -3513,7 +3816,7 @@ } } else { //鐢佃皟鐗堟湰(澶嶆潅鐗�) - if (inspectionItemSubclass.equals("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) { + if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) { cc = (angles + 1) * portRow; if (itemSet.add("鐢靛帇椹绘尝姣�")) { index.getAndIncrement(); @@ -3614,7 +3917,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鍚屾瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -3737,8 +4040,8 @@ } } } - if (inspectionItemSubclass.equals("闅旂搴�")) { - List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("闅旂搴�")).collect(Collectors.toList()); + if (inspectionItemSubclass.contains("鍚屽垪闅旂搴�")) { + List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屽垪闅旂搴�")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) .collect(Collectors.toList()); @@ -3747,7 +4050,7 @@ int k = (angles + 1) * portRow2; if (i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + k) { ee = (dd == 0 ? cc : dd) + k; - if (itemSet.add("闅旂搴�")) { + if (itemSet.add("鍚屽垪闅旂搴�")) { index.getAndIncrement(); } //闅旂搴︽墍鍦ㄨ @@ -3860,7 +4163,7 @@ } } } - if (inspectionItemSubclass.equals("绔彛闂撮殧绂诲害")) { + if (inspectionItemSubclass.contains("绔彛闂撮殧绂诲害")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("绔彛闂撮殧绂诲害")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -3983,7 +4286,7 @@ } } } - if (inspectionItemSubclass.equals("寮傛瀬鍖栭殧绂诲害")) { + if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("寮傛瀬鍖栭殧绂诲害")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -4105,7 +4408,7 @@ } } } - if (inspectionItemSubclass.equals("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) && i <= ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often)) { + if (inspectionItemSubclass.contains("浜掕皟") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) && i <= ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often)) { hh = (int) ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often); if (itemSet.add("浜掕皟")) { index.getAndIncrement(); @@ -4202,7 +4505,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鏈�澶ц�﹀悎搴�") && i > (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) && i <= ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1))) { + if (inspectionItemSubclass.contains("鏈�澶ц�﹀悎搴�") && i > (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) && i <= ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1))) { mm = ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1)); if (itemSet.add("鏈�澶ц�﹀悎搴�")) { index.getAndIncrement(); @@ -4295,7 +4598,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("鏈�灏忚�﹀悎搴�") && i > (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) && i <= ((mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1))) { + if (inspectionItemSubclass.contains("鏈�灏忚�﹀悎搴�") && i > (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) && i <= ((mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1))) { nn = (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1); if (itemSet.add("鏈�灏忚�﹀悎搴�")) { index.getAndIncrement(); @@ -4388,7 +4691,7 @@ cells.add(cellRenderData); } } - if (inspectionItemSubclass.equals("骞呭害鍋忓樊")) { + if (inspectionItemSubclass.contains("骞呭害鍋忓樊")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("骞呭害鍋忓樊")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -4494,7 +4797,7 @@ } } } - if (inspectionItemSubclass.equals("鏈�澶х浉浣嶅亸宸�")) { + if (inspectionItemSubclass.contains("鏈�澶х浉浣嶅亸宸�")) { List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏈�澶х浉浣嶅亸宸�")).collect(Collectors.toList()); List<InsProductResult2> result2s = productResult2s.stream() .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) @@ -4635,6 +4938,194 @@ }); } + //鐢佃矾鎶ュ憡鐢ㄤ簬鎬绘姤鍛婄殑鏂规硶(鏃犳簮鍣ㄤ欢) + private void getWord2(String term, InsOrderState insOrderState,List<Map<String, Object>> tables2){ + AtomicInteger index = new AtomicInteger(); + String title = term + "鐢佃矾鍙傛暟"; + //鏌ヨ鏍峰搧 + InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); + //鏌ヨ椤圭洰 + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState,1) + .eq(InsProduct::getInsSampleId, insSample.getId()) + .eq(InsProduct::getSonLaboratory, "鐢佃矾璇曢獙")); + //璁$畻琛屾暟 + List<InsProductResult2VO> result2VOS = new ArrayList<>(); + List<InsProductResult2VO> insProductResult2VOS = insProductResult2Mapper.selectWordHang(insOrderState.getNum(), insProducts.stream().map(InsProduct::getId).collect(Collectors.toList())); + for (InsProductResult2VO insProductResult2VO : insProductResult2VOS) { + String[] split = insProductResult2VO.getPort().split(","); + String value = insProductResult2VO.getValue().replace("[[", "").replace("]]", ""); + if (split.length>1){ + for (int i = 0; i < split.length; i++) { + InsProductResult2VO insProductResult2VO1 = new InsProductResult2VO(); + BeanUtils.copyProperties(insProductResult2VO,insProductResult2VO1); + //绔彛 + insProductResult2VO1.setPort(split[i]); + //鍊� + insProductResult2VO1.setValue(value.split(",")[i].replace("\"","")); + result2VOS.add(insProductResult2VO1); + } + } + else { + insProductResult2VO.setValue(value.replace("\"","")); + result2VOS.add(insProductResult2VO); + } + } + List<RowRenderData> rows = new ArrayList<>(); + Set<String> itemSet = new HashSet<>(); + //琛ㄦ牸鐨勮鏁� + for (int i = 0; i < result2VOS.size(); i++) { + RowRenderData rowRenderData = new RowRenderData(); + RowStyle rowStyle = new RowStyle(); + rowStyle.setHeight(40); + rowRenderData.setRowStyle(rowStyle); + List<CellRenderData> cells = new ArrayList<>(); + //琛ㄦ牸鐨勫垪鏁� + for (int j = 0; j < 8; j++) { + CellRenderData cellRenderData = new CellRenderData(); + CellStyle cellStyle = new CellStyle(); + cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER); + cellRenderData.setCellStyle(cellStyle); + 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); + if (j==0){ + //绗竴鍒�(搴忓彿) + if (itemSet.add(result2VOS.get(i).getInspectionItemSubclass())) { + index.getAndIncrement(); + } + textRenderData.setText(index + "鈭�1" + index); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==1){ + //绗簩鍒�(妫�楠岄」鐩�) + textRenderData.setText(result2VOS.get(i).getInspectionItemSubclass()+ "鈭�2" + index); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==2){ + //绗笁鍒�(鍗曚綅) + textRenderData.setText(result2VOS.get(i).getUnit()+ "鈭�3" + index); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==3){ + //绗洓鍒�(鏍囧噯涓庤姹�) + textRenderData.setText(result2VOS.get(i).getAsk()); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==4){ + //绗簲鍒�(绔彛) + try{ + textRenderData.setText(result2VOS.get(i).getPort()); + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==5){ + //绗叚鍒�(棰戞) + try{ + textRenderData.setText(result2VOS.get(i).getFrequency()); + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else if (j==6){ + //绗竷鍒�(妫�楠屽��) + try{ + textRenderData.setText(result2VOS.get(i).getValue()); + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else { + //鏈�鍚庝竴鍒�(缁撹) + try{ + if (result2VOS.get(i).getResult().equals("1")) { + textRenderData.setText("鍚堟牸"); + }else if (result2VOS.get(i).getResult().equals("0")){ + textRenderData.setText("涓嶅悎鏍�"); + }else { + textRenderData.setText("涓嶅垽瀹�"); + } + }catch (Exception e){ + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + } + rowRenderData.setCells(cells); + if (rowRenderData.getCells().size() != 0) { + rows.add(rowRenderData); + } + } + TableRenderData tableRenderData = new TableRenderData(); + tableRenderData.setRows(rows); + int countSize = tableRenderData.getRows().get(0).getCells().size(); + for (RowRenderData row : tableRenderData.getRows()) { + if (row.getCells().size() != countSize) { + throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑"); + } + } + TableStyle tableStyle = new TableStyle(); + tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH); + tableStyle.setAlign(TableRowAlign.CENTER); + BorderStyle borderStyle = new BorderStyle(); + borderStyle.setColor("000000"); + borderStyle.setType(XWPFTable.XWPFBorderType.THICK); + borderStyle.setSize(4); + tableStyle.setLeftBorder(borderStyle); + tableStyle.setTopBorder(borderStyle); + tableStyle.setRightBorder(borderStyle); + tableStyle.setBottomBorder(borderStyle); + tableRenderData.setTableStyle(tableStyle); + Map<String, Object> table2 = new HashMap<>(); + table2.put("table2", tableRenderData); + table2.put("title", title); + tables2.add(table2); + } + // 姘村钩鍚堝苟鍗曞厓鏍� private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) { for (int i = fromCol; i <= toCol; i++) { -- Gitblit v1.9.3