From 5d5e8509008ad20dcad16918346fa6b4f6dcb98e Mon Sep 17 00:00:00 2001 From: longbao <1923439579@qq.com> Date: Mon, 4 Nov 2024 11:31:53 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=BA=94=E7=AD=94=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E3=80=91=201.=E6=98=BE=E7=A4=BA=E7=9B=B8=E4=BC=BC=E9=97=AE?= =?UTF-8?q?=E9=A2=98=202.=E5=A2=9E=E5=8A=A0=E7=9B=B8=E4=BC=BC=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AskQuestionLibraryManageServiceImpl.java | 13 +++++---- .../service/impl/CommonDicServiceImpl.java | 7 ++++- .../vo/manage/AskQuestionLibraryReqVo.java | 5 +++- .../AskTemplateQuestionLibraryMapper.xml | 27 +++++++++++-------- 4 files changed, 34 insertions(+), 18 deletions(-) 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 a4042b85..46dd0180 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 @@ -30,6 +30,7 @@ import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.stereotype.Service; @@ -76,6 +77,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa public Page<AskQuestionLibraryResVo> queryPageList(Integer pageNum, Integer pageSize, AskQuestionLibraryReqVo askQuestionLibraryReqVo) { + // 查询标准问题 Page<AskQuestionLibraryResVo> askQuestionLibraryResVoPage = askTemplateQuestionLibraryService.queryPageList(pageNum, pageSize, askQuestionLibraryReqVo); if (CollUtil.isNotEmpty(askQuestionLibraryResVoPage.getRecords())){ List<String> libraryQuestionIds = askQuestionLibraryResVoPage.getRecords().stream().map(AskQuestionLibraryResVo::getLibraryQuestionId).collect(Collectors.toList()); @@ -102,14 +104,15 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa CommonDic commonDic = commonDicService.lambdaQuery().eq(CommonDic::getId, askTemplateQuestionLibrary.getDictId()).one(); Assert.notNull(commonDic,"字典信息不存在"); - // 不存在,则新增 + // 查询标准问题是否存在 不存在,则新增 AskTemplateQuestionLibrary one = askTemplateQuestionLibraryService.lambdaQuery().eq(AskTemplateQuestionLibrary::getDictId, askTemplateQuestionLibrary.getDictId()).one(); + // 根据标准问题查询对应相似问题 Map<String, List<String>> questionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(CollUtil.newArrayList(one)); - // 原始数据已经存在,更新数据 + // (标准问题)原始数据已经存在,更新数据 if (Objects.nonNull(one)){ - // 更新数据 + // 更新问题到相似问题 数据 List<String> questionList = questionMap.get(one.getId()); // 相似问不为空。查看相似问是否存在 if (CollUtil.isEmpty(questionList) || !questionList.contains(askTemplateQuestionLibrary.getStandardQuestion())) { @@ -129,7 +132,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa // askTemplateQuestionLibrary.getQuestion().add(commonDic.getDescription()); // } - // 获取nexCode + // 获取nexCode 获取的是redis中的问题库 String nextCode = RedisSequenceUtil.getQuestionLibraryCode(() -> { String maxCode = askTemplateQuestionLibraryService.getMaxCode(); if (StrUtil.isNotEmpty(maxCode)) { @@ -194,7 +197,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa log.info("uploadQuestionLibrary : 读取文件耗时:{} s" , timer.intervalSecond()); // 校验模板是否正确 - assertTitle(reader); + assertTitle(reader); List<UploadQuestionLibraryDTO> uploadQuestionLibraryDTOS = reader.readAll(UploadQuestionLibraryDTO.class); diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/CommonDicServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/CommonDicServiceImpl.java index e60a4b51..08876cda 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/CommonDicServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/CommonDicServiceImpl.java @@ -25,7 +25,12 @@ public class CommonDicServiceImpl extends ServiceImpl<CommonDicMapper, CommonDic @Override public List<CommonDictTreeDTO> queryCommonDictTree(String groupCode) { - List<CommonDic> list = super.lambdaQuery().eq(CommonDic::getGroupCode, groupCode).list(); + List<CommonDic> list = new ArrayList<>(); + if (StrUtil.isBlank(groupCode)) { + list = super.lambdaQuery().list(); + }else { + list = super.lambdaQuery().eq(CommonDic::getGroupCode, groupCode).list(); + } Map<Long, List<CommonDic>> commonDicParentIdMap = list.stream().filter(e -> ObjectUtil.isNotNull(e.getParentId())) .collect(Collectors.groupingBy(CommonDic::getParentId)); // 首先构建第一层节点 diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/AskQuestionLibraryReqVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/AskQuestionLibraryReqVo.java index 724ee55d..955b675c 100644 --- a/virtual-patient-model/src/main/java/com/supervision/vo/manage/AskQuestionLibraryReqVo.java +++ b/virtual-patient-model/src/main/java/com/supervision/vo/manage/AskQuestionLibraryReqVo.java @@ -21,12 +21,15 @@ public class AskQuestionLibraryReqVo { @Schema(description = "问题", hidden = true) private String question; - @Schema(description = "问题") + @Schema(description = "标准问题") private String description; @Schema(description = "问题类目字典id") private String dictId; + @Schema(description = "相似问题") + private String similarityDescription; + @Schema(description = "默认回答资源id") private String defaultAnswerResourceId; diff --git a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml index 125abb82..96d5d6a7 100644 --- a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml @@ -34,16 +34,16 @@ <sql id="queryListsql"> select - atql.id as id, - atql.id as libraryQuestionId, - cd.code as code, - atql.dict_id as dictId, - cd.parent_id as parentDictId, - atql.standard_question as standardQuestion, - cd.name_zh_path as nameZhPath, - cd.name_zh as nameZh + atql.id as id, + atql.id as libraryQuestionId, + cd.code as code, + atql.dict_id as dictId, + cd.parent_id as parentDictId, + atql.standard_question as standardQuestion, + cd.name_zh_path as nameZhPath, + cd.name_zh as nameZh from vp_ask_template_question_library atql - left join vp_common_dic cd on atql.dict_id = cd.id + left join vp_common_dic cd on atql.dict_id = cd.id <where> <!--排除掉默认系统异常问题数据--> atql.id != '1739875168974536705' @@ -56,16 +56,21 @@ <if test="askQuestionLibrary.dictId != null and askQuestionLibrary.dictId != '' "> and atql.dict_id = #{askQuestionLibrary.dictId} </if> + <if test="askQuestionLibrary.similarityDescription != null and askQuestionLibrary.similarityDescription != '' "> + and atql.id in ( + select vatqs.library_id from vp_ask_template_question_similarity vatqs + where vatqs.similarity_question like CONCAT('%', #{askQuestionLibrary.similarityDescription}, '%')) + </if> </where> order by cd.id asc ,atql.create_time desc </sql> <select id="queryList" resultMap="askQuestionLibraryResultMap" parameterType="com.supervision.vo.manage.AskQuestionLibraryReqVo"> - <include refid="queryListsql"></include> + <include refid="queryListsql"></include> </select> <select id="queryPageList" resultMap="askQuestionLibraryResultMap" resultType="com.supervision.vo.manage.AskQuestionLibraryResVo"> - <include refid="queryListsql"></include> + <include refid="queryListsql"></include> </select> </mapper>