update 文档拆分初步处理

This commit is contained in:
lijiarao
2023-09-20 15:10:57 +08:00
parent d4a88af2f5
commit 63858100a8
8 changed files with 123 additions and 3701 deletions
@@ -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);
}
Binary file not shown.
+9
View File
@@ -146,5 +146,14 @@
<artifactId>ant</artifactId>
<version>1.10.5</version>
</dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>21.1</version>
<scope>system</scope>
<classifier>jdk17</classifier>
<systemPath>${project.basedir}/lib/aspose-words-21.1-jdk17-cracked.jar</systemPath>
</dependency>
</dependencies>
</project>
@@ -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<SarFileSplitItemsValEO> itemValEOList;
// 前台删除的VAL表条目内容ID
private String delItemIds;
private String sMenuId;
List<String> itemsCondi;
private String zhan3Shi4Shun4Xu4;// 展示顺序字段
}
File diff suppressed because it is too large Load Diff
@@ -57,8 +57,6 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
@Autowired
private FileSpiltService fileSpiltService;
@Autowired
private FileSplitPdfService fileSplitPdfService;
@Autowired
private ISarFileSplitMenuEOService sarFileSplitMenuEOService;
@Autowired
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
@@ -74,80 +72,19 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
public void add(SarFileSplitInfoEO sarFileSplitInfoEO) {
Date now = new Date();
//保存拆分数据
String infoId = UUID.randomUUID().toString().replace("-", "");
sarFileSplitInfoEO.setId(infoId);
sarFileSplitInfoEO.setSplitResult("成功"); // TODO 这块之后可能不会用到
sarFileSplitInfoEO.setCreateTime(now);
sarFileSplitInfoEO.setUpdateTime(now);
save(sarFileSplitInfoEO);
SplitFileTypeTypeEnum enumByValue = SplitFileTypeTypeEnum.getEnumByValue(sarFileSplitInfoEO.getFileGroup());
/*SplitFileTypeTypeEnum enumByValue = SplitFileTypeTypeEnum.getEnumByValue(sarFileSplitInfoEO.getFileGroup());
String fileSuffix = "docx";
if (StringUtils.isNotEmpty(sarFileSplitInfoEO.getFileName())) {
String fileName = sarFileSplitInfoEO.getFileName();
fileSuffix = fileName.substring(fileName.lastIndexOf(".") + 1);
}
}*/
int result = 0;
switch (enumByValue){
case GB:
case GBT:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileCHN(sarFileSplitInfoEO,enumByValue);
} else if("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileCHN(sarFileSplitInfoEO, enumByValue);
}
break;
case EU:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileEU(sarFileSplitInfoEO, enumByValue);
} else if ("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileEU(sarFileSplitInfoEO, enumByValue);
}
break;
case US:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileUSA(sarFileSplitInfoEO,enumByValue);
} else if ("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileUSA(sarFileSplitInfoEO, enumByValue);
}
break;
case GSO:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileGSO(sarFileSplitInfoEO, enumByValue);
} else if ("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileGSO(sarFileSplitInfoEO, enumByValue);
}
break;
case JPN_ATTACHMENT:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileJapanOne(sarFileSplitInfoEO,enumByValue);
} else if ("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileJapanOne(sarFileSplitInfoEO, enumByValue);
}
break;
case JPN_ARTICLE:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileJapanTwo(sarFileSplitInfoEO, enumByValue);
} else if ("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileJapanTwo(sarFileSplitInfoEO, enumByValue);
}
break;
case KMVSS_ARTICLE:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileKmvssArticle(sarFileSplitInfoEO, enumByValue);
} else if ("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileKmvssArticle(sarFileSplitInfoEO, enumByValue);
}
break;
case KMVSS_TABLE:
if ("docx".equals(fileSuffix.toLowerCase())) {
result = fileSpiltService.fileKmvssTable(sarFileSplitInfoEO, enumByValue);
} else if ("pdf".equals(fileSuffix.toLowerCase())) {
result = fileSplitPdfService.fileKmvssTable(sarFileSplitInfoEO, enumByValue);
}
break;
default:
}
result = fileSpiltService.fileCHN(sarFileSplitInfoEO,SplitFileTypeTypeEnum.GBT);
if(result == -1){
if(LanguageEnum.CN.getValue().equals(sarFileSplitInfoEO.getCut())) {
throw new JeroBootException("文档格式错误,请检查文档内容!");
@@ -156,11 +93,6 @@ public class SarFileSplitInfoServiceImpl extends ServiceImpl<SarFileSplitInfoMap
}
}
// fileSpiltService.fileCHN(sarFileSplitInfoEO);
// fileSpiltService.fileEU(sarFileSplitInfoEO);
// fileSpiltService.fileUSA(sarFileSplitInfoEO);
// 添加条款总目录 TODO 这块之后可能不会用到
// SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
// sarFileSplitMenuEO.setName("总目录");
@@ -0,0 +1,52 @@
package com.jero.modules.split.util;
import com.aspose.words.*;
/**
* @author liJiaRao
* @date 2023-09-20 14:42
*/
public class AsposeUtil {
public static void main(String[] args) throws Exception {
// Document doc = new Document("C:\\wordtest\\GB7258标准修订test.docx");
Document doc = new Document("E:\\Data\\Downloads\\wordtest\\GB7258标准修订test - 表格测试.docx");
//Document doc = new Document("E:\\Data\\Downloads\\wordtest\\GB7258标准修订test.docx");
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertField(FieldType.FIELD_NUM_PAGES, true);
NodeCollection childNodes = doc.getChildNodes(NodeType.ANY, true); //获取段落
for (int i = 0; i < childNodes.getCount(); i++) {
Node next = childNodes.get(i);
if (next instanceof Paragraph) {
Paragraph node = (Paragraph) next;
String text = node.getText();
text = text.replaceAll("\t", "").replaceAll("\b", "")
.replaceAll(" ", "").replaceAll("\"", "").replaceAll("'", "");
String labelString = "";
if (node.getListFormat().isListItem()) {
ListLabel listLabel = node.getListLabel();
labelString = listLabel.getLabelString().trim();
labelString = labelString.replaceAll("\t", "").replaceAll("\b", "")
.replaceAll(" ", "").replaceAll("\"", "").replaceAll("'", "").replaceAll(" ","");
//System.out.println(labelString.substring(0,labelString.length()-1));
System.out.println("Text:"+labelString + text);
}
}
//if (next instanceof Table) {
// System.out.println("Table:"+next);
//}
//if (next instanceof Image) {
// System.out.println("ImageData:"+next);
//}
}
}
}