接口计算静息心率过滤空值

This commit is contained in:
feng
2025-12-12 10:57:32 +08:00
parent 7d316cdf47
commit de69956a71
@@ -570,10 +570,10 @@ public class WatchDataServiceImpl extends ServiceImpl<WatchDataMapper, WatchData
.filter(f -> ObjectUtil.isNotNull(f.getMinValue())) .filter(f -> ObjectUtil.isNotNull(f.getMinValue()))
.mapToInt(WatchStatUserInfoDayHeartRate::getMinValue).min().orElse(0); .mapToInt(WatchStatUserInfoDayHeartRate::getMinValue).min().orElse(0);
// 和 // 和
int sum = list.stream() List<WatchStatUserInfoDayHeartRate> heartRateList = list.stream()
.filter(f -> ObjectUtil.isNotNull(f.getAvgValue())) .filter(f -> ObjectUtil.isNotNull(f.getAvgValue()) && f.getAvgValue() > 0)
.mapToInt(WatchStatUserInfoDayHeartRate::getAvgValue).sum(); .collect(Collectors.toList());
int sum = heartRateList.stream().mapToInt(WatchStatUserInfoDayHeartRate::getAvgValue).sum();
// 最大值 // 最大值
int skinMax = list.stream() int skinMax = list.stream()
.filter(f -> ObjectUtil.isNotNull(f.getSilenceMaxValue())) .filter(f -> ObjectUtil.isNotNull(f.getSilenceMaxValue()))
@@ -583,17 +583,17 @@ public class WatchDataServiceImpl extends ServiceImpl<WatchDataMapper, WatchData
.filter(f -> ObjectUtil.isNotNull(f.getSilenceMinValue())) .filter(f -> ObjectUtil.isNotNull(f.getSilenceMinValue()))
.mapToInt(WatchStatUserInfoDayHeartRate::getSilenceMinValue).min().orElse(0); .mapToInt(WatchStatUserInfoDayHeartRate::getSilenceMinValue).min().orElse(0);
// 和 // 和
int skinSum = list.stream() List<WatchStatUserInfoDayHeartRate> silenceList = list.stream()
.filter(f -> ObjectUtil.isNotNull(f.getSilenceAvgValue())) .filter(f -> ObjectUtil.isNotNull(f.getSilenceAvgValue()) && f.getSilenceAvgValue() > 0)
.mapToInt(WatchStatUserInfoDayHeartRate::getSilenceAvgValue).sum(); .collect(Collectors.toList());
int skinSum = silenceList.stream().mapToInt(WatchStatUserInfoDayHeartRate::getSilenceAvgValue).sum();
stat.setMax(max); stat.setMax(max);
stat.setMin(min); stat.setMin(min);
stat.setAvg((sum / list.size())); stat.setAvg((sum / heartRateList.size()));
stat.setSilenceMax(skinMax); stat.setSilenceMax(skinMax);
stat.setSilenceMin(skinMin); stat.setSilenceMin(skinMin);
stat.setSilenceAvg(skinSum / list.size()); stat.setSilenceAvg(skinSum / silenceList.size());
return stat; return stat;
} }