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