فهرست منبع

静态知识统计

zhaops 5 سال پیش
والد
کامیت
3539e9ddfa

+ 1 - 0
knowledgeman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -40,6 +40,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/versionInfo/getVersionInfoInner").permitAll()
                 .antMatchers("/versionInfo/getVersionInfoOuter").permitAll()
                 .antMatchers("/diagnose/initNeo").permitAll()
+                .antMatchers("/conceptDetail/conceptDetailBI").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }

+ 1 - 0
knowledgeman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -103,6 +103,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/versionInfo/getVersionInfoInner", request)
                 || matchers("/versionInfo/getVersionInfoOuter", request)
                 || matchers("/diagnose/initNeo", request)
+                || matchers("/conceptDetail/conceptDetailBI", request)
                 || matchers("/", request)) {
             return true;
         }

+ 88 - 1
knowledgeman-service/src/main/java/com/diagbot/facade/ConceptDetailFacade.java

@@ -4,10 +4,12 @@ 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.client.UserServiceClient;
+import com.diagbot.dto.BIItemDTO;
 import com.diagbot.dto.ConceptDetailDTO;
 import com.diagbot.dto.ConceptIndexDTO;
 import com.diagbot.dto.GetConceptDetailListDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Concept;
 import com.diagbot.entity.ConceptDetail;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconTypeEnum;
@@ -16,6 +18,7 @@ import com.diagbot.exception.CommonException;
 import com.diagbot.service.ConceptDetailService;
 import com.diagbot.service.impl.ConceptDetailServiceImpl;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddConceptDetailVO;
@@ -23,12 +26,15 @@ import com.diagbot.vo.ConceptIndexVO;
 import com.diagbot.vo.GetConceptDetailListVO;
 import com.diagbot.vo.GetConceptDetailVO;
 import com.diagbot.vo.RemoveConceptDetailVO;
+import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import javax.swing.text.html.parser.Entity;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -46,6 +52,8 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
     @Autowired
     @Qualifier("conceptDetailServiceImpl")
     private ConceptDetailService conceptDetailService;
+    @Autowired
+    private ConceptFacade conceptFacade;
 
     /**
      * 获取医学术语命名列表
@@ -165,4 +173,83 @@ public class ConceptDetailFacade extends ConceptDetailServiceImpl {
         return retList;
     }
 
-}
+    /**
+     * 静态知识数量统计
+     *
+     * @return
+     */
+    public List<BIItemDTO> conceptDetailBI() {
+        List<BIItemDTO> retList = Lists.newLinkedList();
+
+        QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
+        QueryWrapper<ConceptDetail> conceptDetailQueryWrapper = new QueryWrapper<>();
+        conceptDetailQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<ConceptDetail> conceptDetailList = this.list(conceptDetailQueryWrapper);
+        List<Long> conceptIds = conceptDetailList.stream().map(i -> i.getConceptId()).distinct().collect(Collectors.toList());
+        Integer totleCount = 0;
+        Integer diseaseCount = 0;
+        Integer lisTableCount = 0;
+        Integer pacsItemCount = 0;
+        Integer drugCount = 0;
+        if (ListUtil.isNotEmpty(conceptIds)) {
+            //静态知识总数
+            conceptQueryWrapper
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("id", conceptIds);
+            List<Concept> concepts = conceptFacade.list(conceptQueryWrapper);
+            if (ListUtil.isNotEmpty(concepts)) {
+                //静态知识总数
+                totleCount = concepts.size();
+                Map<Long, List<Concept>> groupByLibTypeMap = EntityUtil.makeEntityListMap(concepts, "libType");
+                //疾病
+                if (groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey())) != null) {
+                    diseaseCount = groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.DIAGNOSIS.getKey())).size();
+                }
+                //化验公表项
+                if (groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.LIS_TABLES.getKey())) != null) {
+                    lisTableCount = groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.LIS_TABLES.getKey())).size();
+                }
+                //辅检项目
+                if (groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.PACS_ITEMS.getKey())) != null) {
+                    pacsItemCount = groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.PACS_ITEMS.getKey())).size();
+                }
+                //药品通用名
+                if (groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.DRUGS.getKey())) != null) {
+                    drugCount = groupByLibTypeMap.get(Long.valueOf(LexiconTypeEnum.DRUGS.getKey())).size();
+                }
+            }
+        }
+
+        BIItemDTO totle = new BIItemDTO();
+        totle.setModuleName("静态知识");
+        totle.setItemName("静态知识总数");
+        totle.setCount(totleCount);
+        retList.add(totle);
+
+        BIItemDTO disease = new BIItemDTO();
+        disease.setModuleName("静态知识");
+        disease.setItemName("疾病");
+        disease.setCount(diseaseCount);
+        retList.add(disease);
+
+        BIItemDTO lisTable = new BIItemDTO();
+        lisTable.setModuleName("静态知识");
+        lisTable.setItemName("化验公表项");
+        lisTable.setCount(lisTableCount);
+        retList.add(lisTable);
+
+        BIItemDTO pacs = new BIItemDTO();
+        pacs.setModuleName("静态知识");
+        pacs.setItemName("辅检项目");
+        pacs.setCount(pacsItemCount);
+        retList.add(pacs);
+
+        BIItemDTO drug = new BIItemDTO();
+        drug.setModuleName("静态知识");
+        drug.setItemName("药品通用名");
+        drug.setCount(drugCount);
+        retList.add(drug);
+
+        return retList;
+    }
+}

+ 10 - 1
knowledgeman-service/src/main/java/com/diagbot/web/ConceptDetailController.java

@@ -2,6 +2,7 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.BIItemDTO;
 import com.diagbot.dto.ConceptDetailDTO;
 import com.diagbot.dto.ConceptIndexDTO;
 import com.diagbot.dto.GetConceptDetailListDTO;
@@ -79,4 +80,12 @@ public class ConceptDetailController {
         List<ConceptIndexDTO> data = conceptDetailFacade.indexFac(conceptIndexVO);
         return RespDTO.onSuc(data);
     }
-}
+
+    @ApiOperation(value = "数据统计-静态知识数据统计[by:zhaops]", notes = "")
+    @PostMapping("/conceptDetailBI")
+    @SysLogger("conceptDetailBI")
+    public RespDTO<List<BIItemDTO>> conceptDetailBI() {
+        List<BIItemDTO> data = conceptDetailFacade.conceptDetailBI();
+        return RespDTO.onSuc(data);
+    }
+}