|
|
|
@ -123,126 +123,254 @@ public class KcTlFileController extends BaseController { |
|
|
|
public AjaxResult addNode(@RequestBody Map<String, String> requestBody) throws IOException { |
|
|
|
|
|
|
|
System.out.println(requestBody); |
|
|
|
String nodeType = requestBody.get("nodeType"); |
|
|
|
if(nodeType.equals("tw")){ |
|
|
|
Integer fileId = Integer.valueOf(requestBody.get("fileId")); |
|
|
|
String txtName = requestBody.get("txtName"); |
|
|
|
String TxtValue = requestBody.get("TxtValue"); |
|
|
|
String relation = requestBody.get("relation"); |
|
|
|
Long parentId = Long.valueOf(requestBody.get("parentId")); |
|
|
|
Long level = Long.valueOf(requestBody.get("level")); |
|
|
|
KcTlFile kcTlFile = kcFileMapper.getFileById(fileId); |
|
|
|
String url = kcTlFile.getFileUrl(); |
|
|
|
int lastBackslashIndex = url.lastIndexOf('\\'); |
|
|
|
String pathPart = url.substring(0, lastBackslashIndex + 1); |
|
|
|
String result = pathPart + "wordSplitter"; |
|
|
|
String txtUrl = createTxtFile(result, txtName, TxtValue); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KcInfo kcInfo = new KcInfo(); |
|
|
|
kcInfo.setFileId(fileId); |
|
|
|
kcInfo.setCreateTime(new Date()); |
|
|
|
kcInfo.setTwUrl(txtUrl); |
|
|
|
kcInfo.setName(txtName); |
|
|
|
kcInfo.setParentId(parentId); |
|
|
|
kcInfo.setLevel(level); |
|
|
|
kcInfo.setType(1l); |
|
|
|
kcInfo.setCreateTime(new Date()); |
|
|
|
kcInfo.setCreateBy(Long.valueOf(String.valueOf(getUserId()))); |
|
|
|
kcFileMapper.insertDoc(kcInfo); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//创建图谱
|
|
|
|
String cql = "create (doc: Doc{"; |
|
|
|
|
|
|
|
List<Map> listNew = new ArrayList<>(); |
|
|
|
if (kcInfo.getId() != null) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "docId"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getId())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getName() != null && !kcInfo.getName().equals("")) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "name"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getName())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getType() != null ) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "type"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getType())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() != null) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
if (kcInfo.getLevel() == 1) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve1"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 2) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve2"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 3) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve3"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 4) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve4"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 5) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve5"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 6) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve6"); |
|
|
|
} |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
|
|
|
|
Integer fileId = Integer.valueOf(requestBody.get("fileId")); |
|
|
|
String txtName = requestBody.get("txtName"); |
|
|
|
String TxtValue = requestBody.get("TxtValue"); |
|
|
|
for (int a = 0; a < listNew.size(); a++) { |
|
|
|
|
|
|
|
String relation = requestBody.get("relation"); |
|
|
|
Long parentId = Long.valueOf(requestBody.get("parentId")); |
|
|
|
Long level = Long.valueOf(requestBody.get("level")); |
|
|
|
KcTlFile kcTlFile = kcFileMapper.getFileById(fileId); |
|
|
|
String url = kcTlFile.getFileUrl(); |
|
|
|
int lastBackslashIndex = url.lastIndexOf('\\'); |
|
|
|
String pathPart = url.substring(0, lastBackslashIndex + 1); |
|
|
|
String result = pathPart + "wordSplitter"; |
|
|
|
|
|
|
|
String txtUrl = createTxtFile(result, txtName, TxtValue); |
|
|
|
if (listNew.get(a).size() > 1) { |
|
|
|
if (a == 0) { |
|
|
|
cql = cql + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'"; |
|
|
|
} else if (a == (listNew.size() - 1)) { |
|
|
|
cql = cql + "," + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'})"; |
|
|
|
} else { |
|
|
|
cql = cql + "," + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'"; |
|
|
|
} |
|
|
|
} else { |
|
|
|
cql = cql + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'}) return doc"; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
StatementResult result1 = neo4jUtil.excuteCypherSql(cql); |
|
|
|
int yy = kcFileMapper.updateGraphStatus(kcInfo.getId()); |
|
|
|
|
|
|
|
KcInfo kcInfo = new KcInfo(); |
|
|
|
kcInfo.setFileId(fileId); |
|
|
|
kcInfo.setCreateTime(new Date()); |
|
|
|
kcInfo.setTwUrl(txtUrl); |
|
|
|
kcInfo.setName(txtName); |
|
|
|
kcInfo.setParentId(parentId); |
|
|
|
kcInfo.setLevel(level); |
|
|
|
kcInfo.setCreateTime(new Date()); |
|
|
|
kcInfo.setCreateBy(Long.valueOf(String.valueOf(getUserId()))); |
|
|
|
kcFileMapper.insertDoc(kcInfo); |
|
|
|
|
|
|
|
//创建关系
|
|
|
|
|
|
|
|
|
|
|
|
KcInfoRelation zz = new KcInfoRelation(); |
|
|
|
zz.setRelation(relation); |
|
|
|
zz.setSourceId(parentId); |
|
|
|
zz.setTargetId(kcInfo.getId()); |
|
|
|
//查询上级
|
|
|
|
KcInfo zz1 = new KcInfo(); |
|
|
|
zz1.setId(parentId); |
|
|
|
KcInfo oldDoc = kcFileMapper.selectDocById(zz1); |
|
|
|
zz.setSourceName(oldDoc.getName()); |
|
|
|
zz.setTargetName(txtName); |
|
|
|
zz.setCreateTime(new Date()); |
|
|
|
kcInfoRelationMapper.insertKcRelationship(zz); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//创建图谱
|
|
|
|
String cql = "create (doc: Doc{"; |
|
|
|
//创建图谱
|
|
|
|
String cqr = "MATCH (a:Doc),(b:Doc) WHERE a.docId = '" + zz.getSourceId() + "' AND b.docId = '" + zz.getTargetId() + "'CREATE (a)-[r:" + zz.getRelation() + "] -> (b) RETURN r"; |
|
|
|
StatementResult result2 = neo4jUtil.excuteCypherSql(cqr); |
|
|
|
|
|
|
|
List<Map> listNew = new ArrayList<>(); |
|
|
|
if (kcInfo.getId() != null) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "docId"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getId())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getName() != null && !kcInfo.getName().equals("")) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "name"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getName())); |
|
|
|
listNew.add(bb); |
|
|
|
zz.setIsGraph(1l); |
|
|
|
int yy1 = kcInfoRelationMapper.updateKcRelationship(zz); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() != null) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
if (kcInfo.getLevel() == 1) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve1"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 2) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve2"); |
|
|
|
|
|
|
|
|
|
|
|
if(nodeType.equals("sp")){ |
|
|
|
|
|
|
|
String spUrl = requestBody.get("spUrl"); |
|
|
|
String txtName = requestBody.get("txtName"); |
|
|
|
String relation = requestBody.get("relation"); |
|
|
|
Long parentId = Long.valueOf(requestBody.get("parentId")); |
|
|
|
Long level = Long.valueOf(requestBody.get("level")); |
|
|
|
|
|
|
|
KcInfo kcInfo = new KcInfo(); |
|
|
|
kcInfo.setCreateTime(new Date()); |
|
|
|
kcInfo.setSpUrl(spUrl); |
|
|
|
kcInfo.setName(txtName); |
|
|
|
kcInfo.setParentId(parentId); |
|
|
|
kcInfo.setLevel(level); |
|
|
|
kcInfo.setType(2l); |
|
|
|
kcInfo.setCreateTime(new Date()); |
|
|
|
kcInfo.setCreateBy(Long.valueOf(String.valueOf(getUserId()))); |
|
|
|
kcFileMapper.insertDoc(kcInfo); |
|
|
|
|
|
|
|
|
|
|
|
//创建图谱
|
|
|
|
String cql = "create (doc: Doc{"; |
|
|
|
|
|
|
|
List<Map> listNew = new ArrayList<>(); |
|
|
|
if (kcInfo.getId() != null) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "docId"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getId())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 3) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve3"); |
|
|
|
if (kcInfo.getName() != null && !kcInfo.getName().equals("")) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "name"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getName())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 4) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve4"); |
|
|
|
if (kcInfo.getType() != null ) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "type"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getType())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 5) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve5"); |
|
|
|
if (kcInfo.getSpUrl() != null && !kcInfo.getSpUrl().equals("")) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
bb.put("key", "spUrl"); |
|
|
|
bb.put("value", String.valueOf(kcInfo.getSpUrl())); |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 6) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve6"); |
|
|
|
if (kcInfo.getLevel() != null) { |
|
|
|
Map<String, String> bb = new HashMap<>(); |
|
|
|
if (kcInfo.getLevel() == 1) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve1"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 2) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve2"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 3) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve3"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 4) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve4"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 5) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve5"); |
|
|
|
} |
|
|
|
if (kcInfo.getLevel() == 6) { |
|
|
|
bb.put("key", "leve"); |
|
|
|
bb.put("value", "leve6"); |
|
|
|
} |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
listNew.add(bb); |
|
|
|
} |
|
|
|
|
|
|
|
for (int a = 0; a < listNew.size(); a++) { |
|
|
|
for (int a = 0; a < listNew.size(); a++) { |
|
|
|
|
|
|
|
|
|
|
|
if (listNew.get(a).size() > 1) { |
|
|
|
if (a == 0) { |
|
|
|
cql = cql + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'"; |
|
|
|
} else if (a == (listNew.size() - 1)) { |
|
|
|
cql = cql + "," + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'})"; |
|
|
|
if (listNew.get(a).size() > 1) { |
|
|
|
if (a == 0) { |
|
|
|
cql = cql + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'"; |
|
|
|
} else if (a == (listNew.size() - 1)) { |
|
|
|
cql = cql + "," + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'})"; |
|
|
|
} else { |
|
|
|
cql = cql + "," + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'"; |
|
|
|
} |
|
|
|
} else { |
|
|
|
cql = cql + "," + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'"; |
|
|
|
cql = cql + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'}) return doc"; |
|
|
|
} |
|
|
|
} else { |
|
|
|
cql = cql + listNew.get(a).get("key") + ":'" + listNew.get(a).get("value") + "'}) return doc"; |
|
|
|
|
|
|
|
} |
|
|
|
StatementResult result1 = neo4jUtil.excuteCypherSql(cql); |
|
|
|
int yy = kcFileMapper.updateGraphStatus(kcInfo.getId()); |
|
|
|
|
|
|
|
//创建关系
|
|
|
|
|
|
|
|
KcInfoRelation zz = new KcInfoRelation(); |
|
|
|
zz.setRelation(relation); |
|
|
|
zz.setSourceId(parentId); |
|
|
|
zz.setTargetId(kcInfo.getId()); |
|
|
|
//查询上级
|
|
|
|
KcInfo zz1 = new KcInfo(); |
|
|
|
zz1.setId(parentId); |
|
|
|
KcInfo oldDoc = kcFileMapper.selectDocById(zz1); |
|
|
|
zz.setSourceName(oldDoc.getName()); |
|
|
|
zz.setTargetName(txtName); |
|
|
|
zz.setCreateTime(new Date()); |
|
|
|
kcInfoRelationMapper.insertKcRelationship(zz); |
|
|
|
|
|
|
|
//创建图谱
|
|
|
|
String cqr = "MATCH (a:Doc),(b:Doc) WHERE a.docId = '" + zz.getSourceId() + "' AND b.docId = '" + zz.getTargetId() + "'CREATE (a)-[r:" + zz.getRelation() + "] -> (b) RETURN r"; |
|
|
|
StatementResult result2 = neo4jUtil.excuteCypherSql(cqr); |
|
|
|
|
|
|
|
zz.setIsGraph(1l); |
|
|
|
int yy1 = kcInfoRelationMapper.updateKcRelationship(zz); |
|
|
|
|
|
|
|
} |
|
|
|
StatementResult result1 = neo4jUtil.excuteCypherSql(cql); |
|
|
|
int yy = kcFileMapper.updateGraphStatus(kcInfo.getId()); |
|
|
|
|
|
|
|
|
|
|
|
//创建关系
|
|
|
|
|
|
|
|
KcInfoRelation zz = new KcInfoRelation(); |
|
|
|
zz.setRelation(relation); |
|
|
|
zz.setSourceId(parentId); |
|
|
|
zz.setTargetId(kcInfo.getId()); |
|
|
|
//查询上级
|
|
|
|
KcInfo zz1 = new KcInfo(); |
|
|
|
zz1.setId(parentId); |
|
|
|
KcInfo oldDoc = kcFileMapper.selectDocById(zz1); |
|
|
|
zz.setSourceName(oldDoc.getName()); |
|
|
|
zz.setTargetName(txtName); |
|
|
|
zz.setCreateTime(new Date()); |
|
|
|
kcInfoRelationMapper.insertKcRelationship(zz); |
|
|
|
|
|
|
|
|
|
|
|
//创建图谱
|
|
|
|
String cqr = "MATCH (a:Doc),(b:Doc) WHERE a.docId = '" + zz.getSourceId() + "' AND b.docId = '" + zz.getTargetId() + "'CREATE (a)-[r:" + zz.getRelation() + "] -> (b) RETURN r"; |
|
|
|
StatementResult result2 = neo4jUtil.excuteCypherSql(cqr); |
|
|
|
|
|
|
|
zz.setIsGraph(1l); |
|
|
|
int yy1 = kcInfoRelationMapper.updateKcRelationship(zz); |
|
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success(); |
|
|
|
|