前言
在数字化高度遍及的时代,企事业机关单位在日常工作中会产生大量的文档,例如医院制度汇编,企业常识共享库等。针对这些文档性的货色,手工纸质化去治理是十分耗费工作量的,并且纸质化查阅难,易损耗,所以电子化治理显得尤为重要。
【springboot+elasticsearch+neo4j+vue+activiti】实现数字知识库管理系统。
一、我的项目概要
- springboot、vue前后端拆散技术。
- 先进的富文本编辑器,满足word一键粘贴百分之百格局还原,反对视频、图文等。
- 全文检索elasticsearch,达到简略疾速的后果搜寻。
- neo4j常识图谱,智能剖析。
- activiti工作流申请审核机制。
- 团队共享合作,罕用文档珍藏,热门文档排行。
二、相干技术点
1.富文本编辑器
利用以后最风行的富文本编辑器TinyMCE,反对从word、wps等一键复制粘贴,百分之百成果还原,更能够做到自定义格局设置。
<template> <div class="tinymce-editor"> <Editor v-model="editorValue" :init="editorInit" :disabled="disabled" @onClick="handleClick" /> </div></template>
2.全文检索
可依据文档的任意关键字进行全文检索常识,成果如同“百度一下”,简略疾速的收集到本人所要查问的常识,解决了纸质化时代的繁琐流程。
3.常识图谱
常识图谱可视化归类,反对同作者文档的采集,同类型文档的采集,做到智能化、网格化举荐。
<dependency> <groupId>org.neo4j.driver</groupId> <artifactId>neo4j-java-driver</artifactId> </dependency> public boolean isNeo4jOpen() { try (Session session = neo4jDriver.session()) { logger.debug("连贯胜利:" + session.isOpen()); return session.isOpen(); } catch (Exception e) { logger.error("neo4J连贯异样: "+e.getMessage()); } return false; } public StatementResult excuteCypherSql(String cypherSql) { StatementResult result = null; try (Session session = neo4jDriver.session()) { logger.debug("CypherSql : "+cypherSql); result = session.run(cypherSql); session.close(); } catch (Exception e) { logger.error("CypherSql执行异样: "+e.getMessage()); throw e; } return result; }
4.工作流
此系统集成了activiti工作流引擎,遵循文档发起者提交->负责人审批的规范化流程。
//获取bpmnModel对象 BpmnModel bpmnModel = repositoryService.getBpmnModel(historicProcessInstance.getProcessDefinitionId()); Process process = bpmnModel.getProcesses().get(0); Collection<FlowElement> flowElements = process.getFlowElements(); Map<String, String> map = new HashMap<>(); for (FlowElement flowElement : flowElements) { //判断是否是连线 if (flowElement instanceof SequenceFlow) { SequenceFlow sequenceFlow = (SequenceFlow) flowElement; String ref = sequenceFlow.getSourceRef(); String targetRef = sequenceFlow.getTargetRef(); map.put(ref + targetRef, sequenceFlow.getId()); } } List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery() .processInstanceId(instanceId) .list(); Set<String> keyList = new HashSet<>(); for (HistoricActivityInstance i : list) { for (HistoricActivityInstance j : list) { if (i != j) { keyList.add(i.getActivityId() + j.getActivityId()); } } }
总结
精准全面的搜寻能力,统一化治理,此套知识库管理系统以迷信的方法论并且通过理论我的项目锻炼做到了很好的赋能效应,解决了企事业数字资产的良性全生命周期治理。源码获取链接:+Q:2500564056