From 1a81e831e64bb662a60df7e3330cc19d360d45c2 Mon Sep 17 00:00:00 2001 From: chenpeng Date: Tue, 10 Dec 2024 10:59:07 +0800 Subject: [PATCH] kg init --- .../controller/kg/KgInfoController.java | 104 ++++++++++ .../com/ruoyi/platform/domain/kg/KgInfo.java | 83 ++++++++ .../platform/domain/kg/KgInfoPageVo.java | 93 +++++++++ .../platform/domain/kg/dto/KgInfoIdDTO.java | 21 ++ .../platform/domain/kg/dto/KgInfoPageDTO.java | 26 +++ .../platform/mapper/kg/KgInfoMapper.java | 26 +++ .../ruoyi/platform/service/KgInfoService.java | 23 +++ .../service/impl/KgInfoServiceImpl.java | 55 ++++++ .../managementPlatform/KgInfoMapper.xml | 187 ++++++++++++++++++ .../ruoyi/platform/utils/ExcelReaderTest.java | 3 +- 10 files changed, 620 insertions(+), 1 deletion(-) create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgInfoController.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfo.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfoPageVo.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoIdDTO.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoPageDTO.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KgInfoMapper.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgInfoService.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgInfoServiceImpl.java create mode 100644 ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KgInfoMapper.xml 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 new file mode 100644 index 00000000..cd65e304 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgInfoController.java @@ -0,0 +1,104 @@ +package com.ruoyi.platform.controller.kg; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +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.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.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@RestController +@RequestMapping("/kgInfos") +public class KgInfoController extends BaseController { + + @Autowired + private KgInfoService kgInfoService; + + /** + * 新增图谱 + * + * @param kgInfo + * @return + */ + @PostMapping() + public R createKgInfo(@RequestBody KgInfo kgInfo) { + kgInfoService.insertKgInfo(kgInfo); + return R.ok(); + } + + /** + * 修改图谱 + * + * @param kgInfo + * @return + */ + @PutMapping + public R updateKgInfo(@RequestBody KgInfo kgInfo) { + kgInfoService.updateKgInfo(kgInfo); + return R.ok(); + } + + /** + * 图谱列表 + * @return + */ + @GetMapping("/list") + public TableDataInfo getAllKgInfos() { + startPage(); + List kgInfo = kgInfoService.getAllKgInfos(); + return getDataTable(kgInfo); + } + + /** + * 图谱详情 + * @param kgInfoIdDTO + * @return + */ + @GetMapping + public R getKgInfo( KgInfoIdDTO kgInfoIdDTO) { + return R.ok(kgInfoService.getKgInfo(kgInfoIdDTO)); + } + + /** + * 删除图谱 + * @param id + * @return + */ + @DeleteMapping("/{id}") + public R deleteKgInfoById(@PathVariable Long id) { + kgInfoService.deleteKgInfoById(id); + return R.ok(); + } + + /** + * 图谱版本列表 + * @param kgInfoIdDTO + * @return + */ + @GetMapping("/version/list") + public TableDataInfo versionList(KgInfoIdDTO kgInfoIdDTO) { + startPage(); + List kgInfo = kgInfoService.versionList(kgInfoIdDTO); + return getDataTable(kgInfo); + } + + /** + * 图谱版本导出 + * @param response + * @param kgInfoIdDTO + */ + @GetMapping("/version/export") + public void versionExport(HttpServletResponse response,KgInfoIdDTO kgInfoIdDTO) { + KgInfo KgInfo = kgInfoService.getKgInfo(kgInfoIdDTO); + ExcelUtil util = new ExcelUtil(SysDictData.class); + util.exportExcel(response, null, "图谱数据"); + } +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfo.java new file mode 100644 index 00000000..25f07f48 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfo.java @@ -0,0 +1,83 @@ +package com.ruoyi.platform.domain.kg; + +import java.io.Serializable; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +/** + * 知识图谱信息表 + * kg_info + */ +@Data +public class KgInfo implements Serializable { + /** + * ID + */ + private Long id; + + /** + * 版本 + */ + private String version; + + /** + * 图谱名称 + */ + private String name; + + /** + * 本体ID + */ + private Long ontologyId; + + /** + * neo4j数据库名称 + */ + private String dbName; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 创建者 + */ + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新者 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String updateBy; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 备注 + */ + private String remark; + + /** + * 规格 + */ + private String spec; + + /** + * 删除标志(2删除,0未删除) + */ + private String delFlag; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfoPageVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfoPageVo.java new file mode 100644 index 00000000..9d42e628 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/KgInfoPageVo.java @@ -0,0 +1,93 @@ +package com.ruoyi.platform.domain.kg; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 知识图谱信息表 + * kg_info + */ +@Data +public class KgInfoPageVo implements Serializable { + /** + * ID + */ + private Long id; + + /** + * 版本 + */ + private String version; + + /** + * 图谱名称 + */ + private String name; + + /** + * 本体ID + */ + private Long ontologyId; + + /** + * neo4j数据库名称 + */ + private String dbName; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 创建者 + */ + private String createBy; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 更新者 + */ + private String updateBy; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 备注 + */ + private String remark; + + /** + * 规格 + */ + private String spec; + + /** + * 删除标志(2删除,0未删除) + */ + private String delFlag; + + /** + * 关系数 + */ + private Integer relationCount; + + /** + * 实体数 + */ + private Integer entityCount; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file 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 new file mode 100644 index 00000000..91c5e99b --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoIdDTO.java @@ -0,0 +1,21 @@ +package com.ruoyi.platform.domain.kg.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class KgInfoIdDTO { + + /** + * ID + */ + @NotNull + private Long id; + + /** + * 版本 + */ + @NotNull + private String version; +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoPageDTO.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoPageDTO.java new file mode 100644 index 00000000..87374dbe --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgInfoPageDTO.java @@ -0,0 +1,26 @@ +package com.ruoyi.platform.domain.kg.dto; + +import lombok.Data; + +@Data +public class KgInfoPageDTO { + + /** + * ID + */ + private Long id; + + /** + * 搜索关键词 + */ + private String searchKey; + + /** + * 状态 + */ + private String status; + + private Integer current; + + private Integer pageSize; +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KgInfoMapper.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KgInfoMapper.java new file mode 100644 index 00000000..b9e2ee5d --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/kg/KgInfoMapper.java @@ -0,0 +1,26 @@ +package com.ruoyi.platform.mapper.kg; +import com.ruoyi.platform.domain.kg.KgInfo; +import com.ruoyi.platform.domain.kg.KgInfoPageVo; +import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface KgInfoMapper { + int deleteByPrimaryKey(Long id); + + int insert(KgInfo record); + + int insertSelective(KgInfo record); + + List selectByPrimaryKey(KgInfoIdDTO kgInfoIdDTO); + + List selectALl(); + + KgInfo queryInfoByPrimaryKey(KgInfoIdDTO kgInfoIdDTO); + + int updateByPrimaryKeySelective(KgInfo record); + + int updateByPrimaryKey(KgInfo record); +} \ No newline at end of file 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 new file mode 100644 index 00000000..a59fb76e --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgInfoService.java @@ -0,0 +1,23 @@ +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.dto.KgInfoIdDTO; + +import java.util.List; + + +public interface KgInfoService { + + void insertKgInfo(KgInfo KgInfo); + + void updateKgInfo(KgInfo KgInfo); + + List getAllKgInfos(); + + KgInfo getKgInfo(KgInfoIdDTO kgInfoIdDTO); + + void deleteKgInfoById(Long id); + + List versionList(KgInfoIdDTO kgInfoIdDTO); +} 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 new file mode 100644 index 00000000..c46f785c --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgInfoServiceImpl.java @@ -0,0 +1,55 @@ +package com.ruoyi.platform.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.ruoyi.platform.domain.kg.KgInfo; +import com.ruoyi.platform.domain.kg.KgInfoPageVo; +import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO; +import com.ruoyi.platform.mapper.kg.KgInfoMapper; +import com.ruoyi.platform.service.KgInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class KgInfoServiceImpl implements KgInfoService { + + @Autowired + private KgInfoMapper kgInfoMapper; + + @Override + public void insertKgInfo(KgInfo KgInfo) { + KgInfo.setVersion("1"); + DateTime date = DateUtil.date(); + KgInfo.setCreateTime(date); + KgInfo.setUpdateTime(date); + kgInfoMapper.insertSelective(KgInfo); + } + + @Override + public void updateKgInfo(KgInfo KgInfo) { + kgInfoMapper.updateByPrimaryKeySelective(KgInfo) ; + } + + @Override + public List getAllKgInfos() { + List kgInfos = kgInfoMapper.selectALl(); + return kgInfos; + } + + @Override + public KgInfo getKgInfo(KgInfoIdDTO kgInfoIdDTO) { + return kgInfoMapper.queryInfoByPrimaryKey(kgInfoIdDTO); + } + + @Override + public void deleteKgInfoById(Long id) { + kgInfoMapper.deleteByPrimaryKey(id); + } + + @Override + public List versionList(KgInfoIdDTO kgInfoIdDTO) { + return kgInfoMapper.selectByPrimaryKey(kgInfoIdDTO); + } + +} diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KgInfoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KgInfoMapper.xml new file mode 100644 index 00000000..0931c1dd --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KgInfoMapper.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + id, version, `name`, ontology_id, db_name, `status`, create_by, create_time, update_by, + update_time, remark, spec,del_flag + + + + + + + + + + delete from kg_info + where id = #{id,jdbcType=BIGINT} + + + + insert into kg_info (version, `name`, ontology_id, + db_name, `status`, create_by, + create_time, update_by, update_time, + remark, del_flag) + values (#{version,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{ontologyId,jdbcType=BIGINT}, + #{dbName,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{createBy,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, + #{remark,jdbcType=VARCHAR}, #{delFlag,jdbcType=CHAR}) + + + insert into kg_info + + + version, + + + `name`, + + + ontology_id, + + + db_name, + + + `status`, + + + create_by, + + + create_time, + + + update_by, + + + update_time, + + + remark, + + + del_flag, + + + + + #{version,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{ontologyId,jdbcType=BIGINT}, + + + #{dbName,jdbcType=VARCHAR}, + + + #{status,jdbcType=CHAR}, + + + #{createBy,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateBy,jdbcType=VARCHAR}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{remark,jdbcType=VARCHAR}, + + + #{delFlag,jdbcType=CHAR}, + + + + + update kg_info + + + version = #{version,jdbcType=VARCHAR}, + + + `name` = #{name,jdbcType=VARCHAR}, + + + ontology_id = #{ontologyId,jdbcType=BIGINT}, + + + db_name = #{dbName,jdbcType=VARCHAR}, + + + `status` = #{status,jdbcType=CHAR}, + + + create_by = #{createBy,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_by = #{updateBy,jdbcType=VARCHAR}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + del_flag = #{delFlag,jdbcType=CHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update kg_info + set version = #{version,jdbcType=VARCHAR}, + `name` = #{name,jdbcType=VARCHAR}, + ontology_id = #{ontologyId,jdbcType=BIGINT}, + db_name = #{dbName,jdbcType=VARCHAR}, + `status` = #{status,jdbcType=CHAR}, + create_by = #{createBy,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_by = #{updateBy,jdbcType=VARCHAR}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + remark = #{remark,jdbcType=VARCHAR}, + del_flag = #{delFlag,jdbcType=CHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/ruoyi-modules/management-platform/src/test/java/com/ruoyi/platform/utils/ExcelReaderTest.java b/ruoyi-modules/management-platform/src/test/java/com/ruoyi/platform/utils/ExcelReaderTest.java index d1639af0..942f61bc 100644 --- a/ruoyi-modules/management-platform/src/test/java/com/ruoyi/platform/utils/ExcelReaderTest.java +++ b/ruoyi-modules/management-platform/src/test/java/com/ruoyi/platform/utils/ExcelReaderTest.java @@ -1,6 +1,7 @@ package com.ruoyi.platform.utils; import com.ruoyi.platform.domain.kg.*; +import com.ruoyi.platform.domain.material.*; import com.ruoyi.platform.repository.MatKGRepository; import com.ruoyi.platform.service.impl.MatKGServiceImpl; import com.ruoyi.platform.vo.MatKGVo; @@ -21,7 +22,7 @@ public class ExcelReaderTest { private MatKGRepository repository; @Test void read() { - String excelFilePath = "C:\\haha\\matKG\\ENTDOI.csv"; + String excelFilePath = "C:\\Users\\Public\\Nwt\\cache\\recv\\LHZ\\ENTDOI.csv"; ExecutorService executorService = Executors.newFixedThreadPool(10); // 创建ExcelReader实例