Browse Source

残差分析-保存

gmy 3 tháng trước cách đây
mục cha
commit
f51531cc6d

+ 4 - 2
models/residual_analysis_model/calculate_residual_analysis_config.go

@@ -129,6 +129,7 @@ type ResidualAnalysisIndexSaveReq struct {
 	ClassifyId   int                       `description:"分类id"`
 	ConfigId     int                       `description:"残差配置id"`
 	ResidualType int                       `orm:"column(residual_type)" description:"残差类型: 1-映射残差 2-拟合残差"`
+	IndexType    int                       `orm:"column(index_type)" description:"指标类型:1-映射指标 2-残差指标 3-因变量指标 4-自变量指标"`
 	DataList     []edbDataResidualAnalysis `description:"指标数据"`
 }
 
@@ -153,8 +154,9 @@ type ResidualAnalysisConfigVo struct {
 
 // ResidualAnalysisDetailResp 详情响应接口
 type ResidualAnalysisDetailResp struct {
-	ConfigInfo  *CalculateResidualAnalysisConfig
-	EdbInfoList []*data_manage.EdbInfoList
+	ConfigInfo          *CalculateResidualAnalysisConfig
+	EdbInfoList         []*data_manage.EdbInfoList
+	OriginalEdbInfoList []*data_manage.EdbInfoList
 }
 
 // GetResidualAnalysisConfigById 根据配置id查询配置信息

+ 1 - 0
models/residual_analysis_model/calculate_residual_analysis_config_mapping.go

@@ -10,6 +10,7 @@ type CalculateResidualAnalysisConfigMapping struct {
 	CalculateResidualAnalysisConfigId        int       `orm:"column(calculate_residual_analysis_config_id)" description:"残差分析配置id"`
 	EdbInfoId                                int64     `orm:"column(edb_info_id)" description:"指标id"`
 	ResidualType                             int       `orm:"column(residual_type)" description:"残差类型: 1-映射残差 2-拟合残差"`
+	IndexType                                int       `orm:"column(index_type)" description:"指标类型:1-映射指标 2-残差指标 3-因变量指标 4-自变量指标"`
 	CreateTime                               time.Time `orm:"column(create_time)" description:"创建时间"`
 	ModifyTime                               time.Time `orm:"column(modify_time)" description:"修改时间"`
 }

+ 21 - 10
services/residual_analysis_service/residual_analysis_service.go

@@ -332,9 +332,9 @@ func fillOriginalChart(req residual_analysis_model.ResidualAnalysisReq, mappingL
 			edbInfoMapping.ChartColor = `#F00`
 			edbInfoMapping.ChartWidth = 1
 
-			edbInfoMappingB.DataList = dataList
+			edbInfoMappingB.DataList = append([]*data_manage.EdbDataList(nil), dataList...)
 		} else {
-			edbInfoMappingA.DataList = dataList
+			edbInfoMappingA.DataList = append([]*data_manage.EdbDataList(nil), dataList...)
 		}
 		edbInfoMapping.EdbInfoId = v.EdbInfoId
 		edbInfoMapping.EdbName = v.EdbName
@@ -439,12 +439,26 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 		}
 	}
 
+	// 更新保存指标和配置的映射关系
+	mappingList, err := residual_analysis_model.GetConfigMappingListByConfigId(req.ConfigId)
+	if err != nil {
+		return err
+	}
+
+	// 判断是更新还是修改 看指标配置映射中,是否存在对应指标 存在 则更新 不存在 则新增
+	var edbInfoMapping residual_analysis_model.CalculateResidualAnalysisConfigMapping
+	for _, mapping := range mappingList {
+		if req.IndexType == mapping.IndexType && req.IndexType != 0 {
+			edbInfoMapping = mapping
+		}
+	}
+
 	var edbInfoId int64
 	var edbCode string
 	// 更新or新增
-	if req.EdbCode != "" {
+	if edbInfoMapping.EdbInfoId > 0 {
 		// 查询指标库指标
-		edbInfo, err := data_manage.GetEdbInfoByEdbCode(req.Source, req.EdbCode)
+		edbInfo, err := data_manage.GetEdbInfoById(int(edbInfoMapping.EdbInfoId))
 		if err != nil {
 			return err
 		}
@@ -519,12 +533,6 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 		return err
 	}
 
-	// 更新保存指标和配置的映射关系
-	mappingList, err := residual_analysis_model.GetConfigMappingListByConfigId(req.ConfigId)
-	if err != nil {
-		return err
-	}
-
 	var indexMap map[int64]residual_analysis_model.CalculateResidualAnalysisConfigMapping
 	for _, mapping := range mappingList {
 		indexMap[mapping.EdbInfoId] = mapping
@@ -535,6 +543,7 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 			CalculateResidualAnalysisConfigId: req.ConfigId,
 			EdbInfoId:                         edbInfoId,
 			ResidualType:                      req.ResidualType,
+			IndexType:                         req.IndexType,
 			CreateTime:                        time.Now(),
 			ModifyTime:                        time.Now(),
 		})
@@ -547,6 +556,7 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 			CalculateResidualAnalysisConfigId: req.ConfigId,
 			EdbInfoId:                         int64(req.EdbInfoIdA),
 			ResidualType:                      req.ResidualType,
+			IndexType:                         0,
 			CreateTime:                        time.Now(),
 			ModifyTime:                        time.Now(),
 		})
@@ -559,6 +569,7 @@ func SaveResidualAnalysis(req residual_analysis_model.ResidualAnalysisIndexSaveR
 			CalculateResidualAnalysisConfigId: req.ConfigId,
 			EdbInfoId:                         int64(req.EdbInfoIdA),
 			ResidualType:                      req.ResidualType,
+			IndexType:                         0,
 			CreateTime:                        time.Now(),
 			ModifyTime:                        time.Now(),
 		})