Bläddra i källkod

残差指标 存es - 指标溯源

gmy 2 månader sedan
förälder
incheckning
0754e4fdb4
1 ändrade filer med 45 tillägg och 30 borttagningar
  1. 45 30
      services/residual_analysis_service/residual_analysis_service.go

+ 45 - 30
services/residual_analysis_service/residual_analysis_service.go

@@ -635,11 +635,12 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 		return err
 	}
 
-	// 获取指标数据最大值 最小值 最后更新时间 最后更新时间对应的值
+	// 获取指标数据最大值 最小值 最后更新时间 最后更新时间对应的值 开始时间 最后时间
 	var indexMax, indexMin, indexLatestValue float64
-	var indexLatestDate string
+	var indexLatestDate, startDate string
 	if len(req.DataList) > 0 {
 		latestTime, _ := time.Parse(utils.YearMonthDay, req.DataList[0].DataTime)
+		firstTime, _ := time.Parse(utils.YearMonthDay, req.DataList[0].DataTime)
 		for _, data := range req.DataList {
 			// 比较最大值
 			if data.Value > indexMax {
@@ -664,6 +665,12 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 				indexLatestDate = data.DataTime
 				indexLatestValue = data.Value
 			}
+
+			// 取最小时间
+			if currentTime.Before(firstTime) {
+				firstTime = currentTime
+				startDate = data.DataTime
+			}
 		}
 	}
 
@@ -701,6 +708,8 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 		}
 
 		// 须补充更新指标最大值,最小值,数据最新时间,数据最新值
+		edbInfo.StartDate = startDate
+		edbInfo.EndDate = indexLatestDate
 		edbInfo.MaxValue = indexMax
 		edbInfo.MinValue = indexMin
 		edbInfo.LatestDate = indexLatestDate
@@ -770,6 +779,40 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 		if err != nil {
 			return err
 		}
+
+		// 保存溯源信息
+		{
+			fromEdbInfoList, err := data_manage.GetEdbInfoByIdList([]int{req.EdbInfoIdA, req.EdbInfoIdB})
+			if err != nil {
+				return fmt.Errorf("获取失败")
+			}
+
+			edbCalculateMappingInfoList := make([]*data_manage.EdbInfoCalculateMapping, 0, len(fromEdbInfoList))
+
+			for _, fromEdbInfo := range fromEdbInfoList {
+				// 创建新对象并直接使用指针
+				edbCalculateMappingInfo := &data_manage.EdbInfoCalculateMapping{
+					EdbInfoId:      int(edbInfoId),
+					Source:         req.Source,
+					SourceName:     "残差分析",
+					EdbCode:        edbCode,
+					FromEdbInfoId:  fromEdbInfo.EdbInfoId,
+					FromEdbCode:    fromEdbInfo.EdbCode,
+					FromEdbName:    fromEdbInfo.EdbName,
+					FromSource:     fromEdbInfo.Source,
+					FromSourceName: fromEdbInfo.SourceName,
+					CreateTime:     time.Now(),
+					ModifyTime:     time.Now(),
+				}
+
+				edbCalculateMappingInfoList = append(edbCalculateMappingInfoList, edbCalculateMappingInfo)
+			}
+
+			err = data_manage.AddEdbInfoCalculateMappingMulti(edbCalculateMappingInfoList)
+			if err != nil {
+				return fmt.Errorf("保存溯源信息失败,Err:" + err.Error())
+			}
+		}
 	}
 
 	// 新增数据
@@ -816,34 +859,6 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 		}
 	}
 
-	// 保存溯源信息
-	{
-		fromEdbInfo, err := data_manage.GetEdbInfoById(int(edbInfoId))
-		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
-				return fmt.Errorf("指标不存在,err:" + err.Error())
-			}
-			return fmt.Errorf("获取失败")
-		}
-
-		edbCalculateMappingInfo := new(data_manage.EdbInfoCalculateMapping)
-		edbCalculateMappingInfo.EdbInfoId = int(edbInfoId)
-		edbCalculateMappingInfo.Source = req.Source
-		edbCalculateMappingInfo.SourceName = "残差分析"
-		edbCalculateMappingInfo.EdbCode = edbCode
-		edbCalculateMappingInfo.FromEdbInfoId = fromEdbInfo.EdbInfoId
-		edbCalculateMappingInfo.FromEdbCode = fromEdbInfo.EdbCode
-		edbCalculateMappingInfo.FromEdbName = fromEdbInfo.EdbName
-		edbCalculateMappingInfo.FromSource = fromEdbInfo.Source
-		edbCalculateMappingInfo.FromSourceName = fromEdbInfo.SourceName
-		edbCalculateMappingInfo.CreateTime = time.Now()
-		edbCalculateMappingInfo.ModifyTime = time.Now()
-		err = edbCalculateMappingInfo.Insert()
-		if err != nil {
-			return fmt.Errorf("保存溯源信息失败,Err:" + err.Error())
-		}
-	}
-
 	//添加es
 	data.AddOrEditEdbInfoToEs(int(edbInfoId))