Selaa lähdekoodia

区间分析保存指标

xyxie 6 kuukautta sitten
vanhempi
commit
829dfa8dfd

+ 83 - 38
controllers/data_manage/range_analysis/chart_info.go

@@ -1388,7 +1388,6 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 		Success: make([]data_manage.BatchEdbInfoCalculateBatchSaveSuccessResp, 0),
 	}
 	// 普通指标批量新增\批量编辑
-	var saveReq data_manage.BatchEdbInfoCalculateBatchSaveReq
 	calculateEdbList := make([]data_manage.BatchEdbInfoCalculateBatchSaveSuccessResp, 0)
 	addReqEdbList := make([]*data_manage.CalculateEdbInfoItem, 0)
 	editReqEdbList := make([]*data_manage.CalculateEdbInfoItem, 0)
@@ -1460,56 +1459,102 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 		return
 	}
 	if req.EdbInfoType == 0 { //普通指标
-		saveReq.Source = utils.DATA_SOURCE_CALCULATE_RANGEANLYSIS
-		saveReq.CalculateFormula = extraConfig
-		saveReq.AdminId = sysUser.AdminId
-		saveReq.AdminName = sysUser.RealName
-		if len(addReqEdbList) > 0 {
-			saveReq.EdbList = addReqEdbList
+		for _, v := range addReqEdbList {
+			req2 := &data_manage.EdbInfoCalculateBatchSaveReqByEdbLib{
+				AdminId:    sysUser.AdminId,
+				AdminName:  sysUser.RealName,
+				EdbInfoId:  v.EdbInfoId,
+				EdbName:    v.EdbName,
+				Frequency:  v.Frequency,
+				Unit:       v.Unit,
+				ClassifyId: v.ClassifyId,
+				//Formula:          v.Formula, //N数值移动平均计算、环比值、环差值
+				FromEdbInfoId:    v.FromEdbInfoId,
+				CalculateFormula: extraConfig,
+				Source:           utils.DATA_SOURCE_CALCULATE_RANGEANLYSIS,
+			}
+
 			// 调用指标库去更新
-			reqJson, err := json.Marshal(saveReq)
+			reqJson, err := json.Marshal(req2)
 			if err != nil {
 				br.Msg = "参数解析异常!"
 				br.ErrMsg = "参数解析失败,Err:" + err.Error()
 				return
 			}
-			respItem, err := data.BatchSaveEdbCalculateMultiData(string(reqJson), this.Lang)
-			if err != nil {
-				br.Msg = "新增失败!"
-				br.ErrMsg = "新增失败,Err:" + err.Error()
-				return
+			respItem, e := data.BatchSaveEdbCalculateData(string(reqJson), this.Lang)
+			if e != nil {
+				resp.Fail = append(resp.Fail, data_manage.BatchEdbInfoCalculateBatchSaveFailResp{
+					CalculateId: v.CalculateId,
+					Msg:         "新增失败!",
+					ErrMsg:      "新增失败,Err:" + e.Error(),
+				})
+				continue
 			}
 			if respItem.Ret != 200 {
-				br.Msg = respItem.Msg
-				br.ErrMsg = respItem.ErrMsg
-				return
+				resp.Fail = append(resp.Fail, data_manage.BatchEdbInfoCalculateBatchSaveFailResp{
+					CalculateId: v.CalculateId,
+					Msg:         respItem.Msg,
+					ErrMsg:      respItem.ErrMsg,
+				})
+				continue
 			}
-			resp = respItem.Data
-			calculateEdbList = respItem.Data.Success
+
+			calculateEdbList = append(calculateEdbList, data_manage.BatchEdbInfoCalculateBatchSaveSuccessResp{
+				CalculateId: v.CalculateId,
+				EdbInfoId:   respItem.Data.EdbInfoId,
+				UniqueCode:  respItem.Data.UniqueCode,
+				ClassifyId:  v.ClassifyId,
+			})
 		}
 
 		if len(editReqEdbList) > 0 {
-			saveReq.EdbList = editReqEdbList
-			// 调用指标库去更新
-			reqJson, err := json.Marshal(saveReq)
-			if err != nil {
-				br.Msg = "参数解析异常!"
-				br.ErrMsg = "参数解析失败,Err:" + err.Error()
-				return
-			}
-			respItem, err := data.BatchEditEdbCalculateMultiData(string(reqJson), this.Lang)
-			if err != nil {
-				br.Msg = "更新失败!"
-				br.ErrMsg = "更新失败,Err:" + err.Error()
-				return
-			}
-			if respItem.Ret != 200 {
-				br.Msg = respItem.Msg
-				br.ErrMsg = respItem.ErrMsg
-				return
+			for _, v := range editReqEdbList {
+				req2 := &data_manage.EdbInfoCalculateBatchEditReqByEdbLib{
+					AdminId:    sysUser.AdminId,
+					AdminName:  sysUser.RealName,
+					EdbInfoId:  v.EdbInfoId,
+					EdbName:    v.EdbName,
+					Frequency:  v.Frequency,
+					Unit:       v.Unit,
+					ClassifyId: v.ClassifyId,
+					//Formula:          v.Formula, //N数值移动平均计算、环比值、环差值
+					FromEdbInfoId:    v.FromEdbInfoId,
+					CalculateFormula: extraConfig,
+					Source:           utils.DATA_SOURCE_CALCULATE_RANGEANLYSIS,
+				}
+
+				// 调用指标库去更新
+				reqJson, err := json.Marshal(req2)
+				if err != nil {
+					br.Msg = "参数解析异常!"
+					br.ErrMsg = "参数解析失败,Err:" + err.Error()
+					return
+				}
+				respItem, e := data.BatchEditEdbCalculateData(string(reqJson), this.Lang)
+				if e != nil {
+					resp.Fail = append(resp.Fail, data_manage.BatchEdbInfoCalculateBatchSaveFailResp{
+						CalculateId: v.CalculateId,
+						Msg:         "新增失败!",
+						ErrMsg:      "新增失败,Err:" + e.Error(),
+					})
+					continue
+				}
+				if respItem.Ret != 200 {
+					resp.Fail = append(resp.Fail, data_manage.BatchEdbInfoCalculateBatchSaveFailResp{
+						CalculateId: v.CalculateId,
+						Msg:         respItem.Msg,
+						ErrMsg:      respItem.ErrMsg,
+					})
+					continue
+				}
+
+				calculateEdbList = append(calculateEdbList, data_manage.BatchEdbInfoCalculateBatchSaveSuccessResp{
+					CalculateId: v.CalculateId,
+					EdbInfoId:   respItem.Data.EdbInfoId,
+					UniqueCode:  respItem.Data.UniqueCode,
+					ClassifyId:  v.ClassifyId,
+				})
 			}
-			resp.Fail = append(resp.Fail, respItem.Data.Fail...)
-			calculateEdbList = append(calculateEdbList, respItem.Data.Success...)
 		}
 	} else if req.EdbInfoType == 1 {
 		// 预测指标

+ 18 - 17
models/data_manage/edb_info_calculate.go

@@ -255,23 +255,24 @@ type EdbInfoCalculateBatchSaveReqByEdbLib struct {
 
 // EdbInfoCalculateBatchEditReqByEdbLib 编辑计算指标的请求参数
 type EdbInfoCalculateBatchEditReqByEdbLib struct {
-	EdbName       string `description:"指标名称"`
-	Frequency     string `description:"频度"`
-	Unit          string `description:"单位"`
-	ClassifyId    int    `description:"分类id"`
-	AdminId       int    `description:"操作人id"`
-	AdminName     string `description:"操作人姓名"`
-	Formula       string `description:"N值"`
-	EdbInfoId     int    `description:"编辑指标id"`
-	FromEdbInfoId int    `description:"计算来源指标id"`
-	Source        int    `description:"来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,12:环比值,13:环差值,14:变频"`
-	MoveType      int    `description:"移动方式:1:领先(默认),2:滞后"`
-	MoveFrequency string `description:"移动频度:天/周/月/季/年"`
-	Calendar      string `description:"公历/农历"`
-	EdbInfoIdArr  []EdbInfoFromTag
-	Data          interface{} `description:"数据列"`
-	Extra         string      `description:"指标的额外配置"`
-	EmptyType     int         `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
+	EdbName          string `description:"指标名称"`
+	Frequency        string `description:"频度"`
+	Unit             string `description:"单位"`
+	ClassifyId       int    `description:"分类id"`
+	AdminId          int    `description:"操作人id"`
+	AdminName        string `description:"操作人姓名"`
+	Formula          string `description:"N值"`
+	EdbInfoId        int    `description:"编辑指标id"`
+	FromEdbInfoId    int    `description:"计算来源指标id"`
+	Source           int    `description:"来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,12:环比值,13:环差值,14:变频"`
+	MoveType         int    `description:"移动方式:1:领先(默认),2:滞后"`
+	MoveFrequency    string `description:"移动频度:天/周/月/季/年"`
+	Calendar         string `description:"公历/农历"`
+	EdbInfoIdArr     []EdbInfoFromTag
+	Data             interface{} `description:"数据列"`
+	Extra            string      `description:"指标的额外配置"`
+	EmptyType        int         `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
+	CalculateFormula string      `description:"计算公式"`
 }
 
 func GetEdbInfoCalculateMap(edbInfoId, source int) (list []*EdbInfo, err error) {