diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/util/MinioUtil.java b/laws-base/laws-base-core/src/main/java/com/jero/common/util/MinioUtil.java
index 4296158f..d4cd3ff0 100644
--- a/laws-base/laws-base-core/src/main/java/com/jero/common/util/MinioUtil.java
+++ b/laws-base/laws-base-core/src/main/java/com/jero/common/util/MinioUtil.java
@@ -109,7 +109,7 @@ public class MinioUtil {
.stream(stream,stream.available(),-1).build();
minioClient.putObject(objectArgs);
stream.close();
- fileUrl = minioUrl+newBucket+ File.separator +objectName;
+ fileUrl = objectName;
}catch (Exception e){
log.error(e.getMessage(), e);
}
diff --git a/laws-modules/lib/aspose-words-21.1-jdk17-cracked.jar b/laws-modules/lib/aspose-words-21.1-jdk17-cracked.jar
new file mode 100644
index 00000000..10546943
Binary files /dev/null and b/laws-modules/lib/aspose-words-21.1-jdk17-cracked.jar differ
diff --git a/laws-modules/pom.xml b/laws-modules/pom.xml
index 3f456a4b..27d894dc 100644
--- a/laws-modules/pom.xml
+++ b/laws-modules/pom.xml
@@ -146,5 +146,14 @@
ant
1.10.5
+
+
+ com.aspose
+ aspose-words
+ 21.1
+ system
+ jdk17
+ ${project.basedir}/lib/aspose-words-21.1-jdk17-cracked.jar
+
\ No newline at end of file
diff --git a/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsEO.java b/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsEO.java
index 1acaeddf..130e4e8e 100644
--- a/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsEO.java
+++ b/laws-modules/src/main/java/com/jero/modules/split/entity/SarFileSplitItemsEO.java
@@ -1,6 +1,8 @@
package com.jero.modules.split.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
import lombok.Data;
import java.io.Serializable;
@@ -18,28 +20,55 @@ public class SarFileSplitItemsEO implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
+
+ @ApiModelProperty(value = "拆分信息记录id")
private String infoId;
+
+ @ApiModelProperty(value = "条款号")
private String itemsNum;
+
+ @ApiModelProperty(value = "条款名称")
private String itemsName;
+
+ @ApiModelProperty(value = "条款内容")
private String itermsConditions;
+
+ @ApiModelProperty(value = "拆分目录id")
private String menuId;
+
+ @ApiModelProperty(value = "信息类别")
private String informationCategory; // 信息类别
- private String technologyTerritory; // 技术领域
+
+ @ApiModelProperty(value = "技术领域")
+ private String technologyTerritory; //
+
+ @ApiModelProperty(value = "")
private Integer validFlag;
+
private String creationUser;
+
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date creationTime;
+
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date modifyTime;
+
private String modifyUser;
+
private String[] infoIdList;
+
private String[] idList;
+
private List itemValEOList;
+
// 前台删除的VAL表条目内容ID
private String delItemIds;
+
private String sMenuId;
List itemsCondi;
+
private String zhan3Shi4Shun4Xu4;// 展示顺序字段
+
}
diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java
index a0f60808..d3e56bde 100644
--- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java
+++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java
@@ -1,6 +1,7 @@
package com.jero.modules.split.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.itextpdf.text.ListLabel;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MinioUtil;
@@ -17,6 +18,7 @@ import com.jero.modules.split.util.FileSplitUtils;
import com.jero.modules.split.util.ReadWordTable;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.xwpf.usermodel.*;
import org.apache.shiro.SecurityUtils;
import org.apache.xmlbeans.XmlCursor;
@@ -34,9 +36,13 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+
+import javax.xml.parsers.DocumentBuilder;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
+import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -133,17 +139,14 @@ public class FileSpiltService {
OSSFile ossFile = ossFileList.get(0);
String readFilePath = ossFile.getUrl();
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);) {
-
-// AttFileEO attFileEO = attFileEOService.getFileInfo(sarFileSplitInfoEO.getAttId());
-// String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName();
-// String readFilePath = "C:\\Users\\wangc\\Desktop\\蔚来演示数据\\GB 11551-2014 汽车正面碰撞的乘员保护.docx";
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
+ //if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
+ // throw new JeroBootException("当前文件未找到,请重新选择!");
+ //}
+ //try (InputStream is = MinioUtil.download(readFilePath);) {
+ readFilePath = "E:\\Data\\Downloads\\GB_4785_2019_CN.docx";
+ try (InputStream is = new FileInputStream(readFilePath);) {//需要将文件路更改为word文档所在路径。
+ ZipSecureFile.setMinInflateRatio(-1.0d);
XWPFDocument doc = new XWPFDocument(is);
Pattern ptest = Pattern.compile("^1范围");
@@ -186,8 +189,12 @@ public class FileSpiltService {
paragraphString = paragraphString.replaceAll("\n","");
paragraphString = paragraphString.trim();
- if ("前言".equals(getChinese(paragraphString)) && (paragraphString.replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", "").length() == 2)) { // 前言后面有文本,判定为是目录中的前言
+ if ("前言".equals(getChinese(paragraphString))
+ && (paragraphString
+ .replaceAll("\t", "")
+ .replaceAll("\b", "")
+ .replaceAll(" ", "")
+ .length() == 2)) { // 前言后面有文本,判定为是目录中的前言
firstFlag = false;
}
if(firstFlag) {
@@ -250,74 +257,6 @@ public class FileSpiltService {
messageNumber++;
}
}
- /*else if (messageNumber == 1) {
- ptest = Pattern.compile("^2\\s{0,50}规范性引用文件");
- matcher = ptest.matcher(paragraphString);
- if (matcher.find()) {
- List clauseContent = new ArrayList<>();
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), "2", "规范性引用文件", clauseContent);
- SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"规范性引用文件");
-
- documentTreeEO1.setId(UUIDUtils.randomUUID20());
- documentTreeEO1.setItemName("规范性引用文件");
- documentTreeEO1.setPId(generalCatalogueId);
- documentTreeEO1.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO1.setDisplaySeq(treeListDisplay++);
- documentTreeEO1.setName(message.getItemsNum());
- documentTreeEO1.setValidFlag(0);
-
- message.setMenuId(documentTreeEO1.getId());
- if (sarFileSplitInfoEO.getStartNumber() <= 2 && sarFileSplitInfoEO.getStopNumber() >= 2) {
- messageList.add(message);
- treeList.add(documentTreeEO1);
- menuCanAdd = true;
- } else {
- menuCanAdd = false;
- }
- messageNumber++;
- } else if (menuCanAdd) {
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- } else {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- }
- } else if (messageNumber == 2) {
- ptest = Pattern.compile("^3\\s{0,50}术语(和|与)定义");
- matcher = ptest.matcher(paragraphString);
- if (matcher.find()) {
- List clauseContent = new ArrayList<>();
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), "3", "术语与定义", clauseContent);
- SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO1 = new SarFileSplitMenuEO(UUIDUtils.randomUUID20(),message.getItemsNum(),generalCatalogueId,sarFileSplitInfoEO.getId(),treeListDisplay++,"术语与定义");
- documentTreeEO1.setId(UUIDUtils.randomUUID20());
- documentTreeEO1.setItemName("术语与定义");
- documentTreeEO1.setPId(generalCatalogueId);
- documentTreeEO1.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO1.setDisplaySeq(treeListDisplay++);
- documentTreeEO1.setName(message.getItemsNum());
- documentTreeEO1.setValidFlag(0);
-
- message.setMenuId(documentTreeEO1.getId());
- if (sarFileSplitInfoEO.getStartNumber() <= 3 && sarFileSplitInfoEO.getStopNumber() >= 3) {
- messageList.add(message);
- treeList.add(documentTreeEO1);
- menuCanAdd = true;
- } else {
- menuCanAdd = false;
- }
- messageNumber++;
- } else if (menuCanAdd) {
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- } else {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- }
- } */
else if (messageNumber >= 1) {
ptest = Pattern.compile("^[\\d.]*$");
boolean hasGoIf = false;
@@ -396,8 +335,9 @@ public class FileSpiltService {
break;
}
}
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
+ }
+ else if (element instanceof XWPFTable) {
+ if (!messageList.isEmpty()) {
addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
}
}
@@ -414,9 +354,6 @@ public class FileSpiltService {
}
iSarFileSplitItemsEOService.insertForeach(messageList);
iSarFileSplitItemsValEOService.insertForeach(itemValList);
-// sarFileSplitMenuEODao.insertForeach(treeList);
-// sarFileSplitItemsEODao.insertForeach(messageList);
-// sarFileSplitItemsValEODao.insertForeach(itemValList);
} else {
return -1;
}
@@ -428,1739 +365,7 @@ public class FileSpiltService {
// fileEU(new SarFileSplitInfoEO());
// }
- /**
- * GSO 欧洲标准拆分
- *
- * @param sarFileSplitInfoEO
- * @param enumByValue
- * @return
- */
- public int fileGSO(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
- int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("1");
-// if (sarFileSplitInfoEO.getStartNumber()<4){
-// } else {
-// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
-// }
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);) {
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
- XWPFDocument doc = new XWPFDocument(is);
-
- Pattern ptest = Pattern.compile("^[\\d.]*$");
-// Matcher matcher;
-
- // 记录拆分后的每一段文字
- List elements = doc.getBodyElements();
- // 记录word自动生成的编号数据
- Map numberMap = new HashMap();
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- List startDigitList = getStartDigit(elements, enumByValue);
- List newStartDigitList = new ArrayList<>();
- for (String startDigit : startDigitList) {
- if(startDigit.endsWith(".")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("."));
- }
- newStartDigitList.add(startDigit);
- }
- String regex = "^[0-9]*$";
- boolean firstFlag = true;
- String preName = "";
- int preNameNum = 0;
-// for (IBodyElement element : elements) {
- for (int g=0; g< elements.size(); g++) {
- IBodyElement element = elements.get(g);
- // 段落
- if (element instanceof XWPFParagraph) {
- XWPFParagraph p = (XWPFParagraph) element;
-
- // 处理段落生成编号不识别问题
- String paragraphString = p.getText();
- if (!StringUtils.isEmpty(paragraphString)) {
- paragraphString = paragraphString.replace((char) 12288, ' ');
- paragraphString = paragraphString.replaceAll("\r\n","");
- paragraphString = paragraphString.replaceAll("\n","");
- paragraphString = paragraphString.trim();
- }
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- if (paragraphString.toLowerCase().contains("scope")) {
- String pp = paragraphString.replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", "");
- if (!pp.substring(pp.length()-1).matches(regex)) {
- firstFlag = false;
- }
- }
- if (firstFlag) {
- continue;
- }
- ptest = Pattern.compile("^[\\d.]*$");
- //定义查看是否有编号,没有编号则按照上一个编号放置数据
- boolean hasGoIf = false;
- String startDigit = getOneStartDigit(paragraphString, enumByValue);
- for (int i = 0; i < nowStart.size(); i++) {
- if (startDigit.equals(nowStart.get(i)) || startDigit.equals(nowStart.get(i)+ ".") || startDigit.equals(nowStart.get(i)+ "-") ) {
- // 判断一级 真的是标题还是干扰项 TODO
- if (startDigit.matches("^[0-9]*.$") || startDigit.matches("^[0-9]*-$")) {
- if(startDigit.endsWith(".")) {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit.substring(0, startDigit.lastIndexOf(".")), g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- } else if(startDigit.endsWith("-")) {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit.substring(0, startDigit.lastIndexOf("-")), g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- } else {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit, g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- }
- }
- // 判断名称,如果大于10位,取十位,
- String itemName = FileSplitUtils.getItemName(paragraphString, startDigit);
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), startDigit, itemName, clauseContent);
-
- String[] numberStr = nowStart.get(i).split("\\.");
-
- if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- preName = nowStart.get(i);
- preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- addItermsConditionsText(message, itemValList, paragraphString.substring(startDigit.length()));
- }
- messageList.add(message);
- nowStart = getNewNowStart(nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
- break;
-
- }
-
- }
- if (!hasGoIf && menuCanAdd) {
- if ("annex1".equals(paragraphString.toLowerCase().replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", ""))
- && !messageList.get(messageList.size() - 1).getItemsNum().equals("annex")) {
-
- String appendixNum = messageList.get(messageList.size() - 1).getItemsNum().split("\\.")[0];
- if (Integer.valueOf(appendixNum) + 1 <= sarFileSplitInfoEO.getStopNumber()) {
- String itemName = "annex";
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), "annex", itemName, clauseContent);
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList("annex", treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, "", enumByValue);
- addItermsConditionsText(message, itemValList, paragraphString);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- messageList.add(message);
- nowStart = new ArrayList<>();
- } else {
- break;
- }
-
- } else {
- if (!p.getText().equals("")) {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
-// }
- hasGoIf = true;
- }
-
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
-
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
- addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- /**
- * 美国标准
- *
- * @param sarFileSplitInfoEO
- * @param enumByValue
- * @return
- */
- public int fileUSA(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
- int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("S1");
-// if (sarFileSplitInfoEO.getStartNumber()<4){
-// } else {
-// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
-// }
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);) {
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
- XWPFDocument doc = new XWPFDocument(is);
-
- Pattern ptest = Pattern.compile("S^[\\d.]*$");
- Matcher matcher;
-
- // 记录拆分后的每一段文字
- List elements = doc.getBodyElements();
- // 记录word自动生成的编号数据
- Map numberMap = new HashMap();
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- List startDigitList = getStartDigit(elements, enumByValue);
- List newStartDigitList = new ArrayList<>();
- for (String startDigit : startDigitList) {
- if(startDigit.endsWith("S")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("S"));
- }
- if(startDigit.endsWith(".")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("."));
- }
- newStartDigitList.add(startDigit);
- }
- String preName = "";
- int preNameNum = 0;
-// for (IBodyElement element : elements) {
- for (int g=0; g< elements.size(); g++) {
- IBodyElement element = elements.get(g);
- // 段落
- if (element instanceof XWPFParagraph) {
- XWPFParagraph p = (XWPFParagraph) element;
-
- // 处理段落生成编号不识别问题
- String paragraphString = p.getText();
- if (StringUtils.isNotBlank(paragraphString)) {
- paragraphString = paragraphString.replace((char) 12288, ' ');
- paragraphString = paragraphString.trim();
- }
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- paragraphString = paragraphString.replaceAll("\r\n","");
- paragraphString = paragraphString.replaceAll("\n","");
- paragraphString = paragraphString.trim();
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- ptest = Pattern.compile("S^[\\d.]*$");
- boolean hasGoIf = false;
- String startDigit = getOneStartDigit(paragraphString,enumByValue);
- if(startDigit.endsWith("S")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("S"));
- }
- for (int i = 0; i < nowStart.size(); i++) {
- if (startDigit.equals(nowStart.get(i)) || startDigit.equals(nowStart.get(i)+ ".") ) {
- // 判断一级 真的是标题还是干扰项 TODO
- if (startDigit.matches("^[0-9]*.$")) {
- if(startDigit.endsWith(".")) {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit.substring(0, startDigit.lastIndexOf(".")), g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- } else {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit, g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- }
- }
- // 判断名称,如果大于10位,取十位,
- String itemName = FileSplitUtils.getItemName(paragraphString, startDigit);
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), startDigit, itemName, clauseContent);
-
- String[] numberStr = nowStart.get(i).split("\\.");
- String numberStrTemp = numberStr[0].replace("S", "");
-
- if (Integer.valueOf(numberStrTemp) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- preName = nowStart.get(i);
- preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = getNewNowStartUS(nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
- break;
-
- }
- }
- if (!hasGoIf && menuCanAdd) {
- if (!p.getText().equals("")) {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- hasGoIf = true;
- }
-
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
-
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
- addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- /**
- * 日本标准
- *
- * @param sarFileSplitInfoEO
- * @param enumByValue
- * @return
- */
- public int fileJapanOne(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
- int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("1.");
-// if (sarFileSplitInfoEO.getStartNumber()<4){
-// } else {
-// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
-// }
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);) {
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
- XWPFDocument doc = new XWPFDocument(is);
-
- Pattern ptest = Pattern.compile("^[\\d.]*$");
-// Matcher matcher;
-
- // 记录拆分后的每一段文字
- List elements = doc.getBodyElements();
- // 记录word自动生成的编号数据
- Map numberMap = new HashMap();
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- for (IBodyElement element : elements) {
- // 段落
- if (element instanceof XWPFParagraph) {
- XWPFParagraph p = (XWPFParagraph) element;
-
- // 处理段落生成编号不识别问题
- String paragraphString = p.getText();
- if (StringUtils.isNotBlank(paragraphString)) {
- paragraphString = paragraphString.replace((char) 12288, ' ');
- paragraphString = paragraphString.trim();
- }
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- paragraphString = paragraphString.replaceAll("\r\n","");
- paragraphString = paragraphString.replaceAll("\n","");
- paragraphString = paragraphString.trim();
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- ptest = Pattern.compile("^[\\d.]*$");
- //定义查看是否有编号,没有编号则按照上一个编号放置数据
- boolean hasGoIf = false;
- for (int i = 0; i < nowStart.size(); i++) {
- if (paragraphString.replaceAll(" ", "").startsWith(nowStart.get(i))) {
- // 判断名称,如果大于10位,取十位,
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
-
-
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
- String[] numberStr;
- if (nowStart.get(i).contains(".")) {
- numberStr = nowStart.get(i).split("\\.");
- } else {
- numberStr = nowStart.get(i).split("–");
- }
-
- if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = getNewNowStartJapanOne("", nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
-
- break;
-
- }
-
- }
- if (!hasGoIf && menuCanAdd) {
- if (!p.getText().equals("")) {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
-
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
-
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
- addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
- }
-
- /**
- * 日本标准
- *
- * @param sarFileSplitInfoEO
- * @param enumByValue
- * @return
- */
- public int fileJapanTwo(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
- int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("1.");
-// if (sarFileSplitInfoEO.getStartNumber()<4){
-// } else {
-// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
-// }
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);) {
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
- XWPFDocument doc = new XWPFDocument(is);
-
- Pattern ptest = Pattern.compile("^[\\d.]*$");
-// Matcher matcher;
-
- // 记录拆分后的每一段文字
- List elements = doc.getBodyElements();
- // 记录word自动生成的编号数据
- Map numberMap = new HashMap();
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- StringBuilder lastStrTemp = new StringBuilder();
- StringBuilder secondStrTemp = new StringBuilder();
- for (IBodyElement element : elements) {
- // 段落
- if (element instanceof XWPFParagraph) {
- XWPFParagraph p = (XWPFParagraph) element;
-
- // 处理段落生成编号不识别问题
- String paragraphString = p.getText();
-
- if (StringUtils.isNotBlank(paragraphString)) {
- paragraphString = paragraphString.replace((char) 12288, ' ');
- paragraphString = paragraphString.trim();
- }
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- paragraphString = paragraphString.replaceAll("\r\n","");
- paragraphString = paragraphString.replaceAll("\n","");
- paragraphString = paragraphString.trim();
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- boolean hasGoIf = false;
- for (int i = 0; i < nowStart.size(); i++) {
- if (paragraphString.startsWith(nowStart.get(i))) {
- // 判断名称,如果大于10位,取十位,
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
- String name = lastStrTemp.toString() + "=" + secondStrTemp.toString() + "=" + nowStart.get(i);
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(name, treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = getNewNowStartJapanTwo(lastStrTemp, secondStrTemp, nowStart.get(i));
- menuCanAdd = true;
- hasGoIf = true;
- break;
-
- }
-
- }
- if (!hasGoIf && menuCanAdd) {
- if (!p.getText().equals("")) {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- hasGoIf = true;
- }
-
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
-
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
- addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
- }
-
- /**
- * 欧洲标准
- *
- * @param sarFileSplitInfoEO
- * @param enumByValue
- * @return
- */
- public int fileEU(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
- int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("1");
-// if (sarFileSplitInfoEO.getStartNumber()<4){
-// } else {
-// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
-// }
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);) {
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
- XWPFDocument doc = new XWPFDocument(is);
-
- Pattern ptest = Pattern.compile("^[\\d.]*$");
-// Matcher matcher;
-
- // 记录拆分后的每一段文字
- List elements = doc.getBodyElements();
- // 记录word自动生成的编号数据
- Map numberMap = new HashMap();
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- List startDigitList = getStartDigit(elements, enumByValue);
- List newStartDigitList = new ArrayList<>();
- for (String startDigit : startDigitList) {
- if(startDigit.endsWith(".")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("."));
- }
- newStartDigitList.add(startDigit);
- }
- String regex = "^[0-9]*$";
- boolean firstFlag = true;
- String preName = "";
- int preNameNum = 0;
-// for (IBodyElement element : elements) {
- for (int g=0; g< elements.size(); g++) {
- IBodyElement element = elements.get(g);
- // 段落
- if (element instanceof XWPFParagraph) {
- XWPFParagraph p = (XWPFParagraph) element;
-
- // 处理段落生成编号不识别问题
- String paragraphString = p.getText();
- if (!StringUtils.isEmpty(paragraphString)) {
- paragraphString = paragraphString.replace((char) 12288, ' ');
- paragraphString = paragraphString.replaceAll("\r\n","");
- paragraphString = paragraphString.replaceAll("\n","");
- paragraphString = paragraphString.trim();
- }
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- if (paragraphString.toLowerCase().contains("scope")) {
- String pp = paragraphString.replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", "");
- if (!pp.substring(pp.length()-1).matches(regex)) {
- firstFlag = false;
- }
- }
- if (firstFlag) {
- continue;
- }
- ptest = Pattern.compile("^[\\d.]*$");
- //定义查看是否有编号,没有编号则按照上一个编号放置数据
- boolean hasGoIf = false;
- String startDigit = getOneStartDigit(paragraphString, enumByValue);
- for (int i = 0; i < nowStart.size(); i++) {
- if (startDigit.equals(nowStart.get(i)) || startDigit.equals(nowStart.get(i)+ ".") || startDigit.equals(nowStart.get(i)+ "-") ) {
- // 判断一级 真的是标题还是干扰项 TODO
- if (startDigit.matches("^[0-9]*.$") || startDigit.matches("^[0-9]*-$")) {
- if(startDigit.endsWith(".")) {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit.substring(0, startDigit.lastIndexOf(".")), g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- } else if(startDigit.endsWith("-")) {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit.substring(0, startDigit.lastIndexOf("-")), g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- } else {
- boolean result = fileSplitPdfService.judge(preName, preNameNum, startDigit, g, newStartDigitList, ".");
- if (result) {
- continue;
- }
- }
- }
- // 判断名称,如果大于10位,取十位,
- String itemName = FileSplitUtils.getItemName(paragraphString, startDigit);
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), startDigit, itemName, clauseContent);
-
- String[] numberStr = nowStart.get(i).split("\\.");
-
- if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- preName = nowStart.get(i);
- preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- addItermsConditionsText(message, itemValList, paragraphString.substring(startDigit.length()));
- }
- messageList.add(message);
- nowStart = getNewNowStart(nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
- break;
-
- }
-
- }
- if (!hasGoIf && menuCanAdd) {
- if (("annex1".equals(paragraphString.toLowerCase().replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", ""))
- || "annex1a".equals(paragraphString.toLowerCase().replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", "")))
- && !messageList.get(messageList.size() - 1).getItemsNum().equals("annex")) {
-
- String appendixNum = messageList.get(messageList.size() - 1).getItemsNum().split("\\.")[0];
- if (Integer.valueOf(appendixNum) + 1 <= sarFileSplitInfoEO.getStopNumber()) {
- String itemName = "annex";
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), "annex", itemName, clauseContent);
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList("annex", treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, "", enumByValue);
- addItermsConditionsText(message, itemValList, paragraphString);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- messageList.add(message);
- nowStart = new ArrayList<>();
- } else {
- break;
- }
-
- } else {
- if (!p.getText().equals("")) {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- hasGoIf = true;
- }
-
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
-
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
- addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
- }
-
- /**
- * KMVSS_ARTICLE标准
- *
- * @param sarFileSplitInfoEO
- * @param enumByValue
- * @return
- */
- public int fileKmvssArticle(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
- int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("(1)");
-// if (sarFileSplitInfoEO.getStartNumber()<4){
-// } else {
-// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
-// }
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);){
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
- XWPFDocument doc = new XWPFDocument(is);
-
- Pattern ptest = Pattern.compile("^[\\d.]*$");
-// Matcher matcher;
-
- // 记录拆分后的每一段文字
- List elements = doc.getBodyElements();
- // 记录word自动生成的编号数据
- Map numberMap = new HashMap();
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- StringBuilder lastStr = new StringBuilder();
- for (IBodyElement element : elements) {
- // 段落
- if (element instanceof XWPFParagraph) {
- XWPFParagraph p = (XWPFParagraph) element;
-
- // 处理段落生成编号不识别问题
- String paragraphString = p.getText();
- if (StringUtils.isNotBlank(paragraphString)) {
- paragraphString = paragraphString.replace((char) 12288, ' ');
- paragraphString = paragraphString.trim();
- }
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- paragraphString = paragraphString.replaceAll("\r\n","");
- paragraphString = paragraphString.replaceAll("\n","");
- paragraphString = paragraphString.trim();
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- ptest = Pattern.compile("^[\\d.]*$");
- //定义查看是否有编号,没有编号则按照上一个编号放置数据
- boolean hasGoIf = false;
- for (int i = 0; i < nowStart.size(); i++) {
- if (paragraphString.startsWith(nowStart.get(i))) {
- // 判断名称,如果大于10位,取十位,
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
- // 增加一条数据,需要在数结构中加一条数据
- String name = lastStr + "=" + nowStart.get(i);
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(name, treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = getNewNowStartKmvssArticle(lastStr, nowStart.get(i));
- menuCanAdd = true;
- hasGoIf = true;
- break;
-
- }
-
- }
- if (!hasGoIf && menuCanAdd) {
- if (!p.getText().equals("")) {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
-// }
- hasGoIf = true;
- }
-
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
-
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
- addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
- }
-
- /**
- * KMVSS_TABLE标准
- *
- * @param sarFileSplitInfoEO
- * @param enumByValue
- * @return
- */
- public int fileKmvssTable(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
- int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
-
- //固定字段内容跳过,包含Note:、Notes:
- List filterList = new ArrayList<>();
- filterList.add("Note:");
- filterList.add("Notes:");
-
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- //临时保存note数据列表
- List nowStartNotes = new ArrayList<>();
- //初始判断值
- nowStart.add("1.");
- nowStartNotes.add("1.");
-// if (sarFileSplitInfoEO.getStartNumber()<4){
-// } else {
-// nowStart.add(String.valueOf(sarFileSplitInfoEO.getStartNumber()));
-// }
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- try (InputStream is = MinioUtil.download(readFilePath);){
-
-// InputStream is = new FileInputStream(readFilePath); //需要将文件路更改为word文档所在路径。
- XWPFDocument doc = new XWPFDocument(is);
-
- Pattern ptest = Pattern.compile("^[\\d.]*$");
-// Matcher matcher;
-
- // 记录拆分后的每一段文字
- List elements = doc.getBodyElements();
- // 记录word自动生成的编号数据
-// Map numberMap = new HashMap();
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- boolean filterFlag = false;
- int menuLevel = 0;//菜单等级,分为1/2/3/4/5级
- int menuNoteLevel = 0;//菜单等级,分为1/2/3/4/5级
-// StringBuilder lastStr = new StringBuilder();
- //存储前四级目录数据
- String[] catalogerArr = new String[4];
- String[] catalogerNoteArr = new String[4];
- for (IBodyElement element : elements) {
- // 段落
- if (element instanceof XWPFParagraph) {
- XWPFParagraph p = (XWPFParagraph) element;
-
- // 处理段落生成编号不识别问题
- String paragraphString = p.getText();
- if (StringUtils.isNotBlank(paragraphString)) {
- paragraphString = paragraphString.replace((char) 12288, ' ');
- paragraphString = paragraphString.trim();
- }
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
- paragraphString = paragraphString.replaceAll("\r\n","");
- paragraphString = paragraphString.replaceAll("\n","");
- paragraphString = paragraphString.trim();
- if(StringUtils.isEmpty(paragraphString)){
- // 处理当前段落仅为图片的情况
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- if (messageList.size() > 0) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
- }
- continue;
- }
-
- if (filterFlag) {
- boolean noteFlag = false;
- for (String nowStartNote : nowStartNotes) {
- if (paragraphString.startsWith(nowStartNote)) {
- noteFlag = true;
- //预测下一级内容
- nowStartNotes = getNewNowStartKmvssTable(catalogerNoteArr, nowStartNote, menuNoteLevel);
- break;
- }
- }
- if (!noteFlag) {
- for (int i = 0; i < nowStart.size(); i++) {
- if (paragraphString.startsWith(nowStart.get(i))) {
- filterFlag = false;
- break;
- }
- }
- }
- }
-
- //包含note或者notes
- if (filterList.contains(paragraphString)) {
- //重置所有note计数参数
- filterFlag = true;
- nowStartNotes = new ArrayList<>();
- nowStartNotes.add("1.");
- catalogerNoteArr = new String[4];
- menuNoteLevel = 0;
- }
-
- ptest = Pattern.compile("^[\\d.]*$");
- //定义查看是否有编号,没有编号则按照上一个编号放置数据
- boolean hasGoIf = false;
- for (int i = 0; i < nowStart.size(); i++) {
- if (paragraphString.startsWith(nowStart.get(i)) && (!filterFlag)) {
- // 判断名称,如果大于10位,取十位,
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
- // 增加一条数据,需要在数结构中加一条数据
- String name = "";
- for (int j = 0; j < catalogerArr.length; j++) {
- name = name + "=" + catalogerArr[j];
- }
- name = name + "=" + nowStart.get(i);
- SarFileSplitMenuEO sarFileSplitMenuEO = getTreeList(name, treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = getNewNowStartKmvssTable(catalogerArr, nowStart.get(i), menuLevel);
- menuCanAdd = true;
- hasGoIf = true;
- break;
-
- }
-
- }
- if (!hasGoIf && menuCanAdd) {
- if (!p.getText().equals("")) {
- addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, p.getText());
- }
- List imageBundleList = readImageInParagraph((XWPFParagraph) p);
- if (CollectionUtils.isNotEmpty(imageBundleList)) {
- addItermsConditionsImage(messageList.get(messageList.size() - 1), itemValList, p, imageBundleList);
- }
-// }
- hasGoIf = true;
- }
-
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
-
- } else if (element instanceof XWPFTable) {
- if (messageList != null && !messageList.isEmpty()) {
- addItermsConditionsOfTable(messageList.get(messageList.size() - 1), itemValList, (XWPFTable) element);
- }
- }
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
- }
-
- /**
- * 通过传递过来的编号,得出下次可能出现的编号(欧洲)
- *
- * @param nowStart
- * @return
- */
- public static List getNewNowStartEU(String nowStart) {
-// List nowStartList = new ArrayList<>();
- List nowResultStartList = new ArrayList<>();
- String[] numberStr = nowStart.split("\\.");
- String startnumber = "";
- for (int i = 0; i < numberStr.length; i++) {
- if (i == 0) {
- startnumber = "";
- } else if (i == 1) {
- startnumber = numberStr[0];
- } else {
- startnumber = startnumber + "." + numberStr[i - 1];
- }
- Integer lastnumber = Integer.valueOf(numberStr[i]) + 1;
- nowResultStartList.add((startnumber.equals("") ? "" : (startnumber + ".")) + lastnumber + ".");
- }
- nowResultStartList.add(nowStart + "1.");
- return nowResultStartList;
- }
-
- /**
- * 通过传递过来的编号,得出下次可能出现的编号(美国)
- *
- * @param nowStart
- * @return
- */
- public static List getNewNowStartUS(String nowStart) {
-// List nowStartList = new ArrayList<>();
- List nowResultStartList = new ArrayList<>();
- String[] numberStr = nowStart.replace("S", "").split("\\.");
- String startnumber = "";
- for (int i = 0; i < numberStr.length; i++) {
- if (i == 0) {
- startnumber = "";
- } else if (i == 1) {
- startnumber = numberStr[0];
- } else {
- startnumber = startnumber + "." + numberStr[i - 1];
- }
- Integer lastnumber = Integer.valueOf(numberStr[i]) + 1;
- nowResultStartList.add("S" + (startnumber.equals("") ? "" : (startnumber + ".")) + lastnumber);
- }
- nowResultStartList.add(nowStart + ".1");
- return nowResultStartList;
- }
-
- /**
- * 通过传递过来的编号,得出下次可能出现的编号(日本)方案一
- *
- * @param lastStr 上一级内容
- * @param nowStart 当前标题内容
- * @return
- */
- public static List getNewNowStartJapanOne(String lastStr, String nowStart) {
- List nowResultStartList = new ArrayList<>();
- if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains(".")) {
- //包含数字且.
- String[] numberStr = nowStart.split("\\.");
- Integer lastnumber = Integer.valueOf(numberStr[0]) + 1;
- nowResultStartList.add(lastnumber + ".");
- nowResultStartList.add(nowStart.replace(".", "") + "–1");
- } else if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains("–")) {
- //包含数字且-
- String[] numberStr = nowStart.split("–");
- String startnumber = "";
- for (int i = 0; i < numberStr.length; i++) {
- if (i == 0) {
- startnumber = "";
- } else if (i == 1) {
- startnumber = numberStr[0];
- } else {
- startnumber = startnumber + "–" + numberStr[i - 1];
- }
- Integer lastnumber = Integer.valueOf(numberStr[i]) + 1;
- if (i == 0) {
- nowResultStartList.add(lastnumber + ".");
- } else {
- nowResultStartList.add((startnumber.equals("") ? "" : (startnumber + "–")) + lastnumber);
- }
-
- }
- nowResultStartList.add(nowStart + "–1");
- }
- return nowResultStartList;
- }
-
- /**
- * 通过传递过来的编号,得出下次可能出现的编号(日本2)方案2
- *
- * @param lastStr 上一级内容
- * @param secondStr 第二级内容
- * @param nowStart 当前标题内容
- * @return
- */
- public static List getNewNowStartJapanTwo(StringBuilder lastStr, StringBuilder secondStr, String nowStart) {
- List nowResultStartList = new ArrayList<>();
- if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains(".")) {
- //包含数字且.
- String[] numberStr = nowStart.split("\\.");
- Integer lastnumber = Integer.valueOf(numberStr[0]) + 1;
- if (lastStr.length() > 0) {
- lastStr.delete(0, lastStr.length());
- }
- lastStr.append(lastnumber).append(".");
- nowResultStartList.add(lastnumber + ".");
- nowResultStartList.add("(1)");
- } else if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains(")")) {
- //包含数字且包含括号
- String startnumber = nowStart.replace("(", "").replace(")", "");
- Integer lastnumber = Integer.valueOf(startnumber);
- nowResultStartList.add("(" + (lastnumber + 1) + ")");
- if (secondStr.length() > 0) {
- secondStr.delete(0, secondStr.length());
- }
- secondStr.append("(").append((lastnumber + 1)).append(")");
-
- //上一级内容推断
- nowResultStartList.add(lastStr.toString());
- //下一级内容推断
- nowResultStartList.add("A.");
- } else if (FileSplitUtils.judgeContainsStr(nowStart)) {
- String numberStr = nowStart.replace(".", "");
- String nextUpEn = FileSplitUtils.getNextUpEn(numberStr);
- nowResultStartList.add(nextUpEn + ".");
-
- nowResultStartList.add(secondStr.toString());
-
- nowResultStartList.add(lastStr.toString());
-
- }
- return nowResultStartList;
- }
-
- /**
- * 通过传递过来的编号,得出下次可能出现的编号
- *
- * @param lastStr
- * @param nowStart
- * @return
- */
- public static List getNewNowStartKmvssArticle(StringBuilder lastStr, String nowStart) {
- List nowResultStartList = new ArrayList<>();
- if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains(")")) {
- //包含数字且包含括号
- String startnumber = nowStart.replace("(", "").replace(")", "");
- Integer lastnumber = Integer.valueOf(startnumber);
- nowResultStartList.add("(" + (lastnumber + 1) + ")");
- if (lastStr.length() > 0) {
- lastStr.delete(0, lastStr.length());
- }
- lastStr.append("(").append((lastnumber + 1)).append(")");
-
- //下一级内容推断
- nowResultStartList.add("1.");
- } else if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains(".")) {
- //包含数字且.
- String[] numberStr = nowStart.split("\\.");
- Integer lastnumber = Integer.valueOf(numberStr[0]) + 1;
- nowResultStartList.add(lastnumber + ".");
- //上一级内容推断
- nowResultStartList.add(lastStr.toString());
-// nowResultStartList.add("(1)");
- }
- return nowResultStartList;
- }
-
- /**
- * 通过传递过来的编号,得出下次可能出现的编号
- *
- * @param catalogerArr
- * @param nowStart
- * @param menuLevel
- * @return
- */
- public static List getNewNowStartKmvssTable(String[] catalogerArr, String nowStart, int menuLevel) {
- /*
- *1.韩国KmvssTable模板处理
- * 分为五级拆分,拆分为以下内容:
- * 第一级:1. 2. 3. 4. 等
- * 第二级:A. B. C. D. 等
- * 第三级:1) 2) 3) 4) 等
- * 第四级:A) B) C) D) 等
- * 第五级:(1) (2) (3) (4) 等
- *
- */
- if (catalogerArr.length != 4) {
- throw new JeroBootException("不符合目录规则,请使用其他方法");
- }
-
- List nowResultStartList = new ArrayList<>();
- if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains(".")) {
- menuLevel = 0;
- //第一级:1. 2. 3. 4. 等
- String numberStr = nowStart.replace(".", "");
- Integer lastnumber = Integer.valueOf(numberStr) + 1;
- catalogerArr[0] = lastnumber + ".";
- nowResultStartList.add(lastnumber + ".");
- //推测下级目录
- nowResultStartList.add("A.");
-
- } else if (FileSplitUtils.judgeContainsStr(nowStart) && nowStart.contains(".")) {
- menuLevel = 1;
- //第二级:A. B. C. D. 等
- String numberStr = nowStart.replace(".", "");
- String nextUpEn = FileSplitUtils.getNextUpEn(numberStr);
- catalogerArr[1] = nextUpEn + ".";
- nowResultStartList.add(nextUpEn + ".");
-
- //上一级
- nowResultStartList.add(catalogerArr[0]);
-
- //下一级
- nowResultStartList.add("1)");
-
-
- } else if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains(")") && (!nowStart.contains("("))) {
- menuLevel = 2;
- //第三级:1) 2) 3) 4) 等
- String numberStr = nowStart.replace(")", "");
- Integer lastnumber = Integer.valueOf(numberStr) + 1;
- catalogerArr[2] = lastnumber + ")";
- nowResultStartList.add(lastnumber + ")");
-
- //上一级
- nowResultStartList.add(catalogerArr[0]);
- nowResultStartList.add(catalogerArr[1]);
-
- //下一级
- nowResultStartList.add("A)");
-
- } else if (FileSplitUtils.judgeContainsStr(nowStart) && nowStart.contains(")")) {
- menuLevel = 3;
- //第四级:A) B) C) D) 等
- String numberStr = nowStart.replace(")", "");
- String nextUpEn = FileSplitUtils.getNextUpEn(numberStr);
- catalogerArr[3] = nextUpEn + ")";
- nowResultStartList.add(nextUpEn + ")");
-
- //上一级
- nowResultStartList.add(catalogerArr[0]);
- nowResultStartList.add(catalogerArr[1]);
- nowResultStartList.add(catalogerArr[2]);
-
- //下一级
- nowResultStartList.add("(1)");
-
- } else if (FileSplitUtils.hasDigit(nowStart) && nowStart.contains("(") && nowStart.contains(")")) {
- menuLevel = 4;
- //第五级:(1) (2) (3) (4) 等
- String numberStr = nowStart.replace("(", "").replace(")", "");
- Integer lastnumber = Integer.valueOf(numberStr) + 1;
-// catalogerArr[4] = lastnumber+")";
- nowResultStartList.add("(" + lastnumber + ")");
-
- //上一级
- nowResultStartList.add(catalogerArr[0]);
- nowResultStartList.add(catalogerArr[1]);
- nowResultStartList.add(catalogerArr[2]);
- nowResultStartList.add(catalogerArr[3]);
-
-
- }
- return nowResultStartList;
- }
/**
* 通过传递过来的编号,得出下次可能出现的编号
@@ -2700,23 +905,10 @@ public class FileSpiltService {
}
public List getStartDigit(List elements, SplitFileTypeTypeEnum enumByValue) {
- String regex = "[^\\p{Punct}\\p{Space}\\p{Digit}]"; // TODO
- switch (enumByValue) {
- case GB:
- case GBT:
- case EU:
- case GSO:
- case JPN_ARTICLE:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}]";
- break;
- case KMVSS_ARTICLE:
- case JPN_ATTACHMENT:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}–]";
- break;
- case US:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}S]";
- break;
- }
+ //\p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
+ //\p{Space} 空白字符:[ \t\n\x0B\f\r]
+ //\p{Digit} 十进制数字:[0-9]
+ String regex = "[^\\p{Punct}\\p{Space}\\p{Digit}]";
Matcher matcher;
List startDigitList = new ArrayList<>();
for (int l=0; l< elements.size(); l++) {
diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitPdfService.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitPdfService.java
index 991ff4f4..19746bbe 100644
--- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitPdfService.java
+++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitPdfService.java
@@ -33,1772 +33,11 @@ import java.util.regex.Pattern;
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class FileSplitPdfService {
- @Autowired
- private SarFileSplitMenuEOMapper sarFileSplitMenuEOMapper;
- @Autowired
- private IFileSplitItemsEOService iSarFileSplitItemsEOService;
- @Autowired
- private ISarFileSplitItemsValEOService iSarFileSplitItemsValEOService;
- @Autowired
- private IOSSFileService iossFileService;
@Autowired
private FileSpiltService fileSpiltService;
- @Value("${jero.path.upload}")
- private String filePath;
- @Value("${jero.path.uploadCos}")
- private String filePathCos;
- @Value("${jero.splitUrl}")
- private String splitUrl;
-
- public int fileCHN(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("总目录");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("1");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
- List startDigitList = getStartDigit(pdfArrays, enumByValue);
- String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- boolean firstFlag = true;
- String preName = "";
- int preNameNum = 0;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, startDigit);
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), startDigit, itemName, clauseContent);
-
- String[] numberStr = startDigit.split("\\.");
- if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(startDigit, treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- preName = startDigit;
- preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(startDigit.length()));
- }
- messageList.add(message);
- nowStart = fileSpiltService.getNewNowStart(startDigit);
-// nowStart.addAll(treeList.stream().filter(e->!"1".equals(e.getName())).map(SarFileSplitMenuEO:: getName).collect(Collectors.toList()));
- menuCanAdd = true;
- }
- hasGoIf = true;
- break;
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- Pattern ptest = Pattern.compile("^附录\\s{0,50}[A-Z]{1}");
- Matcher matcher = ptest.matcher(paragraphString);
- // 获取当前最后一项num
- if (matcher.find() && !messageList.get(messageList.size() - 1).getItemsNum().equals("附录")) {
- String appendixNum = messageList.get(messageList.size() - 1).getItemsNum().split("\\.")[0];
- if (Integer.valueOf(appendixNum) + 1 <= sarFileSplitInfoEO.getStopNumber()) {
- String itemName = "附录";
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), "附录", itemName, clauseContent);
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList("附录", treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, "", enumByValue);
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- messageList.add(message);
- nowStart = new ArrayList<>();
- } else {
- break;
- }
- } else {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- public int fileGSO(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-// dao.insertSelective(sarFileSplitInfoEO);
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("1");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
- List startDigitList = getStartDigit(pdfArrays, enumByValue);
- List newStartDigitList = new ArrayList<>();
- for (String startDigit : startDigitList) {
- if(startDigit.endsWith(".")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("."));
- }
- newStartDigitList.add(startDigit);
- }
- String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- boolean firstFlag = true;
- String preName = "";
- int preNameNum = 0;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, startDigit);
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), startDigit, itemName, clauseContent);
-
- String[] numberStr = nowStart.get(i).split("\\.");
- if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- preName = nowStart.get(i);
- preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(startDigit.length()));
- }
- messageList.add(message);
- nowStart = fileSpiltService.getNewNowStart(nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
- break;
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- if ("annex1".equals(paragraphString.toLowerCase().replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", ""))
- && !messageList.get(messageList.size() - 1).getItemsNum().equals("annex")) {
-
- String appendixNum = messageList.get(messageList.size() - 1).getItemsNum().split("\\.")[0];
- if (Integer.valueOf(appendixNum) + 1 <= sarFileSplitInfoEO.getStopNumber()) {
- String itemName = "annex";
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), "annex", itemName, clauseContent);
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList("annex", treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, "", enumByValue);
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- messageList.add(message);
- nowStart = new ArrayList<>();
- } else {
- break;
- }
-
- } else {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- public int fileEU(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-// dao.insertSelective(sarFileSplitInfoEO);
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("1");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
- List startDigitList = getStartDigit(pdfArrays, enumByValue);
- List newStartDigitList = new ArrayList<>();
- for (String startDigit : startDigitList) {
- if(startDigit.endsWith(".")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("."));
- }
- newStartDigitList.add(startDigit);
- }
- String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- boolean firstFlag = true;
- String preName = "";
- int preNameNum = 0;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, startDigit);
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), startDigit, itemName, clauseContent);
-
- String[] numberStr = nowStart.get(i).split("\\.");
-// String numberStrTemp = numberStr[0].replace("S", "");
-
- if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- preName = nowStart.get(i);
- preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(startDigit.length()));
- }
- messageList.add(message);
-// nowStart = fileSpiltService.getNewNowStartEU(nowStart.get(i));
- nowStart = fileSpiltService.getNewNowStart(nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
- break;
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- if (("annex1".equals(paragraphString.toLowerCase().replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", ""))
- || "annex1a".equals(paragraphString.toLowerCase().replaceAll("\t", "")
- .replaceAll("\b", "").replaceAll(" ", "")))
- && !messageList.get(messageList.size() - 1).getItemsNum().equals("annex")) {
-
- String appendixNum = messageList.get(messageList.size() - 1).getItemsNum().split("\\.")[0];
- if (Integer.valueOf(appendixNum) + 1 <= sarFileSplitInfoEO.getStopNumber()) {
- String itemName = "annex";
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), "annex", itemName, clauseContent);
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList("annex", treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, "", enumByValue);
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- messageList.add(message);
- nowStart = new ArrayList<>();
- } else {
- break;
- }
-
- } else {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
-
- public int fileUSA(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-// dao.insertSelective(sarFileSplitInfoEO);
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("S1");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
- List startDigitList = getStartDigit(pdfArrays, enumByValue);
- List newStartDigitList = new ArrayList<>();
- for (String startDigit : startDigitList) {
- if(startDigit.endsWith("S")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("S"));
- }
- if(startDigit.endsWith(".")) {
- startDigit = startDigit.substring(0, startDigit.lastIndexOf("."));
- }
- newStartDigitList.add(startDigit);
- }
-// String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
-// boolean firstFlag = true;
- String preName = "";
- int preNameNum = 0;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, startDigit);
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), startDigit, itemName, clauseContent);
-
- String[] numberStr = nowStart.get(i).split("\\.");
- String numberStrTemp = numberStr[0].replace("S", "");
-
- if (Integer.valueOf(numberStrTemp) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- preName = nowStart.get(i);
- preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(startDigit.length()));
- }
- messageList.add(message);
- nowStart = fileSpiltService.getNewNowStartUS(nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
- break;
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- public int fileKmvssArticle(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-// dao.insertSelective(sarFileSplitInfoEO);
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- nowStart.add("(1)");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
-// List startDigitList = getStartDigit(pdfArrays, enumByValue);
-// String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- StringBuilder lastStr = new StringBuilder();
-// boolean firstFlag = true;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
- // 增加一条数据,需要在数结构中加一条数据
- String name = lastStr + "=" + nowStart.get(i);
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(name, treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = fileSpiltService.getNewNowStartKmvssArticle(lastStr, nowStart.get(i));
- menuCanAdd = true;
- hasGoIf = true;
- break;
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- public int fileKmvssTable(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-// dao.insertSelective(sarFileSplitInfoEO);
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- //固定字段内容跳过,包含Note:、Notes:
- List filterList = new ArrayList<>();
- filterList.add("Note:");
- filterList.add("Notes:");
-
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- //临时保存note数据列表
- List nowStartNotes = new ArrayList<>();
- //初始判断值
- nowStart.add("1.");
- nowStartNotes.add("1.");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
-// List startDigitList = getStartDigit(pdfArrays, enumByValue);
-// String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- boolean filterFlag = false;
- int menuLevel = 0;//菜单等级,分为1/2/3/4/5级
- int menuNoteLevel = 0;//菜单等级,分为1/2/3/4/5级
- //存储前四级目录数据
- String[] catalogerArr = new String[4];
- String[] catalogerNoteArr = new String[4];
-// boolean firstFlag = true;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g();
- nowStartNotes.add("1.");
- catalogerNoteArr = new String[4];
- menuNoteLevel = 0;
- }
-
- boolean hasGoIf = false;
- // 处理标题行
-// String startDigit = getOneStartDigit(paragraphString,enumByValue);
- for (int i = 0; i < nowStart.size(); i++) {
- if (paragraphString.startsWith(nowStart.get(i)) && (!filterFlag)) {
-// if (startDigit.equals(nowStart.get(i))) {
- // 判断真的是标题还是干扰项 TODO
-// String startDigit = nowStart.get(i);
-// if (startDigit.matches(regex)) {
-// boolean result = judge(nowStart, startDigit, startDigitList, "\\.");
-// if (result) {
-// continue;
-// }
-// }
- // 判断名称,如果大于10位,取十位,
-// String itemName = paragraphString.substring(nowStart.get(i).length()).length()>10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
- // 增加一条数据,需要在数结构中加一条数据
- String name = "";
- for (int j = 0; j < catalogerArr.length; j++) {
- name = name + "=" + catalogerArr[j];
- }
- name = name + "=" + nowStart.get(i);
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(name, treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = fileSpiltService.getNewNowStartKmvssTable(catalogerArr, nowStart.get(i), menuLevel);
- menuCanAdd = true;
- hasGoIf = true;
- break;
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- public int fileJapanOne(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-// dao.insertSelective(sarFileSplitInfoEO);
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- //初始判断值
- nowStart.add("1.");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
-// List startDigitList = getStartDigit(pdfArrays, enumByValue);
-// String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
-// boolean firstFlag = true;
-// String preName = "";
-// int preNameNum = 0;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
-
-
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
- String[] numberStr;
- if (nowStart.get(i).contains(".")) {
- numberStr = nowStart.get(i).split("\\.");
- } else {
- numberStr = nowStart.get(i).split("–");
- }
-// String numberStrTemp = numberStr[0].replace("S", "");
-
- if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()) {
- menuCanAdd = false;
- } else {
- // 增加一条数据,需要在数结构中加一条数据
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(nowStart.get(i), treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
-// preName = nowStart.get(i);
-// preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = fileSpiltService.getNewNowStartJapanOne("", nowStart.get(i));
- menuCanAdd = true;
- }
- hasGoIf = true;
-
- break;
-
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- public int fileJapanTwo(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
-
- // 拆分文件主表中插入数据
- if (sarFileSplitInfoEO.getStopNumber() <= 0) {
- sarFileSplitInfoEO.setStopNumber(200);
- }
- if (sarFileSplitInfoEO.getStartNumber() <= 0) {
- sarFileSplitInfoEO.setStartNumber(1);
- }
-// dao.insertSelective(sarFileSplitInfoEO);
-
- // 拆分文件条款表中最终插入数据
- List messageList = new ArrayList<>();
-// int messageNumber = 0;
- // 拆分文件目录表中最终插入数据
- List treeList = new ArrayList<>();
- // 拆分文件条款详情表中最终插入数据
- List itemValList = new ArrayList<>();
- Long treeListDisplay = 1L;
-
- String generalCatalogueId = UUIDUtils.randomUUID20();
- SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
-// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"General Catalogue","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
- documentTreeEO.setId(generalCatalogueId);
- documentTreeEO.setName("General Catalogue");
- documentTreeEO.setInfoId(sarFileSplitInfoEO.getId());
- documentTreeEO.setDisplaySeq(1L);
- documentTreeEO.setDisplaySeq(treeListDisplay++);
- documentTreeEO.setValidFlag(0);
- treeList.add(documentTreeEO);
-
- List nowStart = new ArrayList<>();
- //初始判断值
- nowStart.add("1.");
- try {
-
- //获取文件地址
- String connectId = sarFileSplitInfoEO.getConnectId();
- String fileName = sarFileSplitInfoEO.getFileName();
- if (StringUtils.isEmpty(connectId) || StringUtils.isEmpty(fileName)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(OSSFile::getConnectId, connectId);
- queryWrapper.eq(OSSFile::getFileName, fileName);
- queryWrapper.orderByDesc(OSSFile::getCreateTime);
- List ossFileList = iossFileService.list(queryWrapper);
- if (CollectionUtils.isEmpty(ossFileList)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
- OSSFile ossFile = ossFileList.get(0);
- String readFilePath = ossFile.getUrl();
-
- if (StringUtils.isEmpty(readFilePath) || !MinioUtil.doesObjectExist(readFilePath)) {
- throw new JeroBootException("当前文件未找到,请重新选择!");
- }
-
- String readPdf = ReadPdfUtil.readPdf(readFilePath);
- if (StringUtils.isEmpty(readPdf)) {
- throw new JeroBootException("未读取到文件内容,请检查后重试!");
- }
- String[] pdfArrays;
-
- String os = System.getProperty("os.name");
- //Windows操作系统
- if (os != null && os.toLowerCase().startsWith("windows")) {
- pdfArrays = readPdf.split("\r\n");
- } else if (os != null && os.toLowerCase().startsWith("linux")) {//Linux操作系统
- pdfArrays = readPdf.split("\n");
- } else { //其它操作系统
- pdfArrays = readPdf.split("\n");
- }
-
-// List startDigitList = getStartDigit(pdfArrays, enumByValue);
-// String regex = "^[0-9]*$";
- boolean menuCanAdd = false; // 判断当前目录下是否可以正常填写数据
- StringBuilder lastStrTemp = new StringBuilder();
- StringBuilder secondStrTemp = new StringBuilder();
-// boolean firstFlag = true;
-// String preName = "";
-// int preNameNum = 0;
-// for (String paragraphString : pdfArrays) {
- for (int g=0; g10?paragraphString.substring(nowStart.get(i).length(),nowStart.get(i).length()+10):paragraphString.substring(nowStart.get(i).length());
- String itemName = FileSplitUtils.getItemName(paragraphString, nowStart.get(i));
- List clauseContent = new ArrayList<>();
- clauseContent.add(paragraphString);
- SarFileSplitItemsEO message = fileSpiltService.getSarFileSplitItemsEO(sarFileSplitInfoEO.getId(), nowStart.get(i), itemName, clauseContent);
-
-// String[] numberStr = nowStart.get(i).split("\\.");
-// String numberStrTemp = numberStr[0].replace("S", "");
-
-// if (Integer.valueOf(numberStr[0]) > sarFileSplitInfoEO.getStopNumber()){
-// menuCanAdd = false;
-// } else {
- // 增加一条数据,需要在数结构中加一条数据
- String name = lastStrTemp.toString() + "=" + secondStrTemp.toString() + "=" + nowStart.get(i);
- SarFileSplitMenuEO sarFileSplitMenuEO = fileSpiltService.getTreeList(name, treeList, generalCatalogueId, sarFileSplitInfoEO, treeListDisplay++, itemName, enumByValue);
- treeList.add(sarFileSplitMenuEO);
-// preName = nowStart.get(i);
-// preNameNum = g;
- message.setMenuId(sarFileSplitMenuEO.getId());
- if(!StringUtils.isEmpty(itemName)){
- fileSpiltService.addItermsConditionsText(message, itemValList, paragraphString.substring(nowStart.get(i).length()));
- }
- messageList.add(message);
- nowStart = fileSpiltService.getNewNowStartJapanTwo(lastStrTemp, secondStrTemp, nowStart.get(i));
- menuCanAdd = true;
-// }
- hasGoIf = true;
- break;
-
-
- }
- }
- // 不是标题行
- if (!hasGoIf && menuCanAdd) {
- if (!paragraphString.equals("")) {
- fileSpiltService.addItermsConditionsText(messageList.get(messageList.size() - 1), itemValList, paragraphString);
- }
- hasGoIf = true;
- }
- // 判断是否直接跳出所有循环
- if (!menuCanAdd && messageList.size() > 0) {
- break;
- }
- }
-
- } catch (JeroBootException e) {
- e.printStackTrace();
- throw new JeroBootException(e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- return -1;
- }
- if (treeList.size() > 0 && messageList.size() > 0) {
- sarFileSplitMenuEOMapper.insertForeach(treeList);
- for (int i = 0; i < messageList.size(); i++) {
- messageList.get(i).setZhan3Shi4Shun4Xu4(String.valueOf(i+1));
- }
- iSarFileSplitItemsEOService.insertForeach(messageList);
- iSarFileSplitItemsValEOService.insertForeach(itemValList);
- } else {
- return -1;
- }
- return treeList.size();
-
- }
-
- public String getOneStartDigit(String arr, SplitFileTypeTypeEnum enumByValue) {
- String regex="[^\\p{Punct}\\p{Space}\\p{Digit}]"; // TODO
- switch (enumByValue) {
- case GB:
- case GBT:
- case EU:
- case GSO:
- case JPN_ARTICLE:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}]";
- break;
- case KMVSS_ARTICLE:
- case JPN_ATTACHMENT:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}–]";
- break;
- case US:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}S]";
- break;
- }
- Matcher matcher;
- matcher = Pattern.compile(regex).matcher(arr);
- if(matcher.find()) {
- int index = matcher.start();
- String startDigit = arr.substring(0, index);
- startDigit = startDigit.replaceAll(" ", "");
- if(StringUtils.isNotBlank(startDigit)) {
- return startDigit.replaceAll("\t", "").replaceAll("\b", "")
- .replaceAll("\"", "").replaceAll("\'", "");
- }
- } else {
- return arr.replaceAll("\t", "").replaceAll("\b", "")
- .replaceAll(" ", "").replaceAll("\"", "").replaceAll("\'", "");
- }
- return "";
- }
-
- public List getStartDigit(String[] pdfArrays, SplitFileTypeTypeEnum enumByValue) {
- String regex = "[^\\p{Punct}\\p{Space}\\p{Digit}]"; // TODO
- switch (enumByValue) {
- case GB:
- case GBT:
- case EU:
- case GSO:
- case JPN_ARTICLE:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}]";
- break;
- case KMVSS_ARTICLE:
- case JPN_ATTACHMENT:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}–]";
- break;
- case US:
- regex = "[^\\p{Punct}\\p{Space}\\p{Digit}S]";
- break;
- }
- List startDigitList = new ArrayList<>();
- Matcher matcher;
- boolean firstFlag = true;
- for(int i=0; i startDigitList, String splitChar) {
- if(StringUtils.isNotBlank(preName)) {
- List nowStartList = fileSpiltService.getNewNowStartJapanOne(null,preName);
-
- List subList1 = startDigitList.subList(preNameNum, startDigitList.size()-1);
- // 后文有一级以下的标题
- for (int i = nowStartList.size() - 1; i >= 1; i--) {
- int index1 = subList1.indexOf(nowStartList.get(i));
- if (index1 != -1 && (index1-0) <= 100) { // TODO
- return true;
- }
- }
-
- // 后文没有一级以下的标题
- // 先看看一级有没重复
- int index3 = subList1.indexOf(currentNowStart + splitChar + "1");
- if(index3 == -1 || index3 > 100 ) {
- index3 = subList1.indexOf(nowStartList.get(0));
- }
- if(index3 > 0 && index3 <= 100) {
- List subList = subList1.subList(0, index3); // 这个范围要尽可能的小
- int index4 = subList.indexOf(currentNowStart);
- int index5 = subList.lastIndexOf(currentNowStart);
- if (index4 != index5 && index5 != (currentNum-preNameNum)) { // TODO
- return true;
- }
- }
-
- }
- return false;
- }
}
diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java
index a0ceced5..aac4f411 100644
--- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java
+++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitInfoServiceImpl.java
@@ -57,8 +57,6 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl