|
@@ -22,6 +22,7 @@ import java.util.Date;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @Description:平均值相关统计
|
|
@@ -67,9 +68,12 @@ public class AverageStatisticsAggregate {
|
|
|
*/
|
|
|
@DataProvider("getAverageDayNum")
|
|
|
public List<AverageStatisticsDTO> getAverageDayNum(@InvokeParameter("filterVO") FilterVO filterVO) {
|
|
|
+ Integer limitCount = filterVO.getLimitCount();
|
|
|
List<AverageStatisticsDTO> retAverageDayNumList = Lists.newLinkedList();
|
|
|
+ //本月、本年
|
|
|
List<AverageStatisticsDTO> averageDayNumList = homePageFacade.getAverageDayNum(filterVO);
|
|
|
- Integer limitCount = filterVO.getLimitCount();
|
|
|
+ Map<String, Double> averageMap
|
|
|
+ = EntityUtil.makeMapWithKeyValue(averageDayNumList, "name", "averageValue");
|
|
|
|
|
|
//上月、去年
|
|
|
String startDate = filterFacade.getLastStartDateStr(filterVO.getType());
|
|
@@ -91,22 +95,36 @@ public class AverageStatisticsAggregate {
|
|
|
}
|
|
|
//按年统计,同比环比相同
|
|
|
List<AverageStatisticsDTO> lastYearAverageDayNumList = homePageFacade.getAverageDayNum(filterVO);
|
|
|
-
|
|
|
Map<String, Double> lastYearMap
|
|
|
= EntityUtil.makeMapWithKeyValue(lastYearAverageDayNumList, "name", "averageValue");
|
|
|
|
|
|
- averageDayNumList.forEach(item -> {
|
|
|
- if (lastMap.containsKey(item.getName())) {
|
|
|
- item.setLastAverageValue(lastMap.get(item.getName()));
|
|
|
+ //获取所有出现的科室
|
|
|
+ List<String> nameList = Lists.newLinkedList();
|
|
|
+ nameList.addAll(averageMap.keySet());
|
|
|
+ nameList.addAll(lastMap.keySet());
|
|
|
+ nameList.addAll(lastYearMap.keySet());
|
|
|
+ nameList = nameList
|
|
|
+ .stream()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ for (String name : nameList) {
|
|
|
+ AverageStatisticsDTO item = new AverageStatisticsDTO();
|
|
|
+ item.setName(name);
|
|
|
+ if (averageMap.containsKey(name)) {
|
|
|
+ item.setAverageValue(averageMap.get(name));
|
|
|
}
|
|
|
- if (lastYearMap.containsKey(item.getName())) {
|
|
|
- item.setLastYearAverageValue(lastYearMap.get(item.getName()));
|
|
|
+ if (lastMap.containsKey(name)) {
|
|
|
+ item.setLastAverageValue(lastMap.get(name));
|
|
|
}
|
|
|
- });
|
|
|
- if (averageDayNumList.size() <= limitCount) {
|
|
|
- retAverageDayNumList = averageDayNumList;
|
|
|
- } else {
|
|
|
- retAverageDayNumList = averageDayNumList.subList(0, limitCount);
|
|
|
+ if (lastYearMap.containsKey(name)) {
|
|
|
+ item.setLastYearAverageValue(lastYearMap.get(name));
|
|
|
+ }
|
|
|
+ retAverageDayNumList.add(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (retAverageDayNumList.size() > limitCount) {
|
|
|
+ retAverageDayNumList = retAverageDayNumList.subList(0, limitCount);
|
|
|
}
|
|
|
return retAverageDayNumList;
|
|
|
}
|
|
@@ -119,9 +137,13 @@ public class AverageStatisticsAggregate {
|
|
|
*/
|
|
|
@DataProvider("getAverageFee")
|
|
|
public List<AverageStatisticsDTO> getAverageFee(@InvokeParameter("filterVO") FilterVO filterVO) {
|
|
|
+ Integer limitCount = filterVO.getLimitCount();
|
|
|
List<AverageStatisticsDTO> retAverageFeeList = Lists.newLinkedList();
|
|
|
+ //本月、本年
|
|
|
List<AverageStatisticsDTO> averageFeeList = homePageFacade.getAverageFee(filterVO);
|
|
|
- Integer limitCount = filterVO.getLimitCount();
|
|
|
+ Map<String, Double> averageMap
|
|
|
+ = EntityUtil.makeMapWithKeyValue(averageFeeList, "name", "averageValue");
|
|
|
+
|
|
|
//上月、去年
|
|
|
String startDate = filterFacade.getLastStartDateStr(filterVO.getType());
|
|
|
String endDate = filterFacade.getLastEndDateStr(filterVO.getType());
|
|
@@ -142,22 +164,36 @@ public class AverageStatisticsAggregate {
|
|
|
}
|
|
|
//按年统计,同比环比相同
|
|
|
List<AverageStatisticsDTO> lastYearAverageFeeList = homePageFacade.getAverageDayNum(filterVO);
|
|
|
-
|
|
|
Map<String, Double> lastYearMap
|
|
|
= EntityUtil.makeMapWithKeyValue(lastYearAverageFeeList, "name", "averageValue");
|
|
|
|
|
|
- averageFeeList.forEach(item -> {
|
|
|
- if (lastMap.containsKey(item.getName())) {
|
|
|
- item.setLastAverageValue(lastMap.get(item.getName()));
|
|
|
+ //获取所有出现的科室
|
|
|
+ List<String> nameList = Lists.newLinkedList();
|
|
|
+ nameList.addAll(averageMap.keySet());
|
|
|
+ nameList.addAll(lastMap.keySet());
|
|
|
+ nameList.addAll(lastYearMap.keySet());
|
|
|
+ nameList = nameList
|
|
|
+ .stream()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ for (String name : nameList) {
|
|
|
+ AverageStatisticsDTO item = new AverageStatisticsDTO();
|
|
|
+ item.setName(name);
|
|
|
+ if (averageMap.containsKey(name)) {
|
|
|
+ item.setAverageValue(averageMap.get(name));
|
|
|
}
|
|
|
- if (lastYearMap.containsKey(item.getName())) {
|
|
|
- item.setLastYearAverageValue(lastYearMap.get(item.getName()));
|
|
|
+ if (lastMap.containsKey(name)) {
|
|
|
+ item.setLastAverageValue(lastMap.get(name));
|
|
|
}
|
|
|
- });
|
|
|
- if (averageFeeList.size() <= limitCount) {
|
|
|
- retAverageFeeList = averageFeeList;
|
|
|
- } else {
|
|
|
- retAverageFeeList = averageFeeList.subList(0, limitCount);
|
|
|
+ if (lastYearMap.containsKey(name)) {
|
|
|
+ item.setLastYearAverageValue(lastYearMap.get(name));
|
|
|
+ }
|
|
|
+ retAverageFeeList.add(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (retAverageFeeList.size() > limitCount) {
|
|
|
+ retAverageFeeList = retAverageFeeList.subList(0, limitCount);
|
|
|
}
|
|
|
return retAverageFeeList;
|
|
|
}
|