Browse Source

校验残差指标是否存在

gmy 5 months ago
parent
commit
6463e5fdd5

+ 41 - 0
controllers/residual_analysis/residual_analysis.go

@@ -229,3 +229,44 @@ func (this *ResidualAnalysisController) ResidualAnalysisDetail() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// CheckResidualAnalysisExist
+// @Title 校验残差指标是否存在
+// @Description 校验残差指标是否存在
+// @Success 200 {object}
+// @router /check/residual/analysis/exist [get]
+func (this *ResidualAnalysisController) CheckResidualAnalysisExist() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	configId, err := this.GetInt("ConfigId")
+	if err != nil {
+		br.Msg = "EdbInfoId参数异常!"
+		br.ErrMsg = "EdbInfoId参数解析失败,Err:" + err.Error()
+	}
+	if configId <= 0 {
+		br.Msg = "ConfigId参数异常!"
+		br.ErrMsg = "ConfigId参数异常!"
+	}
+
+	resp, err := residual_analysis_service.CheckResidualAnalysisExist(configId)
+	if err != nil {
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 9 - 0
routers/commentsRouter.go

@@ -7486,6 +7486,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/residual_analysis:ResidualAnalysisController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/residual_analysis:ResidualAnalysisController"],
+        beego.ControllerComments{
+            Method: "CheckResidualAnalysisExist",
+            Router: `/check/residual/analysis/exist`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/residual_analysis:ResidualAnalysisController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/residual_analysis:ResidualAnalysisController"],
         beego.ControllerComments{
             Method: "ContrastPreview",

+ 60 - 0
services/residual_analysis_service/residual_analysis_service.go

@@ -606,10 +606,18 @@ func ResidualAnalysisDetail(edbInfoId int) (residual_analysis_model.ResidualAnal
 
 	var edbInfoIdList []int64
 	var edbInfoMap = make(map[int64]residual_analysis_model.CalculateResidualAnalysisConfigMapping)
+	var mappgingFlag = false
+	var residualFlag = false
 	for _, v := range configMappingList {
 		edbInfoIdList = append(edbInfoIdList, v.EdbInfoId)
 
 		edbInfoMap[v.EdbInfoId] = v
+
+		if v.IndexType == 1 {
+			mappgingFlag = true
+		} else if v.IndexType == 2 {
+			residualFlag = true
+		}
 	}
 
 	condition = ""
@@ -632,6 +640,8 @@ func ResidualAnalysisDetail(edbInfoId int) (residual_analysis_model.ResidualAnal
 	}
 
 	var edbInfoListResp []*residual_analysis_model.DetailEdbInfoList
+	var dependentEdbInfo residual_analysis_model.DetailEdbInfoList
+	var independentEdbInfo residual_analysis_model.DetailEdbInfoList
 	for _, edbInfo := range edbInfoList {
 		var indexType int
 		if _, ok := edbInfoMap[int64(edbInfo.EdbInfoId)]; ok {
@@ -654,6 +664,39 @@ func ResidualAnalysisDetail(edbInfoId int) (residual_analysis_model.ResidualAnal
 			ClassifyId:  edbInfo.ClassifyId,
 		}
 		edbInfoListResp = append(edbInfoListResp, &info)
+
+		if indexType == 3 {
+			dependentEdbInfo = info
+		} else if indexType == 4 {
+			independentEdbInfo = info
+		}
+	}
+
+	// 补充表格中 映射指标或者残差指标
+	if mappgingFlag && !residualFlag {
+		info := residual_analysis_model.DetailEdbInfoList{
+			IndexType:   2,
+			EdbName:     independentEdbInfo.EdbName + "映射残差/" + dependentEdbInfo.EdbName,
+			EdbNameEn:   dependentEdbInfo.EdbNameEn,
+			Unit:        dependentEdbInfo.Unit,
+			UnitEn:      dependentEdbInfo.UnitEn,
+			Frequency:   dependentEdbInfo.Frequency,
+			FrequencyEn: dependentEdbInfo.FrequencyEn,
+			ClassifyId:  dependentEdbInfo.ClassifyId,
+		}
+		edbInfoListResp = append(edbInfoListResp, &info)
+	} else if !mappgingFlag && residualFlag {
+		info := residual_analysis_model.DetailEdbInfoList{
+			IndexType:   1,
+			EdbName:     dependentEdbInfo.EdbName + "映射" + independentEdbInfo.EdbName,
+			EdbNameEn:   dependentEdbInfo.EdbNameEn,
+			Unit:        dependentEdbInfo.Unit,
+			UnitEn:      dependentEdbInfo.UnitEn,
+			Frequency:   dependentEdbInfo.Frequency,
+			FrequencyEn: dependentEdbInfo.FrequencyEn,
+			ClassifyId:  dependentEdbInfo.ClassifyId,
+		}
+		edbInfoListResp = append(edbInfoListResp, &info)
 	}
 
 	resp := residual_analysis_model.ResidualAnalysisDetailResp{
@@ -728,3 +771,20 @@ func SaveResidualAnalysisConfig(req residual_analysis_model.ResidualAnalysisReq,
 
 	return configId, nil
 }
+
+func CheckResidualAnalysisExist(configId int) (int64, error) {
+
+	configMappingList, err := residual_analysis_model.GetConfigMappingListByConfigId(configId)
+	if err != nil {
+		return 0, err
+	}
+
+	var configMapping residual_analysis_model.CalculateResidualAnalysisConfigMapping
+	for _, mapping := range configMappingList {
+		if mapping.IndexType == 2 {
+			configMapping = mapping
+		}
+	}
+
+	return configMapping.EdbInfoId, nil
+}