提交 2baf68f1 作者: chenshiqiang

edit for excel data

上级 664dfab4
...@@ -89,60 +89,68 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -89,60 +89,68 @@ class KnowledgeServiceImpl implements IKnowledgeService {
if (null == knowledge.getVerifyStatus()) { if (null == knowledge.getVerifyStatus()) {
knowledge.setVerifyStatus(0); knowledge.setVerifyStatus(0);
} }
knowledge.setCreateTime(cn.hutool.core.date.DateUtil.formatDateTime(new Date()).replace(" ", "T")); knowledge.setCreateTime(cn.hutool.core.date.DateUtil.formatDateTime(new Date()).replace(" ", "T"));
knowledge.setDeleteFlag(0); knowledge.setDeleteFlag(0);
List<KnowFile> knowFileList = new ArrayList<>(); KnowledgeMessage knowledgeMessage = new KnowledgeMessage();
knowFileList.add(knowFile); if (Integer.valueOf("0").equals(knowledge.getImportData())) {
knowledge.setFiles(knowFileList); List<KnowFile> knowFileList = new ArrayList<>();
List<Content> contentList = new ArrayList<>(); knowFileList.add(knowFile);
List<String> contentStringList = new ArrayList<>(); knowledge.setFiles(knowFileList);
String html = null; List<Content> contentList = new ArrayList<>();
try { List<String> contentStringList = new ArrayList<>();
File file = new File(filesStorage + knowledge.getFiles().get(0).getFilePath()); String html = null;
html = DocUtil.convertDocStream2Html(new FileInputStream(file)); try {
String htmlWithTable = html.replace("</p>", "######</p>"); File file = new File(filesStorage + knowledge.getFiles().get(0).getFilePath());
htmlWithTable = htmlWithTable.replace("</title>", "######</title>"); html = DocUtil.convertDocStream2Html(new FileInputStream(file));
htmlWithTable = htmlWithTable.replace("</h1>", "######</h1>"); String htmlWithTable = html.replace("</p>", "######</p>");
contentStringList = Arrays.asList(htmlWithTable.split("######")); htmlWithTable = htmlWithTable.replace("</title>", "######</title>");
} catch (Exception e) { htmlWithTable = htmlWithTable.replace("</h1>", "######</h1>");
e.printStackTrace(); contentStringList = Arrays.asList(htmlWithTable.split("######"));
} } catch (Exception e) {
e.printStackTrace();
}
if (null == knowledge.getTitle()) { if (null == knowledge.getTitle()) {
for (String tem : contentStringList) { for (String tem : contentStringList) {
String text = Jsoup.parse(tem).text(); String text = Jsoup.parse(tem).text();
log.info("info:{}", text); log.info("info:{}", text);
if ((!tem.contains("<title>")) && (!text.isEmpty())) { if ((!tem.contains("<title>")) && (!text.isEmpty())) {
knowledge.setTitle(text); knowledge.setTitle(text);
break; break;
}
} }
} }
}
List<String> messageContentList = contentStringList.stream() List<String> messageContentList = contentStringList.stream()
.filter(item -> !item.contains("<img")) .filter(item -> !item.contains("<img"))
.filter(item -> !item.contains("<table")) .filter(item -> !item.contains("<table"))
.filter(item -> !item.contains("<tr>")) .filter(item -> !item.contains("<tr>"))
.filter(item -> !item.contains("</tr>")) .filter(item -> !item.contains("</tr>"))
.filter(item -> !item.contains("<td>")) .filter(item -> !item.contains("<td>"))
.filter(item -> !item.contains("</td>")) .filter(item -> !item.contains("</td>"))
.map(item -> Jsoup.parse(item).text()) .map(item -> Jsoup.parse(item).text())
.collect(Collectors.toList()); .collect(Collectors.toList());
messageContentList = messageContentList. messageContentList = messageContentList.
stream().filter(item -> item.length() > 10) stream().filter(item -> item.length() > 10)
.collect(Collectors.toList()); .collect(Collectors.toList());
if (!messageContentList.isEmpty()) { if (!messageContentList.isEmpty()) {
for (String tem : messageContentList) { for (String tem : messageContentList) {
contentList.add(Content.builder() contentList.add(Content.builder()
.contentId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8)) .contentId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8))
.content(tem) .content(tem)
.build()); .build());
}
}
knowledge.setContents(contentList);
knowledgeMessage.setContents(contentList);
} else {
if (null == knowledge.getContents().get(0).getContentId()) {
knowledge.getContents().get(0).setContentId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8));
} }
knowledgeMessage.setContents(knowledge.getContents());
} }
knowledge.setContents(contentList);
//id为空表示新增 //id为空表示新增
if (null == knowledge.getId()) { if (null == knowledge.getId()) {
knowledge.setId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8)); knowledge.setId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8));
...@@ -153,10 +161,10 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -153,10 +161,10 @@ class KnowledgeServiceImpl implements IKnowledgeService {
} }
//删除 //删除
deleteForPython(knowledge.getId()); deleteForPython(knowledge.getId());
KnowledgeMessage knowledgeMessage = new KnowledgeMessage();
BeanUtils.copyProperties(knowledge, knowledgeMessage); BeanUtils.copyProperties(knowledge, knowledgeMessage);
knowledgeMessage.setType(knowledge.getTypeId()); knowledgeMessage.setType(knowledge.getTypeId());
knowledgeMessage.setContents(contentList);
produceInfo.sendKnowledgeContents(knowledgeMessage); produceInfo.sendKnowledgeContents(knowledgeMessage);
} }
...@@ -170,7 +178,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -170,7 +178,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
String[] split = ids.split(","); String[] split = ids.split(",");
for (String id : split) { for (String id : split) {
esOpUtil.docDeleteById(Constants.ES_DATA_FOR_KNOWLEDGE, id); esOpUtil.docDeleteById(Constants.ES_DATA_FOR_KNOWLEDGE, id);
CompletableFuture.runAsync(()->deleteForPython(id)); CompletableFuture.runAsync(() -> deleteForPython(id));
} }
} }
...@@ -451,7 +459,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -451,7 +459,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
} }
@Override @Override
public Result<?> doImportInfo(HttpServletRequest request,String userId) { public Result<?> doImportInfo(HttpServletRequest request, String userId) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
if (fileMap.size() < 1) { if (fileMap.size() < 1) {
...@@ -461,7 +469,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -461,7 +469,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
int index = multipartFile.getOriginalFilename().lastIndexOf("."); int index = multipartFile.getOriginalFilename().lastIndexOf(".");
String fileSuffix = multipartFile.getOriginalFilename().substring(index + 1); String fileSuffix = multipartFile.getOriginalFilename().substring(index + 1);
if ("doc".equals(fileSuffix) || "docx".equals(fileSuffix) || "xls".equals(fileSuffix) || "xlsx".equals(fileSuffix)) { if ("doc".equals(fileSuffix) || "docx".equals(fileSuffix) || "xls".equals(fileSuffix) || "xlsx".equals(fileSuffix)) {
asyncService.doimport(request, fileSuffix,userId); asyncService.doimport(request, fileSuffix, userId);
return Result.OK("已进行处理"); return Result.OK("已进行处理");
} else { } else {
return Result.error("不支持的文件类型"); return Result.error("不支持的文件类型");
...@@ -470,7 +478,7 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -470,7 +478,7 @@ class KnowledgeServiceImpl implements IKnowledgeService {
} }
@Override @Override
public void doExcel(HttpServletRequest request, String fileSuffix,String userId) { public void doExcel(HttpServletRequest request, String fileSuffix, String userId) {
String kbKnowledgeId = request.getParameter("kbKnowledgeId"); String kbKnowledgeId = request.getParameter("kbKnowledgeId");
String knowledgeProjectId = request.getParameter("knowledgeProjectId"); String knowledgeProjectId = request.getParameter("knowledgeProjectId");
String typeId = request.getParameter("typeId"); String typeId = request.getParameter("typeId");
...@@ -504,16 +512,16 @@ class KnowledgeServiceImpl implements IKnowledgeService { ...@@ -504,16 +512,16 @@ class KnowledgeServiceImpl implements IKnowledgeService {
specialInformation.setId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8)); specialInformation.setId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8));
if (StringUtils.isNotEmpty(info.get(0))) { if (StringUtils.isNotEmpty(info.get(0))) {
specialInformation.setTitle(info.get(0)); specialInformation.setTitle(info.get(0));
}else { } else {
log.error("上传的数据{}标题为空,此条数据忽略",info.get(0)); log.error("上传的数据{}标题为空,此条数据忽略", info.get(0));
continue; continue;
} }
if (StringUtils.isNotEmpty(info.get(1))) { if (StringUtils.isNotEmpty(info.get(1))) {
specialInformation.setContents(Collections.singletonList(Content.builder() specialInformation.setContents(Collections.singletonList(Content.builder()
.contentId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8)) .contentId(codeGenerateUtil.geneIdNo(Constants.FINANCE, 8))
.content(info.get(1)).build())); .content(info.get(1)).build()));
}else { } else {
log.error("上传的数据{}正文为空,此条数据忽略",info.get(0)); log.error("上传的数据{}正文为空,此条数据忽略", info.get(0));
continue; continue;
} }
if (StringUtils.isNotEmpty(info.get(2))) { if (StringUtils.isNotEmpty(info.get(2))) {
......
...@@ -290,16 +290,11 @@ public class LocalFileServiceImpl implements ILocalFileService { ...@@ -290,16 +290,11 @@ public class LocalFileServiceImpl implements ILocalFileService {
@Override @Override
public Result<?> editKnowledge(Knowledge knowledge) { public Result<?> editKnowledge(Knowledge knowledge) {
Result result = Result.OK(); Result result = Result.OK();
String id = knowledge.getId(); String id = knowledge.getId();
if(id == null || "".equals(id)) if(id == null || "".equals(id))
return Result.error("文章id不能为空"); return Result.error("文章id不能为空");
String publish = EsDateUtil.esFieldDateFormat(knowledge.getPublishDate()); String publish = EsDateUtil.esFieldDateFormat(knowledge.getPublishDate());
knowledge.setPublishDate(publish); knowledge.setPublishDate(publish);
KbAuthorizedUser userInfo = SpringContextUtils.getUserInfo(); KbAuthorizedUser userInfo = SpringContextUtils.getUserInfo();
knowledge.setUpdateBy(userInfo.getName()); knowledge.setUpdateBy(userInfo.getName());
knowledge.setUpdateTime(cn.hutool.core.date.DateUtil.formatDateTime(new Date()).replace(" ", "T")); knowledge.setUpdateTime(cn.hutool.core.date.DateUtil.formatDateTime(new Date()).replace(" ", "T"));
...@@ -310,30 +305,38 @@ public class LocalFileServiceImpl implements ILocalFileService { ...@@ -310,30 +305,38 @@ public class LocalFileServiceImpl implements ILocalFileService {
knowledge.setVerifierId(userInfo.getUserId()); knowledge.setVerifierId(userInfo.getUserId());
knowledge.setVerifierName(userInfo.getUsername()); knowledge.setVerifierName(userInfo.getUsername());
List<KnowFile> files = knowledge.getFiles();
KnowFile knowFile = files.get(0);
String filePath = knowFile.getFilePath();
try {
getDoucmentEditStatus(filePath,knowFile.getFileName());
} catch (ParseException e) { if(Integer.valueOf("0").equals(knowledge.getImportData())){
e.printStackTrace();
result = Result.error("文件保存失败!");
}
try { List<KnowFile> files = knowledge.getFiles();
Thread.sleep(5000); KnowFile knowFile = files.get(0);
} catch (InterruptedException e) { String filePath = knowFile.getFilePath();
e.printStackTrace(); try {
} getDoucmentEditStatus(filePath,knowFile.getFileName());
} catch (ParseException e) {
e.printStackTrace();
result = Result.error("文件保存失败!");
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String fileType = fileUtility.getFileType(knowFile.getFileName()); String fileType = fileUtility.getFileType(knowFile.getFileName());
knowFile.setFileType(fileType); knowFile.setFileType(fileType);
File file = new File(filesStorage + knowFile.getFilePath()); File file = new File(filesStorage + knowFile.getFilePath());
Long size = file.length(); Long size = file.length();
knowFile.setFileSize(size); knowFile.setFileSize(size);
knowledgeService.addKnowledge(knowFile,knowledge,userInfo); knowledgeService.addKnowledge(knowFile,knowledge,userInfo);
}else {
knowledgeService.addKnowledge(null,knowledge,userInfo);
}
return result; return result;
} }
public ResponseEntity<Object> getDoucmentEditStatus(String filePath,String fileName) throws ParseException { public ResponseEntity<Object> getDoucmentEditStatus(String filePath,String fileName) throws ParseException {
String url = officeUrl+officeCommand; String url = officeUrl+officeCommand;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论