|
@@ -1,6 +1,7 @@
|
|
|
package com.kgraph.graph.suport.service.impl;
|
|
|
|
|
|
import com.kgraph.common.core.domain.BaseResponse;
|
|
|
+import com.kgraph.common.core.domain.entity.SysDictData;
|
|
|
import com.kgraph.common.utils.DateUtils;
|
|
|
import com.kgraph.graph.neo4j.DTO.DocInfo;
|
|
|
import com.kgraph.graph.neo4j.DTO.KgDTO;
|
|
@@ -12,9 +13,12 @@ import com.kgraph.graph.suport.domain.TripletInfo;
|
|
|
import com.kgraph.graph.suport.mapper.ExtractKnowledgeSubTaskMapper;
|
|
|
import com.kgraph.graph.suport.service.IExtractKnowledgeSubTaskService;
|
|
|
import com.kgraph.graph.suport.service.ITripletInfoService;
|
|
|
+import com.kgraph.system.service.ISysDictDataService;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
@@ -25,13 +29,12 @@ import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 知识抽取子任务Service业务层处理
|
|
|
- *
|
|
|
+ *
|
|
|
* @author Allen
|
|
|
* @date 2023-03-20
|
|
|
*/
|
|
|
@Service
|
|
|
-public class ExtractKnowledgeSubTaskServiceImpl implements IExtractKnowledgeSubTaskService
|
|
|
-{
|
|
|
+public class ExtractKnowledgeSubTaskServiceImpl implements IExtractKnowledgeSubTaskService {
|
|
|
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
@@ -43,77 +46,75 @@ public class ExtractKnowledgeSubTaskServiceImpl implements IExtractKnowledgeSubT
|
|
|
|
|
|
@Autowired
|
|
|
private IKgService kgService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ISysDictDataService sysDictDataService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询知识抽取子任务
|
|
|
- *
|
|
|
+ *
|
|
|
* @param id 知识抽取子任务主键
|
|
|
* @return 知识抽取子任务
|
|
|
*/
|
|
|
@Override
|
|
|
- public ExtractKnowledgeSubTask selectExtractKnowledgeSubTaskById(Long id)
|
|
|
- {
|
|
|
+ public ExtractKnowledgeSubTask selectExtractKnowledgeSubTaskById(Long id) {
|
|
|
return extractKnowledgeSubTaskMapper.selectExtractKnowledgeSubTaskById(id);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询知识抽取子任务列表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param extractKnowledgeSubTask 知识抽取子任务
|
|
|
* @return 知识抽取子任务
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<ExtractKnowledgeSubTask> selectExtractKnowledgeSubTaskList(ExtractKnowledgeSubTask extractKnowledgeSubTask)
|
|
|
- {
|
|
|
+ public List<ExtractKnowledgeSubTask> selectExtractKnowledgeSubTaskList(ExtractKnowledgeSubTask extractKnowledgeSubTask) {
|
|
|
return extractKnowledgeSubTaskMapper.selectExtractKnowledgeSubTaskList(extractKnowledgeSubTask);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 新增知识抽取子任务
|
|
|
- *
|
|
|
+ *
|
|
|
* @param extractKnowledgeSubTask 知识抽取子任务
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int insertExtractKnowledgeSubTask(ExtractKnowledgeSubTask extractKnowledgeSubTask)
|
|
|
- {
|
|
|
+ public int insertExtractKnowledgeSubTask(ExtractKnowledgeSubTask extractKnowledgeSubTask) {
|
|
|
extractKnowledgeSubTask.setCreateTime(DateUtils.getNowDate());
|
|
|
return extractKnowledgeSubTaskMapper.insertExtractKnowledgeSubTask(extractKnowledgeSubTask);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改知识抽取子任务
|
|
|
- *
|
|
|
+ *
|
|
|
* @param extractKnowledgeSubTask 知识抽取子任务
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int updateExtractKnowledgeSubTask(ExtractKnowledgeSubTask extractKnowledgeSubTask)
|
|
|
- {
|
|
|
+ public int updateExtractKnowledgeSubTask(ExtractKnowledgeSubTask extractKnowledgeSubTask) {
|
|
|
extractKnowledgeSubTask.setUpdateTime(DateUtils.getNowDate());
|
|
|
return extractKnowledgeSubTaskMapper.updateExtractKnowledgeSubTask(extractKnowledgeSubTask);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 批量删除知识抽取子任务
|
|
|
- *
|
|
|
+ *
|
|
|
* @param ids 需要删除的知识抽取子任务主键
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int deleteExtractKnowledgeSubTaskByIds(Long[] ids)
|
|
|
- {
|
|
|
+ public int deleteExtractKnowledgeSubTaskByIds(Long[] ids) {
|
|
|
return extractKnowledgeSubTaskMapper.deleteExtractKnowledgeSubTaskByIds(ids);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 删除知识抽取子任务信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param id 知识抽取子任务主键
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int deleteExtractKnowledgeSubTaskById(Long id)
|
|
|
- {
|
|
|
+ public int deleteExtractKnowledgeSubTaskById(Long id) {
|
|
|
return extractKnowledgeSubTaskMapper.deleteExtractKnowledgeSubTaskById(id);
|
|
|
}
|
|
|
|
|
@@ -125,7 +126,7 @@ public class ExtractKnowledgeSubTaskServiceImpl implements IExtractKnowledgeSubT
|
|
|
String createBy = extractKnowledgeTask.getCreateBy();
|
|
|
List<ExtractKnowledgeSubTask> extractKnowledgeSubTaskList = new ArrayList<>(selectSubTasks.length);
|
|
|
// 根据子任务创建任务
|
|
|
- for (String subTask: selectSubTasks) {
|
|
|
+ for (String subTask : selectSubTasks) {
|
|
|
ExtractKnowledgeSubTask extractKnowledgeSubTask = new ExtractKnowledgeSubTask();
|
|
|
extractKnowledgeSubTask.setTaskId(taskId);
|
|
|
extractKnowledgeSubTask.setType(subTask);
|
|
@@ -135,26 +136,32 @@ public class ExtractKnowledgeSubTaskServiceImpl implements IExtractKnowledgeSubT
|
|
|
extractKnowledgeSubTaskMapper.insertExtractKnowledgeSubTask(extractKnowledgeSubTask);
|
|
|
extractKnowledgeSubTaskList.add(extractKnowledgeSubTask);
|
|
|
}
|
|
|
- // TODO Allen 暂时关闭推送数据
|
|
|
-// processSubTask(extractKnowledgeSubTaskList);
|
|
|
+
|
|
|
+ processSubTask(extractKnowledgeSubTaskList);
|
|
|
}
|
|
|
|
|
|
private void processSubTask(List<ExtractKnowledgeSubTask> extractKnowledgeSubTaskList) {
|
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
|
-// String url="http://192.168.13.151:9999/extractKnowledge";
|
|
|
- String url="http://localhost:9999/extractKnowledge";
|
|
|
- try{
|
|
|
+ String url = "http://localhost:9999/extractKnowledge";
|
|
|
+ SysDictData remoteData = sysDictDataService.getDictDataByTypeAndValue("kg_algorithm", "url");
|
|
|
+ if (remoteData != null && StringUtils.isNotBlank(remoteData.getRemark())) {
|
|
|
+ url = remoteData.getRemark();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ String finalUrl = url;
|
|
|
extractKnowledgeSubTaskList.forEach(extractKnowledgeSubTask -> {
|
|
|
DocInfo docInfo = extractKnowledgeSubTaskMapper.getDocInfoBySubtask(extractKnowledgeSubTask.getId());
|
|
|
- BaseResponse response = restTemplate.postForObject(url, docInfo, BaseResponse.class);
|
|
|
- if(response == null){
|
|
|
- logger.error("response is null, url:{}, docInfo:{}",url, docInfo);
|
|
|
- } else if(response.getCode() != 200){
|
|
|
- logger.error("request is error! errorMsg: {}, url:{}, docInfo:{}",response.getMsg(), url, docInfo);
|
|
|
+ docInfo.setDocAddress("http://localhost:11082/upload/uploadManage/download?filePath=" + docInfo.getDocAddress());
|
|
|
+ BaseResponse response = restTemplate.postForObject(finalUrl, docInfo, BaseResponse.class);
|
|
|
+ if (response == null) {
|
|
|
+ logger.error("response is null, url:{}, docInfo:{}", finalUrl, docInfo);
|
|
|
+ } else if (response.getCode() != 200) {
|
|
|
+ logger.error("request is error! errorMsg: {}, url:{}, docInfo:{}", response.getMsg(), finalUrl, docInfo);
|
|
|
}
|
|
|
+ logger.info("算法推送成功,url:{}, docInfo:{}", finalUrl, docInfo);
|
|
|
});
|
|
|
- }catch (Exception e){
|
|
|
- logger.error("算法请求报错",e);
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("算法请求报错", e);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -172,13 +179,14 @@ public class ExtractKnowledgeSubTaskServiceImpl implements IExtractKnowledgeSubT
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
+ @Async
|
|
|
public void approveSubTask(Long id, String status) {
|
|
|
- extractKnowledgeSubTaskMapper.updateSubTaskStatusById(id, status,null, null);
|
|
|
+ extractKnowledgeSubTaskMapper.updateSubTaskStatusById(id, status, null, null);
|
|
|
// TODO 以下逻辑可优化成异步执行
|
|
|
- if(ExtractKnowledgeSubTask.REVIEWED.equals(status)){
|
|
|
+ if (ExtractKnowledgeSubTask.REVIEWED.equals(status)) {
|
|
|
List<KgDTO> kgDTOList = tripletInfoService.getKgDTO(id);
|
|
|
kgService.create(kgDTOList);
|
|
|
- extractKnowledgeSubTaskMapper.updateSubTaskStatusById(id, ExtractKnowledgeSubTask.DOWN,null, null);
|
|
|
+ extractKnowledgeSubTaskMapper.updateSubTaskStatusById(id, ExtractKnowledgeSubTask.DOWN, null, null);
|
|
|
}
|
|
|
extractKnowledgeSubTaskMapper.updateTaskStatusBySubTaskId(id);
|
|
|
}
|
|
@@ -196,16 +204,16 @@ public class ExtractKnowledgeSubTaskServiceImpl implements IExtractKnowledgeSubT
|
|
|
// 更新状态
|
|
|
List<TripletInfo> tripletInfoList = new ArrayList<>(kgDocDTO.getKnowledgeList().size());
|
|
|
Long subTaskId = kgDocDTO.getDocInfo().getSubTaskId();
|
|
|
- for (KgDTO kgDTO: kgDocDTO.getKnowledgeList()){
|
|
|
+ for (KgDTO kgDTO : kgDocDTO.getKnowledgeList()) {
|
|
|
TripletInfo tripletInfo = TripletInfo.buildByKgDocDTO(kgDTO, subTaskId);
|
|
|
tripletInfoList.add(tripletInfo);
|
|
|
}
|
|
|
tripletInfoService.createList(tripletInfoList);
|
|
|
// 更新task状态
|
|
|
- updateSubTaskStatusById(subTaskId,ExtractKnowledgeSubTask.TO_BE_REVIEWED, kgDocDTO.getMsg());
|
|
|
+ updateSubTaskStatusById(subTaskId, ExtractKnowledgeSubTask.TO_BE_REVIEWED, kgDocDTO.getMsg());
|
|
|
}
|
|
|
|
|
|
- public void updateSubTaskStatusById(Long subTaskId, String status, String msg){
|
|
|
+ public void updateSubTaskStatusById(Long subTaskId, String status, String msg) {
|
|
|
extractKnowledgeSubTaskMapper.updateSubTaskStatusById(subTaskId, status, msg, new Date());
|
|
|
extractKnowledgeSubTaskMapper.updateTaskStatusBySubTaskId(subTaskId);
|
|
|
}
|