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) {