update 优化文档拆分速度
This commit is contained in:
+34
-6
@@ -120,6 +120,9 @@ public class FileSpiltService {
|
||||
* @return
|
||||
*/
|
||||
public int fileCHN(SarFileSplitInfoEO sarFileSplitInfoEO, SplitFileTypeTypeEnum enumByValue) {
|
||||
long time1=System.currentTimeMillis();
|
||||
long time2=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time2-time1)+"ms");
|
||||
if (sarFileSplitInfoEO.getStopNumber() <= 0) {
|
||||
sarFileSplitInfoEO.setStopNumber(200);
|
||||
}
|
||||
@@ -130,6 +133,8 @@ public class FileSpiltService {
|
||||
String partName = "";
|
||||
LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.getById(sarFileSplitInfoEO.getStandardId());
|
||||
LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.getById(sarFileSplitInfoEO.getStandardId());
|
||||
long time3=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time3-time1)+"ms");
|
||||
if (!Objects.isNull(lawsDomesticStandard)){
|
||||
partName = lawsDomesticStandard.getPartName();
|
||||
}else {
|
||||
@@ -145,7 +150,8 @@ public class FileSpiltService {
|
||||
// 拆分文件条款详情表中最终插入数据
|
||||
List<SarFileSplitItemsValEO> itemValList = new ArrayList<>();
|
||||
Long treeListDisplay = 1L;
|
||||
|
||||
long time4=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time4-time1)+"ms");
|
||||
String generalCatalogueId = UUIDUtils.randomUUID20();
|
||||
SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO();
|
||||
// SarFileSplitMenuEO documentTreeEO = new SarFileSplitMenuEO(generalCatalogueId,"总目录","",sarFileSplitInfoEO.getId(),treeListDisplay++,"");
|
||||
@@ -180,19 +186,37 @@ public class FileSpiltService {
|
||||
if (StringUtils.isEmpty(readFilePath)) {
|
||||
throw new JeroBootException("当前文件未找到,请重新选择!");
|
||||
}
|
||||
long time5=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time5-time1)+"ms");
|
||||
// try (InputStream is = MinioUtil.download(readFilePath);InputStream is1 = MinioUtil.download(readFilePath)) {
|
||||
try (InputStream is = ObsBootUtil.getOssFile(readFilePath);InputStream is1 = ObsBootUtil.getOssFile(readFilePath)) {
|
||||
long time6=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time6-time1)+"ms");
|
||||
String fileName = readFilePath.substring((readFilePath.lastIndexOf("/") + 1));
|
||||
MultipartFile mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), is);
|
||||
MultipartFile mFile1 = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), is1);
|
||||
InputStream inputStream = IntekeyUtils.getInputStreamByDecryptFile(mFile);
|
||||
InputStream inputStream1 = IntekeyUtils.getInputStreamByDecryptFile(mFile1);
|
||||
InputStream inputStream;
|
||||
InputStream inputStream1;
|
||||
if (IntekeyUtils.ENABLE) {
|
||||
MultipartFile mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), is);
|
||||
MultipartFile mFile1 = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), is1);
|
||||
inputStream = IntekeyUtils.getInputStreamByDecryptFile(mFile);
|
||||
inputStream1 = IntekeyUtils.getInputStreamByDecryptFile(mFile1);
|
||||
}else {
|
||||
inputStream = is;
|
||||
inputStream1 = is1;
|
||||
}
|
||||
|
||||
ZipSecureFile.setMinInflateRatio(-1.0d);
|
||||
long time7=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time7-time1)+"ms");
|
||||
XWPFDocument doc = new XWPFDocument(inputStream);
|
||||
long time8=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time8-time1)+"ms");
|
||||
// 获取文档中的图片
|
||||
List<XWPFPictureData> allPictures = doc.getAllPictures();
|
||||
//List<XWPFPictureData> allPictures = doc.getAllPictures();
|
||||
//获得序号标题和无标题序号
|
||||
TitleNumberVO titleNumberVO = AsposeUtil.getNumber(inputStream1);
|
||||
long time9=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time9-time1)+"ms");
|
||||
//TitleNumberVO titleNumberVO = new TitleNumberVO();
|
||||
Map<String, List<String>> titleNumberMap = titleNumberVO.getTitleNumberMap();
|
||||
List<String> emptyTitleList = titleNumberVO.getEmptyTitleList();
|
||||
@@ -468,6 +492,8 @@ public class FileSpiltService {
|
||||
log.error(e.getMessage(),e);
|
||||
return -1;
|
||||
}
|
||||
long time10=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time10-time1)+"ms");
|
||||
if (treeList.size() > 0 && messageList.size() > 0) {
|
||||
sarFileSplitMenuEOMapper.insertForeach(treeList);
|
||||
for (int i = 0; i < messageList.size(); i++) {
|
||||
@@ -477,6 +503,8 @@ public class FileSpiltService {
|
||||
|
||||
iSarFileSplitItemsEOService.insertForeach(messageList);
|
||||
iSarFileSplitItemsValEOService.insertForeach(itemValList);
|
||||
long time11=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time11-time1)+"ms");
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -23,18 +23,28 @@ public class AsposeUtil {
|
||||
* @return
|
||||
*/
|
||||
public static TitleNumberVO getNumber(InputStream is) {
|
||||
long time1=System.currentTimeMillis();
|
||||
|
||||
TitleNumberVO titleNumberVO = new TitleNumberVO();
|
||||
Map<String, List<String>> titleNumberMap = new HashMap<>();
|
||||
List<String> emptyTitleList = new ArrayList<>();
|
||||
try {
|
||||
long time9=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time9-time1)+"ms");
|
||||
Document doc = new Document(is);
|
||||
|
||||
long time8=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time8-time1)+"ms");
|
||||
DocumentBuilder builder = new DocumentBuilder(doc);
|
||||
|
||||
builder.insertField(FieldType.FIELD_NUM_PAGES, true);
|
||||
long time7=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time7-time1)+"ms");
|
||||
//builder.insertField(FieldType.FIELD_NUM_PAGES, true);
|
||||
long time6=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time6-time1)+"ms");
|
||||
//获取段落
|
||||
NodeCollection childNodes = doc.getChildNodes(NodeType.ANY, true);
|
||||
NodeCollection childNodes = doc.getChildNodes(NodeType.PARAGRAPH, true);
|
||||
|
||||
long time2=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time2-time1)+"ms");
|
||||
for (int i = 0; i < childNodes.getCount(); i++) {
|
||||
Node next = childNodes.get(i);
|
||||
|
||||
@@ -79,6 +89,8 @@ public class AsposeUtil {
|
||||
}
|
||||
titleNumberVO.setTitleNumberMap(titleNumberMap);
|
||||
titleNumberVO.setEmptyTitleList(emptyTitleList);
|
||||
long time9=System.currentTimeMillis();
|
||||
log.info("耗时:"+(time9-time1)+"ms");
|
||||
return titleNumberVO;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user