浏览代码

Merge branch 'bugfix_8200' into debug

kobe6258 2 天之前
父节点
当前提交
1d5c507344
共有 1 个文件被更改,包括 20 次插入5 次删除
  1. 20 5
      models/edb_data_residual_analysis.go

+ 20 - 5
models/edb_data_residual_analysis.go

@@ -391,7 +391,12 @@ func fillMappingChartInfo(config ResidualAnalysisConfig, req *EdbInfo, edbInfoMa
 	}
 
 	dataList := edbInfoMappingB.DataList
+	sort.Sort(ByDataTime(dataList))
+	for _, indexData := range dataList {
+		fmt.Printf("%s--%s\n", indexData.Value, indexData.DataTime)
+	}
 
+	fmt.Println("========================================================================================================")
 	// 指标B数据补充
 	// 新建一个切片来保存补充的数据
 	var replenishDataList []*EdbData
@@ -425,7 +430,13 @@ func fillMappingChartInfo(config ResidualAnalysisConfig, req *EdbInfo, edbInfoMa
 
 	// 排序
 	sort.Sort(ByDataTime(dataList))
+	// 排序
+	sort.Sort(ByDataTime(dataList))
+	for _, indexData := range dataList {
+		fmt.Printf("%s--%s\n", indexData.Value, indexData.DataTime)
+	}
 
+	fmt.Println("========================================================================================================")
 	// 拟合残差 计算a,b
 	var coordinateList []utils.Coordinate
 	var replenishADataList []*EdbDataList
@@ -525,7 +536,9 @@ func fillMappingChartInfo(config ResidualAnalysisConfig, req *EdbInfo, edbInfoMa
 
 	// 填充映射指标值 使得时间长度一致
 	dataList = FillDataBList(dataList, edbInfoMappingA)
-
+	for _, indexData := range dataList {
+		fmt.Printf("%s--%s\n", indexData.Value, indexData.DataTime)
+	}
 	// 根据指标A的时间key,在B的映射指标中筛选出对应的值
 	var dataBList []*EdbDataList
 
@@ -539,9 +552,10 @@ func fillMappingChartInfo(config ResidualAnalysisConfig, req *EdbInfo, edbInfoMa
 				indexDataCopy := *indexData
 
 				// 计算指标B映射值
-				f, _ := strconv.ParseFloat(indexData.Value, 64)
-				indexDataCopy.Value = fmt.Sprintf("%f", math.Round((a*f+b)*10000)/10000)
-
+				//f, _ := strconv.ParseFloat(indexData.Value, 64)
+				f, _ := decimal.NewFromString(indexData.Value)
+				indexDataCopy.Value = fmt.Sprintf("%f", math.Round((a*f.InexactFloat64()+b)*10000)/10000)
+				//fmt.Printf("%s--%s%s\n", indexData.Value, indexDataCopy.Value, indexData.DataTime)
 				// 比较最大值
 				if indexData.Value > indexMax {
 					indexMax = indexData.Value
@@ -592,6 +606,7 @@ func FillDataBList(dataList []*EdbData, edbInfoMappingA *EdbInfoList) []*EdbData
 	dataAList := edbInfoMappingA.DataList
 
 	if len(dataList) > 0 && len(dataAList) > 0 {
+		fmt.Println("len(dataList):", len(dataList), "len(dataAList):", len(dataAList))
 		for utils.StringToTime(dataList[len(dataList)-1].DataTime).Before(utils.StringToTime(dataAList[len(dataAList)-1].DataTime)) {
 			// 使用A的时间填充时间差
 			timeDiff := utils.GetNextDayN(dataList[len(dataList)-1].DataTime, 1)
@@ -637,7 +652,7 @@ func fillOriginalChart(config ResidualAnalysisConfig, req *EdbInfo, mappingList
 					return nil, nil, nil, fmt.Errorf("领先值不能小于0")
 				} else if config.LeadValue > 0 {
 					edbInfoMapping.EdbName = v.EdbName + "(领先" + strconv.Itoa(config.LeadValue) + config.LeadFrequency + ")"
-					for _, indexData := range dataList {
+					for _, indexData := range data {
 						switch config.LeadFrequency {
 						case "天":
 							indexData.DataTime = utils.GetNextDayN(indexData.DataTime, config.LeadValue)