合并分支 'dev_foton_CD' 到 'FOTON'
Dev foton cd 查看合并请求 laws-foton-slrs/foton-slrs-system-rest!8
This commit is contained in:
+55
-1
@@ -270,6 +270,41 @@ public class SarFileSplitItemsEOController extends BaseController<SarFileSplitIt
|
||||
content = content.substring(0,content.lastIndexOf("\n"));
|
||||
}
|
||||
}
|
||||
//处理上下角标
|
||||
List<SplitFont> subList = new ArrayList<>();
|
||||
List<SplitFont> supList = new ArrayList<>();
|
||||
boolean handleCorner = false;
|
||||
if (content.contains("<span class=sup>")) {
|
||||
handleCornerMarkers(content, supList, "<span class=sup>","<span class=sub>");
|
||||
}
|
||||
if (content.contains("<span class=sub>")) {
|
||||
handleCornerMarkers(content, subList, "<span class=sub>","<span class=sub>");
|
||||
}
|
||||
if (subList.size() > 0 || supList.size() > 0) {
|
||||
content = content.replaceAll("<span class=sup>", "");
|
||||
content = content.replaceAll("<span class=sub>", "");
|
||||
content = content.replaceAll("</span>", "");
|
||||
//设置角标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<SarFileSplitIt
|
||||
cell2.setHyperlink(hyperlink1);// 链接
|
||||
row1.getCell(2).setCellStyle(cellStyleLink);
|
||||
}
|
||||
cell2.setCellValue(content);
|
||||
if (!handleCorner) {
|
||||
cell2.setCellValue(content);
|
||||
}
|
||||
|
||||
|
||||
row1.createCell(3).setCellValue(exportDto.getResponsibleUnitShow());
|
||||
@@ -414,6 +451,23 @@ public class SarFileSplitItemsEOController extends BaseController<SarFileSplitIt
|
||||
}
|
||||
}
|
||||
|
||||
private void handleCornerMarkers(String content, List<SplitFont> splitFontList, String label,String remove) {
|
||||
content = content.replaceAll(remove, "");
|
||||
String[] split = content.split(label);
|
||||
split[0] = split[0].replaceAll("</span>", "");
|
||||
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("</span>"));
|
||||
splitFont.setStartIndex(index);
|
||||
splitFont.setEndIndex(index + cornerLabel.length());
|
||||
splitFontList.add(splitFont);
|
||||
text = text.replaceAll("</span>", "");
|
||||
index = index + text.length();
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "|SarFileSplitItemsEO|导入")
|
||||
@PostMapping(value = "/importSplitItemsZip")
|
||||
public ResponseMessage<SarFileSplitItemsEO> importSplitItemsZip(@RequestParam(value = "file", required = false) MultipartFile file,
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.adc.da.slrs.standardSplit.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SplitFont {
|
||||
Integer startIndex;
|
||||
Integer endIndex;
|
||||
}
|
||||
+32
-9
@@ -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;
|
||||
@@ -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<String> imageBundleList = readImageInParagraph((XWPFParagraph)p);
|
||||
if(CollectionUtils.isNotEmpty(imageBundleList)) {
|
||||
@@ -517,9 +518,31 @@ public class SarFileSplitInfoEOServiceImpl implements SarFileSplitInfoEOService
|
||||
}
|
||||
|
||||
// 像每个条款中依次插入每一段的内容
|
||||
private void addItermsConditionsText(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, String p) {
|
||||
message.getItemsCondi().add(p);
|
||||
message.setItermsConditions(message.getItermsConditions() + "<p>" + p + "<p>");
|
||||
private void addItermsConditionsText(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, XWPFParagraph p,Integer length) {
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
for (XWPFRun xwrun : p.getRuns()) {
|
||||
VerticalAlign subscript = xwrun.getSubscript();
|
||||
String smalltext = xwrun.getText(0);
|
||||
if (ObjectUtils.isNotEmpty(smalltext)) {
|
||||
switch (subscript) {
|
||||
case BASELINE:
|
||||
buffer.append(smalltext);
|
||||
break;
|
||||
case SUBSCRIPT:
|
||||
buffer.append("<span class=sub>" + smalltext + "</span>");
|
||||
break;
|
||||
case SUPERSCRIPT:
|
||||
buffer.append("<span class=sup>" + smalltext + "</span>");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
String text = buffer.toString();
|
||||
if (length > 0) {
|
||||
text = text.substring(length);
|
||||
}
|
||||
message.getItemsCondi().add(text);
|
||||
message.setItermsConditions(message.getItermsConditions() + "<p>" + text + "<p>");
|
||||
// 判断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 +565,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<SarFileSplitMenuEO> treeList, String generalCatalogueId, SarFileSplitInfoEO sarFileSplitInfoEO, Long treeListDisplay, String itemName) {
|
||||
|
||||
Reference in New Issue
Block a user