From 3523afae94fde56b1188501520b28416f1bf6d81 Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Thu, 15 Dec 2022 13:40:20 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=AE=B5=E8=90=BD=E4=B8=AD=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E8=A7=92=E6=A0=87=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SarFileSplitInfoEOServiceImpl.java | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java index 40bc2020..5e4460d5 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java @@ -161,7 +161,8 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService try { AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); //String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); - String readFilePath = filePath + attFileEO.getFilePath() + attFileEO.getFileName(); + //String readFilePath = filePath + attFileEO.getFilePath() + attFileEO.getFileName(); + String readFilePath = "F:\\合众未来\\项目\\福田汽车全球法规标准管理系统\\GB 1589-2016 汽车、挂车及汽车列车外廓尺寸、轴荷及质量限值.docx"; InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。 XWPFDocument doc = new XWPFDocument(is); @@ -240,7 +241,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService if(CollectionUtils.isNotEmpty(imageBundleList)) { addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); } else { - addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText()); + addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p,0); } } } @@ -265,7 +266,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService if(CollectionUtils.isNotEmpty(imageBundleList)) { addItermsConditionsImage(messageList.get(messageList.size()-1),itemValList, p,imageBundleList); } else { - addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p.getText()); + addItermsConditionsText(messageList.get(messageList.size()-1),itemValList, p,0); } } } else if (messageNumber >= 3) { @@ -287,7 +288,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i),treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,itemName); treeList.add(sarFileSplitMenuEO) ; message.setMenuId(sarFileSplitMenuEO.getId()); - addItermsConditionsText(message,itemValList,paragraphString.substring(nowStart.get(i).length())); + addItermsConditionsText(message,itemValList,p,nowStart.get(i).length()); messageList.add(message); nowStart = getNewNowStart(nowStart.get(i)); menuCanAdd = true; @@ -310,7 +311,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(),"附录",itemName,clauseContent); // 增加一条数据,需要在数结构中加一条数据 SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList("附录",treeList,generalCatalogueId,sarFileSplitInfoEO ,treeListDisplay++,""); - addItermsConditionsText(message,itemValList,paragraphString); + addItermsConditionsText(message,itemValList,p,0); treeList.add(sarFileSplitMenuEO) ; message.setMenuId(sarFileSplitMenuEO.getId()); messageList.add(message); @@ -320,7 +321,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService } } else { if (!p.getText().equals("") ){ - addItermsConditionsText(messageList.get(messageList.size()-1),itemValList,p.getText()); + addItermsConditionsText(messageList.get(messageList.size()-1),itemValList,p,0); } List imageBundleList = readImageInParagraph((XWPFParagraph)p); if(CollectionUtils.isNotEmpty(imageBundleList)) { @@ -517,9 +518,29 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService } // 像每个条款中依次插入每一段的内容 - private void addItermsConditionsText(SarFileSplitItemsEO message, List itemsValList, String p) { - message.getItemsCondi().add(p); - message.setItermsConditions(message.getItermsConditions() + "

" + p + "

"); + private void addItermsConditionsText(SarFileSplitItemsEO message, List itemsValList, XWPFParagraph p,Integer length) { + StringBuffer buffer = new StringBuffer(); + for (XWPFRun xwrun : p.getRuns()) { + VerticalAlign subscript = xwrun.getSubscript(); + String smalltext = xwrun.getText(0); + switch (subscript) { + case BASELINE: + buffer.append(smalltext); + break; + case SUBSCRIPT: + buffer.append("" + smalltext + ""); + break; + case SUPERSCRIPT: + buffer.append("" + smalltext + ""); + break; + } + } + String text = buffer.toString(); + if (length > 0) { + text = text.substring(length); + } + message.getItemsCondi().add(text); + message.setItermsConditions(message.getItermsConditions() + "

" + text + "

"); // 判断message中是否引用到其他标准 // String testString = p; // Pattern ptest = Pattern.compile("[A-Z]{1,}/{0,1}[A-Z]{1,}\\s{0,1}[0-9]\\d*\\.?\\d*"); @@ -542,7 +563,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService // message.setReferenceStand(matcher.group()); // } // } - itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.TEXT.getValue(), p, message.getItemsCondi().size(), null)); + itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.TEXT.getValue(), text, message.getItemsCondi().size(), null)); } private SarFileSplitMenuEO getTreeList(String name, List treeList, String generalCatalogueId, SarFileSplitInfoEO sarFileSplitInfoEO, Long treeListDisplay, String itemName) { From 268e8cff15a1a11ad30179d711d701463363e158 Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Thu, 15 Dec 2022 13:42:14 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E7=9A=84=E6=96=87=E4=BB=B6=E5=9C=B0?= =?UTF-8?q?=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SarFileSplitInfoEOServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java index 5e4460d5..5d8c03be 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java @@ -161,8 +161,7 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService try { AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId()); //String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName(); - //String readFilePath = filePath + attFileEO.getFilePath() + attFileEO.getFileName(); - String readFilePath = "F:\\合众未来\\项目\\福田汽车全球法规标准管理系统\\GB 1589-2016 汽车、挂车及汽车列车外廓尺寸、轴荷及质量限值.docx"; + String readFilePath = filePath + attFileEO.getFilePath() + attFileEO.getFileName(); InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。 XWPFDocument doc = new XWPFDocument(is); From 26f87c21ac1a3529379cb9be43ca18941f7177b2 Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Thu, 15 Dec 2022 14:04:13 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=9D=9E=E7=A9=BA=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SarFileSplitInfoEOServiceImpl.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java index 5d8c03be..811b2a52 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/service/impl/SarFileSplitInfoEOServiceImpl.java @@ -20,6 +20,7 @@ import com.adc.da.utils.util.InitStandAttrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.xwpf.usermodel.*; import org.apache.xmlbeans.XmlCursor; import org.apache.xmlbeans.XmlObject; @@ -522,16 +523,18 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService for (XWPFRun xwrun : p.getRuns()) { VerticalAlign subscript = xwrun.getSubscript(); String smalltext = xwrun.getText(0); - switch (subscript) { - case BASELINE: - buffer.append(smalltext); - break; - case SUBSCRIPT: - buffer.append("" + smalltext + ""); - break; - case SUPERSCRIPT: - buffer.append("" + smalltext + ""); - break; + if (ObjectUtils.isNotEmpty(smalltext)) { + switch (subscript) { + case BASELINE: + buffer.append(smalltext); + break; + case SUBSCRIPT: + buffer.append("" + smalltext + ""); + break; + case SUPERSCRIPT: + buffer.append("" + smalltext + ""); + break; + } } } String text = buffer.toString(); From 83b38e8d3b10cdbf9845aa8dbae4ff7729f4b795 Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Thu, 22 Dec 2022 16:49:00 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=AF=B9=E5=BA=94=E4=B8=8A=E4=B8=8B=E8=A7=92?= =?UTF-8?q?=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SarFileSplitItemsEOController.java | 56 ++++++++++++++++++- .../slrs/standardSplit/entity/SplitFont.java | 9 +++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/entity/SplitFont.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java index 112b4ca0..a7ee5512 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/controller/SarFileSplitItemsEOController.java @@ -270,6 +270,41 @@ public class SarFileSplitItemsEOController extends BaseController subList = new ArrayList<>(); + List supList = new ArrayList<>(); + boolean handleCorner = false; + if (content.contains("")) { + handleCornerMarkers(content, supList, "",""); + } + if (content.contains("")) { + handleCornerMarkers(content, subList, "",""); + } + if (subList.size() > 0 || supList.size() > 0) { + content = content.replaceAll("", ""); + content = content.replaceAll("", ""); + content = content.replaceAll("", ""); + //设置角标font + HSSFFont fontSub = workbook.createFont(); + fontSub.setTypeOffset(HSSFFont.SS_SUB); + HSSFFont fontSup = workbook.createFont(); + fontSup.setTypeOffset(HSSFFont.SS_SUPER); + + RichTextString richTextString = new HSSFRichTextString(content); + if (subList.size() > 0) { + for (SplitFont splitFont : subList) { + richTextString.applyFont(splitFont.getStartIndex(),splitFont.getEndIndex(),fontSub); + } + } + if (supList.size() > 0) { + for (SplitFont splitFont : supList) { + richTextString.applyFont(splitFont.getStartIndex(),splitFont.getEndIndex(),fontSup); + } + } + cell2.setCellValue(richTextString); + handleCorner = true; + } + if("TABLE".equals(valList.get(valRow).getValType())){ /* 连接跳转*/ CreationHelper createHelper = workbook.getCreationHelper(); @@ -287,7 +322,9 @@ public class SarFileSplitItemsEOController extends BaseController splitFontList, String label,String remove) { + content = content.replaceAll(remove, ""); + String[] split = content.split(label); + split[0] = split[0].replaceAll("", ""); + int index = split[0].length(); + for (int i = 1; i < split.length; i++) { + SplitFont splitFont = new SplitFont(); + String text = split[i]; + String cornerLabel = text.substring(0, text.indexOf("")); + splitFont.setStartIndex(index); + splitFont.setEndIndex(index + cornerLabel.length()); + splitFontList.add(splitFont); + text = text.replaceAll("", ""); + index = index + text.length(); + } + } + @ApiOperation(value = "|SarFileSplitItemsEO|导入") @PostMapping(value = "/importSplitItemsZip") public ResponseMessage importSplitItemsZip(@RequestParam(value = "file", required = false) MultipartFile file, diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/entity/SplitFont.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/entity/SplitFont.java new file mode 100644 index 00000000..6d032a21 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/standardSplit/entity/SplitFont.java @@ -0,0 +1,9 @@ +package com.adc.da.slrs.standardSplit.entity; + +import lombok.Data; + +@Data +public class SplitFont { + Integer startIndex; + Integer endIndex; +}