Selaa lähdekoodia

离院人数统计优化

zhaops 4 vuotta sitten
vanhempi
commit
29801f2027

+ 110 - 0
src/main/java/com/diagbot/aggregate/LeaveHosStatisticsAggregate.java

@@ -0,0 +1,110 @@
+package com.diagbot.aggregate;
+
+import com.diagbot.facade.BehospitalInfoFacade;
+import com.diagbot.vo.FilterVO;
+import io.github.lvyahui8.spring.annotation.DataConsumer;
+import io.github.lvyahui8.spring.annotation.DataProvider;
+import io.github.lvyahui8.spring.annotation.InvokeParameter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/15 16:03
+ */
+@Component
+public class LeaveHosStatisticsAggregate {
+    @Autowired
+    private BehospitalInfoFacade behospitalInfoFacade;
+
+    @DataProvider("setAllLeaveHos")
+    public Map<String, Object> setAllLeaveHos(
+            @InvokeParameter("filterVO") FilterVO filterVO,
+            @DataConsumer("getTotleCount") Integer totleNum,
+            @DataConsumer("getDeathCount") Integer deathNum,
+            @DataConsumer("getNewBornCount") Integer newBornNum,
+            @DataConsumer("getOperationCount") Integer operationNum,
+            @DataConsumer("getNonAdviceCount") Integer nonAdviceNum,
+            @DataConsumer("get31DaysBehospitalCount") Integer reBehospitalNum) {
+
+        Map<String, Object> retMap = new LinkedHashMap<>();
+        retMap.put("总人数", totleNum);
+        retMap.put("死亡人数", deathNum);
+        retMap.put("新生儿人数", newBornNum);
+        retMap.put("手术病人数", operationNum);
+        retMap.put("非医嘱离院病人数", nonAdviceNum);
+        retMap.put("31日再入院病人数", reBehospitalNum);
+        return retMap;
+
+    }
+
+    /**
+     * 总人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getTotleCount")
+    public Integer getTotleCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.leaveHosCount(filterVO);
+    }
+
+    /**
+     * 死亡人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getDeathCount")
+    public Integer getDeathCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.deathCount(filterVO);
+    }
+
+    /**
+     * 新生儿患者人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getNewBornCount")
+    public Integer getNewBornCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.newBornCount(filterVO);
+    }
+
+    /**
+     * 手术人数
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getOperationCount")
+    public Integer getOperationCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.operationCount(filterVO);
+    }
+
+    /**
+     * 非医嘱离院
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("getNonAdviceCount")
+    public Integer getNonAdviceCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.nonAdviceCount(filterVO);
+    }
+
+    /**
+     * 31天重复入院
+     *
+     * @param filterVO
+     * @return
+     */
+    @DataProvider("get31DaysBehospitalCount")
+    public Integer get31DaysBehospitalCount(@InvokeParameter("filterVO") FilterVO filterVO) {
+        return behospitalInfoFacade.get31DaysBehospitalCount(filterVO);
+    }
+}

+ 10 - 2
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -240,7 +240,15 @@ public class ConsoleFacade {
     public Map<String, Object> leaveHosCount(FilterVO filterVO) {
         Map<String, Object> retMap = new HashMap<>();
         filterFacade.filterVOSet(filterVO);
-        Map<String, Object> leaveHosMap = mrStatisticsAggregate.leaveHosCount(filterVO);
+        Map<String, Object> leaveHosMap = new HashMap<>();
+        try {
+            Map<String, Object> invokeParams = new HashMap<>();
+            invokeParams.put("filterVO", filterVO);
+            leaveHosMap
+                    = dataBeanAggregateQueryFacade.get("setAllLeaveHos", invokeParams, Map.class);
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+        }
         if (leaveHosMap != null) {
             retMap.put("出院人数统计", leaveHosMap);
         }
@@ -1020,7 +1028,7 @@ public class ConsoleFacade {
         orderNo++;
         List<Long> casesEntryIds = Lists.newArrayList();
         for (String valueStr : columnSet) {
-            if(StringUtil.isBlank(valueStr)){
+            if (StringUtil.isBlank(valueStr)) {
                 continue;
             }
             String[] keyValue = valueStr.split("--");