From bfee93d7bb5a8779bccd3a3efbbd37e9ad3ee283 Mon Sep 17 00:00:00 2001 From: fengyarnom Date: Fri, 16 May 2025 15:31:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E7=B2=92=E5=BA=A6?= =?UTF-8?q?=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/dao/sensor.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/dao/sensor.go b/internal/dao/sensor.go index 8b7b5e8..d277fa9 100644 --- a/internal/dao/sensor.go +++ b/internal/dao/sensor.go @@ -140,6 +140,19 @@ func (dao *SensorDAO) GetAggregatedData(start, end time.Time, interval string) ( // 对于雨量,使用时间桶内最后一个(最新的)数据点的值 aggregated.Rainfall = bucketData[len(bucketData)-1].Rainfall + // 计算新增雨量(相对于前一个时间桶) + if i > 0 && len(result) > 0 { + prevRainfall := result[len(result)-1].Rainfall + // 如果当前雨量大于前一个时间桶的雨量,计算差值作为新增雨量 + if aggregated.Rainfall > prevRainfall { + aggregated.Rainfall = aggregated.Rainfall - prevRainfall + } else if aggregated.Rainfall == prevRainfall { + // 如果雨量没有变化,表示没有新增雨量 + aggregated.Rainfall = 0 + } + // 如果当前雨量小于前一个时间桶的雨量(可能是雨量计重置),保留当前值作为新增雨量 + } + result = append(result, aggregated) }