From f6b35ab1d570bf2d1b708468b541c57adc7ce2df Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 7 Feb 2024 12:46:44 +0800 Subject: [PATCH] =?UTF-8?q?manage=20:=20fix=20=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AskQuestionLibraryManageServiceImpl.java | 60 ++++++++++--------- 1 file changed, 33 insertions(+), 27 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 7a0216a4..deee561a 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 @@ -18,7 +18,6 @@ import com.supervision.manage.service.FileManageService; import com.supervision.model.*; import com.supervision.service.AskTemplateQuestionLibraryService; import com.supervision.service.CommonDicService; -import com.supervision.util.RedisSequenceUtil; import com.supervision.vo.manage.AskQuestionLibraryReqVo; import com.supervision.vo.manage.AskQuestionLibraryResVo; import lombok.RequiredArgsConstructor; @@ -37,6 +36,7 @@ import java.io.InputStream; import java.net.URLEncoder; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; @Slf4j @@ -82,36 +82,40 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa public String saveQuestionLibrary(AskTemplateQuestionLibrary askTemplateQuestionLibrary) { assertSave(askTemplateQuestionLibrary); - String nextCode = RedisSequenceUtil.getQuestionLibraryCode(() -> { - String maxCode = askTemplateQuestionLibraryService.getMaxCode(); - if (StrUtil.isNotEmpty(maxCode)) { - return Long.parseLong(StrUtil.removePrefix(maxCode, "Q")); + CommonDic commonDic = commonDicService.lambdaQuery().eq(CommonDic::getId, askTemplateQuestionLibrary.getDictId()).one(); + Assert.notNull(commonDic,"字典信息不存在"); + // 不存在,则新增 + AskTemplateQuestionLibrary one = askTemplateQuestionLibraryService.lambdaQuery().eq(AskTemplateQuestionLibrary::getDictId, askTemplateQuestionLibrary.getDictId()).one(); + if (Objects.nonNull(one)){ + // 更新数据 + List question = one.getQuestion(); + if (CollUtil.isEmpty(question)){ + question = CollUtil.newArrayList(askTemplateQuestionLibrary.getDescription()); + }else if (!question.contains(askTemplateQuestionLibrary.getDescription())){ + question.add(askTemplateQuestionLibrary.getDescription()); } - return null; - }); - - String nextDefaultCode = RedisSequenceUtil.getQuestionLibraryDefaultAnswerCode(() -> { - String code = askTemplateQuestionLibraryService.getMaxDefaultAnswerCode(); - if (StrUtil.isNotEmpty(code)) { - return Long.parseLong(StrUtil.removePrefix(code, "A")); + one.setQuestion(question); + one.setDefaultAnswer(askTemplateQuestionLibrary.getDefaultAnswer()); + askTemplateQuestionLibraryService.updateById(one); + return one.getId(); + }else { + // 新增数据 + askTemplateQuestionLibrary.setQuestion(CollUtil.newArrayList(askTemplateQuestionLibrary.getDescription())); + if (StrUtil.isBlank(commonDic.getDescription())){ + askTemplateQuestionLibrary.setDescription(commonDic.getDescription()); + askTemplateQuestionLibrary.getQuestion().add(commonDic.getDescription()); } - return null; - }); - - askTemplateQuestionLibrary.setCode(nextCode); - askTemplateQuestionLibrary.setDefaultAnswerCode(nextDefaultCode); - askTemplateQuestionLibrary.setQuestion(CollUtil.newArrayList(askTemplateQuestionLibrary.getDescription())); - askTemplateQuestionLibraryService.save(askTemplateQuestionLibrary); - return askTemplateQuestionLibrary.getId(); + askTemplateQuestionLibraryService.updateById(askTemplateQuestionLibrary); + return askTemplateQuestionLibrary.getId(); + } } @Override public boolean updateQuestionLibrary(AskTemplateQuestionLibrary askTemplateQuestionLibrary) { Assert.notEmpty(askTemplateQuestionLibrary.getId(),"id不能为空"); - assertSave(askTemplateQuestionLibrary); - askTemplateQuestionLibrary.setQuestion(CollUtil.newArrayList(askTemplateQuestionLibrary.getDescription())); - return askTemplateQuestionLibraryService.updateById(askTemplateQuestionLibrary); + assertSave(askTemplateQuestionLibrary); + return true; } @Override @@ -134,7 +138,8 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa assertTitle(reader); List uploadQuestionLibraryDTOS = reader.readAll(UploadQuestionLibraryDTO.class); - questionExcelDoAction(uploadQuestionLibraryDTOS); + + questionExcelDoAction(uploadQuestionLibraryDTOS); // 更新知识库 List currentDTOS = uploadQuestionLibraryDTOS.stream().filter(dto -> CollUtil.isEmpty(dto.getErrorCodeEnums())).collect(Collectors.toList()); @@ -178,7 +183,8 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa private void assertSave(AskTemplateQuestionLibrary askTemplateQuestionLibrary){ - //Assert.notNull(askTemplateQuestionLibrary.getDictId(),"问题类目不能为空"); + // 问题类目不能为空 + Assert.notNull(askTemplateQuestionLibrary.getDictId(),"问题类目不能为空"); Assert.notEmpty(askTemplateQuestionLibrary.getDescription(),"问题不能为空"); Assert.notEmpty(askTemplateQuestionLibrary.getDefaultAnswer(),"默认回答不能为空"); } @@ -222,8 +228,8 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa // 查询问题库问题 List questionLibraryList = askTemplateQuestionLibraryService.list(); // 查询类目字段 - //List questionTypeDicList = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").list(); - uploadQuestionLibraryDTOS.forEach(dto->dto.doAction(questionLibraryList,CollUtil.newArrayList())); + List questionTypeDicList = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").list(); + uploadQuestionLibraryDTOS.forEach(dto->dto.doAction(questionLibraryList,questionTypeDicList)); } /**