|
@@ -1,26 +1,38 @@
|
|
|
package org.eco.als.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.mybatisflex.core.paginate.Page;
|
|
|
import com.mybatisflex.core.query.QueryWrapper;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.eco.als.domain.KGraphTask;
|
|
|
-import org.eco.als.domain.bo.KGraphTaskBo;
|
|
|
+import org.eco.als.domain.bo.*;
|
|
|
+import org.eco.als.domain.vo.ExtraKGraphTaskVo;
|
|
|
+import org.eco.als.domain.vo.KGraphClauseVo;
|
|
|
+import org.eco.als.domain.vo.KGraphEntityVo;
|
|
|
import org.eco.als.domain.vo.KGraphTaskVo;
|
|
|
import org.eco.als.enums.GraphStatus;
|
|
|
import org.eco.als.mapper.KGraphTaskMapper;
|
|
|
+import org.eco.als.service.IKGraphClauseService;
|
|
|
+import org.eco.als.service.IKGraphEntityService;
|
|
|
import org.eco.als.service.IKGraphTaskService;
|
|
|
import org.eco.common.core.core.page.PageResult;
|
|
|
import org.eco.common.core.exception.BusinessException;
|
|
|
+import org.eco.common.core.utils.HttpUtils;
|
|
|
import org.eco.common.core.utils.MapstructUtils;
|
|
|
import org.eco.common.orm.core.page.PageQuery;
|
|
|
import org.eco.common.orm.core.service.impl.BaseServiceImpl;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import static org.eco.als.domain.table.KGraphTaskTableDef.K_GRAPH_TASK;
|
|
|
|
|
@@ -35,6 +47,19 @@ import static org.eco.als.domain.table.KGraphTaskTableDef.K_GRAPH_TASK;
|
|
|
public class KGraphTaskServiceImpl extends BaseServiceImpl<KGraphTaskMapper, KGraphTask> implements IKGraphTaskService {
|
|
|
@Resource
|
|
|
private KGraphTaskMapper kGraphTaskMapper;
|
|
|
+ @Resource
|
|
|
+ private IKGraphClauseService kGraphClauseService;
|
|
|
+ @Resource
|
|
|
+ private IKGraphEntityService kGraphEntityService;
|
|
|
+
|
|
|
+ @Value("${kgqa.clause-url}")
|
|
|
+ private String clauseUrl;
|
|
|
+
|
|
|
+ @Value("${kgqa.extract-url}")
|
|
|
+ private String extractUrl;
|
|
|
+ //
|
|
|
+ @Value("${kgqa.storage-url}")
|
|
|
+ private String storageUrl;
|
|
|
|
|
|
@Override
|
|
|
public QueryWrapper query() {
|
|
@@ -111,19 +136,48 @@ public class KGraphTaskServiceImpl extends BaseServiceImpl<KGraphTaskMapper, KGr
|
|
|
@Override
|
|
|
public boolean proTask(KGraphTaskBo kGraphTaskBo) {
|
|
|
KGraphTaskVo kGraphTaskVo = this.selectById(kGraphTaskBo.getId());
|
|
|
+ String result;
|
|
|
+ JSONObject jsonObject;
|
|
|
+ ExtraKGraphTaskVo extraKGraphTaskVo = new ExtraKGraphTaskVo();
|
|
|
switch (kGraphTaskBo.getTaskType()) {
|
|
|
case "0":
|
|
|
- updateStatusById(kGraphTaskBo, kGraphTaskVo, GraphStatus.STATUS_1.getCode());
|
|
|
+ updateStatus(kGraphTaskBo, kGraphTaskVo.getVersion(), GraphStatus.STATUS_1.getCode());
|
|
|
Long ossId = kGraphTaskVo.getOssId();
|
|
|
- // TODO 知识图谱执行分句
|
|
|
+ // 知识图谱执行分句
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("ossId", ossId);
|
|
|
+ map.put("taskId", kGraphTaskBo.getId());
|
|
|
+ result = HttpUtils.postJson(clauseUrl, map);
|
|
|
+ jsonObject = JSONUtil.parseObj(result);
|
|
|
+ if (!StrUtil.equals("200", jsonObject.getStr("code"))) {
|
|
|
+ throw new BusinessException(jsonObject.getStr("msg"));
|
|
|
+ }
|
|
|
break;
|
|
|
case "2":
|
|
|
- updateStatusById(kGraphTaskBo, kGraphTaskVo, GraphStatus.STATUS_3.getCode());
|
|
|
- // TODO 知识图谱抽取
|
|
|
+ updateStatus(kGraphTaskBo, kGraphTaskVo.getVersion(), GraphStatus.STATUS_3.getCode());
|
|
|
+ // 知识图谱抽取
|
|
|
+ KGraphClauseBo kGraphClauseBo = new KGraphClauseBo();
|
|
|
+ kGraphClauseBo.setTaskId(kGraphTaskBo.getId());
|
|
|
+ List<KGraphClauseVo> graphClauseVos = kGraphClauseService.selectList(kGraphClauseBo);
|
|
|
+ extraKGraphTaskVo.setTaskId(kGraphTaskBo.getId());
|
|
|
+ extraKGraphTaskVo.setGraphClauseList(graphClauseVos);
|
|
|
+ result = HttpUtils.postJson(extractUrl, extraKGraphTaskVo);
|
|
|
+ jsonObject = JSONUtil.parseObj(result);
|
|
|
+ if (!StrUtil.equals("200", jsonObject.getStr("code"))) {
|
|
|
+ throw new BusinessException(jsonObject.getStr("msg"));
|
|
|
+ }
|
|
|
break;
|
|
|
case "4":
|
|
|
- updateStatusById(kGraphTaskBo, kGraphTaskVo, GraphStatus.STATUS_5.getCode());
|
|
|
- // TODO 知识图谱入库
|
|
|
+ updateStatus(kGraphTaskBo, kGraphTaskVo.getVersion(), GraphStatus.STATUS_5.getCode());
|
|
|
+ // 知识图谱入库
|
|
|
+ List<KGraphEntityVo> graphEntityVos = kGraphEntityService.selectListByTaskId(kGraphTaskBo.getId());
|
|
|
+ extraKGraphTaskVo.setTaskId(kGraphTaskBo.getId());
|
|
|
+ extraKGraphTaskVo.setGraphEntityList(graphEntityVos);
|
|
|
+ result = HttpUtils.postJson(storageUrl, extraKGraphTaskVo);
|
|
|
+ jsonObject = JSONUtil.parseObj(result);
|
|
|
+ if (!StrUtil.equals("200", jsonObject.getStr("code"))) {
|
|
|
+ throw new BusinessException(jsonObject.getStr("msg"));
|
|
|
+ }
|
|
|
break;
|
|
|
default:
|
|
|
throw new BusinessException("任务类型错误");
|
|
@@ -131,9 +185,9 @@ public class KGraphTaskServiceImpl extends BaseServiceImpl<KGraphTaskMapper, KGr
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- private void updateStatusById(KGraphTaskBo kGraphTaskBo, KGraphTaskVo kGraphTaskVo, String status) {
|
|
|
+ private void updateStatus(KGraphTaskBo kGraphTaskBo, Integer version, String status) {
|
|
|
kGraphTaskBo.setStatus(status);
|
|
|
- kGraphTaskBo.setVersion(kGraphTaskVo.getVersion());
|
|
|
+ kGraphTaskBo.setVersion(version);
|
|
|
this.update(kGraphTaskBo);
|
|
|
}
|
|
|
|
|
@@ -146,8 +200,6 @@ public class KGraphTaskServiceImpl extends BaseServiceImpl<KGraphTaskMapper, KGr
|
|
|
@Override
|
|
|
public boolean insertWithPk(KGraphTaskBo kGraphTaskBo) {
|
|
|
KGraphTask kGraphTask = MapstructUtils.convert(kGraphTaskBo, KGraphTask.class);
|
|
|
-
|
|
|
-
|
|
|
return kGraphTaskMapper.insertWithPk(kGraphTask) > 0;//前台传来主键值
|
|
|
}
|
|
|
|
|
@@ -161,8 +213,7 @@ public class KGraphTaskServiceImpl extends BaseServiceImpl<KGraphTaskMapper, KGr
|
|
|
public boolean update(KGraphTaskBo kGraphTaskBo) {
|
|
|
KGraphTask kGraphTask = MapstructUtils.convert(kGraphTaskBo, KGraphTask.class);
|
|
|
if (ObjectUtil.isNotNull(kGraphTask) && ObjectUtil.isNotNull(kGraphTask.getId())) {
|
|
|
- boolean updated = this.updateById(kGraphTask);
|
|
|
- return updated;
|
|
|
+ return this.updateById(kGraphTask);
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
@@ -179,4 +230,35 @@ public class KGraphTaskServiceImpl extends BaseServiceImpl<KGraphTaskMapper, KGr
|
|
|
return this.removeByIds(Arrays.asList(ids));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean resultCallback(ExtraKGraphTaskBo extraKGraphTaskBo) {
|
|
|
+ if (StrUtil.equals(extraKGraphTaskBo.getTaskType(), "1")) {
|
|
|
+ boolean isSave = kGraphClauseService.saveBatch(extraKGraphTaskBo.getGraphClauseList());
|
|
|
+ if (!isSave) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (StrUtil.equals(extraKGraphTaskBo.getTaskType(), "2")) {
|
|
|
+ boolean isSave = kGraphEntityService.saveBatch(extraKGraphTaskBo.getGraphEntityList());
|
|
|
+ if (!isSave) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ KGraphTaskVo kGraphTaskVo = this.selectById(extraKGraphTaskBo.getTaskId());
|
|
|
+ KGraphTaskBo kGraphTaskBo = new KGraphTaskBo();
|
|
|
+ kGraphTaskBo.setId(extraKGraphTaskBo.getTaskId());
|
|
|
+ kGraphTaskBo.setVersion(kGraphTaskVo.getVersion());
|
|
|
+ kGraphTaskBo.setStatus(StrUtil.equals(extraKGraphTaskBo.getTaskType(), "1") ? GraphStatus.STATUS_2.getCode() : GraphStatus.STATUS_4.getCode());
|
|
|
+ return this.update(kGraphTaskBo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean statusCallback(ExtraKGraphTaskStatusBo extraKGraphTaskStatusBo) {
|
|
|
+ KGraphTaskVo kGraphTaskVo = this.selectById(extraKGraphTaskStatusBo.getTaskId());
|
|
|
+ KGraphTaskBo kGraphTaskBo = new KGraphTaskBo();
|
|
|
+ kGraphTaskBo.setId(extraKGraphTaskStatusBo.getTaskId());
|
|
|
+ kGraphTaskBo.setVersion(kGraphTaskVo.getVersion());
|
|
|
+ kGraphTaskBo.setStatus(extraKGraphTaskStatusBo.getStatus());
|
|
|
+ return this.update(kGraphTaskBo);
|
|
|
+ }
|
|
|
}
|