|
@@ -3,6 +3,7 @@ package com.diagbot.facade;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.diagbot.dto.ConceptDetailDTO;
|
|
|
import com.diagbot.dto.DictionaryInfoDTO;
|
|
|
import com.diagbot.dto.KlConceptDetailDTO;
|
|
|
import com.diagbot.dto.KlConceptStaticDTO;
|
|
@@ -25,6 +26,7 @@ import com.diagbot.util.EntityUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.ChangeStatusVO;
|
|
|
+import com.diagbot.vo.GetDetailVO;
|
|
|
import com.diagbot.vo.IdVO;
|
|
|
import com.diagbot.vo.KlConceptStaticPageVO;
|
|
|
import com.diagbot.vo.KlConceptStaticVO;
|
|
@@ -478,4 +480,66 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
|
|
|
}
|
|
|
return retType;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取静态知识map Map<name_type,List<ConceptDetail>>
|
|
|
+ *
|
|
|
+ * @param getDetailVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<String, List<ConceptDetailDTO>> getDetailByConcept(GetDetailVO getDetailVO) {
|
|
|
+ Map<String, List<ConceptDetailDTO>> retMap = new HashMap<>();
|
|
|
+ List<DictionaryInfoDTO> dicTypeName = klDictionaryInfoFacade.getListByGroupType(13);
|
|
|
+ Map<String, String> dicTypeNameMap
|
|
|
+ = EntityUtil.makeMapWithKeyValue(dicTypeName, "val", "name");
|
|
|
+
|
|
|
+ QueryWrapper<KlConcept> conceptQueryWrapper = new QueryWrapper<>();
|
|
|
+ conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("status", 1);
|
|
|
+ if (ListUtil.isNotEmpty(getDetailVO.getNameList())) {
|
|
|
+ conceptQueryWrapper.in("lib_name", getDetailVO.getNameList());
|
|
|
+ }
|
|
|
+ List<KlConcept> conceptList = klConceptFacade.list(conceptQueryWrapper);
|
|
|
+ Map<Long, KlConcept> conceptMap = EntityUtil.makeEntityMap(conceptList, "id");
|
|
|
+
|
|
|
+ if (ListUtil.isNotEmpty(conceptList)) {
|
|
|
+ List<Long> conceptIds = conceptList.stream()
|
|
|
+ .map(i -> i.getId())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<KlConceptStatic> staticList = this.list(new QueryWrapper<KlConceptStatic>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("status", 1)
|
|
|
+ .in("concept_id", conceptIds));
|
|
|
+
|
|
|
+ if (ListUtil.isEmpty(staticList)) {
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<KlConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
|
|
|
+ conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .in("concept_id", conceptIds);
|
|
|
+ if (ListUtil.isNotEmpty(getDetailVO.getContentTypes())) {
|
|
|
+ conceptDetailQueryWrapper.and(sql -> {
|
|
|
+ for (int i = 0; i < getDetailVO.getContentTypes().size(); i++) {
|
|
|
+ if (i > 0) {
|
|
|
+ sql.or();
|
|
|
+ }
|
|
|
+ sql.apply("find_in_set({0},content_type)", getDetailVO.getContentTypes().get(i));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ List<KlConceptDetail> conceptDetailList = klConceptDetailFacade.list(conceptDetailQueryWrapper);
|
|
|
+ Map<Long, List<KlConceptDetail>> detailMap
|
|
|
+ = EntityUtil.makeEntityListMap(conceptDetailList, "conceptId");
|
|
|
+
|
|
|
+ for (Map.Entry<Long, KlConcept> entry : conceptMap.entrySet()) {
|
|
|
+ if (detailMap.containsKey(entry.getKey())) {
|
|
|
+ retMap.put(entry.getValue().getLibName() + "_" + dicTypeNameMap.get(LexiconEnum.getName(entry.getValue().getLibType())),
|
|
|
+ BeanUtil.listCopyTo(detailMap.get(entry.getKey()), ConceptDetailDTO.class));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
}
|