Browse Source

fix:之前的指标数据入库如果是小于8位,那就都改成8位,超过的就不变了

Roc 3 weeks ago
parent
commit
aae420a6dd

+ 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

@@ -516,7 +516,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

+ 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
@@ -502,7 +502,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

+ 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
 }

+ 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
 }

+ 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)

+ 1 - 1
models/edb_data_calculate_percentile.go

@@ -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)

+ 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
 }

+ 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

+ 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

+ 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)

+ 3 - 0
utils/constants.go

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