|
@@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -218,11 +219,13 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
|
|
|
@Override
|
|
@Override
|
|
|
public List<TableResult> handleTable(List<CombineAlarmResult> sources, StatsTimeUnit unit,Date minTime,Date maxTime) {
|
|
public List<TableResult> handleTable(List<CombineAlarmResult> sources, StatsTimeUnit unit,Date minTime,Date maxTime) {
|
|
|
TableResult result = new TableResult();
|
|
TableResult result = new TableResult();
|
|
|
- //根据时间对结果进行区分统计
|
|
|
|
|
- Map<String, List<CombineAlarmResult>> groupByTimeResults = groupByTime(sources, unit,minTime,maxTime,
|
|
|
|
|
- t->true,
|
|
|
|
|
- CombineAlarmResult::getUpdateTime,
|
|
|
|
|
- t->CollectionUtil.newHashSet(unit.parse(t.getUpdateTime())));
|
|
|
|
|
|
|
+ //统计所有输注总数
|
|
|
|
|
+ Map<String, List<CombineAlarmResult>> groupByInfusionTimeResults = groupByInfusionTime(sources, unit,minTime,maxTime);
|
|
|
|
|
+ //统计报警总数
|
|
|
|
|
+ Map<String, List<CombineAlarmResult>> groupByAlarmTimeResults = groupByTime(sources, unit,minTime,maxTime,
|
|
|
|
|
+ t->ObjectUtil.isNotNull(t.getAlarmTime()),
|
|
|
|
|
+ CombineAlarmResult::getAlarmTime,
|
|
|
|
|
+ t->CollectionUtil.newHashSet(unit.parse(t.getAlarmTime())));
|
|
|
List<String> columnNames = Arrays.asList(
|
|
List<String> columnNames = Arrays.asList(
|
|
|
DeviceAlarmEnum.Jam.getText(),
|
|
DeviceAlarmEnum.Jam.getText(),
|
|
|
DeviceAlarmEnum.Limit.getText(),
|
|
DeviceAlarmEnum.Limit.getText(),
|
|
@@ -256,14 +259,12 @@ public class AlarmStatsAnalyse implements CommonStats<CombineAlarmResult> {
|
|
|
//根据时间区间对镇痛方式进行统计
|
|
//根据时间区间对镇痛方式进行统计
|
|
|
Map<String, AlarmTotalPieResult> groupByTimeCountResult = new LinkedHashMap<>();
|
|
Map<String, AlarmTotalPieResult> groupByTimeCountResult = new LinkedHashMap<>();
|
|
|
//根据时间区间对镇痛方式进行统计
|
|
//根据时间区间对镇痛方式进行统计
|
|
|
- groupByTimeResults.forEach((timeRange,combineResults)->{
|
|
|
|
|
|
|
+ groupByAlarmTimeResults.forEach((timeRange,combineResults)->{
|
|
|
AlarmTotalPieResult alarmTotalPieResult = groupByTimeCountResult.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult(addIntelligentParam()));
|
|
AlarmTotalPieResult alarmTotalPieResult = groupByTimeCountResult.computeIfAbsent(timeRange, k -> new AlarmTotalPieResult(addIntelligentParam()));
|
|
|
- Set<String> totalInfusion=new HashSet<>();
|
|
|
|
|
combineResults.stream()
|
|
combineResults.stream()
|
|
|
.filter(r->ObjectUtil.isNotNull(r.getAlarmTime()))
|
|
.filter(r->ObjectUtil.isNotNull(r.getAlarmTime()))
|
|
|
- .peek(r->totalInfusion.add(r.getId()))
|
|
|
|
|
.forEach(alarmTotalPieResult::handle);
|
|
.forEach(alarmTotalPieResult::handle);
|
|
|
- alarmTotalPieResult.setInfusionCount(CollectionUtil.size(totalInfusion));
|
|
|
|
|
|
|
+ alarmTotalPieResult.setInfusionCount(CollectionUtil.size(groupByInfusionTimeResults.get(timeRange)));
|
|
|
});
|
|
});
|
|
|
groupByTimeCountResult.forEach((timeRange,totalResult)->{
|
|
groupByTimeCountResult.forEach((timeRange,totalResult)->{
|
|
|
//表格内容
|
|
//表格内容
|