diff --git a/ruoyi-modules/management-platform/pom.xml b/ruoyi-modules/management-platform/pom.xml index c3254806..686357ee 100644 --- a/ruoyi-modules/management-platform/pom.xml +++ b/ruoyi-modules/management-platform/pom.xml @@ -183,7 +183,11 @@ opencsv 5.7.1 - + + org.apache.commons + commons-csv + 1.9.0 + io.fabric8 kubernetes-client diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgVersionController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgVersionController.java index 01468bd0..67514101 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgVersionController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/kg/KgVersionController.java @@ -4,12 +4,13 @@ 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.KnowledgeGraphVersion; import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO; +import com.ruoyi.platform.domain.kg.dto.KgVersionInsertDTO; import com.ruoyi.platform.service.KgVersionService; 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; @@ -56,10 +57,9 @@ public class KgVersionController extends BaseController { * 图谱版本导入 * * @param file - * @param kgId */ @PostMapping("/upload") - public R uploadCsv(@RequestParam("file") MultipartFile file,@RequestParam("kgId") String kgId) { + public R uploadCsv(@RequestParam("file") MultipartFile file) { if (file == null || file.isEmpty()) { throw new IllegalArgumentException("文件不能为空"); } @@ -67,41 +67,57 @@ public class KgVersionController extends BaseController { if (!file.getOriginalFilename().endsWith(".csv")) { throw new IllegalArgumentException("仅支持 CSV 文件"); } - kgVersionService.uploadCsv(file, kgId); - return R.ok("操作成功"); + + try { + return R.ok(kgVersionService.uploadCsv(file)); + } catch (Exception e) { + e.printStackTrace(); + return R.fail(); + } + } + + /** + * 图谱版本新增 + * + * @param kgVersionInsertDTO + */ + @PostMapping + public R insert(@RequestBody @Validated KgVersionInsertDTO kgVersionInsertDTO) { + kgVersionService.insert(kgVersionInsertDTO); + return R.ok(); } /** * 图谱版本全量更新 * - * @param id 版本id + * @param kgInfoIdDTO 版本id */ @PostMapping("/fullUpdate") - public R fullUpdate(@RequestParam("id") Long id) { - kgVersionService.fullUpdate(id); + public R fullUpdate(@RequestBody @Validated KgInfoIdDTO kgInfoIdDTO) { + kgVersionService.fullUpdate(kgInfoIdDTO.getId()); return R.ok("操作成功"); } /** * 图谱版本增量更新 * - * @param id + * @param kgInfoIdDTO */ @PostMapping("/incrementalUpdate") - public R incrementalUpdate(@RequestParam("id") Long id) { - kgVersionService.incrementalUpdate(id); + public R incrementalUpdate(@RequestBody @Validated KgInfoIdDTO kgInfoIdDTO) { + kgVersionService.incrementalUpdate(kgInfoIdDTO.getId()); return R.ok("操作成功"); } /** * 图谱版本回退 * - * @param versionId + * @param kgInfoIdDTO */ @PostMapping("/rollback") - public R rollback(@RequestParam("id") Long versionId) { - kgVersionService.rollback(versionId); + public R rollback(@RequestBody @Validated KgInfoIdDTO kgInfoIdDTO) { + kgVersionService.rollback(kgInfoIdDTO.getId()); return R.ok("操作成功"); } @@ -112,7 +128,7 @@ public class KgVersionController extends BaseController { */ @DeleteMapping("/{versionId}") public R delete(@PathVariable Long versionId) { - kgVersionService.rollback(versionId); + kgVersionService.delete(versionId); return R.ok("操作成功"); } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CsvParser.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CsvParser.java new file mode 100644 index 00000000..2ec30b73 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CsvParser.java @@ -0,0 +1,37 @@ +package com.ruoyi.platform.domain; + +import cn.hutool.core.collection.CollectionUtil; +import com.opencsv.CSVReader; +import com.opencsv.exceptions.CsvException; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class CsvParser { + + public static List> parseCsvToMap(InputStream inputStream) throws IOException, CsvException { + try (CSVReader reader = new CSVReader(new InputStreamReader(inputStream))) { + List rows = reader.readAll(); + if (CollectionUtil.isEmpty(rows) || rows.size() <= 1) { + return new ArrayList<>(); + } + String[] headers = rows.get(0); // 第一行为表头 + List data = rows.subList(1, rows.size()); // 剩余行为数据 + + return data.stream() + .map(row -> { + Map map = new HashMap<>(); + for (int i = 0; i < headers.length; i++) { + map.put(headers[i], row[i]); + } + return map; + }).collect(Collectors.toList()); + } + } +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CsvToMap.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CsvToMap.java new file mode 100644 index 00000000..7822430e --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/CsvToMap.java @@ -0,0 +1,23 @@ +package com.ruoyi.platform.domain; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class CsvToMap { + + public static List> convertToMap(List csvData) { + String[] headers = csvData.get(0); // 第一行为表头 + List rows = csvData.subList(1, csvData.size()); // 剩余行为数据 + + return rows.stream() + .map(row -> { + Map map = new HashMap<>(); + for (int i = 0; i < headers.length; i++) { + map.put(headers[i], row[i]); + } + return map; + }).collect(Collectors.toList()); + } +} 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 79f1a41e..b547ccd6 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 @@ -16,18 +16,15 @@ public class KgInfoIdDTO { /** * 名字 */ - @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/domain/kg/dto/KgVersionInsertDTO.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgVersionInsertDTO.java new file mode 100644 index 00000000..d721e489 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/kg/dto/KgVersionInsertDTO.java @@ -0,0 +1,21 @@ +package com.ruoyi.platform.domain.kg.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class KgVersionInsertDTO { + + /** + * 文件路径 + */ + @NotNull + private String path; + + /** + * kgId + */ + @NotNull + private String kgId; +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgVersionService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgVersionService.java index 99cb103c..eb9a8b2e 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgVersionService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/KgVersionService.java @@ -3,6 +3,7 @@ package com.ruoyi.platform.service; import com.ruoyi.platform.domain.kg.KnowledgeGraphVersion; import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO; import org.springframework.web.multipart.MultipartFile; +import com.ruoyi.platform.domain.kg.dto.KgVersionInsertDTO; import java.util.List; @@ -11,11 +12,15 @@ public interface KgVersionService { List versionList(KgInfoIdDTO kgInfoIdDTO); - void uploadCsv(MultipartFile file,String kgId); + String uploadCsv(MultipartFile file) throws Exception; void fullUpdate(Long id); void incrementalUpdate(Long id); void rollback(Long versionId); + + void delete(Long versionId); + + void insert(KgVersionInsertDTO kgVersionInsertDTO ); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgVersionServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgVersionServiceImpl.java index e68c2f5b..c88b7d86 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgVersionServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/KgVersionServiceImpl.java @@ -1,36 +1,36 @@ package com.ruoyi.platform.service.impl; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.text.csv.CsvData; -import cn.hutool.core.text.csv.CsvReader; -import cn.hutool.core.text.csv.CsvUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONUtil; import com.ruoyi.common.core.enums.KgStatus; import com.ruoyi.common.core.enums.KgUpdateMethod; import com.ruoyi.platform.domain.kg.KnowledgeGraphVersion; import com.ruoyi.platform.domain.kg.dto.KgInfoIdDTO; +import com.ruoyi.platform.domain.kg.dto.KgVersionInsertDTO; import com.ruoyi.platform.mapper.kg.KnowledgeGraphVersionDao; import com.ruoyi.platform.service.KgVersionService; +import com.ruoyi.platform.service.MinioService; 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.beans.factory.annotation.Value; +import org.springframework.core.io.InputStreamResource; +import org.springframework.http.ResponseEntity; 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.io.InputStream; +import java.util.*; import java.util.zip.CRC32; +import com.ruoyi.platform.domain.CsvParser; + @Service public class KgVersionServiceImpl implements KgVersionService { @@ -40,6 +40,12 @@ public class KgVersionServiceImpl implements KgVersionService { @Autowired private PersonRepository personRepository; + @Autowired + private MinioService minioService; + + @Value("${minio.bucketName}") + public String bucketName; + private static final Logger log = LoggerFactory.getLogger(KgVersionServiceImpl.class); @Override @@ -48,74 +54,42 @@ public class KgVersionServiceImpl implements KgVersionService { } @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.setKgId(kgId); - knowledgeGraphVersion.setVersion(maxVersion(kgId)); - knowledgeGraphVersion.setName(file.getOriginalFilename()); - knowledgeGraphVersion.setTransactionId(IdUtil.simpleUUID()); - knowledgeGraphVersion.setStatus(KgStatus.OFFLINE.getCode()); - knowledgeGraphVersion.setContent(JSONUtil.toJsonStr(rows.getRows())); - knowledgeGraphVersion.setUpdateMethod(KgUpdateMethod.PENDING_UPDATE.getCode()); - knowledgeGraphVersionDao.insert(knowledgeGraphVersion); - } catch (Exception e) { - log.error("e={}", e.getMessage()); - } + public void insert(KgVersionInsertDTO kgVersionInsertDTO) { + String path = kgVersionInsertDTO.getPath(); + String kgId = kgVersionInsertDTO.getKgId(); + KnowledgeGraphVersion knowledgeGraphVersion = new KnowledgeGraphVersion(); + knowledgeGraphVersion.setKgId(kgId); + knowledgeGraphVersion.setVersion(maxVersion(kgId)); + knowledgeGraphVersion.setName(path.replaceAll(".*/([^/]+)$", "$1")); + knowledgeGraphVersion.setTransactionId(IdUtil.simpleUUID()); + knowledgeGraphVersion.setStatus(KgStatus.OFFLINE.getCode()); + knowledgeGraphVersion.setContent(path); + knowledgeGraphVersion.setUpdateMethod(KgUpdateMethod.PENDING_UPDATE.getCode()); + knowledgeGraphVersionDao.insert(knowledgeGraphVersion); + } + + @Override + public String uploadCsv(MultipartFile file) throws Exception { + String path = "/knowledge-graph/" + DateUtil.now() + "/" + file.getOriginalFilename(); + minioService.uploadFile(bucketName, path, file); + return path; } @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()); - if (CollectionUtil.isEmpty(neo4jContents)||neo4jContents.size()<=1){ - return; + KnowledgeGraphVersion currentVersion = knowledgeGraphVersionDao.queryById(id); + String transactionId = currentVersion.getTransactionId(); + Integer version = currentVersion.getVersion(); + KnowledgeGraphVersion onlineVersion = knowledgeGraphVersionDao.onlineFind(); + if (ObjectUtil.isNotNull(onlineVersion)) { + //旧版在线变离线 + changeStatus(onlineVersion.getId(), KgStatus.OFFLINE.getCode(), null); } - //去掉表头 - neo4jContents.remove(0); - // 用于存储已解析的 Person 节点 - Map personMap = new HashMap<>(); - neo4jContents.forEach(item -> { - JSONArray lineData = JSONUtil.parseArray(item); - String name = String.valueOf(lineData.get(0)); - String age = String.valueOf((lineData.get(1))); - String relationType = String.valueOf(lineData.get(2)); - String relatedPerson = String.valueOf(lineData.get(3)); - String since = lineData.get(4) != null ? String.valueOf(lineData.get(4)) : "0"; - - // 创建或获取 Person 节点 - Person person = personMap.computeIfAbsent(name, k -> new Person(name, age, new ArrayList<>())); - person.setVersion(version); - person.setTransactionId(transactionId); - - // 如果存在关系,则创建关系 - if (relationType != null && relatedPerson != null) { - Person related = personMap.computeIfAbsent(relatedPerson, k -> new Person(relatedPerson, "0", new ArrayList<>())); - FriendsWith relation = new FriendsWith(related, since); - related.setTransactionId(transactionId); - related.setVersion(version); - relation.setTransactionId(transactionId); - relation.setVersion(version); - relation.setRelationType(relationType); // 动态设置关系类型 - person.getRelations().add(relation); - } - // 保存 Person 节点 - personRepository.save(person); - }); - - KnowledgeGraphVersion online = new KnowledgeGraphVersion(); - online.setStatus(KgStatus.ONLINE.getCode()); - online.setUpdateMethod(KgUpdateMethod.INCREMENTAL_UPDATE.getCode()); - online.setId(id); - knowledgeGraphVersionDao.update(online); + //当前版本变在线 + changeStatus(currentVersion.getId(), KgStatus.ONLINE.getCode(), KgUpdateMethod.FULL_UPDATE.getCode()); + //解析表格数据保存到neo4j + saveToNeo4j(currentVersion.getContent(), version, transactionId); } @Override @@ -123,12 +97,12 @@ public class KgVersionServiceImpl implements KgVersionService { public void incrementalUpdate(Long id) { //当前版本 KnowledgeGraphVersion currentVersion = knowledgeGraphVersionDao.queryById(id); - String transactionId = currentVersion.getTransactionId(); Integer version = currentVersion.getVersion(); + String transactionId = currentVersion.getTransactionId(); // 找出在线的版本 KnowledgeGraphVersion onlineVersion = knowledgeGraphVersionDao.onlineFind(); - if (ObjectUtil.isNotNull(onlineVersion)&&ObjectUtil.isNotEmpty(onlineVersion.getTransactionId()) - &&ObjectUtil.isNotNull(onlineVersion.getVersion())) { + if (ObjectUtil.isNotNull(onlineVersion) && ObjectUtil.isNotEmpty(onlineVersion.getTransactionId()) + && ObjectUtil.isNotNull(onlineVersion.getVersion())) { // 存在在线的版本,则取在线版本的version和transactionId transactionId = onlineVersion.getTransactionId(); version = onlineVersion.getVersion(); @@ -138,9 +112,7 @@ public class KgVersionServiceImpl implements KgVersionService { knowledgeGraphVersionDao.update(currentVersion); }else { //当前版本为在线版本 - currentVersion.setUpdateMethod(KgUpdateMethod.INCREMENTAL_UPDATE.getCode()); - currentVersion.setStatus(KgStatus.ONLINE.getCode()); - knowledgeGraphVersionDao.update(currentVersion); + changeStatus(currentVersion.getId(), KgStatus.ONLINE.getCode(), KgUpdateMethod.INCREMENTAL_UPDATE.getCode()); } //解析表格数据保存到neo4j saveToNeo4j(currentVersion.getContent(), version, transactionId); @@ -150,49 +122,76 @@ public class KgVersionServiceImpl implements KgVersionService { @Transactional public void rollback(Long versionId) { //在线的版本置为离线 - KnowledgeGraphVersion knowledgeGraphVersion = knowledgeGraphVersionDao.onlineFind(); - knowledgeGraphVersion.setStatus(KgStatus.OFFLINE.getCode()); - knowledgeGraphVersionDao.update(knowledgeGraphVersion); + KnowledgeGraphVersion onlineVersion = knowledgeGraphVersionDao.onlineFind(); + changeStatus(onlineVersion.getId(), KgStatus.OFFLINE.getCode(),null); //该版本置为在线 - KnowledgeGraphVersion onlineVersion = new KnowledgeGraphVersion(); - onlineVersion.setId(versionId); - onlineVersion.setStatus(KgStatus.ONLINE.getCode()); + changeStatus(versionId,KgStatus.ONLINE.getCode(),null); + } + + @Override + @Transactional + public void delete(Long versionId) { + knowledgeGraphVersionDao.deleteById(versionId); + } + + /** + * 状态切换 + * + * @param id + * @param status + * @param updateMethod + */ + private void changeStatus(Long id, Integer status, Integer updateMethod) { + KnowledgeGraphVersion knowledgeGraphVersion = new KnowledgeGraphVersion(); + knowledgeGraphVersion.setId(id); + knowledgeGraphVersion.setStatus(status); + knowledgeGraphVersion.setUpdateMethod(updateMethod); knowledgeGraphVersionDao.update(knowledgeGraphVersion); } + /** + * 从minio中获取数据 + * + * @param path + * @return + */ + private List> queryCsvDataFromMinio(String path) { + List> csvData; + try { + ResponseEntity inputStreamResourceResponseEntity = minioService.downloadFile(bucketName, path); + InputStreamResource body = inputStreamResourceResponseEntity.getBody(); + InputStream inputStream = body.getInputStream(); + csvData = CsvParser.parseCsvToMap(inputStream); + } catch (Exception e) { + csvData = new ArrayList<>(); + } + return csvData; + } + /** * 解析表格数据保存到neo4j */ - private void saveToNeo4j(String content,int version,String transactionId) { - JSONArray neo4jContents = JSONUtil.parseArray(content); - if (CollectionUtil.isEmpty(neo4jContents)||neo4jContents.size()<=1){ + private void saveToNeo4j(String content, int version, String transactionId) { + List> csvData = queryCsvDataFromMinio(content); + if (CollectionUtil.isEmpty(csvData)) { return; } - //去掉表头 - neo4jContents.remove(0); Map personMap = new HashMap<>(); // 把当前内容合并到在线版本 - neo4jContents.forEach(item -> { - JSONArray lineData = JSONUtil.parseArray(item); - String name = String.valueOf(lineData.get(0)); - String age = String.valueOf((lineData.get(1))); - String relationType = String.valueOf(lineData.get(2)); - String relatedPerson = String.valueOf(lineData.get(3)); - String since = lineData.get(4) != null ? String.valueOf(lineData.get(4)) : "0"; + csvData.forEach(item -> { + String name = item.get("name"); + String age = item.get("age"); + String relationType = item.get("relation_type"); + String relatedPerson = item.get("friends_with"); + String since = item.get("since"); // 创建或获取 Person 节点 - Person person = personMap.computeIfAbsent(name, k -> new Person(name, age, new ArrayList<>())); - person.setVersion(version); - person.setTransactionId(transactionId); + Person person = personMap.computeIfAbsent(name, k -> new Person(name, age, new ArrayList<>(), version, transactionId)); // 如果存在关系,则创建关系 if (relationType != null && relatedPerson != null) { - Person related = personMap.computeIfAbsent(relatedPerson, k -> new Person(relatedPerson, "0", new ArrayList<>())); - FriendsWith relation = new FriendsWith(related, since); - related.setTransactionId(transactionId); - related.setVersion(version); - relation.setTransactionId(transactionId); - relation.setVersion(version); + Person related = personMap.computeIfAbsent(relatedPerson, k -> new Person(relatedPerson, "0", new ArrayList<>(), version, transactionId)); + FriendsWith relation = new FriendsWith(related, since, version, transactionId); relation.setRelationType(relationType); // 动态设置关系类型 person.getRelations().add(relation); } @@ -215,6 +214,7 @@ public class KgVersionServiceImpl implements KgVersionService { /** * 下一个升级的版本 + * * @param kgId * @return */ diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/FriendsWith.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/FriendsWith.java index 78f52e27..fba17d72 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/FriendsWith.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/FriendsWith.java @@ -22,8 +22,10 @@ public class FriendsWith { private Integer version; // 构造函数、Getter 和 Setter - public FriendsWith(Person person, String since) { + public FriendsWith(Person person, String since,Integer version,String transactionId) { this.person = person; this.since = since; + this.version = version; + this.transactionId = transactionId; } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/Person.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/Person.java index 9268cd96..a788974b 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/Person.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/kg/Person.java @@ -28,9 +28,11 @@ public class Person { private List relations; // 构造函数、Getter 和 Setter - public Person(String name, String age,List relations) { + public Person(String name, String age,List relations,Integer version,String transactionId) { this.name = name; this.age = age; this.relations = relations; + this.version = version; + this.transactionId = transactionId; } } diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KnowledgeGraphVersionDao.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KnowledgeGraphVersionDao.xml index 131594c6..092ab911 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KnowledgeGraphVersionDao.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/KnowledgeGraphVersionDao.xml @@ -86,6 +86,9 @@ and status = #{status} + + and kg_id = #{id} + @@ -165,7 +168,7 @@ update knowledge_graph_version - + version = #{version}, @@ -174,7 +177,7 @@ kg_id = #{kgId}, - + status = #{status}, @@ -199,7 +202,7 @@ update_by = #{updateBy}, - state = #{state}, + `state` = #{state}, where id = #{id}