Browse Source

Merge branch 'pool/336' into debug

Roc 6 days ago
parent
commit
d5372586ea
57 changed files with 167 additions and 164 deletions
  1. 3 3
      logic/profit_chart_info.go
  2. 19 19
      models/base_calculate.go
  3. 3 3
      models/base_from_bloomberg.go
  4. 1 1
      models/base_from_calculate.go
  5. 2 2
      models/base_from_manual.go
  6. 1 1
      models/base_from_stock_plant.go
  7. 2 2
      models/base_predict_from_calculate.go
  8. 4 4
      models/edb_data_business.go
  9. 1 1
      models/edb_data_calculate_avg.go
  10. 2 2
      models/edb_data_calculate_cjjx.go
  11. 2 2
      models/edb_data_calculate_correlation.go
  12. 1 1
      models/edb_data_calculate_hbz.go
  13. 1 1
      models/edb_data_calculate_hcz.go
  14. 5 5
      models/edb_data_calculate_jp.go
  15. 2 2
      models/edb_data_calculate_kszs.go
  16. 6 6
      models/edb_data_calculate_ljz.go
  17. 2 2
      models/edb_data_calculate_ljznczj.go
  18. 1 1
      models/edb_data_calculate_ljzzj.go
  19. 2 2
      models/edb_data_calculate_ljzzy.go
  20. 2 2
      models/edb_data_calculate_nh.go
  21. 2 2
      models/edb_data_calculate_nhcc.go
  22. 1 1
      models/edb_data_calculate_nszydbpjjs.go
  23. 4 4
      models/edb_data_calculate_percentile.go
  24. 16 16
      models/edb_data_calculate_qjjs.go
  25. 1 1
      models/edb_data_calculate_rjz.go
  26. 1 1
      models/edb_data_calculate_standard_deviation.go
  27. 1 1
      models/edb_data_calculate_sum.go
  28. 1 1
      models/edb_data_calculate_tbz.go
  29. 2 2
      models/edb_data_calculate_tcz.go
  30. 1 1
      models/edb_data_calculate_time_shift.go
  31. 2 2
      models/edb_data_calculate_zdyfx.go
  32. 1 1
      models/edb_data_calculate_zsxy.go
  33. 3 3
      models/edb_data_ly.go
  34. 3 3
      models/edb_data_rzd.go
  35. 4 4
      models/edb_ths_hf.go
  36. 2 2
      models/edb_trade_analysis.go
  37. 2 2
      models/handle_data.go
  38. 2 2
      models/predict_edb.go
  39. 2 2
      models/predict_edb_data_base.go
  40. 5 5
      models/predict_edb_data_calculate_jp.go
  41. 2 2
      models/predict_edb_data_calculate_kszs.go
  42. 2 2
      models/predict_edb_data_calculate_ljz.go
  43. 2 2
      models/predict_edb_data_calculate_ljznczj.go
  44. 1 1
      models/predict_edb_data_calculate_ljzzj.go
  45. 1 1
      models/predict_edb_data_calculate_ljzzy.go
  46. 2 2
      models/predict_edb_data_calculate_nh.go
  47. 2 2
      models/predict_edb_data_calculate_nhcc.go
  48. 1 1
      models/predict_edb_data_calculate_nszydbpjjs.go
  49. 2 2
      models/predict_edb_data_calculate_percentile.go
  50. 1 1
      models/predict_edb_data_calculate_qjjs.go
  51. 1 1
      models/predict_edb_data_calculate_standard_deviation.go
  52. 1 1
      models/predict_edb_data_calculate_time_shift.go
  53. 1 1
      models/predict_edb_data_calculate_zsxy.go
  54. 1 1
      models/predict_edb_data_static.go
  55. 21 21
      models/predict_edb_info_rule.go
  56. 5 5
      utils/calculate.go
  57. 3 0
      utils/constants.go

+ 3 - 3
logic/profit_chart_info.go

@@ -595,7 +595,7 @@ func ProfitChartChartData(baseEdbInfo *models.EdbInfo, baseDataListMap map[int][
 			}
 			//yDataMap[n] = calVal
 			//xEdbInfoIdList = append(xEdbInfoIdList, n)
-			calVal, _ = decimal.NewFromFloat(calVal).Round(4).Float64()
+			calVal, _ = decimal.NewFromFloat(calVal).Round(utils.DataDigits).Float64()
 			yDataMap[tmpN] = calVal
 			xEdbInfoIdList = append(xEdbInfoIdList, tmpN)
 			findDataList = append(findDataList, calVal)
@@ -641,7 +641,7 @@ func ProfitChartChartData(baseEdbInfo *models.EdbInfo, baseDataListMap map[int][
 					// 将两个中间的数据做平均值补全
 					for hcI := perK + 1; hcI < currK; hcI++ {
 						tmpI++
-						findDataList[hcI], _ = decimal.NewFromFloat(preVal).Add(hcValDeci.Mul(decimal.NewFromInt(tmpI))).RoundCeil(4).Float64()
+						findDataList[hcI], _ = decimal.NewFromFloat(preVal).Add(hcValDeci.Mul(decimal.NewFromInt(tmpI))).RoundCeil(utils.DataDigits).Float64()
 					}
 				}
 			}
@@ -799,7 +799,7 @@ func handleProfitResultData(xDataListInit []XData, futureNameMap map[int]map[int
 							newYDataList[yIndex].XEdbInfoIdList = append(newYDataList[yIndex].XEdbInfoIdList, 0)
 
 							// 赋值平均值
-							tmpVal, _ := decimal.NewFromFloat(preVal).Add(hcValDeci.Mul(decimal.NewFromInt(int64(tmpNum + 1)))).RoundCeil(4).Float64()
+							tmpVal, _ := decimal.NewFromFloat(preVal).Add(hcValDeci.Mul(decimal.NewFromInt(int64(tmpNum + 1)))).RoundCeil(utils.DataDigits).Float64()
 							newYDataList[yIndex].Value = append(newYDataList[yIndex].Value, tmpVal)
 						}
 					}

+ 19 - 19
models/base_calculate.go

@@ -408,7 +408,7 @@ func tbzDiv(a, b float64) float64 {
 	if b != 0 {
 		af := decimal.NewFromFloat(a)
 		bf := decimal.NewFromFloat(b)
-		val, _ = af.Div(bf).Sub(decimal.NewFromFloat(1)).Round(4).Float64()
+		val, _ = af.Div(bf).Sub(decimal.NewFromFloat(1)).Round(utils.DataDigits).Float64()
 	}
 	return val
 }
@@ -508,7 +508,7 @@ func (obj BaseCalculate) Tcz() (dateDataMap map[time.Time]float64, err error, er
 func tczSub(a, b float64) float64 {
 	af := decimal.NewFromFloat(a)
 	bf := decimal.NewFromFloat(b)
-	val, _ := af.Sub(bf).Round(4).Float64()
+	val, _ := af.Sub(bf).Round(utils.DataDigits).Float64()
 	return val
 }
 
@@ -573,7 +573,7 @@ func (obj BaseCalculate) Nszydpjjs() (dateDataMap map[time.Time]float64, err err
 		}
 		af := totalVal //decimal.NewFromFloat(totalVal)
 		bf := decimal.NewFromFloat(float64(valArrLen))
-		val, _ := af.Div(bf).Round(4).Float64()
+		val, _ := af.Div(bf).Round(utils.DataDigits).Float64()
 
 		dateDataMap[currentDate] = val
 	}
@@ -650,8 +650,8 @@ func hbzDiv(current, pre float64) (val float64, ok bool) {
 	}
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
-	val, _ = currentVal.Sub(preVal).Div(preVal).Round(4).Float64()
-	//valStr := decimal.NewFromFloat(val).RoundCeil(4).String() //utils.SubFloatToString(val, 4)
+	val, _ = currentVal.Sub(preVal).Div(preVal).Round(utils.DataDigits).Float64()
+	//valStr := decimal.NewFromFloat(val).RoundCeil(utils.DataDigits).String() //utils.SubFloatToString(val, 4)
 	ok = true
 
 	return
@@ -717,8 +717,8 @@ func (obj BaseCalculate) Hcz() (dateDataMap map[time.Time]float64, err error, er
 func hczDiv(current, pre float64) float64 {
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
-	val, _ := currentVal.Sub(preVal).Round(4).Float64()
-	//valStr := decimal.NewFromFloat(val).RoundCeil(4).String() //utils.SubFloatToString(val, 4)
+	val, _ := currentVal.Sub(preVal).Round(utils.DataDigits).Float64()
+	//valStr := decimal.NewFromFloat(val).RoundCeil(utils.DataDigits).String() //utils.SubFloatToString(val, 4)
 
 	return val
 }
@@ -849,7 +849,7 @@ func (obj BaseCalculate) DownFrequency() (dateDataMap map[time.Time]float64, err
 		// 将当前数据加入到 weekDayDataList
 		if tmpData, ok := dataMap[tmpStartDataTime]; ok {
 			tmpValue := decimal.NewFromFloat(tmpData.Value)
-			tmpValueFloat, _ := tmpValue.Round(4).Float64()
+			tmpValueFloat, _ := tmpValue.Round(utils.DataDigits).Float64()
 			weekDayDataList = append(weekDayDataList, tmpValueFloat)
 		}
 		// 如果下个节点的日期不存在,那么就先给赋值(兼容时间区间内只有一组数据的情况)
@@ -930,7 +930,7 @@ func (obj BaseCalculate) DownFrequency() (dateDataMap map[time.Time]float64, err
 					sumValDeci = sumValDeci.Add(tmpValDeci)
 				}
 				lenDeci := decimal.NewFromInt(int64(lenWeekDayDataList))
-				currVal, _ = sumValDeci.Div(lenDeci).Round(4).Float64()
+				currVal, _ = sumValDeci.Div(lenDeci).Round(utils.DataDigits).Float64()
 			}
 		}
 
@@ -960,7 +960,7 @@ func (obj BaseCalculate) DownFrequency() (dateDataMap map[time.Time]float64, err
 					sumValDeci = sumValDeci.Add(tmpValDeci)
 				}
 				lenDeci := decimal.NewFromInt(int64(lenWeekDayDataList))
-				currVal, _ = sumValDeci.Div(lenDeci).Round(4).Float64()
+				currVal, _ = sumValDeci.Div(lenDeci).Round(utils.DataDigits).Float64()
 			}
 		}
 
@@ -1028,7 +1028,7 @@ func (obj BaseCalculate) TimeShift() (dateDataMap map[time.Time]float64, err err
 
 		newDate := currentDate.AddDate(0, 0, shiftDay)
 
-		val, _ := decimal.NewFromFloat(currentItem.Value).Round(4).Float64()
+		val, _ := decimal.NewFromFloat(currentItem.Value).Round(utils.DataDigits).Float64()
 
 		dateDataMap[newDate] = val
 	}
@@ -1156,7 +1156,7 @@ func cjjxSub(currValue float64, pastValue []float64) (value float64, ok bool) {
 		tmpVal := decimal.NewFromFloat(pastValue[k])
 		bf = bf.Add(tmpVal)
 	}
-	value, _ = af.Sub(bf.Div(numDecimal)).Round(4).Float64()
+	value, _ = af.Sub(bf.Div(numDecimal)).Round(utils.DataDigits).Float64()
 	ok = true
 
 	return
@@ -1255,7 +1255,7 @@ func (obj BaseCalculate) Annualized() (dateDataMap map[time.Time]float64, err er
 		if tmpDivVal.IsZero() { //如果是0,那么就退出当前循环,进入下一个循环
 			continue
 		}
-		currVal, _ := decimal.NewFromFloat(v.Value).Div(tmpDivVal).Round(4).Float64()
+		currVal, _ := decimal.NewFromFloat(v.Value).Div(tmpDivVal).Round(utils.DataDigits).Float64()
 
 		dateDataMap[currDate] = currVal
 	}
@@ -1501,9 +1501,9 @@ func (obj BaseCalculate) Ljz() (dateDataMap map[time.Time]float64, err error, er
 		}
 		var saveValue float64
 		if isWeekData { //周度指标转的话,最后结果要除以7
-			saveValue, _ = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(4).Float64()
+			saveValue, _ = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(utils.DataDigits).Float64()
 		} else {
-			saveValue, _ = decimal.NewFromFloat(tmpVal).Round(4).Float64()
+			saveValue, _ = decimal.NewFromFloat(tmpVal).Round(utils.DataDigits).Float64()
 		}
 
 		dateDataMap[currTime] = saveValue
@@ -1608,9 +1608,9 @@ func (obj BaseCalculate) LjzNczj() (dateDataMap map[time.Time]float64, err error
 		}
 		var saveValue float64
 		if isWeekData { //周度指标转的话,最后结果要除以7
-			saveValue, _ = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(4).Float64()
+			saveValue, _ = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(utils.DataDigits).Float64()
 		} else {
-			saveValue, _ = decimal.NewFromFloat(tmpVal).Round(4).Float64()
+			saveValue, _ = decimal.NewFromFloat(tmpVal).Round(utils.DataDigits).Float64()
 		}
 
 		dateDataMap[currTime] = saveValue
@@ -1649,7 +1649,7 @@ func (obj BaseCalculate) ExponentialSmoothing() (dateDataMap map[time.Time]float
 			continue
 		}
 		// 当前的实际值
-		saveValue, _ := decimal.NewFromFloat(tmpData.Value).Round(4).Float64()
+		saveValue, _ := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).Float64()
 
 		dateDataMap[tmpData.DataTime] = saveValue
 	}
@@ -1777,7 +1777,7 @@ func rjzDivV2(a float64, b int) (val float64, ok bool) {
 
 	af := decimal.NewFromFloat(a)
 	bf := decimal.NewFromFloat(float64(b))
-	val, _ = af.Div(bf).Round(4).Float64()
+	val, _ = af.Div(bf).Round(utils.DataDigits).Float64()
 	ok = true
 
 	return

+ 3 - 3
models/base_from_bloomberg.go

@@ -216,7 +216,7 @@ func AddEdbDataFromBloomberg(edbCode string) (err error) {
 		for i := 0; i < dataLen; i++ {
 			item := bloombergDataList[i]
 			eDate := item.DataTime
-			sValue := utils.SubFloatToString(item.InputValue, 4)
+			sValue := utils.SubFloatToString(item.InputValue, utils.DataDigits)
 			if sValue != "" {
 				if _, ok := existMap[eDate]; !ok {
 					dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
@@ -313,7 +313,7 @@ func RefreshEdbDataFromBloomberg(edbInfoId int, edbCode, startDate string) (err
 	for _, v := range bloombergDataList {
 		item := v
 		eDate := item.DataTime
-		sValue := utils.SubFloatToString(item.InputValue, 4)
+		sValue := utils.SubFloatToString(item.InputValue, utils.DataDigits)
 
 		dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
 		if err != nil {
@@ -331,7 +331,7 @@ func RefreshEdbDataFromBloomberg(edbInfoId int, edbCode, startDate string) (err
 				}
 			}
 		} else {
-			if findItem != nil && utils.SubFloatToString(findItem.Value, 4) != sValue {
+			if findItem != nil && utils.SubFloatToString(findItem.Value, utils.DataDigits) != sValue {
 				err = ModifyEdbDataById(source, subSource, findItem.EdbDataId, sValue)
 				if err != nil {
 					return err

+ 1 - 1
models/base_from_calculate.go

@@ -515,7 +515,7 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 		}
 		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
-		saveValue := decimal.NewFromFloat(calVal).Round(4).String() //utils.SubFloatToString(calVal, 4)
+		saveValue := decimal.NewFromFloat(calVal).Round(utils.DataDigits).String() //utils.SubFloatToString(calVal, 4)
 		if existVal, ok := dataMap[sk]; !ok {
 			dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
 			timestamp := dataTime.UnixNano() / 1e6

+ 2 - 2
models/base_from_manual.go

@@ -72,7 +72,7 @@ func AddEdbDataFromManual(edbCode string) (err error) {
 			if err != nil {
 				return err
 			}
-			sValue = tmpDecimal.Round(4).String()
+			sValue = tmpDecimal.Round(utils.DataDigits).String()
 
 			dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
 			if err != nil {
@@ -179,7 +179,7 @@ func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err err
 		if err != nil {
 			return err
 		}
-		sValue = tmpDecimal.Round(4).String()
+		sValue = tmpDecimal.Round(utils.DataDigits).String()
 
 		dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
 		if err != nil {

+ 1 - 1
models/base_from_stock_plant.go

@@ -112,7 +112,7 @@ func RefreshEdbDataFromStockPlant(edbInfoId int, edbCode, startDate string) (err
 			addSql += GetAddSql(edbInfoIdStr, edbCode, eDate, timeStr, sValue)
 			isAdd = true
 		} else {
-			if findItem != nil && utils.SubFloatToString(findItem.Value, 4) != item.Value {
+			if findItem != nil && utils.SubFloatToString(findItem.Value, utils.DataDigits) != item.Value {
 				err = ModifyEdbDataById(source, subSource, findItem.EdbDataId, item.Value)
 				if err != nil {
 					return err

+ 2 - 2
models/base_predict_from_calculate.go

@@ -209,7 +209,7 @@ func EditPredictCalculate(edbInfo *EdbInfo, calculateMappingList []*EdbInfoCalcu
 //				timestamp := dataTime.UnixNano() / 1e6
 //				timeStr := fmt.Sprintf("%d", timestamp)
 //				addSql += "("
-//				addSql += strconv.Itoa(edbInfoId) + "," + "'" + edbCode + "'" + "," + "'" + sk + "'" + "," + utils.SubFloatToString(calVal, 4) + "," + "'" + nowStr + "'" +
+//				addSql += strconv.Itoa(edbInfoId) + "," + "'" + edbCode + "'" + "," + "'" + sk + "'" + "," + utils.SubFloatToString(calVal, utils.DataDigits) + "," + "'" + nowStr + "'" +
 //					"," + "'" + nowStr + "'" + "," + "'" + timeStr + "'"
 //				addSql += "),"
 //				isAdd = true
@@ -511,7 +511,7 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 				removeDateList = append(removeDateList, sk)
 				continue
 			}
-			saveValue := decimal.NewFromFloat(calVal).Round(4).String() //utils.SubFloatToString(calVal, 4)
+			saveValue := decimal.NewFromFloat(calVal).Round(utils.DataDigits).String() //utils.SubFloatToString(calVal, utils.DataDigits)
 			if existVal, ok := dataMap[sk]; !ok {
 				dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
 				timestamp := dataTime.UnixNano() / 1e6

+ 4 - 4
models/edb_data_business.go

@@ -256,7 +256,7 @@ func (obj Business) refreshByMongo(edbInfo *EdbInfo, startDate string) (err erro
 		currDateStr := currDate.Format(utils.FormatDate)
 
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		// 下面代码主要目的是处理掉手动插入的数据判断
 		{
@@ -272,7 +272,7 @@ func (obj Business) refreshByMongo(edbInfo *EdbInfo, startDate string) (err erro
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
 			// 已经入到指标库的值
-			existValStr := decimal.NewFromFloat(existData.Value).Round(4).String()
+			existValStr := decimal.NewFromFloat(existData.Value).Round(utils.DataDigits).String()
 
 			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
@@ -408,7 +408,7 @@ func (obj Business) refreshByMysql(to *gorm.DB, edbInfo *EdbInfo, startDate stri
 		currDateStr := currDate.Format(utils.FormatDate)
 
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		// 下面代码主要目的是处理掉手动插入的数据判断
 		{
@@ -424,7 +424,7 @@ func (obj Business) refreshByMysql(to *gorm.DB, edbInfo *EdbInfo, startDate stri
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
 			// 已经入到指标库的值
-			existValStr := decimal.NewFromFloat(existData.Value).Round(4).String()
+			existValStr := decimal.NewFromFloat(existData.Value).Round(utils.DataDigits).String()
 
 			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)

+ 1 - 1
models/edb_data_calculate_avg.go

@@ -377,7 +377,7 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 		calVal = calVal / float64(len(sv))
 		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
-		saveValue := decimal.NewFromFloat(calVal).Round(4).String()
+		saveValue := decimal.NewFromFloat(calVal).Round(utils.DataDigits).String()
 		if existVal, ok := dataMap[sk]; !ok {
 			dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
 			timestamp := dataTime.UnixNano() / 1e6

+ 2 - 2
models/edb_data_calculate_cjjx.go

@@ -446,7 +446,7 @@ func CjjxSub(currValue float64, pastValue []float64) (value string) {
 		bf = bf.Add(tmpVal)
 	}
 	val, _ := af.Sub(bf.Div(numDecimal)).Float64()
-	//valStr := utils.SubFloatToString(val, 4)
-	valStr := decimal.NewFromFloat(val).Round(4).String()
+	//valStr := utils.SubFloatToString(val, utils.DataDigits)
+	valStr := decimal.NewFromFloat(val).Round(utils.DataDigits).String()
 	return valStr
 }

+ 2 - 2
models/edb_data_calculate_correlation.go

@@ -310,7 +310,7 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 			err = tmpErr
 			return
 		}
-		currVal, _ := decimal.NewFromFloat(val).Round(4).Float64()
+		currVal, _ := decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 
 		// 判断扩散指数指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {
@@ -321,7 +321,7 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 1 - 1
models/edb_data_calculate_hbz.go

@@ -305,6 +305,6 @@ func HbzDiv(current, pre float64) string {
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
 	val, _ := currentVal.Sub(preVal).Div(preVal).Float64()
-	valStr := decimal.NewFromFloat(val).Round(4).String() //utils.SubFloatToString(val, 4)
+	valStr := decimal.NewFromFloat(val).Round(utils.DataDigits).String() //utils.SubFloatToString(val, utils.DataDigits)
 	return valStr
 }

+ 1 - 1
models/edb_data_calculate_hcz.go

@@ -305,6 +305,6 @@ func HczDiv(current, pre float64) string {
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
 	val, _ := currentVal.Sub(preVal).Float64()
-	valStr := decimal.NewFromFloat(val).Round(4).String() //utils.SubFloatToString(val, 4)
+	valStr := decimal.NewFromFloat(val).Round(utils.DataDigits).String() //utils.SubFloatToString(val, utils.DataDigits)
 	return valStr
 }

+ 5 - 5
models/edb_data_calculate_jp.go

@@ -278,7 +278,7 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		// 将当前数据加入到 weekDayDataList
 		if tmpData, ok := dataMap[tmpStartDataTime.Format(utils.FormatDate)]; ok {
 			tmpValue := decimal.NewFromFloat(tmpData.Value)
-			tmpValueFloat, _ := tmpValue.Round(4).Float64()
+			tmpValueFloat, _ := tmpValue.Round(utils.DataDigits).Float64()
 			weekDayDataList = append(weekDayDataList, tmpValueFloat)
 		}
 
@@ -356,7 +356,7 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				sumValDeci = sumValDeci.Add(tmpValDeci)
 			}
 			lenDeci := decimal.NewFromInt(int64(lenWeekDayDataList))
-			currVal, _ = sumValDeci.Div(lenDeci).Round(4).Float64()
+			currVal, _ = sumValDeci.Div(lenDeci).Round(utils.DataDigits).Float64()
 		}
 
 		tmpStartDataTimeStr := tmpStartDataTime.Format(utils.FormatDate)
@@ -371,7 +371,7 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				return
 			}
 
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断降频数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
@@ -412,7 +412,7 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				sumValDeci = sumValDeci.Add(tmpValDeci)
 			}
 			lenDeci := decimal.NewFromInt(int64(lenWeekDayDataList))
-			currVal, _ = sumValDeci.Div(lenDeci).Round(4).Float64()
+			currVal, _ = sumValDeci.Div(lenDeci).Round(utils.DataDigits).Float64()
 		}
 		nextEndDateStr := nextEndDate.Format(utils.FormatDate)
 
@@ -425,7 +425,7 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断降频数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 2 - 2
models/edb_data_calculate_kszs.go

@@ -328,7 +328,7 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 		for _, tmpVal := range tmpValList {
 			currValDeci = currValDeci.Add(decimal.NewFromFloat(tmpVal))
 		}
-		currVal, _ := currValDeci.Div(decimal.NewFromInt(int64(lenTmpValList))).Round(4).Float64()
+		currVal, _ := currValDeci.Div(decimal.NewFromInt(int64(lenTmpValList))).Round(utils.DataDigits).Float64()
 
 		// 判断扩散指数指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {
@@ -339,7 +339,7 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 6 - 6
models/edb_data_calculate_ljz.go

@@ -363,7 +363,7 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(allDays))
-			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(utils.DataDigits).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", allDays, initVal, days, val)
 			valueMap[lastNewDate] = val
 		}
@@ -425,7 +425,7 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(allDays))
-			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(utils.DataDigits).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", allDays, initVal, days, val)
 			valueMap[lastNewDate] = val
 		}
@@ -490,7 +490,7 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(allDays))
-			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(utils.DataDigits).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", allDays, initVal, days, val)
 
 			valueMap[lastNewDate] = val
@@ -548,7 +548,7 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(monthDays))
-			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(utils.DataDigits).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", monthDays, initVal, days, val)
 			valueMap[lastNewDate] = val
 		}
@@ -660,9 +660,9 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 		}
 		var saveValue string
 		if isWeekData { //周度指标转的话,最后结果要除以7
-			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(utils.DataDigits).String()
 		} else {
-			saveValue = decimal.NewFromFloat(tmpVal).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Round(utils.DataDigits).String()
 		}
 
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 2 - 2
models/edb_data_calculate_ljznczj.go

@@ -387,9 +387,9 @@ func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInf
 		}
 		var saveValue string
 		if isWeekData { //周度指标转的话,最后结果要除以7
-			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(utils.DataDigits).String()
 		} else {
-			saveValue = decimal.NewFromFloat(tmpVal).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Round(utils.DataDigits).String()
 		}
 
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 1 - 1
models/edb_data_calculate_ljzzj.go

@@ -392,7 +392,7 @@ func (obj Ljzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbI
 
 func (obj Ljzzj) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to *gorm.DB) (newSql string, isAdd bool, err error) {
 	newSql = addSql
-	saveValue := utils.SubFloatToString(val, 4)
+	saveValue := utils.SubFloatToString(val, utils.DataDigits)
 	//判断数据是否存在
 	if existVal, ok := dataMap[date]; !ok {
 		dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)

+ 2 - 2
models/edb_data_calculate_ljzzy.go

@@ -316,7 +316,7 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 				}
 			}
 			if date != "" {
-				//saveValue := utils.SubFloatToString(val, 4)
+				//saveValue := utils.SubFloatToString(val, utils.DataDigits)
 				////判断数据是否存在
 				//if existVal, ok := dataMap[date]; !ok {
 				//	dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
@@ -381,7 +381,7 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 
 func calculateLjzzy(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to *gorm.DB) (newSql string, isAdd bool, err error) {
 	newSql = addSql
-	saveValue := utils.SubFloatToString(val, 4)
+	saveValue := utils.SubFloatToString(val, utils.DataDigits)
 	//判断数据是否存在
 	if existVal, ok := dataMap[date]; !ok {
 		dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)

+ 2 - 2
models/edb_data_calculate_nh.go

@@ -307,7 +307,7 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		if tmpDivVal.IsZero() { //如果是0,那么就退出当前循环,进入下一个循环
 			continue
 		}
-		currVal, _ := decimal.NewFromFloat(v.Value).Div(tmpDivVal).Round(4).Float64()
+		currVal, _ := decimal.NewFromFloat(v.Value).Div(tmpDivVal).Round(utils.DataDigits).Float64()
 
 		// 判断年化指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {
@@ -318,7 +318,7 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断年化数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 2 - 2
models/edb_data_calculate_nhcc.go

@@ -486,7 +486,7 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		bDecimal := decimal.NewFromFloat(b)
 		for _, aData := range aDataList {
 			xDecimal := decimal.NewFromFloat(aData.Value)
-			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
+			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(utils.DataDigits).Float64()
 			newBDataMap[aData.DataTime] = val
 		}
 
@@ -509,7 +509,7 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		b2Decimal := decimal.NewFromFloat(b2Val)
 
 		valDeci := bDecimal.Sub(b2Decimal)
-		val, _ := valDeci.Round(4).Float64()
+		val, _ := valDeci.Round(utils.DataDigits).Float64()
 
 		// 判断之前有没有该数据
 		existData, ok := dataMap[currDate]

+ 1 - 1
models/edb_data_calculate_nszydbpjjs.go

@@ -275,7 +275,7 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 		af := totalVal //decimal.NewFromFloat(totalVal)
 		bf := decimal.NewFromFloat(float64(valArrLen))
 		val, _ := af.Div(bf).Float64()
-		valStr := decimal.NewFromFloat(val).Round(4).String()
+		valStr := decimal.NewFromFloat(val).Round(utils.DataDigits).String()
 
 		if existVal, existOk := existDataMap[av]; !existOk {
 			currentDate, err := time.ParseInLocation(utils.FormatDate, av, time.Local)

+ 4 - 4
models/edb_data_calculate_percentile.go

@@ -275,7 +275,7 @@ func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCod
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作
@@ -337,7 +337,7 @@ func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCod
 
 func (obj Percentile) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to *gorm.DB) (newSql string, isAdd bool, err error) {
 	newSql = addSql
-	saveValue := utils.SubFloatToString(val, 4)
+	saveValue := utils.SubFloatToString(val, utils.DataDigits)
 	//判断数据是否存在
 	if existVal, ok := dataMap[date]; !ok {
 		dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
@@ -414,7 +414,7 @@ func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int
 				continue
 			}
 			tmpV := (tmpData.Value - minVal) / (maxVal - minVal) * 100
-			tmpV, _ = decimal.NewFromFloat(tmpV).Round(4).Float64()
+			tmpV, _ = decimal.NewFromFloat(tmpV).Round(utils.DataDigits).Float64()
 			//百分位=(现值-Min)/(Max-Min)
 			newDataList = append(newDataList, EdbInfoSearchData{
 				EdbDataId: i,
@@ -461,7 +461,7 @@ func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int
 			numerator := decimal.NewFromInt(int64(tinyN - 1))
 			denominator := decimal.NewFromInt(int64(bigN - 1))
 			// 因为是百分位所以这里是要*100, 跟之前的算法保持同步
-			percentVal, _ := numerator.Div(denominator).Mul(decimal.NewFromFloat(100)).Round(4).Float64()
+			percentVal, _ := numerator.Div(denominator).Mul(decimal.NewFromFloat(100)).Round(utils.DataDigits).Float64()
 
 			// 写进数组并判断指标最大最小值
 			newDataList = append(newDataList, EdbInfoSearchData{

+ 16 - 16
models/edb_data_calculate_qjjs.go

@@ -310,7 +310,7 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
@@ -438,7 +438,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						sum += vv.Value
 					}
 					val := sum / float64(len(calDataList))
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{
 						DataTime:      v.DataTime,
 						Value:         val,
@@ -452,7 +452,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 				for k, v := range item.DataList {
 					sum += v.Value
 					val := sum / float64(k+1)
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{
 						DataTime:      v.DataTime,
 						Value:         val,
@@ -479,7 +479,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						sum += vv.Value
 					}
 					val := sum
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{
 						DataTime:      v.DataTime,
 						Value:         val,
@@ -493,7 +493,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 				for _, v := range item.DataList {
 					sum += v.Value
 					val := sum
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{
 						DataTime:      v.DataTime,
 						Value:         val,
@@ -527,7 +527,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 					}
 
 					val := (v.Value - baseVal) / baseVal
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{
 						DataTime:      v.DataTime,
 						Value:         val,
@@ -550,7 +550,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						continue
 					}
 					val := (v.Value - baseVal) / baseVal
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{
 						DataTime:      v.DataTime,
 						Value:         val,
@@ -596,7 +596,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 					diff := tmpT.Sub(baseDateT).Hours() / 24 / 365
 					val := v.Value / baseVal
 					val = math.Pow(val, 1/diff) - 1
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 				}
 			}
@@ -628,7 +628,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 					diff := tmpT.Sub(baseDateT).Hours() / 24 / 365
 					val := v.Value / baseVal
 					val = math.Pow(val, 1/diff) - 1
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 				}
 			}
@@ -653,7 +653,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 					}
 
 					val := maxVal
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 				}
 			}
@@ -667,7 +667,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						maxVal = v.Value
 					}
 					val := maxVal
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 				}
 			}
@@ -691,7 +691,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						}
 					}
 					val := minVal
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 				}
 			}
@@ -705,7 +705,7 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						minVal = v.Value
 					}
 					val := minVal
-					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 					newList = append(newList, &EdbInfoSearchData{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 				}
 			}
@@ -865,7 +865,7 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 		case 1:
 			for i, v := range newDataList {
 				val := v.Value * calculateFormula.DataConvertConf.Value
-				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 				newDataList[i].Value = val
 			}
 			//item.MaxData = item.MaxData * v.ConvertValue
@@ -873,7 +873,7 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 		case 2:
 			for i, v := range newDataList {
 				val := v.Value / calculateFormula.DataConvertConf.Value
-				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 				newDataList[i].Value = val
 			}
 			//item.MaxData = item.MaxData / v.ConvertValue
@@ -885,7 +885,7 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 					return
 				}
 				val := math.Log(v.Value) / math.Log(calculateFormula.DataConvertConf.Value)
-				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				val, _ = decimal.NewFromFloat(val).Round(utils.DataDigits).Float64()
 				newDataList[i].Value = val
 			}
 			//item.MaxData = math.Log(item.MaxData) / math.Log(v.ConvertValue)

+ 1 - 1
models/edb_data_calculate_rjz.go

@@ -355,7 +355,7 @@ func rjzDiv(a float64, b int) string {
 		af := decimal.NewFromFloat(a)
 		bf := decimal.NewFromFloat(float64(b))
 		val, _ := af.Div(bf).Float64()
-		valStr = decimal.NewFromFloat(val).Round(4).String()
+		valStr = decimal.NewFromFloat(val).Round(utils.DataDigits).String()
 	} else {
 		valStr = "0"
 	}

+ 1 - 1
models/edb_data_calculate_standard_deviation.go

@@ -265,7 +265,7 @@ func (obj StandardDeviation) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo,
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 1 - 1
models/edb_data_calculate_sum.go

@@ -389,7 +389,7 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 
 		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
-		saveValue := decimal.NewFromFloat(calVal).Round(4).String()
+		saveValue := decimal.NewFromFloat(calVal).Round(utils.DataDigits).String()
 		if existVal, ok := dataMap[sk]; !ok {
 			dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
 			timestamp := dataTime.UnixNano() / 1e6

+ 1 - 1
models/edb_data_calculate_tbz.go

@@ -306,7 +306,7 @@ func TbzDiv(a, b float64) string {
 		bf := decimal.NewFromFloat(b)
 		val, _ := af.Div(bf).Float64()
 		val = val - 1
-		valStr = decimal.NewFromFloat(val).Round(4).String()
+		valStr = decimal.NewFromFloat(val).Round(utils.DataDigits).String()
 	} else {
 		valStr = "0"
 	}

+ 2 - 2
models/edb_data_calculate_tcz.go

@@ -448,7 +448,7 @@ func TczSub(a, b float64) string {
 	//fmt.Println(af)
 	bf := decimal.NewFromFloat(b)
 	val, _ := af.Sub(bf).Float64()
-	//valStr := utils.SubFloatToString(val, 4)
-	valStr := decimal.NewFromFloat(val).Round(4).String()
+	//valStr := utils.SubFloatToString(val, utils.DataDigits)
+	valStr := decimal.NewFromFloat(val).Round(utils.DataDigits).String()
 	return valStr
 }

+ 1 - 1
models/edb_data_calculate_time_shift.go

@@ -274,7 +274,7 @@ func refreshAllCalculateTimeShift(to *gorm.DB, edbInfoId, source, subSource, for
 
 			timestamp := newDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
-			valStr := decimal.NewFromFloat(currentItem.Value).Round(4).String()
+			valStr := decimal.NewFromFloat(currentItem.Value).Round(utils.DataDigits).String()
 			if existVal, ok := existDataMap[newDate.Format(utils.FormatDate)]; !ok {
 				isAdd = true
 				addSql += GetAddSql(edbInfoIdStr, edbCode, newDate.Format(utils.FormatDate), timestampStr, valStr)

+ 2 - 2
models/edb_data_calculate_zdyfx.go

@@ -223,7 +223,7 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(currVal).Round(4).String()
+		saveValue := decimal.NewFromFloat(currVal).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作
@@ -231,7 +231,7 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 			existValDec, _ := decimal.NewFromString(existVal)
-			existVal = existValDec.Round(4).String()
+			existVal = existValDec.Round(utils.DataDigits).String()
 
 			if existVal != saveValue {
 				isUpdate = true

+ 1 - 1
models/edb_data_calculate_zsxy.go

@@ -258,7 +258,7 @@ func (obj ExponentialSmoothing) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbIn
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 3 - 3
models/edb_data_ly.go

@@ -98,7 +98,7 @@ func AddEdbDataFromLy(edbCode string) (err error) {
 		for i := 0; i < dataLen; i++ {
 			item := dataAll[i]
 			eDate := item.DataTime
-			sValue := utils.SubFloatToString(item.Value, 4)
+			sValue := utils.SubFloatToString(item.Value, utils.DataDigits)
 			if sValue != "" {
 				if _, ok := existMap[eDate]; !ok {
 					dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
@@ -192,7 +192,7 @@ func RefreshEdbDataFromLy(edbInfoId int, edbCode, startDate string) (err error)
 	for _, v := range dataList {
 		item := v
 		eDate := item.DataTime
-		sValue := utils.SubFloatToString(item.Value, 4)
+		sValue := utils.SubFloatToString(item.Value, utils.DataDigits)
 
 		dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
 		if err != nil {
@@ -210,7 +210,7 @@ func RefreshEdbDataFromLy(edbInfoId int, edbCode, startDate string) (err error)
 				}
 			}
 		} else {
-			if findItem != nil && utils.SubFloatToString(findItem.Value, 4) != sValue {
+			if findItem != nil && utils.SubFloatToString(findItem.Value, utils.DataDigits) != sValue {
 				err = ModifyEdbDataById(source, subSource, findItem.EdbDataId, sValue)
 				if err != nil {
 					return err

+ 3 - 3
models/edb_data_rzd.go

@@ -104,7 +104,7 @@ func AddEdbDataFromRzd(edbCode string) (err error) {
 		for i := 0; i < dataLen; i++ {
 			item := dataAll[i]
 			eDate := item.DataTime
-			sValue := utils.SubFloatToString(item.Value, 4)
+			sValue := utils.SubFloatToString(item.Value, utils.DataDigits)
 			if sValue != "" {
 				if _, ok := existMap[eDate]; !ok {
 					dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
@@ -198,7 +198,7 @@ func RefreshEdbDataFromRzd(edbInfoId int, edbCode, startDate string) (err error)
 	for _, v := range dataList {
 		item := v
 		eDate := item.DataTime
-		sValue := utils.SubFloatToString(item.Value, 4)
+		sValue := utils.SubFloatToString(item.Value, utils.DataDigits)
 
 		dataTime, err := time.ParseInLocation(utils.FormatDate, eDate, time.Local)
 		if err != nil {
@@ -216,7 +216,7 @@ func RefreshEdbDataFromRzd(edbInfoId int, edbCode, startDate string) (err error)
 				}
 			}
 		} else {
-			if findItem != nil && utils.SubFloatToString(findItem.Value, 4) != sValue {
+			if findItem != nil && utils.SubFloatToString(findItem.Value, utils.DataDigits) != sValue {
 				err = ModifyEdbDataById(source, subSource, findItem.EdbDataId, sValue)
 				if err != nil {
 					return err

+ 4 - 4
models/edb_ths_hf.go

@@ -265,7 +265,7 @@ func (obj EdbThsHf) refreshByMysql(edbInfo *EdbInfo, edbBaseMapping *BaseFromEdb
 		}
 
 		// 入库值
-		saveVal := decimal.NewFromFloat(v).Round(4).String()
+		saveVal := decimal.NewFromFloat(v).Round(utils.DataDigits).String()
 		d, e := decimal.NewFromString(saveVal)
 		if e != nil {
 			utils.FileLog.Info(fmt.Sprintf("EdbDataThsHf NewFromString err: %v", e))
@@ -276,7 +276,7 @@ func (obj EdbThsHf) refreshByMysql(edbInfo *EdbInfo, edbBaseMapping *BaseFromEdb
 		// 更新
 		exists := dataExists[strDate]
 		if exists != nil && exists.EdbInfoId > 0 {
-			existVal := decimal.NewFromFloat(exists.Value).Round(4).String()
+			existVal := decimal.NewFromFloat(exists.Value).Round(utils.DataDigits).String()
 			if saveVal != existVal {
 				exists.Value = saveFloat
 				updateData = append(updateData, exists)
@@ -434,7 +434,7 @@ func (obj EdbThsHf) refreshByMongo(edbInfo *EdbInfo, edbBaseMapping *BaseFromEdb
 		}
 
 		// 入库值
-		saveVal := decimal.NewFromFloat(v).Round(4).String()
+		saveVal := decimal.NewFromFloat(v).Round(utils.DataDigits).String()
 		d, e := decimal.NewFromString(saveVal)
 		if e != nil {
 			utils.FileLog.Info(fmt.Sprintf("EdbDataThsHf NewFromString err: %v", e))
@@ -445,7 +445,7 @@ func (obj EdbThsHf) refreshByMongo(edbInfo *EdbInfo, edbBaseMapping *BaseFromEdb
 		// 更新
 		exists := existDataMap[strDate]
 		if exists != nil && exists.EdbInfoId > 0 {
-			existVal := decimal.NewFromFloat(exists.Value).Round(4).String()
+			existVal := decimal.NewFromFloat(exists.Value).Round(utils.DataDigits).String()
 			if saveVal != existVal {
 				exists.Value = saveFloat
 				updateDataList = append(updateDataList, *exists)

+ 2 - 2
models/edb_trade_analysis.go

@@ -98,7 +98,7 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		}
 
 		// 入库值
-		saveVal := decimal.NewFromFloat(v.Value).Round(4).String()
+		saveVal := decimal.NewFromFloat(v.Value).Round(utils.DataDigits).String()
 		d, e := decimal.NewFromString(saveVal)
 		if e != nil {
 			utils.FileLog.Info(fmt.Sprintf("EdbDataTradeAnalysis NewFromString err: %v", e))
@@ -109,7 +109,7 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		// 更新
 		exists := dataExists[strDate]
 		if exists != nil && exists.EdbInfoId > 0 {
-			existVal := decimal.NewFromFloat(exists.Value).Round(4).String()
+			existVal := decimal.NewFromFloat(exists.Value).Round(utils.DataDigits).String()
 			if saveVal != existVal {
 				exists.Value = saveFloat
 				updateData = append(updateData, exists)

+ 2 - 2
models/handle_data.go

@@ -76,7 +76,7 @@ func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDa
 				xDecimal := decimal.NewFromInt(int64(i) + 1)
 				bDecimal := decimal.NewFromFloat(b)
 
-				val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
+				val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(utils.DataDigits).Float64()
 				handleDataMap[tmpDataTime.Format(utils.FormatDate)] = val
 				newList = append(newList, &EdbInfoSearchData{
 					DataTime: tmpDataTime.Format(utils.FormatDate),
@@ -208,7 +208,7 @@ func HandleDataByLinearRegressionByTime(edbInfoDataList []*EdbInfoData, handleDa
 				xDecimal := decimal.NewFromInt(int64(i) + 1)
 				bDecimal := decimal.NewFromFloat(b)
 
-				val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
+				val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(utils.DataDigits).Float64()
 				handleDataMap[tmpDataTime] = val
 				newList = append(newList, &EdbInfoData{
 					DataTime: tmpDataTime,

+ 2 - 2
models/predict_edb.go

@@ -232,7 +232,7 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 		// 移除不存在的日期
 		delete(removeDateMap, sk)
 
-		saveValue := decimal.NewFromFloat(calVal).Round(4).String() //utils.SubFloatToString(calVal, 4)
+		saveValue := decimal.NewFromFloat(calVal).Round(utils.DataDigits).String() //utils.SubFloatToString(calVal, utils.DataDigits)
 		existPredictEdbRuleData, ok := dataMap[sk]
 		if !ok {
 			dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
@@ -402,7 +402,7 @@ func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdb
 				continue
 			}
 
-			saveValue := decimal.NewFromFloat(val).Round(4).String() //utils.SubFloatToString(calVal, 4)
+			saveValue := decimal.NewFromFloat(val).Round(utils.DataDigits).String() //utils.SubFloatToString(calVal, utils.DataDigits)
 			existPredictEdbRuleData, ok := dataMap[currentDateStr]
 			if !ok {
 				timestamp := currentDate.UnixNano() / 1e6

+ 2 - 2
models/predict_edb_data_base.go

@@ -388,7 +388,7 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作
@@ -402,7 +402,7 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 				err = tmpErr
 				return
 			}
-			existVal = existValDec.Round(4).String()
+			existVal = existValDec.Round(utils.DataDigits).String()
 
 			if existVal != saveValue {
 				sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `

+ 5 - 5
models/predict_edb_data_calculate_jp.go

@@ -258,7 +258,7 @@ func refreshAllPredictCalculateJp(to *gorm.DB, edbInfoId, source, subSource int,
 		// 将当前数据加入到 weekDayDataList
 		if tmpData, ok := dataMap[currStartDataTime.Format(utils.FormatDate)]; ok {
 			tmpValue := decimal.NewFromFloat(tmpData.Value)
-			tmpValueFloat, _ := tmpValue.Round(4).Float64()
+			tmpValueFloat, _ := tmpValue.Round(utils.DataDigits).Float64()
 			weekDayDataList = append(weekDayDataList, tmpValueFloat)
 		}
 
@@ -336,7 +336,7 @@ func refreshAllPredictCalculateJp(to *gorm.DB, edbInfoId, source, subSource int,
 				sumValDeci = sumValDeci.Add(tmpValDeci)
 			}
 			lenDeci := decimal.NewFromInt(int64(lenWeekDayDataList))
-			currVal, _ = sumValDeci.Div(lenDeci).Round(4).Float64()
+			currVal, _ = sumValDeci.Div(lenDeci).Round(utils.DataDigits).Float64()
 		}
 
 		// 给实际日期数据的值赋值
@@ -354,7 +354,7 @@ func refreshAllPredictCalculateJp(to *gorm.DB, edbInfoId, source, subSource int,
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断降频数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
@@ -395,7 +395,7 @@ func refreshAllPredictCalculateJp(to *gorm.DB, edbInfoId, source, subSource int,
 				sumValDeci = sumValDeci.Add(tmpValDeci)
 			}
 			lenDeci := decimal.NewFromInt(int64(lenWeekDayDataList))
-			currVal, _ = sumValDeci.Div(lenDeci).Round(4).Float64()
+			currVal, _ = sumValDeci.Div(lenDeci).Round(utils.DataDigits).Float64()
 		}
 
 		nextEndDateStr := nextEndDate.Format(utils.FormatDate)
@@ -409,7 +409,7 @@ func refreshAllPredictCalculateJp(to *gorm.DB, edbInfoId, source, subSource int,
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断降频数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 2 - 2
models/predict_edb_data_calculate_kszs.go

@@ -338,7 +338,7 @@ func refreshAllPredictCalculateKszs(to *gorm.DB, edbInfoId, source, subSource in
 		for _, tmpVal := range tmpValList {
 			currValDeci = currValDeci.Add(decimal.NewFromFloat(tmpVal))
 		}
-		currVal, _ := currValDeci.Div(decimal.NewFromInt(int64(lenTmpValList))).Round(4).Float64()
+		currVal, _ := currValDeci.Div(decimal.NewFromInt(int64(lenTmpValList))).Round(utils.DataDigits).Float64()
 
 		// 如果存在数据的真实日期为空,或者 当前日期 早于或等于 实际数据的日期,那么就给 存在数据的真实日期 赋值
 		if hasValLatestDateTime.IsZero() || currDate.Before(latestDateTime) || currDate.Equal(latestDateTime) {
@@ -355,7 +355,7 @@ func refreshAllPredictCalculateKszs(to *gorm.DB, edbInfoId, source, subSource in
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 2 - 2
models/predict_edb_data_calculate_ljz.go

@@ -535,9 +535,9 @@ func (obj PredictLjz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edb
 		}
 		var saveValue string
 		if isWeekData { //周度指标转的话,最后结果要除以7
-			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(utils.DataDigits).String()
 		} else {
-			saveValue = decimal.NewFromFloat(tmpVal).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Round(utils.DataDigits).String()
 		}
 
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 2 - 2
models/predict_edb_data_calculate_ljznczj.go

@@ -383,9 +383,9 @@ func (obj PredictLjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int,
 		}
 		var saveValue string
 		if isWeekData { //周度指标转的话,最后结果要除以7
-			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Div(decimal.NewFromInt(7)).Round(utils.DataDigits).String()
 		} else {
-			saveValue = decimal.NewFromFloat(tmpVal).Round(4).String()
+			saveValue = decimal.NewFromFloat(tmpVal).Round(utils.DataDigits).String()
 		}
 
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 1 - 1
models/predict_edb_data_calculate_ljzzj.go

@@ -415,7 +415,7 @@ func (obj PredictLjzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, f
 
 func (obj PredictLjzzj) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to *gorm.DB) (newSql string, isAdd bool, err error) {
 	newSql = addSql
-	saveValue := utils.SubFloatToString(val, 4)
+	saveValue := utils.SubFloatToString(val, utils.DataDigits)
 	//判断数据是否存在
 	if existVal, ok := dataMap[date]; !ok {
 		dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)

+ 1 - 1
models/predict_edb_data_calculate_ljzzy.go

@@ -293,7 +293,7 @@ func refreshAllPredictCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource i
 				}
 			}
 			if date != "" {
-				//saveValue := utils.SubFloatToString(val, 4)
+				//saveValue := utils.SubFloatToString(val, utils.DataDigits)
 				////判断数据是否存在
 				//if existVal, ok := dataMap[date]; !ok {
 				//	dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)

+ 2 - 2
models/predict_edb_data_calculate_nh.go

@@ -316,7 +316,7 @@ func refreshAllPredictCalculateNh(to *gorm.DB, edbInfoId, source, subSource int,
 		}
 
 		// 当前计算出来的结果
-		currVal, _ := decimal.NewFromFloat(v.Value).Div(divValSum.Div(decimal.NewFromInt(int64(lenDivValList)))).Round(4).Float64()
+		currVal, _ := decimal.NewFromFloat(v.Value).Div(divValSum.Div(decimal.NewFromInt(int64(lenDivValList)))).Round(utils.DataDigits).Float64()
 
 		// 给实际日期数据的值赋值
 		if fromEdbInfo.LatestDate == currDateStr {
@@ -331,7 +331,7 @@ func refreshAllPredictCalculateNh(to *gorm.DB, edbInfoId, source, subSource int,
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断年化数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 2 - 2
models/predict_edb_data_calculate_nhcc.go

@@ -467,7 +467,7 @@ func refreshAllPredictCalculateNhcc(to *gorm.DB, edbInfo, firstEdbInfo, secondEd
 		bDecimal := decimal.NewFromFloat(b)
 		for _, aData := range aDataList {
 			xDecimal := decimal.NewFromFloat(aData.Value)
-			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
+			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(utils.DataDigits).Float64()
 			newBDataMap[aData.DataTime] = val
 		}
 
@@ -489,7 +489,7 @@ func refreshAllPredictCalculateNhcc(to *gorm.DB, edbInfo, firstEdbInfo, secondEd
 		bDecimal := decimal.NewFromFloat(bData.Value)
 		b2Decimal := decimal.NewFromFloat(b2Val)
 
-		val, _ := bDecimal.Sub(b2Decimal).Round(4).Float64()
+		val, _ := bDecimal.Sub(b2Decimal).Round(utils.DataDigits).Float64()
 		// 判断之前有没有该数据
 		existData, ok := dataMap[currDate]
 		if !ok { //不存在那么就添加吧

+ 1 - 1
models/predict_edb_data_calculate_nszydbpjjs.go

@@ -295,7 +295,7 @@ func refreshAllPredictCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSour
 		af := totalVal //decimal.NewFromFloat(totalVal)
 		bf := decimal.NewFromFloat(float64(valArrLen))
 		val, _ := af.Div(bf).Float64()
-		valStr := decimal.NewFromFloat(val).Round(4).String()
+		valStr := decimal.NewFromFloat(val).Round(utils.DataDigits).String()
 
 		// 实际数据的值
 		if fromEdbInfo.LatestDate == av {

+ 2 - 2
models/predict_edb_data_calculate_percentile.go

@@ -288,7 +288,7 @@ func (obj PredictPercentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo,
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作
@@ -415,7 +415,7 @@ func (obj PredictPercentile) getPercentileData(fromEdbInfo *EdbInfo, calculateVa
 			continue
 		}
 		tmpV := (tmpData.Value - minVal) / (maxVal - minVal) * 100
-		tmpV, _ = decimal.NewFromFloat(tmpV).Round(4).Float64()
+		tmpV, _ = decimal.NewFromFloat(tmpV).Round(utils.DataDigits).Float64()
 		//百分位=(现值-Min)/(Max-Min)
 		newDataList = append(newDataList, EdbInfoSearchData{
 			EdbDataId: i,

+ 1 - 1
models/predict_edb_data_calculate_qjjs.go

@@ -256,7 +256,7 @@ func (obj PredictCalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source,
 				err = tmpErr
 				return
 			}
-			existVal, _ := existValDeci.Round(4).Float64()
+			existVal, _ := existValDeci.Round(utils.DataDigits).Float64()
 			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))

+ 1 - 1
models/predict_edb_data_calculate_standard_deviation.go

@@ -298,7 +298,7 @@ func (obj PredictStandardDeviation) refresh(to *gorm.DB, edbInfo, fromEdbInfo *E
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 1 - 1
models/predict_edb_data_calculate_time_shift.go

@@ -253,7 +253,7 @@ func refreshAllPredictCalculateTimeShift(to *gorm.DB, edbInfoId, source, subSour
 
 			timestamp := newDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
-			valStr := decimal.NewFromFloat(currentItem.Value).Round(4).String()
+			valStr := decimal.NewFromFloat(currentItem.Value).Round(utils.DataDigits).String()
 			if latestDateStr == newDate.Format(utils.FormatDate) {
 				latestValue = currentItem.Value
 			}

+ 1 - 1
models/predict_edb_data_calculate_zsxy.go

@@ -281,7 +281,7 @@ func (obj PredictExponentialSmoothing) refresh(to *gorm.DB, edbInfo, fromEdbInfo
 			return
 		}
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 
 		existVal, ok := existDataMap[currDateStr]
 		// 如果库中已经存在该数据的话,那么就进行值的变更操作

+ 1 - 1
models/predict_edb_data_static.go

@@ -80,7 +80,7 @@ func AddPredictStaticEdb(edbInfo, sourceEdbInfoItem *EdbInfo, calculateMappingLi
 		currDateStr := tmpData.DataTime
 		timeStr := fmt.Sprintf("%d", tmpData.DataTimestamp)
 		// 当前的实际值
-		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
+		saveValue := decimal.NewFromFloat(tmpData.Value).Round(utils.DataDigits).String()
 		addSql += GetAddSql(edbInfoIdStr, edbInfo.EdbCode, currDateStr, timeStr, saveValue)
 		count += 1
 		if count >= 500 {

+ 21 - 21
models/predict_edb_info_rule.go

@@ -148,7 +148,7 @@ func PredictTbzDiv(a, b float64) (result float64) {
 	val := bf.Add(cf)
 
 	// 计算
-	result, _ = val.Mul(af).Round(4).Float64()
+	result, _ = val.Mul(af).Round(utils.DataDigits).Float64()
 	return
 }
 
@@ -267,7 +267,7 @@ func PredictTczDiv(a, b float64) (result float64) {
 		bf := decimal.NewFromFloat(b)
 
 		// 计算
-		result, _ = af.Add(bf).Round(4).Float64()
+		result, _ = af.Add(bf).Round(utils.DataDigits).Float64()
 	} else {
 		result = 0
 	}
@@ -330,7 +330,7 @@ func PredictHbzDiv(a, b float64) (result float64) {
 		val := bf.Add(cf)
 
 		// 计算
-		result, _ = val.Mul(af).Round(4).Float64()
+		result, _ = val.Mul(af).Round(utils.DataDigits).Float64()
 	} else {
 		result = 0
 	}
@@ -387,7 +387,7 @@ func PredictHczDiv(a, b float64) (result float64) {
 		bf := decimal.NewFromFloat(b)
 
 		// 计算
-		result, _ = af.Add(bf).Round(4).Float64()
+		result, _ = af.Add(bf).Round(utils.DataDigits).Float64()
 	} else {
 		result = 0
 	}
@@ -426,7 +426,7 @@ func GetChartPredictEdbInfoDataListByRuleNMoveMeanValue(edbInfoId int, nValue in
 		}
 
 		// N期移动均值计算
-		val, _ := tmpDecimalVal.Div(decimalN).Round(4).Float64()
+		val, _ := tmpDecimalVal.Div(decimalN).Round(utils.DataDigits).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -499,7 +499,7 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
 		tmpK := nValue + k + 1
 
 		xDecimal := decimal.NewFromInt(int64(tmpK))
-		val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
+		val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(utils.DataDigits).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -560,7 +560,7 @@ func GetChartPredictEdbInfoDataListByRuleTrendsHC(edbInfoId int, dayList []time.
 		lastValueDecimal := decimal.NewFromFloat(lastValue)
 		hcValDecimal := decimal.NewFromFloat(hcVal)
 
-		val, _ := lastValueDecimal.Add(hcValDecimal).Round(4).Float64()
+		val, _ := lastValueDecimal.Add(hcValDecimal).Round(utils.DataDigits).Float64()
 
 		tmpData := &EdbInfoSearchData{
 			EdbDataId: edbInfoId + 10000000000 + lenAllData + k,
@@ -810,7 +810,7 @@ func GetChartPredictEdbInfoDataListByRuleSeason(edbInfoId int, yearsList []int,
 			continue
 		}
 		lastDayValDec := decimal.NewFromFloat(lastDayVal)
-		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).Add(lastDayValDec).Round(4).Float64()
+		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).Add(lastDayValDec).Round(utils.DataDigits).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -974,7 +974,7 @@ func GetChartPredictEdbInfoDataListByRuleMoveAverageTb(edbInfoId int, nValue, ye
 		tbVal := tmpAverageVal.Div(tmpHistoryAverageVal)
 
 		// 预测值结果 = 同比年份同期值(tmpHistoryCurrentVal的值)* 同比值(tbVal的值)
-		val, _ := decimal.NewFromFloat(tmpHistoryCurrentVal).Mul(tbVal).Round(4).Float64()
+		val, _ := decimal.NewFromFloat(tmpHistoryCurrentVal).Mul(tbVal).Round(utils.DataDigits).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -1111,7 +1111,7 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 		preDate := currentDate.AddDate(-1, 0, 0)
 		preDateStr := preDate.Format(utils.FormatDate)
 		if preValue, ok := existMap[preDateStr]; ok { //上一年同期找到
-			val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
+			val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(utils.DataDigits).Float64()
 			calculateStatus = true
 		} else {
 			switch frequency {
@@ -1122,13 +1122,13 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 				for i := 0; i <= 35; i++ {
 					nextDateDayStr := nextDateDay.Format(utils.FormatDate)
 					if preValue, ok := existMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
-						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
+						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(utils.DataDigits).Float64()
 						calculateStatus = true
 						break
 					} else {
 						preDateDayStr := preDateDay.Format(utils.FormatDate)
 						if preValue, ok := existMap[preDateDayStr]; ok { //上一年同期->上一个月找到
-							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
+							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(utils.DataDigits).Float64()
 							calculateStatus = true
 							break
 						}
@@ -1139,7 +1139,7 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 
 			case "季度", "年度":
 				if preValue, ok := existMap[preDateStr]; ok { //上一年同期->下一个月找到
-					val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
+					val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(utils.DataDigits).Float64()
 					calculateStatus = true
 					break
 				}
@@ -1150,13 +1150,13 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 				for i := 0; i < 35; i++ {
 					nextDateDayStr := nextDateDay.Format(utils.FormatDate)
 					if preValue, ok := existMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
-						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
+						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(utils.DataDigits).Float64()
 						calculateStatus = true
 						break
 					} else {
 						preDateDayStr := preDateDay.Format(utils.FormatDate)
 						if preValue, ok := existMap[preDateDayStr]; ok { //上一年同期->上一个月找到
-							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
+							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(utils.DataDigits).Float64()
 							calculateStatus = true
 							break
 						} else {
@@ -1370,7 +1370,7 @@ func getCalculateNhccData(secondDataList []*EdbInfoSearchData, ruleConf RuleLine
 		bDecimal := decimal.NewFromFloat(b)
 		for _, aData := range aDataList {
 			xDecimal := decimal.NewFromFloat(aData.Value)
-			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
+			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(utils.DataDigits).Float64()
 			newBDataMap[aData.DataTime] = val
 		}
 
@@ -1425,7 +1425,7 @@ func GetChartPredictEdbInfoDataListByRuleNAnnualAverage(edbInfoId int, configVal
 		if tmpHistoryValNum != len(yearList) {
 			continue
 		}
-		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).Round(4).Float64()
+		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).Round(utils.DataDigits).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -1616,12 +1616,12 @@ func GetChartPredictEdbInfoDataListByRuleAnnualValueInversion(edbInfoId int, con
 			surplusN := decimal.NewFromInt(int64(subDay2 - subDay)).Div(decimal.NewFromInt(int64(subDay))).Mul(decimal.NewFromInt(int64(currYearN)))
 			// 剩余余额
 			balance := decimal.NewFromFloat(annualValueInversionConf.Value).Sub(decimal.NewFromFloat(currYearVal))
-			averageVal, _ = balance.Div(surplusN).Round(4).Float64()
+			averageVal, _ = balance.Div(surplusN).Round(utils.DataDigits).Float64()
 
 		}
 
 		// 保留四位小数
-		averageVal, _ = decimal.NewFromFloat(averageVal).Round(4).Float64()
+		averageVal, _ = decimal.NewFromFloat(averageVal).Round(utils.DataDigits).Float64()
 
 		for k, currentDate := range dayList {
 			currentDateStr := currentDate.Format(utils.FormatDate)
@@ -1766,7 +1766,7 @@ func GetChartPredictEdbInfoDataListByRuleAnnualValueInversion(edbInfoId int, con
 	//fmt.Printf("同比年份的余额%.4f\n", avg)
 	// 同比增速=当年余额/同比年份上一期日期的余额
 	tbVal := decimal.NewFromFloat(currYearBalance).Div(decimal.NewFromFloat(avg))
-	/*tbVal11, _ := tbVal.Round(4).Float64()
+	/*tbVal11, _ := tbVal.Round(utils.DataDigits).Float64()
 	fmt.Printf("同比增速%.4f\n", tbVal11)*/
 	//(同比增速=余额/同比年份相应日期的余额的平均值,预测值等于同比年份同期值*同比增速);
 	for k, currentDate := range dayList {
@@ -1795,7 +1795,7 @@ func GetChartPredictEdbInfoDataListByRuleAnnualValueInversion(edbInfoId int, con
 		lastDateVal := valSum / float64(len(yearList))
 
 		//预测值 = 同比年份同期值*同比增速
-		tmpVal, _ := decimal.NewFromFloat(lastDateVal).Mul(tbVal).Round(4).Float64()
+		tmpVal, _ := decimal.NewFromFloat(lastDateVal).Mul(tbVal).Round(utils.DataDigits).Float64()
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
 			EdbDataId: edbInfoId + 100000 + index + k,

+ 5 - 5
utils/calculate.go

@@ -118,8 +118,8 @@ func ComputeCorrelation(sList []Coordinate) (r float64) {
 		decimalX = decimalX.Add(decimal.NewFromFloat(coordinate.X))
 		decimalY = decimalY.Add(decimal.NewFromFloat(coordinate.Y))
 	}
-	xBar, _ = decimalX.Div(decimal.NewFromInt(int64(lenSList))).Round(4).Float64()
-	yBar, _ = decimalY.Div(decimal.NewFromInt(int64(lenSList))).Round(4).Float64()
+	xBar, _ = decimalX.Div(decimal.NewFromInt(int64(lenSList))).Round(DataDigits).Float64()
+	yBar, _ = decimalY.Div(decimal.NewFromInt(int64(lenSList))).Round(DataDigits).Float64()
 	//fmt.Println(xBar)
 	//fmt.Println(yBar)
 
@@ -142,7 +142,7 @@ func ComputeCorrelation(sList []Coordinate) (r float64) {
 		r = 1
 		return
 	}
-	sqrtVal, _ := varXDeci.Mul(varYDeci).Round(4).Float64()
+	sqrtVal, _ := varXDeci.Mul(varYDeci).Round(DataDigits).Float64()
 	//fmt.Println("sqrtVal:", sqrtVal)
 	sst := math.Sqrt(sqrtVal) // 平方根
 	//fmt.Println("sst:", sst)
@@ -150,7 +150,7 @@ func ComputeCorrelation(sList []Coordinate) (r float64) {
 	if sst == 0 {
 		return
 	}
-	r, _ = ssrDeci.Div(decimal.NewFromFloat(sst)).Round(4).Float64()
+	r, _ = ssrDeci.Div(decimal.NewFromFloat(sst)).Round(DataDigits).Float64()
 
 	return
 }
@@ -158,7 +158,7 @@ func ComputeCorrelation(sList []Coordinate) (r float64) {
 // CalculationDecisive 通过一组数据获取决定系数R2
 func CalculationDecisive(sList []Coordinate) (r2 float64) {
 	r := ComputeCorrelation(sList)
-	r2, _ = decimal.NewFromFloat(r).Mul(decimal.NewFromFloat(r)).Round(4).Float64()
+	r2, _ = decimal.NewFromFloat(r).Mul(decimal.NewFromFloat(r)).Round(DataDigits).Float64()
 
 	return
 }

+ 3 - 0
utils/constants.go

@@ -365,6 +365,9 @@ const (
 // MultiAddNum 批量插入的数据量
 const MultiAddNum = 500
 
+// DataDigits 指标数据保留小数点后位数
+const DataDigits = 8
+
 const (
 	DbDriverByMysql = "mysql"
 	DbDriverByDm    = "dm"