Browse Source

控制台-统计相关

zhaops 5 years ago
parent
commit
f990d179b3
1 changed files with 37 additions and 45 deletions
  1. 37 45
      src/main/java/com/diagbot/facade/ConsoleFacade.java

+ 37 - 45
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -212,55 +212,13 @@ public class ConsoleFacade {
 
 
         //平均住院日
         //平均住院日
         if (ListUtil.isNotEmpty(averageDayNumList)) {
         if (ListUtil.isNotEmpty(averageDayNumList)) {
-            if (averageDayNumList.size() < limitCount) {
-                retAverageDayNumList = BeanUtil.listCopyTo(averageDayNumList, AverageStatisticsDTO.class);
-            } else {
-                Double averageValue = 0d;
-                Integer num = 0;
-                for (AverageStatisticsDTO averageStatisticsDTO : averageDayNumList) {
-                    if (retAverageDayNumList.size() < limitCount - 1) {
-                        retAverageDayNumList.add(averageStatisticsDTO);
-                    } else {
-                        averageValue = BigDecimal
-                                .valueOf(averageValue)
-                                .add(BigDecimal.valueOf(averageStatisticsDTO.getAverageValue()))
-                                .doubleValue();
-                        num++;
-                    }
-                }
-                averageValue = BigDecimal.valueOf(averageValue).divide(BigDecimal.valueOf(num)).doubleValue();
-                AverageStatisticsDTO retAverageStatistics = new AverageStatisticsDTO();
-                retAverageStatistics.setDeptName("其他");
-                retAverageStatistics.setAverageValue(averageValue);
-                retAverageDayNumList.add(retAverageStatistics);
-            }
+            retAverageDayNumList = getLimitAverageList(averageDayNumList, limitCount);
             retMap.put("平均住院日", retAverageDayNumList);
             retMap.put("平均住院日", retAverageDayNumList);
         }
         }
 
 
         //平均住院费用
         //平均住院费用
         if (ListUtil.isNotEmpty(averageFeeList)) {
         if (ListUtil.isNotEmpty(averageFeeList)) {
-            if (averageFeeList.size() < limitCount) {
-                retAverageFeeList = BeanUtil.listCopyTo(averageFeeList, AverageStatisticsDTO.class);
-            } else {
-                Double averageValue = 0d;
-                Integer num = 0;
-                for (AverageStatisticsDTO averageStatisticsDTO : averageFeeList) {
-                    if (retAverageFeeList.size() < limitCount - 1) {
-                        retAverageFeeList.add(averageStatisticsDTO);
-                    } else {
-                        averageValue = BigDecimal
-                                .valueOf(averageValue)
-                                .add(BigDecimal.valueOf(averageStatisticsDTO.getAverageValue()))
-                                .doubleValue();
-                        num++;
-                    }
-                }
-                averageValue = BigDecimal.valueOf(averageValue).divide(BigDecimal.valueOf(num)).doubleValue();
-                AverageStatisticsDTO retAverageStatistics = new AverageStatisticsDTO();
-                retAverageStatistics.setDeptName("其他");
-                retAverageStatistics.setAverageValue(averageValue);
-                retAverageFeeList.add(retAverageStatistics);
-            }
+            retAverageFeeList = getLimitAverageList(averageFeeList, limitCount);
             retMap.put("平均住院费用", retAverageFeeList);
             retMap.put("平均住院费用", retAverageFeeList);
         }
         }
 
 
@@ -287,4 +245,38 @@ public class ConsoleFacade {
         }
         }
         return startDate;
         return startDate;
     }
     }
-}
+
+    /**
+     * 根据限制数量重组统计结果
+     *
+     * @param averageList
+     * @param limitCount
+     * @return
+     */
+    public List<AverageStatisticsDTO> getLimitAverageList(List<AverageStatisticsDTO> averageList, Integer limitCount) {
+        List<AverageStatisticsDTO> retAverageList = Lists.newLinkedList();
+        if (averageList.size() < limitCount) {
+            retAverageList = BeanUtil.listCopyTo(averageList, AverageStatisticsDTO.class);
+        } else {
+            Double averageValue = 0d;
+            Integer num = 0;
+            for (AverageStatisticsDTO averageStatisticsDTO : averageList) {
+                if (retAverageList.size() < limitCount - 1) {
+                    retAverageList.add(averageStatisticsDTO);
+                } else {
+                    averageValue = BigDecimal
+                            .valueOf(averageValue)
+                            .add(BigDecimal.valueOf(averageStatisticsDTO.getAverageValue()))
+                            .doubleValue();
+                    num++;
+                }
+            }
+            averageValue = BigDecimal.valueOf(averageValue).divide(BigDecimal.valueOf(num)).doubleValue();
+            AverageStatisticsDTO retAverageStatistics = new AverageStatisticsDTO();
+            retAverageStatistics.setDeptName("其他");
+            retAverageStatistics.setAverageValue(averageValue);
+            retAverageList.add(retAverageStatistics);
+        }
+        return retAverageList;
+    }
+}