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