瀏覽代碼

区间计算优化

xyxie 7 月之前
父節點
當前提交
f689658874
共有 1 個文件被更改,包括 15 次插入3 次删除
  1. 15 3
      models/edb_data_calculate_qjjs.go

+ 15 - 3
models/edb_data_calculate_qjjs.go

@@ -521,13 +521,17 @@ func GetRangeAnalysisChartDataByEdbInfo(to orm.TxOrmer, fromEdbInfo *EdbInfo, ca
 		switch calculateFormula.DataConvertType {
 		case 1:
 			for i, v := range newDataList {
-				newDataList[i].Value = v.Value * calculateFormula.DataConvertConf.Value
+				val := v.Value * calculateFormula.DataConvertConf.Value
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				newDataList[i].Value = val
 			}
 			//item.MaxData = item.MaxData * v.ConvertValue
 			//item.MinData = item.MinData * v.ConvertValue
 		case 2:
 			for i, v := range newDataList {
-				newDataList[i].Value = v.Value / calculateFormula.DataConvertConf.Value
+				val := v.Value / calculateFormula.DataConvertConf.Value
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				newDataList[i].Value = val
 			}
 			//item.MaxData = item.MaxData / v.ConvertValue
 			//item.MinData = item.MinData / v.ConvertValue
@@ -537,7 +541,9 @@ func GetRangeAnalysisChartDataByEdbInfo(to orm.TxOrmer, fromEdbInfo *EdbInfo, ca
 					err = errors.New("数据中含有负数或0,无法对数运算")
 					return
 				}
-				newDataList[i].Value = math.Log(v.Value) / math.Log(calculateFormula.DataConvertConf.Value)
+				val := math.Log(v.Value) / math.Log(calculateFormula.DataConvertConf.Value)
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				newDataList[i].Value = val
 			}
 			//item.MaxData = math.Log(item.MaxData) / math.Log(v.ConvertValue)
 			//item.MinData = math.Log(item.MinData) / math.Log(v.ConvertValue)
@@ -560,6 +566,7 @@ func HandleDataByCalculateType(originList []*ChartRangeAnalysisDateDataItem, cal
 			for k, v := range item.DataList {
 				sum += v.Value
 				val := sum / float64(k+1)
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &EdbInfoSearchData{
 					DataTime:      v.DataTime,
 					Value:         val,
@@ -574,6 +581,7 @@ func HandleDataByCalculateType(originList []*ChartRangeAnalysisDateDataItem, cal
 			for _, v := range item.DataList {
 				sum += v.Value
 				val := sum
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &EdbInfoSearchData{
 					DataTime:      v.DataTime,
 					Value:         val,
@@ -592,6 +600,7 @@ func HandleDataByCalculateType(originList []*ChartRangeAnalysisDateDataItem, cal
 					}
 				}
 				val := (v.Value - baseVal) / baseVal
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &EdbInfoSearchData{
 					DataTime:      v.DataTime,
 					Value:         val,
@@ -626,6 +635,7 @@ func HandleDataByCalculateType(originList []*ChartRangeAnalysisDateDataItem, cal
 				diff := tmpT.Sub(baseDateT).Hours() / 24
 				val := v.Value / baseVal
 				val = math.Pow(val, diff) - 1
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 			}
 		}
@@ -640,6 +650,7 @@ func HandleDataByCalculateType(originList []*ChartRangeAnalysisDateDataItem, cal
 					maxVal = v.Value
 				}
 				val := maxVal
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 			}
 		}
@@ -654,6 +665,7 @@ func HandleDataByCalculateType(originList []*ChartRangeAnalysisDateDataItem, cal
 					minVal = v.Value
 				}
 				val := minVal
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 			}
 		}