Browse Source

知识点聚类联调

master
luoweijian 2 weeks ago
parent
commit
3b216d77ff
  1. 3
      src/main/java/com/project/exam/domain/service/impl/BuildExamRecordDomainServiceImpl.java
  2. 2
      src/main/java/com/project/interaction/config/WebClientConfig.java
  3. 16
      src/main/java/com/project/interaction/domain/dto/ClusterQueryDTO.java
  4. 1
      src/main/java/com/project/interaction/domain/dto/ClusterResultDTO.java
  5. 9
      src/main/java/com/project/interaction/domain/service/impl/PostToClusteringDomainServiceImpl.java
  6. 2
      src/main/java/com/project/task/domain/service/impl/InitTaskDomainServiceImpl.java
  7. 10
      src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java
  8. 4
      src/main/resources/application.yml

3
src/main/java/com/project/exam/domain/service/impl/BuildExamRecordDomainServiceImpl.java

@ -60,6 +60,9 @@ public class BuildExamRecordDomainServiceImpl implements BuildExamRecordDomainSe
AtomicInteger index = new AtomicInteger(0);
dto.getAnswerSnapshotDTOList().forEach(answerSnapshotDTO -> {
answerSnapshotDTO.setIndex(index.incrementAndGet());
if (Objects.isNull(answerSnapshotDTO.getHasAppealed())) {
answerSnapshotDTO.setHasAppealed(Boolean.FALSE);
}
});
return dto;
}

2
src/main/java/com/project/interaction/config/WebClientConfig.java

@ -15,7 +15,7 @@ import java.util.concurrent.TimeUnit;
@Configuration
public class WebClientConfig {
@Value("http://172.16.204.50:8002")
@Value("algo.baseUrl:http://172.16.204.50:8002")
private String baseUrl;
@Bean(name = "algorithmWebClient")

16
src/main/java/com/project/interaction/domain/dto/ClusterQueryDTO.java

@ -3,11 +3,27 @@ package com.project.interaction.domain.dto;
import com.project.information.domain.dto.KnowledgePointDTO;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
@NoArgsConstructor
public class ClusterQueryDTO {
private Long taskId;
private Map<String , Object> data;
public ClusterQueryDTO(Long taskId, List<KnowledgePointDTO> kpList) {
ClusterQueryDTO dto = new ClusterQueryDTO();
dto.setTaskId(taskId);
kpList.forEach(kp -> {
Map<String , Object> data = new HashMap<>();
data.put("id" , kp.getId());
data.put("text" , kp.getContent());
});
}
}

1
src/main/java/com/project/interaction/domain/dto/ClusterResultDTO.java

@ -4,6 +4,5 @@ import lombok.Data;
@Data
public class ClusterResultDTO {
private Boolean success;
private String message;
}

9
src/main/java/com/project/interaction/domain/service/impl/PostToClusteringDomainServiceImpl.java

@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
import java.util.Collections;
import java.util.List;
@Service
@ -26,7 +27,7 @@ public class PostToClusteringDomainServiceImpl implements PostToClusteringDomain
@Override
public void postToClustering(Long taskId, List<KnowledgePointDTO> kpList) {
// 构建请求 DTO (AlgoRequestDTO)
ClusterQueryDTO request = new ClusterQueryDTO(taskId, kpList);
List<ClusterQueryDTO> request = Collections.singletonList(new ClusterQueryDTO(taskId, kpList));
try {
log.info(">>> [Interactor] 正在向算法端发送请求, TaskId: {}", taskId);
@ -39,11 +40,11 @@ public class PostToClusteringDomainServiceImpl implements PostToClusteringDomain
taskId, error.getMessage()))
// 结果处理(非阻塞订阅)
.subscribe(result -> {
if (result != null && result.getSuccess()) {
if (result != null) {
log.info(">>> [Interactor] 算法端已成功接收任务: {}", taskId);
} else {
log.warn(">>> [Interactor] 算法端拒绝了请求, TaskId: {}, 消息: {}",
taskId, result != null ? result.getMessage() : "无返回消息");
// log.warn(">>> [Interactor] 算法端拒绝了请求, TaskId: {}, 消息: {}",
// taskId, result != null ? result.getMessage() : "无返回消息");
}
});

2
src/main/java/com/project/task/domain/service/impl/InitTaskDomainServiceImpl.java

@ -87,7 +87,7 @@ public class InitTaskDomainServiceImpl implements InitTaskDomainService {
return true; // 全部解析完成
}
// 检查是否存在解析失败(status=2)的文件,如果有,直接判定为不可用
// 检查是否存在解析失败(status=-1)的文件,如果有,直接判定为不可用
long errorCount = informationService.count(new LambdaQueryWrapper<InformationEntity>()
.in(InformationEntity::getId , docIds)
.eq(InformationEntity::getParseStatus , InformationParseStatusEnum.Fail.getValue()));

10
src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java

@ -16,6 +16,7 @@ import com.project.task.config.ExamScoreRatioConfig;
import com.project.task.domain.dto.TaskDTO;
import com.project.task.domain.entity.TaskEntity;
import com.project.task.domain.entity.TaskUserEntity;
import com.project.task.domain.service.InitTaskDomainService;
import com.project.task.domain.service.SaveOrUpdateTaskDomainService;
import com.project.task.domain.service.TaskBaseService;
import com.project.task.domain.service.TaskUserBaseService;
@ -47,6 +48,9 @@ public class SaveOrUpdateTaskDomainServiceImpl implements SaveOrUpdateTaskDomain
@Autowired
private UserBaseService userBaseService;
@Autowired
private InitTaskDomainService initTaskDomainService;
@Override
@Transactional(rollbackFor = Exception.class)
@ -80,12 +84,14 @@ public class SaveOrUpdateTaskDomainServiceImpl implements SaveOrUpdateTaskDomain
dto.setSubLineName(subProductLine.getName());
dto.setLineId(subProductLine.getParentId());
dto.setLineName(subProductLine.getParentName());
// todo 知识点分簇,预出题
// 保存
TaskEntity saveEntity = dto.toEntity(TaskEntity::new);
taskBaseService.saveOrUpdate(saveEntity);
// todo 知识点分簇,预出题
initTaskDomainService.asyncInitialize(saveEntity.getId() , saveEntity.getRelatedDocumentList());
// 保存关联表 TaskUserEntity
taskUserBaseService.remove(new LambdaQueryWrapper<TaskUserEntity>()
.eq(TaskUserEntity::getTaskId , saveEntity.getId()));

4
src/main/resources/application.yml

@ -73,5 +73,5 @@ ding:
agentId: 4283077101
corpId: ding13d71da66ad91ff0f5bf40eda33b7ba0
algo:
clusterUrl: /api/algorithm/v1/cluster
baseUrl: /
clusterUrl: /semantic-cluster
baseUrl: http://172.16.204.50:8002
Loading…
Cancel
Save