From bb98d9ebfcbb4b024191d0687118286b5d74cee9 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Thu, 6 Jun 2024 19:19:30 +0800 Subject: [PATCH] =?UTF-8?q?1:=20AskTemplateQuestionLibrary=E4=B8=AD?= =?UTF-8?q?=E7=9A=84description=20=E4=BF=AE=E6=94=B9=E4=B8=BAstandard=5Fqu?= =?UTF-8?q?estion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/dto/MedicalRecAnswerExcelDTO.java | 4 +-- .../AskQuestionLibraryManageServiceImpl.java | 10 +++---- .../model/AskTemplateQuestionLibrary.java | 10 +------ .../AskTemplateQuestionLibraryMapper.xml | 13 +++----- .../controller/TestController.java | 2 +- .../com/supervision/AskTemplateIdTest.java | 4 +-- .../java/com/supervision/RedisVecTest.java | 2 +- .../test/java/com/supervision/VecTest.java | 30 +++++++++---------- 8 files changed, 30 insertions(+), 45 deletions(-) diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/dto/MedicalRecAnswerExcelDTO.java b/virtual-patient-manage/src/main/java/com/supervision/manage/dto/MedicalRecAnswerExcelDTO.java index 76f46983..c2e12812 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/dto/MedicalRecAnswerExcelDTO.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/dto/MedicalRecAnswerExcelDTO.java @@ -157,7 +157,7 @@ public class MedicalRecAnswerExcelDTO { errorCodeEnums.add(ErrorCodeEnum.QUESTION_NOT_FIND); } for (AskTemplateQuestionLibrary questionLibrary : questionLibraryList) { - String description = questionLibrary.getDescription(); + String description = questionLibrary.getStandardQuestion(); List questionList = questionMap.get(questionLibrary.getId()); if (this.question.equals(description)){ this.libraryQuestionId = questionLibrary.getId(); @@ -268,7 +268,7 @@ public class MedicalRecAnswerExcelDTO { if (StrUtil.isNotEmpty(this.dictId)){ questionLibrary.setDictId(Long.parseLong(this.dictId)); } - questionLibrary.setDescription(this.question); + questionLibrary.setStandardQuestion(this.question); return questionLibrary; } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java index d1daa633..923a578e 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AskQuestionLibraryManageServiceImpl.java @@ -11,7 +11,6 @@ import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.supervision.dto.AskTemplateQuestionLibraryDTO; import com.supervision.manage.dto.UploadQuestionLibraryDTO; import com.supervision.manage.pojo.vo.UploadQuestionLibraryResVo; import com.supervision.manage.service.AskQuestionLibraryManageService; @@ -31,7 +30,6 @@ import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.core.SimpleAliasRegistry; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.stereotype.Service; @@ -109,10 +107,10 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa if (CollUtil.isEmpty(questionMap.get(one.getId()))){ // 相似问不为空。查看相似问是否存在 List questionList = questionMap.get(one.getId()); - if (CollUtil.isEmpty(questionList) || !questionList.contains(askTemplateQuestionLibrary.getDescription())){ + if (CollUtil.isEmpty(questionList) || !questionList.contains(askTemplateQuestionLibrary.getStandardQuestion())){ // 不存在相似问,新增一条相似问数据 AskTemplateQuestionSimilarity similarity = new AskTemplateQuestionSimilarity(); - similarity.setSimilarityQuestion(askTemplateQuestionLibrary.getDescription()); + similarity.setSimilarityQuestion(askTemplateQuestionLibrary.getStandardQuestion()); similarity.setLibraryId(one.getId()); askTemplateQuestionSimilarityService.save(similarity); } @@ -204,7 +202,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa if (StrUtil.isNotEmpty(currentDTO.getDictId())) { questionLibrary.setDictId(Long.parseLong(currentDTO.getDictId())); } - questionLibrary.setDescription(currentDTO.getQuestion()); + questionLibrary.setStandardQuestion(currentDTO.getQuestion()); this.saveQuestionLibrary(questionLibrary,false); } // 对问题库进行更新操作 @@ -241,7 +239,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa private void assertSave(AskTemplateQuestionLibrary askTemplateQuestionLibrary){ // 问题类目不能为空 Assert.notNull(askTemplateQuestionLibrary.getDictId(),"问题类目不能为空"); - Assert.notEmpty(askTemplateQuestionLibrary.getDescription(),"问题不能为空"); + Assert.notEmpty(askTemplateQuestionLibrary.getStandardQuestion(),"问题不能为空"); //Assert.notEmpty(askTemplateQuestionLibrary.getDefaultAnswer(),"默认回答不能为空"); } diff --git a/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestionLibrary.java b/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestionLibrary.java index 397279c1..a5c76bac 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestionLibrary.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestionLibrary.java @@ -4,12 +4,10 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.supervision.handler.StringListTypeHandler; import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; -import java.util.List; /** * 诊断问询意图问题库 @@ -37,13 +35,7 @@ public class AskTemplateQuestionLibrary implements Serializable { /** * 中文注释 用户设置的问题 */ - private String description; -/* - *//** - * 问题列表 由用户传入的问题生成的问题列表 - *//* - @TableField(typeHandler = StringListTypeHandler.class) - private List question;*/ + private String standardQuestion; /** diff --git a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml index e6126dca..75f9918b 100644 --- a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml @@ -8,9 +8,7 @@ - - + @@ -19,8 +17,7 @@ id - ,dict_id,code,description, - question,create_user_id, + ,dict_id,code,standard_question,create_user_id, create_time,update_user_id,update_time @@ -31,7 +28,6 @@ - @@ -43,8 +39,7 @@ cd.code as code, atql.dict_id as dictId, cd.parent_id as parentDictId, - atql.description as description, - atql.question as question, + atql.standard_question as standardQuestion, cd.name_zh_path as nameZhPath, cd.name_zh as nameZh from vp_ask_template_question_library atql @@ -56,7 +51,7 @@ and cd.code = #{askQuestionLibrary.code} - and atql.question like CONCAT('%', #{askQuestionLibrary.description}, '%') + and atql.standard_question like CONCAT('%', #{askQuestionLibrary.description}, '%') and atql.dict_id = #{askQuestionLibrary.dictId} diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java index 1ad4abc3..0a9d6973 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java @@ -91,7 +91,7 @@ public class TestController { Map> similarityQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(list); for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) { - String description = askTemplateQuestionLibrary.getDescription(); + String description = askTemplateQuestionLibrary.getStandardQuestion(); redisVectorStore.add(List.of(new Document(description, Map.of("type", "1", "standardQuestionId", askTemplateQuestionLibrary.getId(), diff --git a/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java b/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java index ef80e5c6..15316c8b 100644 --- a/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java +++ b/virtual-patient-web/src/test/java/com/supervision/AskTemplateIdTest.java @@ -111,7 +111,7 @@ public class AskTemplateIdTest { try { CommonDic dic = dictMap.get(ask.getDictId()); if (ObjectUtil.isNotEmpty(dic)) { - String description = ask.getDescription(); + String description = ask.getStandardQuestion(); Map map = new HashMap<>(); map.put("role", "user"); @@ -129,7 +129,7 @@ public class AskTemplateIdTest { } } catch (Exception e) { - log.error("{}生成错误", ask.getDescription(), e); + log.error("{}生成错误", ask.getStandardQuestion(), e); } } } diff --git a/virtual-patient-web/src/test/java/com/supervision/RedisVecTest.java b/virtual-patient-web/src/test/java/com/supervision/RedisVecTest.java index c6771e31..af934a1d 100644 --- a/virtual-patient-web/src/test/java/com/supervision/RedisVecTest.java +++ b/virtual-patient-web/src/test/java/com/supervision/RedisVecTest.java @@ -75,7 +75,7 @@ public class RedisVecTest { map.put("targetId", targetId); map.put("targetQuestion", matchQuestion); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); - map.put("targetDesc", targetLibrary.getDescription()); + map.put("targetDesc", targetLibrary.getStandardQuestion()); Long dictId = targetLibrary.getDictId(); if (!NumberUtil.equals(dictId,Double.parseDouble(answer.getDictId()))){ log.error("字典id不匹配:{}", JSONUtil.toJsonStr(answer)); diff --git a/virtual-patient-web/src/test/java/com/supervision/VecTest.java b/virtual-patient-web/src/test/java/com/supervision/VecTest.java index 63a4a14d..847ca451 100644 --- a/virtual-patient-web/src/test/java/com/supervision/VecTest.java +++ b/virtual-patient-web/src/test/java/com/supervision/VecTest.java @@ -144,12 +144,12 @@ public class VecTest { if (count > 1) { Map map = new HashMap<>(); map.put("sourceId", library.getId()); - map.put("sourceDesc", library.getDescription()); + map.put("sourceDesc", library.getStandardQuestion()); map.put("sourceQuestion", sourceQuestion); map.put("sourceQuestionCode", library.getCode()); map.put("sourceDicPath", dicMap.get(library.getDictId()).getNameZhPath()); map.put("targetId", library.getId()); - map.put("targetDesc", library.getDescription()); + map.put("targetDesc", library.getStandardQuestion()); map.put("targetQuestion", sourceQuestion); map.put("sameSource", "是"); map.put("targetDicPath", dicMap.get(library.getDictId()).getNameZhPath()); @@ -168,11 +168,11 @@ public class VecTest { if (StrUtil.equals(sourceQuestion, targetQuestion)) { HashMap map = new HashMap<>(); map.put("sourceId", library.getId()); - map.put("sourceDesc", library.getDescription()); + map.put("sourceDesc", library.getStandardQuestion()); map.put("sourceQuestion", sourceQuestion); map.put("sourceDicPath", dicMap.get(library.getDictId()).getNameZhPath()); map.put("targetId", targetLibrary.getId()); - map.put("targetDesc", targetLibrary.getDescription()); + map.put("targetDesc", targetLibrary.getStandardQuestion()); map.put("targetQuestion", targetQuestion); // 如果id相等则是同源数据 map.put("sameSource", "否"); @@ -225,13 +225,13 @@ public class VecTest { if (!StrUtil.equals(questionLibrary.getId(), targetId)) { HashMap map1 = new HashMap<>(); map1.put("sourceId", questionLibrary.getId()); - map1.put("sourceDesc", questionLibrary.getDescription()); + map1.put("sourceDesc", questionLibrary.getStandardQuestion()); map1.put("sourceQuestion", question); CommonDic commonDic = dicMap.get(questionLibrary.getDictId()); map1.put("sourceDicPath", commonDic.getNameZhPath()); map1.put("targetId", targetId); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); - map1.put("targetDesc", targetLibrary.getDescription()); + map1.put("targetDesc", targetLibrary.getStandardQuestion()); map1.put("targetQuestion", MapUtil.getStr(map, "matchQuestion")); map1.put("matchScore", MapUtil.getStr(map, "matchScore")); map1.put("targetDicPath", dicMap.get(targetLibrary.getDictId()).getNameZhPath()); @@ -288,14 +288,14 @@ public class VecTest { String matchQuestion = MapUtil.getStr(matchMap, "matchQuestion"); String matchScore = MapUtil.getStr(matchMap, "matchScore"); map.put("sourceId", questionLibrary.getId()); - map.put("sourceDesc", questionLibrary.getDescription()); + map.put("sourceDesc", questionLibrary.getStandardQuestion()); map.put("sourceQuestion", question); String sourceNamePath = dicMap.get(questionLibrary.getDictId()).getNameZhPath(); map.put("sourceDicPath", sourceNamePath); map.put("targetId", targetId); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); - map.put("targetDesc", targetLibrary.getDescription()); + map.put("targetDesc", targetLibrary.getStandardQuestion()); map.put("targetQuestion", matchQuestion); String targetNamePath = dicMap.get(targetLibrary.getDictId()).getNameZhPath(); map.put("targetDicPath", targetNamePath); @@ -359,7 +359,7 @@ public class VecTest { map.put("targetId", targetId); map.put("targetQuestion", matchQuestion); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); - map.put("targetDesc", targetLibrary.getDescription()); + map.put("targetDesc", targetLibrary.getStandardQuestion()); Long dictId = targetLibrary.getDictId(); map.put("targetDicPath", dicMap.get(dictId).getNameZhPath()); map.put("matchScore", score); @@ -430,7 +430,7 @@ public class VecTest { List> vecData = questionLibraries.stream().map(library -> { Map map = new HashMap<>(); map.put("questionCode", library.getId()); - map.put("questionList", CollUtil.newArrayList(library.getDescription())); + map.put("questionList", CollUtil.newArrayList(library.getStandardQuestion())); return map; }).collect(Collectors.toList()); saveVec(vecData); @@ -468,7 +468,7 @@ public class VecTest { AskPatientAnswer askPatientAnswer = answerMap.get(questionLibrary.getId()); if (ObjectUtil.isEmpty(askPatientAnswer)) { - log.info("问题:id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getDescription()); + log.info("问题:id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getStandardQuestion()); continue; } Map map = new HashMap<>(); @@ -541,7 +541,7 @@ public class VecTest { List> result = new ArrayList<>(); for (AskTemplateQuestionLibrary questionLibrary : questionLibraries) { - String description = questionLibrary.getDescription(); + String description = questionLibrary.getStandardQuestion(); List> maps = questionMatch(description); // 只获取前四条数据 if (CollUtil.isEmpty(maps)) { @@ -607,7 +607,7 @@ public class VecTest { AskPatientAnswer askPatientAnswer = answerMap.get(questionLibrary.getId()); if (ObjectUtil.isEmpty(askPatientAnswer)) { - log.info("问题:id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getDescription()); + log.info("问题:id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getStandardQuestion()); continue; } for (String question : similarQuestionMap.get(questionLibrary.getId())) { @@ -632,7 +632,7 @@ public class VecTest { Map> similarQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(questionLibraries); Console console = System.console(); for (AskTemplateQuestionLibrary questionLibrary : questionLibraries) { - String description = questionLibrary.getDescription(); + String description = questionLibrary.getStandardQuestion(); List question = similarQuestionMap.get(questionLibrary.getId()); List addList = new ArrayList<>(); @@ -676,7 +676,7 @@ public class VecTest { map.put("targetId", targetId); map.put("targetQuestion", matchQuestion); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); - map.put("targetDesc", targetLibrary.getDescription()); + map.put("targetDesc", targetLibrary.getStandardQuestion()); Long dictId = targetLibrary.getDictId(); map.put("targetDicPath", dicMap.get(dictId).getNameZhPath()); map.put("matchScore", score);