Преглед изворни кода

Merge branch 'eta_bug_7104_residual_1231@guomengyuan' into debug

gmy пре 2 месеци
родитељ
комит
d484a55b85

+ 17 - 3
controllers/residual_analysis/residual_analysis_controller.go

@@ -81,15 +81,29 @@ func (this *ResidualAnalysisController) ContrastPreview() {
 		return
 	}
 
-	IndexCode := this.GetString("IndexCode")
-	if IndexCode == "" {
+	indexCode := this.GetString("IndexCode")
+	if indexCode == "" {
 		br.Ret = 403
 		br.Msg = "IndexCode不能为空"
 		br.ErrMsg = "IndexCode不能为空"
 		return
 	}
+	startTime := this.GetString("StartTime")
+	if startTime == "" {
+		br.Ret = 403
+		br.Msg = "StartTime不能为空"
+		br.ErrMsg = "StartTime不能为空"
+		return
+	}
+	endTime := this.GetString("EndTime")
+	if endTime == "" {
+		br.Ret = 403
+		br.Msg = "EndTime不能为空"
+		br.ErrMsg = "EndTime不能为空"
+		return
+	}
 
-	resp, err := residual_analysis_service.ContrastPreview(IndexCode)
+	resp, err := residual_analysis_service.ContrastPreview(indexCode, startTime, endTime)
 	if err != nil {
 		return
 	}

+ 9 - 0
models/residual_analysis_model/calculate_residual_analysis_config.go

@@ -112,6 +112,15 @@ type ResidualAnalysisChartEdbInfoMapping struct {
 	MinValue            float64 `description:"最小值"`
 	MaxValue            float64 `description:"最大值"`
 	DataList            interface{}
+
+	LeftIndexMin     float64 `description:"指标A左侧下限"`
+	LeftIndexMax     float64 `description:"指标A左侧上限"`
+	RightIndexMin    float64 `description:"指标B右侧下限"`
+	RightIndexMax    float64 `description:"指标B右侧上限"`
+	ResidualIndexMin float64 `description:"残差指标下限"`
+	ResidualIndexMax float64 `description:"残差指标上限"`
+	ContrastIndexMin float64 `description:"对比指标下限"`
+	ContrastIndexMax float64 `description:"对比指标上限"`
 }
 
 type ResidualAnalysisIndexSaveReq struct {

+ 24 - 2
services/residual_analysis_service/residual_analysis_service.go

@@ -237,17 +237,31 @@ func fillResidualChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbI
 			mappingEdb[i].IsAxis = 1
 			mappingEdb[i].ChartColor = `#00F`
 			mappingEdb[i].IsOrder = false
+			mappingEdb[i].ChartWidth = 3
 			mappingEdb[i].MinValue = indexMin
 			mappingEdb[i].MaxValue = indexMax
 		} else {
 			mappingEdb[i].IsAxis = 0
 			mappingEdb[i].ChartColor = `#F00`
+			mappingEdb[i].ChartWidth = 1
 		}
 	}
+	reverse(mappingEdb)
 
 	return mappingEdb, R2, nil
 }
 
+// 双指针法
+func reverse(slice []residual_analysis_model.ResidualAnalysisChartEdbInfoMapping) {
+	left, right := 0, len(slice)-1
+	for left < right {
+		// 交换元素
+		slice[left], slice[right] = slice[right], slice[left]
+		left++
+		right--
+	}
+}
+
 func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbInfoMappingA *data_manage.ChartEdbInfoMapping, edbInfoMappingB *data_manage.ChartEdbInfoMapping, originalEdbList []residual_analysis_model.ResidualAnalysisChartEdbInfoMapping, indexADataMap map[string]*data_manage.EdbDataList, startDate string, endDate string, fullADataList []*data_manage.EdbDataList, fullBDataList []*data_manage.EdbDataList) ([]residual_analysis_model.ResidualAnalysisChartEdbInfoMapping, float64, float64, float64, error) {
 	// 计算公式:Y=aX+b,Y为映射后的指标,X为自变量指标
 	// 正序:a=(L2-L1)/(R2-R1)	b=L2-R2*a
@@ -511,6 +525,14 @@ func fillOriginalChart(req residual_analysis_model.ResidualAnalysisReq, mappingL
 		edbInfoMapping.ChartColor = `#00F`
 		edbInfoMapping.ChartWidth = 3
 		edbInfoMapping.EdbName = v.EdbName
+		edbInfoMapping.LeftIndexMin = req.LeftIndexMin
+		edbInfoMapping.LeftIndexMax = req.LeftIndexMax
+		edbInfoMapping.RightIndexMin = req.RightIndexMin
+		edbInfoMapping.RightIndexMax = req.RightIndexMax
+		edbInfoMapping.ResidualIndexMin = req.ResidualIndexMin
+		edbInfoMapping.ResidualIndexMax = req.ResidualIndexMax
+		edbInfoMapping.ContrastIndexMin = req.ContrastIndexMin
+		edbInfoMapping.ContrastIndexMax = req.ContrastIndexMax
 
 		// 获取图表中的指标数据
 		dataList, err := data_manage.GetEdbDataList(v.Source, v.SubSource, v.EdbInfoId, startDate, endDate)
@@ -579,7 +601,7 @@ func fillOriginalChart(req residual_analysis_model.ResidualAnalysisReq, mappingL
 	return originalEdbList, fullADataList, fullBDataList, nil
 }
 
-func ContrastPreview(indexCode string) (residual_analysis_model.ResidualAnalysisChartEdbInfoMapping, error) {
+func ContrastPreview(indexCode string, startTime string, endTime string) (residual_analysis_model.ResidualAnalysisChartEdbInfoMapping, error) {
 	var condition string
 	var pars []interface{}
 
@@ -596,7 +618,7 @@ func ContrastPreview(indexCode string) (residual_analysis_model.ResidualAnalysis
 		return residual_analysis_model.ResidualAnalysisChartEdbInfoMapping{}, fmt.Errorf("指标不存在")
 	}
 
-	dataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, "", "")
+	dataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, startTime, endTime)
 
 	var resp residual_analysis_model.ResidualAnalysisChartEdbInfoMapping
 	resp.EdbInfoId = edbInfo.EdbInfoId