|
@@ -9,6 +9,7 @@ import (
|
|
|
"eta/eta_api/services/data"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
+ "github.com/shopspring/decimal"
|
|
|
"math"
|
|
|
"sort"
|
|
|
"strconv"
|
|
@@ -29,6 +30,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
for k, v := range item.DataList {
|
|
|
sum += v.Value
|
|
|
val := sum / float64(k+1)
|
|
|
+ val, _ = decimal.NewFromFloat(val).Round(4).Float64()
|
|
|
newList = append(newList, &data_manage.EdbDataList{
|
|
|
DataTime: v.DataTime,
|
|
|
Value: val,
|
|
@@ -43,6 +45,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
for _, v := range item.DataList {
|
|
|
sum += v.Value
|
|
|
val := sum
|
|
|
+ val, _ = decimal.NewFromFloat(val).Round(4).Float64()
|
|
|
newList = append(newList, &data_manage.EdbDataList{
|
|
|
DataTime: v.DataTime,
|
|
|
Value: val,
|
|
@@ -61,6 +64,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
}
|
|
|
}
|
|
|
val := (v.Value - baseVal) / baseVal
|
|
|
+ val, _ = decimal.NewFromFloat(val).Round(4).Float64()
|
|
|
newList = append(newList, &data_manage.EdbDataList{
|
|
|
DataTime: v.DataTime,
|
|
|
Value: val,
|
|
@@ -95,6 +99,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
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, &data_manage.EdbDataList{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
|
|
|
}
|
|
|
}
|
|
@@ -109,6 +114,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
maxVal = v.Value
|
|
|
}
|
|
|
val := maxVal
|
|
|
+ val, _ = decimal.NewFromFloat(val).Round(4).Float64()
|
|
|
newList = append(newList, &data_manage.EdbDataList{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
|
|
|
}
|
|
|
}
|
|
@@ -123,6 +129,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
minVal = v.Value
|
|
|
}
|
|
|
val := minVal
|
|
|
+ val, _ = decimal.NewFromFloat(val).Round(4).Float64()
|
|
|
newList = append(newList, &data_manage.EdbDataList{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
|
|
|
}
|
|
|
}
|
|
@@ -587,13 +594,17 @@ func getChartDataByEdbInfo(edbInfoMapping *data_manage.ChartEdbInfoMapping, req
|
|
|
switch req.DataConvertType {
|
|
|
case 1:
|
|
|
for i, v := range newDataList {
|
|
|
- newDataList[i].Value = v.Value * req.DataConvertConf.Value
|
|
|
+ val := v.Value * req.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 / req.DataConvertConf.Value
|
|
|
+ val := v.Value / req.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
|
|
@@ -603,7 +614,9 @@ func getChartDataByEdbInfo(edbInfoMapping *data_manage.ChartEdbInfoMapping, req
|
|
|
err = errors.New("数据中含有负数或0,无法对数运算")
|
|
|
return
|
|
|
}
|
|
|
- newDataList[i].Value = math.Log(v.Value) / math.Log(req.DataConvertConf.Value)
|
|
|
+ val := math.Log(v.Value) / math.Log(req.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)
|