浏览代码

feat:提示优化

Roc 2 年之前
父节点
当前提交
a75aaf94c4
共有 5 个文件被更改,包括 25 次插入19 次删除
  1. 3 3
      logic/predict_edb.go
  2. 1 1
      models/edb_info.go
  3. 6 5
      models/predict_edb.go
  4. 4 4
      models/predict_edb_conf.go
  5. 11 6
      models/predict_edb_info_rule.go

+ 3 - 3
logic/predict_edb.go

@@ -376,7 +376,7 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName string, ruleList
 
 		predictEdbConfList = append(predictEdbConfList, tmpPredictEdbConf)
 	}
-	err = models.AddPredictEdb(edbInfo, calculateMappingList, predictEdbConfList, calculateRuleMap)
+	err, errMsg = models.AddPredictEdb(edbInfo, calculateMappingList, predictEdbConfList, calculateRuleMap)
 
 	return
 }
@@ -742,7 +742,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName string, ruleList []mo
 		predictEdbConfList = append(predictEdbConfList, tmpPredictEdbConf)
 	}
 
-	err = models.EditPredictEdb(edbInfo, updateEdbInfoCol, calculateMappingList, predictEdbConfList, calculateRuleMap)
+	err, errMsg = models.EditPredictEdb(edbInfo, updateEdbInfoCol, calculateMappingList, predictEdbConfList, calculateRuleMap)
 
 	return
 }
@@ -898,7 +898,7 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 				errMsg = "一元线性拟合规则信息未配置"
 				return
 			}
-			err = models.RefreshCalculateByRuleByLineNh(*edbInfo, predictEdbConfAndDataList, *v)
+			err, errMsg = models.RefreshCalculateByRuleByLineNh(*edbInfo, predictEdbConfAndDataList, *v)
 			if err != nil {
 				return
 			}

+ 1 - 1
models/edb_info.go

@@ -693,7 +693,7 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 					newNhccDataMap[v.DataTime] = v.Value
 				}
 			} else { //未生成的动态数据,需要使用外部传入的数据进行计算
-				newNhccDataMap, err = getCalculateNhccData(append(realPredictEdbInfoData, predictEdbInfoData...), ruleConf)
+				newNhccDataMap, err, _ = getCalculateNhccData(append(realPredictEdbInfoData, predictEdbInfoData...), ruleConf)
 			}
 
 			predictEdbInfoData, tmpMinValue, tmpMaxValue, err = GetChartPredictEdbInfoDataListByRuleLineNh(predictEdbConf.PredictEdbInfoId, dayList, realPredictEdbInfoData, predictEdbInfoData, newNhccDataMap, existMap)

+ 6 - 5
models/predict_edb.go

@@ -130,7 +130,7 @@ func CalculateByRuleBy9(to orm.TxOrmer, rule CalculateRule) (resultDataList []*E
 			continue
 		}
 
-		utils.FileLog.Info(fmt.Sprintf("formulaFormStr:%s", formulaFormStr))
+		//utils.FileLog.Info(fmt.Sprintf("formulaFormStr:%s", formulaFormStr))
 		expression := formula.NewExpression(formulaFormStr)
 		calResult, tmpErr := expression.Evaluate()
 		if tmpErr != nil {
@@ -221,7 +221,7 @@ func CalculateByRuleBy9(to orm.TxOrmer, rule CalculateRule) (resultDataList []*E
 }
 
 // RefreshCalculateByRuleByLineNh 刷新动态结果计算(线性拟合)
-func RefreshCalculateByRuleByLineNh(predictEdbInfo EdbInfo, predictEdbConfAndDataList []*PredictEdbConfAndData, rule PredictEdbConf) (err error) {
+func RefreshCalculateByRuleByLineNh(predictEdbInfo EdbInfo, predictEdbConfAndDataList []*PredictEdbConfAndData, rule PredictEdbConf) (err error, errMsg string) {
 	o := orm.NewOrm()
 	to, err := o.Begin()
 	if err != nil {
@@ -237,12 +237,12 @@ func RefreshCalculateByRuleByLineNh(predictEdbInfo EdbInfo, predictEdbConfAndDat
 			err = to.Commit()
 		}
 	}()
-	err = CalculateByRuleByRuleLineNh(to, predictEdbInfo, predictEdbConfAndDataList, rule)
+	err, errMsg = CalculateByRuleByRuleLineNh(to, predictEdbInfo, predictEdbConfAndDataList, rule)
 	return
 }
 
 // CalculateByRuleByRuleLineNh 一元线性拟合规则计算入库
-func CalculateByRuleByRuleLineNh(to orm.TxOrmer, predictEdbInfo EdbInfo, predictEdbConfAndDataList []*PredictEdbConfAndData, rule PredictEdbConf) (err error) {
+func CalculateByRuleByRuleLineNh(to orm.TxOrmer, predictEdbInfo EdbInfo, predictEdbConfAndDataList []*PredictEdbConfAndData, rule PredictEdbConf) (err error, errMsg string) {
 	var secondDataList []*EdbInfoSearchData
 	predictEdbInfoId := predictEdbInfo.EdbInfoId // 预测指标id
 
@@ -250,6 +250,7 @@ func CalculateByRuleByRuleLineNh(to orm.TxOrmer, predictEdbInfo EdbInfo, predict
 	var ruleConf RuleLineNhConf
 	tmpErr := json.Unmarshal([]byte(rule.Value), &ruleConf)
 	if tmpErr != nil {
+		errMsg = `季节性配置信息异常`
 		err = errors.New("季节性配置信息异常:" + tmpErr.Error())
 		return
 	}
@@ -276,7 +277,7 @@ func CalculateByRuleByRuleLineNh(to orm.TxOrmer, predictEdbInfo EdbInfo, predict
 		return
 	}
 
-	newNhccDataMap, err := getCalculateNhccData(secondDataList, ruleConf)
+	newNhccDataMap, err, errMsg := getCalculateNhccData(secondDataList, ruleConf)
 	if err != nil {
 		return
 	}

+ 4 - 4
models/predict_edb_conf.go

@@ -143,7 +143,7 @@ func AddPredictEdbConf(item *PredictEdbConf) (lastId int64, err error) {
 
 // AddPredictEdb 添加预测指标
 // edbInfo, calculateMappingList, predictEdbConfList,calculateRule9List,trendsMappingList
-func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMapping, predictEdbConfList []*PredictEdbConf, calculateRuleMap map[int]CalculateRule) (err error) {
+func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMapping, predictEdbConfList []*PredictEdbConf, calculateRuleMap map[int]CalculateRule) (err error, errMsg string) {
 	o := orm.NewOrm()
 	tx, err := o.Begin()
 	if err != nil {
@@ -223,7 +223,7 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 			calculateRule.EdbInfoId = v.PredictEdbInfoId
 
 			// 指标与规则的动态数据(拟合数据)生成入库
-			err = CalculateByRuleByRuleLineNh(tx, *item, predictEdbConfAndDataList, *v)
+			err, errMsg = CalculateByRuleByRuleLineNh(tx, *item, predictEdbConfAndDataList, *v)
 			if err != nil {
 				return
 			}
@@ -262,7 +262,7 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 }
 
 // EditPredictEdb 修改预测指标
-func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappingList []*EdbInfoCalculateMapping, predictEdbConfList []*PredictEdbConf, calculateRuleMap map[int]CalculateRule) (err error) {
+func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappingList []*EdbInfoCalculateMapping, predictEdbConfList []*PredictEdbConf, calculateRuleMap map[int]CalculateRule) (err error, errMsg string) {
 	o := orm.NewOrm()
 	tx, err := o.Begin()
 	if err != nil {
@@ -369,7 +369,7 @@ func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappin
 			calculateRule.EdbInfoId = v.PredictEdbInfoId
 
 			// 指标与规则的动态数据(拟合数据)生成入库
-			err = CalculateByRuleByRuleLineNh(tx, *edbInfo, predictEdbConfAndDataList, *v)
+			err, errMsg = CalculateByRuleByRuleLineNh(tx, *edbInfo, predictEdbConfAndDataList, *v)
 			if err != nil {
 				return
 			}

+ 11 - 6
models/predict_edb_info_rule.go

@@ -1248,7 +1248,7 @@ func GetChartPredictEdbInfoDataListByRuleLineNh(edbInfoId int, dayList []time.Ti
 }
 
 // getCalculateNhccData 获取计算出来的 拟合残差 数据
-func getCalculateNhccData(secondDataList []*EdbInfoSearchData, ruleConf RuleLineNhConf) (newBDataMap map[string]float64, err error) {
+func getCalculateNhccData(secondDataList []*EdbInfoSearchData, ruleConf RuleLineNhConf) (newBDataMap map[string]float64, err error, errMsg string) {
 	firstEdbInfoId := ruleConf.EdbInfoId
 	moveDay := ruleConf.MoveDay
 	startDate, _ := time.ParseInLocation(utils.FormatDate, ruleConf.StartDate, time.Local)
@@ -1295,11 +1295,13 @@ func getCalculateNhccData(secondDataList []*EdbInfoSearchData, ruleConf RuleLine
 	}
 
 	if len(aDataList) <= 0 {
-		err = errors.New("指标A没有数据")
+		errMsg = `自变量没有数据`
+		err = errors.New(errMsg)
 		return
 	}
 	if len(bDataList) <= 0 {
-		err = errors.New("指标B没有数据")
+		errMsg = `因变量没有数据`
+		err = errors.New(errMsg)
 		return
 	}
 	// 拟合残差计算的结束日期判断
@@ -1334,12 +1336,14 @@ func getCalculateNhccData(secondDataList []*EdbInfoSearchData, ruleConf RuleLine
 			dateStr := i.Format(utils.FormatDate)
 			xValue, ok := aDataMap[dateStr]
 			if !ok {
-				err = errors.New("指标A日期:" + dateStr + "数据异常,导致计算线性方程公式失败")
+				errMsg = "自变量日期:" + dateStr + "数据异常,导致计算线性方程公式失败"
+				err = errors.New(errMsg)
 				return
 			}
 			yValue, ok := bDataMap[dateStr]
 			if !ok {
-				err = errors.New("指标B日期:" + dateStr + "数据异常,导致计算线性方程公式失败")
+				errMsg = "因变量日期:" + dateStr + "数据异常,导致计算线性方程公式失败"
+				err = errors.New(errMsg)
 				return
 			}
 			tmpCoordinate := utils.Coordinate{
@@ -1352,7 +1356,8 @@ func getCalculateNhccData(secondDataList []*EdbInfoSearchData, ruleConf RuleLine
 	}
 
 	if math.IsNaN(a) || math.IsNaN(b) {
-		err = errors.New("线性方程公式生成失败")
+		errMsg = "线性方程公式生成失败"
+		err = errors.New(errMsg)
 		return
 	}
 	//fmt.Println("a:", a, ";======b:", b)