|
|
@ -3,19 +3,23 @@ package com.project.task.domain.service.impl; |
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.project.information.domain.dto.KnowledgePointDTO; |
|
|
import com.project.information.domain.dto.KnowledgePointDTO; |
|
|
|
|
|
import com.project.information.domain.dto.ProductLineDTO; |
|
|
import com.project.information.domain.entity.InformationEntity; |
|
|
import com.project.information.domain.entity.InformationEntity; |
|
|
import com.project.information.domain.entity.KnowledgePointEntity; |
|
|
import com.project.information.domain.entity.KnowledgePointEntity; |
|
|
import com.project.information.domain.enums.InformationParseStatusEnum; |
|
|
import com.project.information.domain.enums.InformationParseStatusEnum; |
|
|
import com.project.information.domain.service.InformationBaseService; |
|
|
import com.project.information.domain.service.InformationBaseService; |
|
|
import com.project.information.domain.service.KnowledgePointBaseService; |
|
|
import com.project.information.domain.service.KnowledgePointBaseService; |
|
|
import com.project.interaction.application.AlgorithmApplicationService; |
|
|
import com.project.interaction.application.AlgorithmApplicationService; |
|
|
|
|
|
import com.project.interaction.domain.dto.ClusterCallbackDTO; |
|
|
import com.project.task.domain.service.InitTaskDomainService; |
|
|
import com.project.task.domain.service.InitTaskDomainService; |
|
|
import jakarta.annotation.Resource; |
|
|
import jakarta.annotation.Resource; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
import org.apache.commons.compress.utils.Lists; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
|
|
|
import java.util.Map; |
|
|
import java.util.concurrent.CompletableFuture; |
|
|
import java.util.concurrent.CompletableFuture; |
|
|
import java.util.concurrent.Executor; |
|
|
import java.util.concurrent.Executor; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
@ -48,7 +52,7 @@ public class InitTaskDomainServiceImpl implements InitTaskDomainService { |
|
|
}, taskInternalExecutor); |
|
|
}, taskInternalExecutor); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void handle(Long taskId, List<Long> docIds) { |
|
|
public void handle(Long taskId, List<Long> docIds) throws Exception { |
|
|
boolean isReady = pollUntilDocsParsed(taskId, docIds); |
|
|
boolean isReady = pollUntilDocsParsed(taskId, docIds); |
|
|
|
|
|
|
|
|
if (!isReady) { |
|
|
if (!isReady) { |
|
|
@ -66,7 +70,17 @@ public class InitTaskDomainServiceImpl implements InitTaskDomainService { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
if (CollUtil.isNotEmpty(kpList)) { |
|
|
if (CollUtil.isNotEmpty(kpList)) { |
|
|
algorithmApplicationService.postToClustering(taskId , kpList); |
|
|
// algorithmApplicationService.postToClustering(taskId , kpList);
|
|
|
|
|
|
// 组装成任务知识点
|
|
|
|
|
|
Map<Long, List<KnowledgePointDTO>> collect = kpList.stream().collect(Collectors.groupingBy(KnowledgePointDTO::getClusterId)); |
|
|
|
|
|
List<ClusterCallbackDTO.ClusterItem> clusters = Lists.newArrayList(); |
|
|
|
|
|
collect.forEach((key, value) -> { |
|
|
|
|
|
ClusterCallbackDTO.ClusterItem clusterItem = new ClusterCallbackDTO.ClusterItem(); |
|
|
|
|
|
clusterItem.setTopic(value.stream().map(KnowledgePointDTO::getId).map(String::valueOf).collect(Collectors.joining(","))); |
|
|
|
|
|
clusterItem.setAtomIdList(value.stream().map(KnowledgePointDTO::getId).collect(Collectors.toList())); |
|
|
|
|
|
clusters.add(clusterItem); |
|
|
|
|
|
}); |
|
|
|
|
|
algorithmApplicationService.saveCluster(taskId , clusters); |
|
|
log.info(">>> [任务初始化] 任务[{}]知识点已成功送往算法端,当前异步线程任务结束", taskId); |
|
|
log.info(">>> [任务初始化] 任务[{}]知识点已成功送往算法端,当前异步线程任务结束", taskId); |
|
|
} else { |
|
|
} else { |
|
|
log.info(">>> [任务初始化] 任务[{}]知识点集合为空", taskId); |
|
|
log.info(">>> [任务初始化] 任务[{}]知识点集合为空", taskId); |
|
|
|