Przeglądaj źródła

fix:优化变频计算的值比对

Roc 3 miesięcy temu
rodzic
commit
ed343659c9
1 zmienionych plików z 12 dodań i 5 usunięć
  1. 12 5
      models/edb_data_calculate_bp.go

+ 12 - 5
models/edb_data_calculate_bp.go

@@ -459,15 +459,22 @@ func refreshAllCalculateBp(to orm.TxOrmer, edbInfoId, source, subSource int, fro
 			currentDate, _ := time.ParseInLocation(utils.FormatDate, currentItem.DataTime, time.Local)
 			timestamp := currentDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
-			valStr := decimal.NewFromFloat(currentItem.Value).String()
+			currValDeci := decimal.NewFromFloat(currentItem.Value)
+			currValStr := currValDeci.String()
 			tmpExistData, ok2 := existDataMap[currentItem.DataTime]
 			if !ok2 {
-				addSql += GetAddSql(edbInfoIdStr, edbCode, currentItem.DataTime, timestampStr, valStr)
+				addSql += GetAddSql(edbInfoIdStr, edbCode, currentItem.DataTime, timestampStr, currValStr)
 				isAdd = true
 			} else {
-				//如果对应的值不匹配
-				if tmpExistData.Value != valStr {
-					err = ModifyEdbDataById(source, subSource, tmpExistData.EdbDataId, valStr)
+				// 已经入库的数据值
+				tmpExistVal, tmpErr := decimal.NewFromString(tmpExistData.Value)
+				if tmpErr != nil {
+					err = tmpErr
+					return
+				}
+				// 如果已经入库的数据值 与 当前计算出来的值 不匹配,那么就去更新
+				if !tmpExistVal.Equal(currValDeci) {
+					err = ModifyEdbDataById(source, subSource, tmpExistData.EdbDataId, currValStr)
 					if err != nil {
 						return err
 					}