1 changed files with 765 additions and 0 deletions
@ -0,0 +1,765 @@ |
|||
package com.main.woka.Web.Service.impl; |
|||
|
|||
import com.main.woka.Common.util.*; |
|||
import com.main.woka.Web.Mapper.KcFileMapper; |
|||
import com.main.woka.Web.Mapper.KcInfoRelationMapper; |
|||
import org.neo4j.driver.v1.StatementResult; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.io.FileInputStream; |
|||
import java.lang.reflect.Field; |
|||
import java.util.*; |
|||
|
|||
@Service |
|||
public class KcTlFileServiceImpl { |
|||
|
|||
@Autowired |
|||
KcFileMapper kcFileMapper; |
|||
|
|||
@Autowired |
|||
KcInfoRelationMapper kcInfoRelationMapper; |
|||
|
|||
@Autowired |
|||
WordSplitter wordSplitter; |
|||
|
|||
@Autowired |
|||
RelationUtil relationUtil; |
|||
|
|||
@Autowired |
|||
Neo4jUtil neo4jUtil; |
|||
|
|||
@Autowired |
|||
KcFileMapper kcFile1Mapper; |
|||
|
|||
public String wordSplitter(FileInputStream file, String url, Integer fileId){ |
|||
try { |
|||
wordSplitter.testWordOne(file,url,fileId); |
|||
return "a"; |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return "b"; |
|||
} |
|||
|
|||
public Integer insertFile(KcTlFile kcTlFile){ |
|||
return kcInfoRelationMapper.insertFile(kcTlFile); |
|||
} |
|||
|
|||
public String getRelationShip(Integer fileId){ |
|||
|
|||
|
|||
|
|||
//先获取所有的第一级标题
|
|||
List<KcInfo> list = kcFileMapper.getHeaderByLevel(1l,fileId); |
|||
String nameOld = String.valueOf(kcFile1Mapper.getFileById(fileId)); |
|||
String name = nameOld.substring(0,nameOld.length()-5); |
|||
|
|||
|
|||
for(int a=0;a<list.size();a++){ |
|||
String source = list.get(a).getName(); |
|||
Long OneId = list.get(a).getId(); |
|||
|
|||
|
|||
String name1 = name; |
|||
String name2 = source; |
|||
KcInfoRelation zz1 = new KcInfoRelation(); |
|||
zz1.setRelation("属于"); |
|||
zz1.setSourceId(Long.valueOf(fileId)); |
|||
zz1.setTargetId(OneId); |
|||
zz1.setSourceName(name1); |
|||
zz1.setTargetName(name2); |
|||
zz1.setCreateTime(new Date()); |
|||
kcInfoRelationMapper.insertKcRelationship(zz1); |
|||
|
|||
|
|||
List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId); |
|||
|
|||
for(int i=0;i<list1.size();i++){ |
|||
|
|||
String target = list1.get(i).getName(); |
|||
// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
String aa = "属于"; |
|||
// System.out.println(aa);
|
|||
//获取两个的Id
|
|||
Long TwoId = list1.get(i).getId(); |
|||
KcInfoRelation zz = new KcInfoRelation(); |
|||
zz.setRelation(aa); |
|||
zz.setSourceId(OneId); |
|||
zz.setTargetId(TwoId); |
|||
zz.setSourceName(source); |
|||
zz.setTargetName(target); |
|||
zz.setCreateTime(new Date()); |
|||
kcInfoRelationMapper.insertKcRelationship(zz); |
|||
} |
|||
} |
|||
|
|||
//获取所有的二级标题
|
|||
List<KcInfo> list2 = kcFileMapper.getHeaderByLevel(2l,fileId); |
|||
for(int a1=0;a1<list2.size();a1++){ |
|||
Long OneId = list2.get(a1).getId(); |
|||
List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId); |
|||
for(int i=0;i<list1.size();i++){ |
|||
String source = list2.get(a1).getName(); |
|||
String target = list1.get(i).getName(); |
|||
// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
String aa = "属于"; |
|||
System.out.println(aa); |
|||
//获取两个的Id
|
|||
Long TwoId = list1.get(i).getId(); |
|||
KcInfoRelation zz = new KcInfoRelation(); |
|||
zz.setRelation(aa); |
|||
zz.setSourceId(OneId); |
|||
zz.setTargetId(TwoId); |
|||
zz.setSourceName(source); |
|||
zz.setTargetName(target); |
|||
zz.setCreateTime(new Date()); |
|||
kcInfoRelationMapper.insertKcRelationship(zz); |
|||
|
|||
} |
|||
} |
|||
|
|||
//获取所有的三级标题
|
|||
List<KcInfo> list3 = kcFileMapper.getHeaderByLevel(3l,fileId); |
|||
for(int a2=0;a2<list3.size();a2++){ |
|||
Long OneId = list3.get(a2).getId(); |
|||
List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId); |
|||
for(int i=0;i<list1.size();i++){ |
|||
String source = list3.get(a2).getName(); |
|||
String target = list1.get(i).getName(); |
|||
String aa = "属于"; |
|||
// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
System.out.println(aa); |
|||
//获取两个的Id
|
|||
Long TwoId = list1.get(i).getId(); |
|||
KcInfoRelation zz = new KcInfoRelation(); |
|||
zz.setRelation(aa); |
|||
zz.setSourceId(OneId); |
|||
zz.setTargetId(TwoId); |
|||
zz.setSourceName(source); |
|||
zz.setTargetName(target); |
|||
zz.setCreateTime(new Date()); |
|||
kcInfoRelationMapper.insertKcRelationship(zz); |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
//获取所有的四级标题
|
|||
List<KcInfo> list4 = kcFileMapper.getHeaderByLevel(4l,fileId); |
|||
for(int a2=0;a2<list4.size();a2++){ |
|||
Long OneId = list4.get(a2).getId(); |
|||
List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId); |
|||
for(int i=0;i<list1.size();i++){ |
|||
String source = list4.get(a2).getName(); |
|||
String target = list1.get(i).getName(); |
|||
String aa = "属于"; |
|||
// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
System.out.println(aa); |
|||
//获取两个的Id
|
|||
Long TwoId = list1.get(i).getId(); |
|||
KcInfoRelation zz = new KcInfoRelation(); |
|||
zz.setRelation(aa); |
|||
zz.setSourceId(OneId); |
|||
zz.setTargetId(TwoId); |
|||
zz.setSourceName(source); |
|||
zz.setTargetName(target); |
|||
zz.setCreateTime(new Date()); |
|||
kcInfoRelationMapper.insertKcRelationship(zz); |
|||
|
|||
} |
|||
} |
|||
|
|||
//获取所有的五级文件
|
|||
List<KcInfo> list5 = kcFileMapper.getHeaderByLevel(5l,fileId); |
|||
for(int a2=0;a2<list5.size();a2++){ |
|||
Long OneId = list5.get(a2).getId(); |
|||
List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId); |
|||
for(int i=0;i<list1.size();i++){ |
|||
String source = list5.get(a2).getName(); |
|||
String target = list1.get(i).getName(); |
|||
String aa = "属于"; |
|||
// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
System.out.println(aa); |
|||
//获取两个的Id
|
|||
Long TwoId = list1.get(i).getId(); |
|||
KcInfoRelation zz = new KcInfoRelation(); |
|||
zz.setRelation(aa); |
|||
zz.setSourceId(OneId); |
|||
zz.setTargetId(TwoId); |
|||
zz.setSourceName(source); |
|||
zz.setTargetName(target); |
|||
zz.setCreateTime(new Date()); |
|||
kcInfoRelationMapper.insertKcRelationship(zz); |
|||
|
|||
} |
|||
} |
|||
|
|||
return "a"; |
|||
} |
|||
|
|||
// public String getRelationShip1(Integer fileId,String parentId,String relation){
|
|||
//
|
|||
//
|
|||
//
|
|||
// //先获取所有的第一级标题
|
|||
// List<KcInfo> list = kcFileMapper.getHeaderByLevel(1l,fileId);
|
|||
//
|
|||
// //查询选择的上级
|
|||
// KcInfo aan = new KcInfo();
|
|||
// aan.setId(Long.valueOf(parentId));
|
|||
// KcInfo ddo = kcFile1Mapper.selectDocById(aan);
|
|||
// String name = ddo.getName();
|
|||
//
|
|||
// Long leve = 0l;
|
|||
//
|
|||
//
|
|||
//
|
|||
//
|
|||
// if(list.size()!=0){
|
|||
// for(int a=0;a<list.size();a++){
|
|||
// String source = list.get(a).getName();
|
|||
// Long OneId = list.get(a).getId();
|
|||
//
|
|||
//
|
|||
// String name1 = name;
|
|||
// String name2 = source;
|
|||
// KcInfoRelation zz1 = new KcInfoRelation();
|
|||
// zz1.setRelation(relation);
|
|||
// zz1.setSourceId(Long.valueOf(parentId));
|
|||
// zz1.setTargetId(OneId);
|
|||
// zz1.setSourceName(name1);
|
|||
// zz1.setTargetName(name2);
|
|||
// zz1.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz1);
|
|||
//
|
|||
//
|
|||
// List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId);
|
|||
//
|
|||
// for(int i=0;i<list1.size();i++){
|
|||
//
|
|||
// String target = list1.get(i).getName();
|
|||
// String aa = "属于";
|
|||
//// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
// System.out.println(aa);
|
|||
// //获取两个的Id
|
|||
// Long TwoId = list1.get(i).getId();
|
|||
// KcInfoRelation zz = new KcInfoRelation();
|
|||
// zz.setRelation(aa);
|
|||
// zz.setSourceId(OneId);
|
|||
// zz.setTargetId(TwoId);
|
|||
// zz.setSourceName(source);
|
|||
// zz.setTargetName(target);
|
|||
// zz.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz);
|
|||
// }
|
|||
// }
|
|||
// leve =1l;
|
|||
// }
|
|||
//
|
|||
//
|
|||
// //获取所有的二级标题
|
|||
// List<KcInfo> list2 = kcFileMapper.getHeaderByLevel(2l,fileId);
|
|||
// if(list2.size()!=0){
|
|||
//
|
|||
// for(int a1=0;a1<list2.size();a1++){
|
|||
// Long OneId = list2.get(a1).getId();
|
|||
//
|
|||
// if(leve==0){
|
|||
// String source = list2.get(a1).getName();
|
|||
// String name1 = name;
|
|||
// String name2 = source;
|
|||
// KcInfoRelation zz1 = new KcInfoRelation();
|
|||
// zz1.setRelation(relation);
|
|||
// zz1.setSourceId(Long.valueOf(parentId));
|
|||
// zz1.setTargetId(OneId);
|
|||
// zz1.setSourceName(name1);
|
|||
// zz1.setTargetName(name2);
|
|||
// zz1.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz1);
|
|||
// }
|
|||
// List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId);
|
|||
// for(int i=0;i<list1.size();i++){
|
|||
// String source = list2.get(a1).getName();
|
|||
// String target = list1.get(i).getName();
|
|||
// String aa = "属于";
|
|||
//// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
// System.out.println(aa);
|
|||
// //获取两个的Id
|
|||
// Long TwoId = list1.get(i).getId();
|
|||
// KcInfoRelation zz = new KcInfoRelation();
|
|||
// zz.setRelation(aa);
|
|||
// zz.setSourceId(OneId);
|
|||
// zz.setTargetId(TwoId);
|
|||
// zz.setSourceName(source);
|
|||
// zz.setTargetName(target);
|
|||
// zz.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz);
|
|||
//
|
|||
// }
|
|||
// }
|
|||
// leve = 2l;
|
|||
//
|
|||
// }
|
|||
//
|
|||
// //获取所有的三级标题
|
|||
// List<KcInfo> list3 = kcFileMapper.getHeaderByLevel(3l,fileId);
|
|||
// if(list3.size()!=0){
|
|||
// for(int a2=0;a2<list3.size();a2++){
|
|||
// Long OneId = list3.get(a2).getId();
|
|||
// if(leve==0){
|
|||
// String source = list3.get(a2).getName();
|
|||
// String name1 = name;
|
|||
// String name2 = source;
|
|||
// KcInfoRelation zz1 = new KcInfoRelation();
|
|||
// zz1.setRelation(relation);
|
|||
// zz1.setSourceId(Long.valueOf(parentId));
|
|||
// zz1.setTargetId(OneId);
|
|||
// zz1.setSourceName(name1);
|
|||
// zz1.setTargetName(name2);
|
|||
// zz1.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz1);
|
|||
// }
|
|||
// List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId);
|
|||
// for(int i=0;i<list1.size();i++){
|
|||
// String source = list3.get(a2).getName();
|
|||
// String target = list1.get(i).getName();
|
|||
// String aa = "属于";
|
|||
//// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
// System.out.println(aa);
|
|||
// //获取两个的Id
|
|||
// Long TwoId = list1.get(i).getId();
|
|||
// KcInfoRelation zz = new KcInfoRelation();
|
|||
// zz.setRelation(aa);
|
|||
// zz.setSourceId(OneId);
|
|||
// zz.setTargetId(TwoId);
|
|||
// zz.setSourceName(source);
|
|||
// zz.setTargetName(target);
|
|||
// zz.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz);
|
|||
//
|
|||
// }
|
|||
// }
|
|||
// leve = 3l;
|
|||
// }
|
|||
//
|
|||
//
|
|||
//
|
|||
// //获取所有的四级标题
|
|||
// List<KcInfo> list4 = kcFileMapper.getHeaderByLevel(4l,fileId);
|
|||
// if(list4.size()!=0){
|
|||
// for(int a2=0;a2<list4.size();a2++){
|
|||
// Long OneId = list4.get(a2).getId();
|
|||
// if(leve==0){
|
|||
// String source = list4.get(a2).getName();
|
|||
// String name1 = name;
|
|||
// String name2 = source;
|
|||
// KcInfoRelation zz1 = new KcInfoRelation();
|
|||
// zz1.setRelation(relation);
|
|||
// zz1.setSourceId(Long.valueOf(parentId));
|
|||
// zz1.setTargetId(OneId);
|
|||
// zz1.setSourceName(name1);
|
|||
// zz1.setTargetName(name2);
|
|||
// zz1.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz1);
|
|||
// }
|
|||
// List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId);
|
|||
// for(int i=0;i<list1.size();i++){
|
|||
// String source = list4.get(a2).getName();
|
|||
// String target = list1.get(i).getName();
|
|||
// String aa = "属于";
|
|||
//// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
// System.out.println(aa);
|
|||
// //获取两个的Id
|
|||
// Long TwoId = list1.get(i).getId();
|
|||
// KcInfoRelation zz = new KcInfoRelation();
|
|||
// zz.setRelation(aa);
|
|||
// zz.setSourceId(OneId);
|
|||
// zz.setTargetId(TwoId);
|
|||
// zz.setSourceName(source);
|
|||
// zz.setTargetName(target);
|
|||
// zz.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz);
|
|||
//
|
|||
// }
|
|||
// }
|
|||
// leve=4l;
|
|||
// }
|
|||
//
|
|||
//
|
|||
// //获取所有的五级文件
|
|||
// List<KcInfo> list5 = kcFileMapper.getHeaderByLevel(5l,fileId);
|
|||
// if(list5.size()!=0){
|
|||
// for(int a2=0;a2<list5.size();a2++){
|
|||
// Long OneId = list5.get(a2).getId();
|
|||
// if(leve==0){
|
|||
// String source = list5.get(a2).getName();
|
|||
// String name1 = name;
|
|||
// String name2 = source;
|
|||
// KcInfoRelation zz1 = new KcInfoRelation();
|
|||
// zz1.setRelation(relation);
|
|||
// zz1.setSourceId(Long.valueOf(parentId));
|
|||
// zz1.setTargetId(OneId);
|
|||
// zz1.setSourceName(name1);
|
|||
// zz1.setTargetName(name2);
|
|||
// zz1.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz1);
|
|||
// }
|
|||
// List<KcInfo> list1 = kcFileMapper.getOneHeader(OneId);
|
|||
// for(int i=0;i<list1.size();i++){
|
|||
// String source = list5.get(a2).getName();
|
|||
// String target = list1.get(i).getName();
|
|||
// String aa = "属于";
|
|||
//// String aa = relationUtil.analyzeRelationship(source,target);
|
|||
//
|
|||
// System.out.println(aa);
|
|||
// //获取两个的Id
|
|||
// Long TwoId = list1.get(i).getId();
|
|||
// KcInfoRelation zz = new KcInfoRelation();
|
|||
// zz.setRelation(aa);
|
|||
// zz.setSourceId(OneId);
|
|||
// zz.setTargetId(TwoId);
|
|||
// zz.setSourceName(source);
|
|||
// zz.setTargetName(target);
|
|||
// zz.setCreateTime(new Date());
|
|||
// kcInfoRelationMapper.insertKcRelationship(zz);
|
|||
//
|
|||
// }
|
|||
// }
|
|||
// leve = 5l;
|
|||
// }
|
|||
//
|
|||
//
|
|||
// return "a";
|
|||
// }
|
|||
|
|||
//生成图谱
|
|||
public String createGraph(){ |
|||
//先获取所有的文章实体
|
|||
//查询对应的大文章
|
|||
List<List<Map>> list2 = new ArrayList<>(); |
|||
List<KcTlFile> ll = kcFile1Mapper.getFileList(); |
|||
for(int b=0;b<ll.size();b++){ |
|||
List<Map> list1 = new ArrayList<>(); |
|||
String name = ll.get(b).getFileName().substring(0,ll.get(b).getFileName().length()-5); |
|||
//获取这个大文章下的所有文章;
|
|||
name = name.replace("+","&"); |
|||
name = name.replace("-","为"); |
|||
name = name.replace(" ",""); |
|||
name = name.replace(".",""); |
|||
Map<String,String> bb1 = new HashMap<>(); |
|||
bb1.put("key","name"); |
|||
bb1.put("value",name); |
|||
list1.add(bb1); |
|||
Map<String,String> bb2 = new HashMap<>(); |
|||
bb2.put("key","docId"); |
|||
bb2.put("value", String.valueOf(ll.get(b).getId())); |
|||
list1.add(bb2); |
|||
Map<String,String> bb3 = new HashMap<>(); |
|||
bb3.put("key","leve"); |
|||
bb3.put("value","leve0"); |
|||
list1.add(bb3); |
|||
// System.out.println(list1.size());
|
|||
list2.add(list1); |
|||
|
|||
List<KcInfo> list = kcFile1Mapper.selectAllDocByfileId(Math.toIntExact(ll.get(b).getId())); |
|||
|
|||
|
|||
for(int i=0;i<list.size();i++){ |
|||
List<Map> listNew = new ArrayList<>(); |
|||
KcInfo info = list.get(i); |
|||
Class<?> clazz = KcInfo.class; |
|||
Field[] fields = clazz.getDeclaredFields(); |
|||
|
|||
for (Field field : fields) { |
|||
String fieldName = field.getName(); |
|||
System.out.println("字段名称:" + fieldName); |
|||
Map<String,String> bb = new HashMap<>(); |
|||
if(fieldName.equals("id")){ |
|||
bb.put("key","docId"); |
|||
bb.put("value", String.valueOf(info.getId())); |
|||
listNew.add(bb); |
|||
} |
|||
if(fieldName.equals("name")){ |
|||
bb.put("key","name"); |
|||
bb.put("value", info.getName()); |
|||
|
|||
listNew.add(bb); |
|||
} |
|||
if(fieldName.equals("parentId")){ |
|||
bb.put("key","parentId"); |
|||
bb.put("value", String.valueOf(info.getParentId())); |
|||
listNew.add(bb); |
|||
} |
|||
|
|||
if(fieldName.equals("groupId")){ |
|||
bb.put("key","groupId"); |
|||
bb.put("value", String.valueOf(info.getGroupId())); |
|||
|
|||
listNew.add(bb); |
|||
} |
|||
if(fieldName.equals("level")){ |
|||
if(info.getLevel()==1){ |
|||
bb.put("key","leve"); |
|||
bb.put("value","leve1"); |
|||
} |
|||
if(info.getLevel()==2){ |
|||
bb.put("key","leve"); |
|||
bb.put("value","leve2"); |
|||
} |
|||
if(info.getLevel()==3){ |
|||
bb.put("key","leve"); |
|||
bb.put("value","leve3"); |
|||
} |
|||
if(info.getLevel()==4){ |
|||
bb.put("key","leve"); |
|||
bb.put("value","leve4"); |
|||
} |
|||
if(info.getLevel()==5){ |
|||
bb.put("key","leve"); |
|||
bb.put("value","leve5"); |
|||
} |
|||
if(info.getLevel()==6){ |
|||
bb.put("key","leve"); |
|||
bb.put("value","leve6"); |
|||
} |
|||
listNew.add(bb); |
|||
} |
|||
|
|||
} |
|||
list2.add(listNew); |
|||
|
|||
} |
|||
|
|||
for(int bb=0;bb<list2.size();bb++){ |
|||
String docId = ""; |
|||
String cql = "create (doc: Doc{"; |
|||
for(int a=0;a<list2.get(bb).size();a++){ |
|||
if(list2.get(bb).get(a).get("key").equals("docId")){ |
|||
docId = String.valueOf(list2.get(bb).get(a).get("value")); |
|||
} |
|||
|
|||
|
|||
if (list2.get(bb).size()>1){ |
|||
if(a==0){ |
|||
cql = cql + list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'"; |
|||
}else if(a==(list2.get(bb).size()-1)){ |
|||
cql = cql +","+list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'})"; |
|||
}else { |
|||
cql = cql +","+ list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'"; |
|||
} |
|||
}else { |
|||
cql = cql + list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'}) return doc"; |
|||
} |
|||
|
|||
} |
|||
|
|||
System.out.println(cql); |
|||
StatementResult result = neo4jUtil.excuteCypherSql(cql); |
|||
//创建了之后将创建的实体和关系进行update
|
|||
if(Long.valueOf(docId)>100){ |
|||
int aa = kcFile1Mapper.updateGraphStatus(Long.valueOf(docId)); |
|||
} |
|||
System.out.println(result.keys()); |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
//获取所有关系
|
|||
List<KcInfoRelation> listR = kcInfoRelationMapper.getAllRelation(); |
|||
System.out.println(listR.size()); |
|||
|
|||
for(int i=0;i<listR.size();i++){ |
|||
List<String> charList = new ArrayList<>(); |
|||
|
|||
for (int j = 0; j < listR.get(i).getRelation().length(); j++) { |
|||
if(!listR.get(i).getRelation().substring(j, j + 1).equals("、")){ |
|||
charList.add(listR.get(i).getRelation().substring(j, j + 1)); |
|||
} |
|||
} |
|||
|
|||
String re = ""; |
|||
for (int k=0;k<charList.size();k++){ |
|||
re = re + charList.get(k); |
|||
} |
|||
listR.get(i).setRelation(re); |
|||
} |
|||
|
|||
|
|||
//创建
|
|||
for(int i=0;i<listR.size();i++){ |
|||
|
|||
String cql = "MATCH (a:Doc),(b:Doc) WHERE a.docId = '"+listR.get(i).getSourceId() +"' AND " + "b.docId = '"+listR.get(i).getTargetId()+"'"; |
|||
cql = cql + " CREATE (a)-[r:"+String.valueOf(listR.get(i).getRelation())+"{ name: '"+String.valueOf(listR.get(i).getRelation())+"'}] -> (b) RETURN r"; |
|||
StatementResult result = neo4jUtil.excuteCypherSql(cql); |
|||
int bb = kcFile1Mapper.updateGraphRelation(listR.get(i)); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
return "aa"; |
|||
} |
|||
|
|||
|
|||
// public String createGraph1(){
|
|||
// //先获取所有的文章实体
|
|||
//
|
|||
//
|
|||
// //查询对应的大文章
|
|||
// List<List<Map>> list2 = new ArrayList<>();
|
|||
// List<KcTlFile> ll = kcFile1Mapper.getFileList();
|
|||
// for(int b=0;b<ll.size();b++){
|
|||
// List<Map> list1 = new ArrayList<>();
|
|||
//
|
|||
// List<KcInfo> list = kcFile1Mapper.selectAllDocByfileId(Math.toIntExact(ll.get(b).getId()));
|
|||
//
|
|||
// for(int i=0;i<list.size();i++){
|
|||
// List<Map> listNew = new ArrayList<>();
|
|||
// KcInfo info = list.get(i);
|
|||
// Class<?> clazz = KcInfo.class;
|
|||
// Field[] fields = clazz.getDeclaredFields();
|
|||
//
|
|||
// for (Field field : fields) {
|
|||
// String fieldName = field.getName();
|
|||
// System.out.println("字段名称:" + fieldName);
|
|||
// Map<String,String> bb = new HashMap<>();
|
|||
// if(fieldName.equals("id")){
|
|||
// bb.put("key","docId");
|
|||
// bb.put("value", String.valueOf(info.getId()));
|
|||
// listNew.add(bb);
|
|||
// }
|
|||
// if(fieldName.equals("name")){
|
|||
// bb.put("key","name");
|
|||
// bb.put("value", info.getName());
|
|||
//
|
|||
// listNew.add(bb);
|
|||
// }
|
|||
//// if(fieldName.equals("level")){
|
|||
//// if(info.getLevel()==1){
|
|||
//// bb.put("key","leve");
|
|||
//// bb.put("value","leve1");
|
|||
//// }
|
|||
//// if(info.getLevel()==2){
|
|||
//// bb.put("key","leve");
|
|||
//// bb.put("value","leve2");
|
|||
//// }
|
|||
//// if(info.getLevel()==3){
|
|||
//// bb.put("key","leve");
|
|||
//// bb.put("value","leve3");
|
|||
//// }
|
|||
//// if(info.getLevel()==4){
|
|||
//// bb.put("key","leve");
|
|||
//// bb.put("value","leve4");
|
|||
//// }
|
|||
//// if(info.getLevel()==5){
|
|||
//// bb.put("key","leve");
|
|||
//// bb.put("value","leve5");
|
|||
//// }
|
|||
//// if(info.getLevel()==6){
|
|||
//// bb.put("key","leve");
|
|||
//// bb.put("value","leve6");
|
|||
//// }
|
|||
//// listNew.add(bb);
|
|||
//// }
|
|||
//
|
|||
// }
|
|||
// list2.add(listNew);
|
|||
//
|
|||
// }
|
|||
//
|
|||
// for(int bb=0;bb<list2.size();bb++){
|
|||
// String docId = "";
|
|||
// String cql = "create (doc: Doc{";
|
|||
// for(int a=0;a<list2.get(bb).size();a++){
|
|||
// System.out.println(list2.get(bb).size());
|
|||
//// if(bb==0){
|
|||
//// System.out.println(list2.get(bb).get(0));
|
|||
//// System.out.println(list2.get(bb).get(1));
|
|||
//// System.out.println(list2.get(bb).get(2));
|
|||
//// }
|
|||
// if(list2.get(bb).get(a).get("key").equals("docId")){
|
|||
// docId = String.valueOf(list2.get(bb).get(a).get("value"));
|
|||
// }
|
|||
//
|
|||
//
|
|||
// if (list2.get(bb).size()>1){
|
|||
// if(a==0){
|
|||
// cql = cql + list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'";
|
|||
// }else if(a==(list2.get(bb).size()-1)){
|
|||
// cql = cql +","+list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'})";
|
|||
// }else {
|
|||
// cql = cql +","+ list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'";
|
|||
// }
|
|||
// }else {
|
|||
// cql = cql + list2.get(bb).get(a).get("key")+":'"+list2.get(bb).get(a).get("value")+"'}) return doc";
|
|||
// }
|
|||
//
|
|||
// }
|
|||
//
|
|||
// System.out.println(cql);
|
|||
// StatementResult result = neo4jUtil.excuteCypherSql(cql);
|
|||
// //创建了之后将创建的实体和关系进行update
|
|||
// if(Long.valueOf(docId)>100){
|
|||
// int aa = kcFile1Mapper.updateGraphStatus(Long.valueOf(docId));
|
|||
// }
|
|||
// System.out.println(result.keys());
|
|||
//
|
|||
//
|
|||
//
|
|||
// }
|
|||
//
|
|||
// }
|
|||
//
|
|||
//
|
|||
//
|
|||
//
|
|||
//
|
|||
//
|
|||
// //获取所有关系
|
|||
// List<KcInfoRelation> listR = kcInfoRelationMapper.getAllRelation();
|
|||
// System.out.println(listR.size());
|
|||
//
|
|||
// for(int i=0;i<listR.size();i++){
|
|||
// List<String> charList = new ArrayList<>();
|
|||
//
|
|||
// for (int j = 0; j < listR.get(i).getRelation().length(); j++) {
|
|||
// if(!listR.get(i).getRelation().substring(j, j + 1).equals("、")){
|
|||
// charList.add(listR.get(i).getRelation().substring(j, j + 1));
|
|||
// }
|
|||
// }
|
|||
//
|
|||
// String re = "";
|
|||
// for (int k=0;k<charList.size();k++){
|
|||
// re = re + charList.get(k);
|
|||
// }
|
|||
// listR.get(i).setRelation(re);
|
|||
// }
|
|||
//
|
|||
//
|
|||
// //创建
|
|||
// for(int i=0;i<listR.size();i++){
|
|||
//
|
|||
// String cql = "MATCH (a:Doc),(b:Doc) WHERE a.docId = '"+listR.get(i).getSourceId() +"' AND " + "b.docId = '"+listR.get(i).getTargetId()+"'";
|
|||
// cql = cql + " CREATE (a)-[r:"+String.valueOf(listR.get(i).getRelation())+"{ name: '"+String.valueOf(listR.get(i).getRelation())+"'}] -> (b) RETURN r";
|
|||
// StatementResult result = neo4jUtil.excuteCypherSql(cql);
|
|||
// int bb = kcFile1Mapper.updateGraphRelation(listR.get(i));
|
|||
// }
|
|||
//
|
|||
//
|
|||
//
|
|||
//
|
|||
//
|
|||
// return "aa";
|
|||
// }
|
|||
|
|||
} |
|||
Loading…
Reference in new issue