parent
ba22e3c6b8
commit
07485873a0
@ -0,0 +1,19 @@
|
||||
package com.supervision.manage.pojo.vo;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UploadDiseaseResVo {
|
||||
|
||||
@Schema(description = "总数据条数")
|
||||
private int totalCount;
|
||||
|
||||
@Schema(description = "失败数据条数")
|
||||
private int failCount;
|
||||
|
||||
@Schema(description = "文件id")
|
||||
private String fileId;
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.supervision.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.supervision.dto.ClinicalInterviewDTO;
|
||||
import com.supervision.model.AskTemplateQuestionLibrary;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author flevance
|
||||
* @description 针对表【vp_ask_template_question_library(诊断问询意图问题库)】的数据库操作Service
|
||||
* @createDate 2023-11-03 11:13:26
|
||||
*/
|
||||
public interface AskTemplateQuestionLibraryManageService extends IService<AskTemplateQuestionLibrary> {
|
||||
|
||||
|
||||
public String queryByName(String nameZh);
|
||||
|
||||
/**
|
||||
* 保存问题
|
||||
* @param code
|
||||
*/
|
||||
void saveSimilarityQuestion(List<ClinicalInterviewDTO> code);
|
||||
}
|
@ -0,0 +1,128 @@
|
||||
package com.supervision.manage.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.supervision.dto.ClinicalInterviewDTO;
|
||||
import com.supervision.dto.QaKnowledgeDTO;
|
||||
import com.supervision.manage.service.AskTemplateQuestionLibraryManageService;
|
||||
import com.supervision.manage.service.QaKnowledgeManageService;
|
||||
import com.supervision.mapper.AskTemplateQuestionLibraryMapper;
|
||||
import com.supervision.model.AskTemplateQuestionLibrary;
|
||||
import com.supervision.model.AskTemplateQuestionSimilarity;
|
||||
import com.supervision.model.ConfigAncillaryItem;
|
||||
import com.supervision.model.ConfigPhysicalTool;
|
||||
import com.supervision.service.*;
|
||||
import com.supervision.util.RedisSequenceUtil;
|
||||
import com.supervision.vo.manage.AskQuestionLibraryReqVo;
|
||||
import com.supervision.vo.manage.AskQuestionLibraryResVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author flevance
|
||||
* @description 针对表【vp_ask_template_question_library(诊断问询意图问题库)】的数据库操作Service实现
|
||||
* @createDate 2023-11-03 11:13:26
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AskTemplateQuestionLibraryManageServiceImpl extends ServiceImpl<AskTemplateQuestionLibraryMapper, AskTemplateQuestionLibrary>
|
||||
implements AskTemplateQuestionLibraryManageService {
|
||||
|
||||
private final ConfigPhysicalToolService configPhysicalToolService;
|
||||
|
||||
private final ConfigAncillaryItemService configAncillaryItemService;
|
||||
|
||||
private final AskTemplateQuestionSimilarityService askTemplateQuestionSimilarityService;
|
||||
|
||||
@Autowired
|
||||
private CommonDicService commonDicService;
|
||||
|
||||
private QaKnowledgeManageService qaKnowledgeService;
|
||||
|
||||
|
||||
@Override
|
||||
public String queryByName(String nameZh) {
|
||||
return this.baseMapper.queryByName(nameZh);
|
||||
}
|
||||
|
||||
public String getMaxCode() {
|
||||
AskTemplateQuestionLibrary askTemplateQuestionLibrary = super.getBaseMapper()
|
||||
.selectOne(new QueryWrapper<AskTemplateQuestionLibrary>().select("max(code) as code"));
|
||||
if (Objects.isNull(askTemplateQuestionLibrary)) {
|
||||
return null;
|
||||
}
|
||||
return askTemplateQuestionLibrary.getCode();
|
||||
}
|
||||
|
||||
/**
|
||||
* 模板导入-相似问题
|
||||
*
|
||||
* @param clinicalInterviewDTOS
|
||||
*/
|
||||
@Override
|
||||
public void saveSimilarityQuestion(List<ClinicalInterviewDTO> clinicalInterviewDTOS) {
|
||||
// 1.判定条件集合是否存在
|
||||
ArrayList<String> consultationList = new ArrayList();
|
||||
for (ClinicalInterviewDTO clinicalInterviewDTO : clinicalInterviewDTOS) {
|
||||
String consultationI = clinicalInterviewDTO.getConsultationI().trim();
|
||||
String consultationII = clinicalInterviewDTO.getConsultationII().trim();
|
||||
String consultation = "'" + consultationI + "/" + consultationII + "'";
|
||||
consultationList.add(consultation);
|
||||
}
|
||||
Long queryCommonDictTreeByCode = commonDicService.queryCommonDictTreeByCode(consultationList);
|
||||
Assert.isTrue(queryCommonDictTreeByCode != clinicalInterviewDTOS.size(), "请检查临床问诊中的问诊1和2是否存在");
|
||||
|
||||
// 2.插入问题
|
||||
// 标准问题存在:增加问题为相似问题
|
||||
// 标准问题不存在:增加问题为标准问题并更新问题库
|
||||
for (ClinicalInterviewDTO clinicalInterviewDTO : clinicalInterviewDTOS) {
|
||||
String consultationII = clinicalInterviewDTO.getConsultationII().trim();
|
||||
String questionIntentRecognition = clinicalInterviewDTO.getQuestionIntentRecognition();
|
||||
if (StringUtils.isNotEmpty(questionIntentRecognition)) {
|
||||
String libraryId = queryByName(questionIntentRecognition);
|
||||
if (StringUtils.isNotEmpty(libraryId)) {
|
||||
AskTemplateQuestionSimilarity askTemplateQuestionSimilarity = askTemplateQuestionSimilarityService.querySimilarityQuestionByNameZhAndSimilarityQuestion(consultationII, questionIntentRecognition);
|
||||
if (null == askTemplateQuestionSimilarity) {
|
||||
AskTemplateQuestionSimilarity similarity = new AskTemplateQuestionSimilarity();
|
||||
similarity.setSimilarityQuestion(questionIntentRecognition);
|
||||
similarity.setLibraryId(libraryId);
|
||||
askTemplateQuestionSimilarityService.save(similarity);
|
||||
}
|
||||
} else {
|
||||
// 获取nexCode 获取的是redis中的问题库
|
||||
String nextCode = RedisSequenceUtil.getQuestionLibraryCode(() -> {
|
||||
String maxCode = getMaxCode();
|
||||
if (StrUtil.isNotEmpty(maxCode)) {
|
||||
return Long.parseLong(StrUtil.removePrefix(maxCode, "Q"));
|
||||
}
|
||||
return null;
|
||||
});
|
||||
AskTemplateQuestionLibrary askTemplateQuestionLibrary = new AskTemplateQuestionLibrary();
|
||||
askTemplateQuestionLibrary.setCode(nextCode);
|
||||
askTemplateQuestionLibrary.setStandardQuestion(questionIntentRecognition);
|
||||
save(askTemplateQuestionLibrary);
|
||||
qaKnowledgeService.saveOrUpdateQuestionLibrary(CollUtil.newArrayList(askTemplateQuestionLibrary.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue