diff --git a/ruoyi-modules/management-platform/pom.xml b/ruoyi-modules/management-platform/pom.xml
index 97c684ff..c3254806 100644
--- a/ruoyi-modules/management-platform/pom.xml
+++ b/ruoyi-modules/management-platform/pom.xml
@@ -178,6 +178,11 @@
client-java-api
12.0.1
+
+ com.opencsv
+ opencsv
+ 5.7.1
+
io.fabric8
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgInfoController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgInfoController.java
index 7c203ca1..4bd2fee2 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgInfoController.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgInfoController.java
@@ -6,12 +6,14 @@ import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.platform.domain.kg.KgInfo;
import com.ruoyi.platform.domain.kg.KgInfoPageVo;
+import com.ruoyi.platform.domain.kg.KnowledgeGraphVersion;
import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO;
import com.ruoyi.platform.service.KgInfoService;
import com.ruoyi.system.api.domain.SysDictData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@@ -52,6 +54,7 @@ public class KgInfoController extends BaseController {
/**
* 图谱列表
+ *
* @return
*/
@GetMapping("/list")
@@ -63,16 +66,18 @@ public class KgInfoController extends BaseController {
/**
* 图谱详情
+ *
* @param kgInfoIdDTO
* @return
*/
@GetMapping
- public R getKgInfo( KgInfoIdDTO kgInfoIdDTO) {
+ public R getKgInfo(KgInfoIdDTO kgInfoIdDTO) {
return R.ok(kgInfoService.getKgInfo(kgInfoIdDTO));
}
/**
* 删除图谱
+ *
* @param id
* @return
*/
@@ -84,25 +89,68 @@ public class KgInfoController extends BaseController {
/**
* 图谱版本列表
+ *
* @param kgInfoIdDTO
* @return
*/
@GetMapping("/version/list")
public TableDataInfo versionList(KgInfoIdDTO kgInfoIdDTO) {
startPage();
- List kgInfo = kgInfoService.versionList(kgInfoIdDTO);
+ List kgInfo = kgInfoService.versionList(kgInfoIdDTO);
return getDataTable(kgInfo);
}
/**
* 图谱版本导出
+ *
* @param response
* @param kgInfoIdDTO
*/
@GetMapping("/version/export")
- public void versionExport(HttpServletResponse response,KgInfoIdDTO kgInfoIdDTO) {
+ public void versionExport(HttpServletResponse response, KgInfoIdDTO kgInfoIdDTO) {
KgInfo KgInfo = kgInfoService.getKgInfo(kgInfoIdDTO);
ExcelUtil util = new ExcelUtil(SysDictData.class);
util.exportExcel(response, null, "图谱数据");
}
+
+ /**
+ * 图谱版本导入
+ *
+ * @param file
+ * @param kgId
+ */
+ @PostMapping("/version/upload")
+ public R uploadCsv(@RequestParam("file") MultipartFile file,@RequestParam("kgId") String kgId) {
+ if (file == null || file.isEmpty()) {
+ throw new IllegalArgumentException("文件不能为空");
+ }
+
+ if (!file.getOriginalFilename().endsWith(".csv")) {
+ throw new IllegalArgumentException("仅支持 CSV 文件");
+ }
+ kgInfoService.uploadCsv(file, kgId);
+ return R.ok();
+ }
+
+
+ /**
+ * 图谱版本全量更新
+ *
+ * @param id 版本id
+ */
+ @PostMapping("/version/fullUpdate")
+ public R fullUpdate(@RequestParam("id") Long id) {
+ kgInfoService.fullUpdate(id);
+ return R.ok();
+ }
+
+ /**
+ * 图谱版本增量更新
+ *
+ * @param id
+ */
+ @PostMapping("/version/incrementalUpdate")
+ public void incrementalUpdate(@RequestParam("id") Long id) {
+ kgInfoService.incrementalUpdate(id);
+ }
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphController.java
index 7c048f8c..994557ae 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphController.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphController.java
@@ -57,7 +57,7 @@ public class KnowledgeGraphController {
* @return 单条数据
*/
@GetMapping("{id}")
- public AjaxResult queryById(@PathVariable("id") Integer id) {
+ public AjaxResult queryById(@PathVariable("id") Long id) {
return AjaxResult.success(this.knowledgeGraphService.queryById(id));
}
@@ -95,32 +95,32 @@ public class KnowledgeGraphController {
}
- @PostMapping("/upload")
- public AjaxResult uploadFile(@RequestParam("file") MultipartFile file,
- @RequestParam("knowledgeGraphId") Integer knowledgeGraphId,
- @RequestParam("version") String version) {
- KnowledgeGraph knowledgeGraph = knowledgeGraphService.queryById(knowledgeGraphId);
- KnowledgeGraphVersion knowledgeGraphVersion = new KnowledgeGraphVersion();
- knowledgeGraphVersion.setKgId(knowledgeGraphId);
- knowledgeGraphVersion.setVersion(version);
- knowledgeGraphVersionService.insert(knowledgeGraphVersion);
-
-
- // 构建文件存储路径
- String baseDir = env.getProperty("file.upload.base.dir", "/data/knowledgegraph");
- LoginUser loginUser = SecurityUtils.getLoginUser();
- Path filePath = Paths.get(baseDir, loginUser.getUsername(), knowledgeGraph.getKgName(), version, file.getOriginalFilename());
-
- try {
- // 确保路径存在,如果不存在则创建
- Files.createDirectories(filePath.getParent());
- // 保存文件
- file.transferTo(filePath.toFile());
- } catch (IOException e) {
- return AjaxResult.error("文件上传失败: " + e.getMessage());
- }
-
- return AjaxResult.success("文件上传成功,存储路径为: " + filePath.toString());
- }
+// @PostMapping("/upload")
+// public AjaxResult uploadFile(@RequestParam("file") MultipartFile file,
+// @RequestParam("knowledgeGraphId") Long knowledgeGraphId,
+// @RequestParam("version") Integer version) {
+// KnowledgeGraph knowledgeGraph = knowledgeGraphService.queryById(knowledgeGraphId);
+// KnowledgeGraphVersion knowledgeGraphVersion = new KnowledgeGraphVersion();
+// knowledgeGraphVersion.setKgId(knowledgeGraphId);
+// knowledgeGraphVersion.setVersion(version);
+// knowledgeGraphVersionService.insert(knowledgeGraphVersion);
+//
+//
+// // 构建文件存储路径
+// String baseDir = env.getProperty("file.upload.base.dir", "/data/knowledgegraph");
+// LoginUser loginUser = SecurityUtils.getLoginUser();
+// Path filePath = Paths.get(baseDir, loginUser.getUsername(), knowledgeGraph.getKgName(), version, file.getOriginalFilename());
+//
+// try {
+// // 确保路径存在,如果不存在则创建
+// Files.createDirectories(filePath.getParent());
+// // 保存文件
+// file.transferTo(filePath.toFile());
+// } catch (IOException e) {
+// return AjaxResult.error("文件上传失败: " + e.getMessage());
+// }
+//
+// return AjaxResult.success("文件上传成功,存储路径为: " + filePath.toString());
+// }
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphVersionController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphVersionController.java
index cc230ff6..ad4ec95e 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphVersionController.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KnowledgeGraphVersionController.java
@@ -43,7 +43,7 @@ public class KnowledgeGraphVersionController {
* @return 单条数据
*/
@GetMapping("{id}")
- public ResponseEntity queryById(@PathVariable("id") Integer id) {
+ public ResponseEntity queryById(@PathVariable("id") Long id) {
return ResponseEntity.ok(this.knowledgeGraphVersionService.queryById(id));
}
@@ -76,7 +76,7 @@ public class KnowledgeGraphVersionController {
* @return 删除是否成功
*/
@DeleteMapping
- public ResponseEntity deleteById(Integer id) {
+ public ResponseEntity deleteById(Long id) {
return ResponseEntity.ok(this.knowledgeGraphVersionService.deleteById(id));
}
@@ -84,7 +84,7 @@ public class KnowledgeGraphVersionController {
* 增量更新数据
*/
@GetMapping("/incrementalUpdate")
- public ResponseEntity incrementalUpdate(Integer id) {
+ public ResponseEntity incrementalUpdate(Long id) {
return ResponseEntity.ok(this.knowledgeGraphVersionService.incrementalUpdate(id));
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraph.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraph.java
index 52a52f4b..bc0be6a6 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraph.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraph.java
@@ -1,5 +1,7 @@
package com.ruoyi.platform.domain.kg;
+import lombok.Data;
+
import java.util.Date;
import java.io.Serializable;
@@ -9,10 +11,11 @@ import java.io.Serializable;
* @author makejava
* @since 2025-03-11 14:52:09
*/
+@Data
public class KnowledgeGraph implements Serializable {
private static final long serialVersionUID = 783648356146355028L;
- private Integer id;
+ private Long id;
private String kgName;
@@ -30,78 +33,5 @@ public class KnowledgeGraph implements Serializable {
private Integer state;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getKgName() {
- return kgName;
- }
-
- public void setKgName(String kgName) {
- this.kgName = kgName;
- }
-
- public String getKgDesc() {
- return kgDesc;
- }
-
- public void setKgDesc(String kgDesc) {
- this.kgDesc = kgDesc;
- }
-
- public Integer getKgNoumenon() {
- return kgNoumenon;
- }
-
- public void setKgNoumenon(Integer kgNoumenon) {
- this.kgNoumenon = kgNoumenon;
- }
-
- public Date getCreateTime() {
- return createTime;
- }
-
- public void setCreateTime(Date createTime) {
- this.createTime = createTime;
- }
-
- public String getCreateBy() {
- return createBy;
- }
-
- public void setCreateBy(String createBy) {
- this.createBy = createBy;
- }
-
- public Date getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(Date updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getUpdateBy() {
- return updateBy;
- }
-
- public void setUpdateBy(String updateBy) {
- this.updateBy = updateBy;
- }
-
- public Integer getState() {
- return state;
- }
-
- public void setState(Integer state) {
- this.state = state;
- }
-
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraphVersion.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraphVersion.java
index 176bcfc2..fcb86de0 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraphVersion.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KnowledgeGraphVersion.java
@@ -1,5 +1,7 @@
package com.ruoyi.platform.domain.kg;
+import lombok.Data;
+
import java.util.Date;
import java.io.Serializable;
@@ -9,20 +11,35 @@ import java.io.Serializable;
* @author makejava
* @since 2025-03-11 14:52:10
*/
+@Data
public class KnowledgeGraphVersion implements Serializable {
private static final long serialVersionUID = -60506903543301209L;
- private Integer id;
+ private Long id;
+
+ private String name;
+
+ private Integer version;
+
+ private String transactionId;
- private String version;
+ private String content;
- private Integer kgId;
+ private String kgId;
- private int status = 0;
+ private Integer status;
private Integer updateMethod;
- private Long entitynum;
+ /**
+ * 概念个数
+ */
+ private Integer conceptsCount;
+
+ /**
+ * 关系个数
+ */
+ private Integer relationsCount;
private Date updateTime;
@@ -33,95 +50,5 @@ public class KnowledgeGraphVersion implements Serializable {
private String updateBy;
private Integer state;
-
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getVersion() {
- return version;
- }
-
- public void setVersion(String version) {
- this.version = version;
- }
-
- public Integer getKgId() {
- return kgId;
- }
-
- public void setKgId(Integer kgId) {
- this.kgId = kgId;
- }
-
- public int getStatus() {
- return status;
- }
-
- public void setStatus(int status) {
- this.status = status;
- }
-
- public Integer getUpdateMethod() {
- return updateMethod;
- }
-
- public void setUpdateMethod(Integer updateMethod) {
- this.updateMethod = updateMethod;
- }
-
- public Long getEntitynum() {
- return entitynum;
- }
-
- public void setEntitynum(Long entitynum) {
- this.entitynum = entitynum;
- }
-
- public Date getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(Date updateTime) {
- this.updateTime = updateTime;
- }
-
- public Date getCreateTime() {
- return createTime;
- }
-
- public void setCreateTime(Date createTime) {
- this.createTime = createTime;
- }
-
- public String getCreateBy() {
- return createBy;
- }
-
- public void setCreateBy(String createBy) {
- this.createBy = createBy;
- }
-
- public String getUpdateBy() {
- return updateBy;
- }
-
- public void setUpdateBy(String updateBy) {
- this.updateBy = updateBy;
- }
-
- public Integer getState() {
- return state;
- }
-
- public void setState(Integer state) {
- this.state = state;
- }
-
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoIdDTO.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoIdDTO.java
index 91c5e99b..79f1a41e 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoIdDTO.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoIdDTO.java
@@ -13,9 +13,21 @@ public class KgInfoIdDTO {
@NotNull
private Long id;
+ /**
+ * 名字
+ */
+ @NotNull
+ private String name;
+
/**
* 版本
*/
@NotNull
private String version;
+
+ /**
+ * 状态
+ */
+ @NotNull
+ private String status;
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphDao.java
index 67269a70..056879a3 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphDao.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphDao.java
@@ -1,6 +1,7 @@
package com.ruoyi.platform.mapper.kg;
import com.ruoyi.platform.domain.kg.KnowledgeGraph;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
@@ -20,7 +21,8 @@ public interface KnowledgeGraphDao {
* @param id 主键
* @return 实例对象
*/
- KnowledgeGraph queryById(Integer id);
+ @Mapper
+ KnowledgeGraph queryById(Long id);
/**
* 查询指定行数据
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphVersionDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphVersionDao.java
index ffb23554..20ffc3a7 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphVersionDao.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KnowledgeGraphVersionDao.java
@@ -1,6 +1,8 @@
package com.ruoyi.platform.mapper.kg;
import com.ruoyi.platform.domain.kg.KnowledgeGraphVersion;
+import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
@@ -12,6 +14,7 @@ import java.util.List;
* @author makejava
* @since 2025-03-11 14:52:09
*/
+@Mapper
public interface KnowledgeGraphVersionDao {
/**
@@ -20,7 +23,7 @@ public interface KnowledgeGraphVersionDao {
* @param id 主键
* @return 实例对象
*/
- KnowledgeGraphVersion queryById(Integer id);
+ KnowledgeGraphVersion queryById(Long id);
/**
* 查询指定行数据
@@ -31,6 +34,14 @@ public interface KnowledgeGraphVersionDao {
*/
List queryAllByLimit(KnowledgeGraphVersion knowledgeGraphVersion, @Param("pageable") Pageable pageable);
+ /**
+ * 查询指定行数据
+ *
+ * @param kgInfoIdDTO 查询条件
+ * @return 对象列表
+ */
+ List queryAll(KgInfoIdDTO kgInfoIdDTO);
+
/**
* 统计总行数
*
@@ -78,7 +89,8 @@ public interface KnowledgeGraphVersionDao {
* @param id 主键
* @return 影响行数
*/
- int deleteById(Integer id);
+ int deleteById(Long id);
+ Integer queryMaxVersion(String kgId);
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgInfoService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgInfoService.java
index a59fb76e..9742c9c1 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgInfoService.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgInfoService.java
@@ -2,7 +2,9 @@ package com.ruoyi.platform.service;
import com.ruoyi.platform.domain.kg.KgInfo;
import com.ruoyi.platform.domain.kg.KgInfoPageVo;
+import com.ruoyi.platform.domain.kg.KnowledgeGraphVersion;
import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO;
+import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -19,5 +21,11 @@ public interface KgInfoService {
void deleteKgInfoById(Long id);
- List versionList(KgInfoIdDTO kgInfoIdDTO);
+ List versionList(KgInfoIdDTO kgInfoIdDTO);
+
+ void uploadCsv(MultipartFile file,String kgId);
+
+ void fullUpdate(Long id);
+
+ void incrementalUpdate(Long id);
}
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgInfoServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgInfoServiceImpl.java
index c46f785c..71ce113c 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgInfoServiceImpl.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgInfoServiceImpl.java
@@ -2,21 +2,62 @@ package com.ruoyi.platform.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.text.csv.*;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
import com.ruoyi.platform.domain.kg.KgInfo;
import com.ruoyi.platform.domain.kg.KgInfoPageVo;
+import com.ruoyi.platform.domain.kg.KnowledgeGraphVersion;
import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO;
import com.ruoyi.platform.mapper.kg.KgInfoMapper;
+import com.ruoyi.platform.mapper.kg.KnowledgeGraphVersionDao;
import com.ruoyi.platform.service.KgInfoService;
+import com.ruoyi.platform.service.kg.FriendsWith;
+import com.ruoyi.platform.service.kg.Person;
+import com.ruoyi.platform.service.kg.PersonRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.neo4j.core.Neo4jClient;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.zip.CRC32;
+
@Service
public class KgInfoServiceImpl implements KgInfoService {
@Autowired
private KgInfoMapper kgInfoMapper;
+ @Autowired
+ private KnowledgeGraphVersionDao knowledgeGraphVersionDao;
+
+ @Autowired
+ private Neo4jClient neo4jClient;
+
+ @Autowired
+ private PersonRepository personRepository;
+
+ private static final Logger log = LoggerFactory.getLogger(KgInfoServiceImpl.class);
+
+ // 关系映射配置(可扩展)
+ private static final Map RELATION_MAPPING = new HashMap<>();
+
+ static {
+ RELATION_MAPPING.put("导演", "DIRECTED_BY");
+ RELATION_MAPPING.put("主演", "ACTED_IN");
+ }
+
@Override
public void insertKgInfo(KgInfo KgInfo) {
KgInfo.setVersion("1");
@@ -28,7 +69,7 @@ public class KgInfoServiceImpl implements KgInfoService {
@Override
public void updateKgInfo(KgInfo KgInfo) {
- kgInfoMapper.updateByPrimaryKeySelective(KgInfo) ;
+ kgInfoMapper.updateByPrimaryKeySelective(KgInfo);
}
@Override
@@ -48,8 +89,97 @@ public class KgInfoServiceImpl implements KgInfoService {
}
@Override
- public List versionList(KgInfoIdDTO kgInfoIdDTO) {
- return kgInfoMapper.selectByPrimaryKey(kgInfoIdDTO);
+ public List versionList(KgInfoIdDTO kgInfoIdDTO) {
+ return knowledgeGraphVersionDao.queryAll(kgInfoIdDTO);
+ }
+
+ @Override
+ public void uploadCsv(MultipartFile file, String kgId) {
+ try (InputStreamReader reader = new InputStreamReader(file.getInputStream())) {
+ // 创建 CsvReader
+ CsvReader csvReader = CsvUtil.getReader();
+ // 读取所有行
+ CsvData rows = csvReader.read(reader);
+
+ KnowledgeGraphVersion knowledgeGraphVersion = new KnowledgeGraphVersion();
+ knowledgeGraphVersion.setStatus(0);
+ knowledgeGraphVersion.setKgId(kgId);
+ knowledgeGraphVersion.setUpdateMethod(0);
+ knowledgeGraphVersion.setVersion(maxVersion(kgId));
+ knowledgeGraphVersion.setName(file.getOriginalFilename());
+ knowledgeGraphVersion.setTransactionId(IdUtil.simpleUUID());
+ knowledgeGraphVersion.setContent(JSONUtil.toJsonStr(rows.getRows()));
+ knowledgeGraphVersionDao.insert(knowledgeGraphVersion);
+ } catch (Exception e) {
+ log.error("e={}",e.getMessage());
+ }
+ }
+
+ @Override
+ @Transactional
+ public void fullUpdate(Long id) {
+ KnowledgeGraphVersion knowledgeGraphVersion = knowledgeGraphVersionDao.queryById(id);
+ String transactionId = knowledgeGraphVersion.getTransactionId();
+ Integer version = knowledgeGraphVersion.getVersion();
+ JSONArray neo4jContents = JSONUtil.parseArray(knowledgeGraphVersion.getContent());
+ List