Просмотр исходного кода

Update 修复电表参数计算

YueYunyun 2 лет назад
Родитель
Сommit
309049477c

+ 3 - 0
SERVER/Meter_Service/dataStruct/meterCalcParam.go

@@ -49,6 +49,9 @@ func (m *MeterCalcParam) ClearDayEnergy() {
 	m.DayTotalEnergy.Tq = 0
 	m.DayTotalEnergy.Tq = 0
 	m.DayTotalEnergy.Fp = 0
 	m.DayTotalEnergy.Fp = 0
 	m.DayTotalEnergy.Fq = 0
 	m.DayTotalEnergy.Fq = 0
+	m.PowerRate.Count = 0
+	m.PowerRate.MaxPower = 0
+	m.PowerRate.SumPower = 0
 	m.isClean = true
 	m.isClean = true
 }
 }
 
 

+ 10 - 12
SERVER/Meter_Service/service/downStreamService/collect.go

@@ -8,6 +8,8 @@ import (
 	"MeterService/database/meterCalcParam"
 	"MeterService/database/meterCalcParam"
 	"MeterService/service/downStreamService/proto/acrel"
 	"MeterService/service/downStreamService/proto/acrel"
 	"MeterService/service/rtuService"
 	"MeterService/service/rtuService"
+	"strconv"
+	"time"
 )
 )
 
 
 func collectData(sn string, config *dataStruct.DtuConfig) []*dataStruct.CollectData {
 func collectData(sn string, config *dataStruct.DtuConfig) []*dataStruct.CollectData {
@@ -75,30 +77,26 @@ func processCollectData(colData *dataStruct.CollectData, cfg *dataStruct.DtuSlav
 	// 计算电表数据
 	// 计算电表数据
 	logger.Debug("计算电表数据: %s", cfg.NO)
 	logger.Debug("计算电表数据: %s", cfg.NO)
 	calc := &dataStruct.MeterCalcParam{}
 	calc := &dataStruct.MeterCalcParam{}
-	tms := utils.NowDataToTimeStamp()
+	now := time.Now()
+	today, _ := strconv.Atoi(now.Format("20060102"))
+	tms := int64(today)
 	if x, ok := data.CalcParam.Get(cfg.NO); ok {
 	if x, ok := data.CalcParam.Get(cfg.NO); ok {
 		calc = x.(*dataStruct.MeterCalcParam)
 		calc = x.(*dataStruct.MeterCalcParam)
+		if calc.Time != tms {
+			calc.ClearDayEnergy()
+		}
 	} else {
 	} else {
-		calc.PowerRate.Count = 1
-		calc.PowerRate.MaxPower = colData.P
-		calc.PowerRate.SumPower = colData.P
-		calc.ClearDayEnergy()
-	}
-	t := (&dataStruct.DateTime{}).TimeStampToData(tms)
-	if t.Hour == 0 && t.Minute == 0 {
-		calc.PowerRate.Count = 1
-		calc.PowerRate.MaxPower = colData.P
-		calc.PowerRate.SumPower = colData.P
 		calc.ClearDayEnergy()
 		calc.ClearDayEnergy()
 	}
 	}
+
 	// 计算电表数据
 	// 计算电表数据
 	logger.Debug("[%s] 计算前: [%v]", cfg.NO, calc)
 	logger.Debug("[%s] 计算前: [%v]", cfg.NO, calc)
 	colData.CalcWithParam(calc)
 	colData.CalcWithParam(calc)
 	calc.Time = tms
 	calc.Time = tms
 	logger.Debug("[%s] 计算完成: [%v]", cfg.NO, calc)
 	logger.Debug("[%s] 计算完成: [%v]", cfg.NO, calc)
 	// 更新电表计算参数
 	// 更新电表计算参数
-	db := meterCalcParam.NewMeterCalcParamDb()
 	data.CalcParam.Add(cfg.NO, calc)
 	data.CalcParam.Add(cfg.NO, calc)
+	db := meterCalcParam.NewMeterCalcParamDb()
 	if db != nil {
 	if db != nil {
 		calcEt := &meterCalcParam.MeterCalcParam{
 		calcEt := &meterCalcParam.MeterCalcParam{
 			Id:       cfg.NO,
 			Id:       cfg.NO,