Roc 1 سال پیش
والد
کامیت
07007d174d

+ 9 - 3
controllers/data_manage/edb_info.go

@@ -2198,15 +2198,18 @@ func (this *EdbInfoController) EdbInfoRefresh() {
 		br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
 		br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
 		return
 		return
 	}
 	}
-	err = data.EdbInfoRefreshAllFromBaseV2(edbInfoId, false)
+	err, isAsync := data.EdbInfoRefreshAllFromBaseV2(edbInfoId, false)
 	if err != nil {
 	if err != nil {
 		br.Msg = "刷新失败"
 		br.Msg = "刷新失败"
 		br.ErrMsg = "刷新指标失败,EdbInfoRefresh Err:" + err.Error()
 		br.ErrMsg = "刷新指标失败,EdbInfoRefresh Err:" + err.Error()
 		return
 		return
 	}
 	}
 	br.Ret = 200
 	br.Ret = 200
-	br.Success = true
 	br.Msg = "刷新成功"
 	br.Msg = "刷新成功"
+	if isAsync {
+		br.Msg = "该指标关联指标较多,请10分钟后刷新页面查看最新数据"
+	}
+	br.Success = true
 	br.IsAddLog = true
 	br.IsAddLog = true
 }
 }
 
 
@@ -2866,7 +2869,7 @@ func (this *EdbInfoController) EdbInfoAllRefresh() {
 		br.ErrMsg = "数据已被删除,请刷新页面,edbInfoId:" + strconv.Itoa(edbInfoId)
 		br.ErrMsg = "数据已被删除,请刷新页面,edbInfoId:" + strconv.Itoa(edbInfoId)
 		return
 		return
 	}
 	}
-	err = data.EdbInfoRefreshAllFromBaseV2(edbInfoId, true)
+	err, isAsync := data.EdbInfoRefreshAllFromBaseV2(edbInfoId, true)
 	if err != nil {
 	if err != nil {
 		br.Msg = "刷新失败"
 		br.Msg = "刷新失败"
 		br.ErrMsg = "刷新指标失败,EdbInfoRefreshAllFromBase Err:" + err.Error()
 		br.ErrMsg = "刷新指标失败,EdbInfoRefreshAllFromBase Err:" + err.Error()
@@ -2875,6 +2878,9 @@ func (this *EdbInfoController) EdbInfoAllRefresh() {
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "刷新成功"
 	br.Msg = "刷新成功"
+	if isAsync {
+		br.Msg = "该指标关联指标较多,请10分钟后刷新页面查看最新数据"
+	}
 }
 }
 
 
 // @Title 获取指标数据
 // @Title 获取指标数据

+ 4 - 1
controllers/data_manage/edb_info_calculate.go

@@ -903,7 +903,7 @@ func (this *ChartInfoController) CalculateBatchReset() {
 	//}
 	//}
 
 
 	// 重新计算
 	// 重新计算
-	err = data.EdbInfoRefreshAllFromBaseV2(edbInfoId, true)
+	err, isAsync := data.EdbInfoRefreshAllFromBaseV2(edbInfoId, true)
 	if err != nil {
 	if err != nil {
 		fmt.Println(edbInfoId, "RefreshEdbCalculateData err", time.Now())
 		fmt.Println(edbInfoId, "RefreshEdbCalculateData err", time.Now())
 		br.Msg = "重新计算失败"
 		br.Msg = "重新计算失败"
@@ -917,6 +917,9 @@ func (this *ChartInfoController) CalculateBatchReset() {
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "重新计算成功"
 	br.Msg = "重新计算成功"
+	if isAsync {
+		br.Msg = "该指标关联指标较多,请10分钟后刷新页面查看最新数据"
+	}
 	br.Data = resp
 	br.Data = resp
 	br.IsAddLog = true
 	br.IsAddLog = true
 }
 }

+ 1 - 1
controllers/data_manage/excel_info.go

@@ -1720,7 +1720,7 @@ func (this *ExcelInfoController) Refresh() {
 		}
 		}
 
 
 		if len(tableData.EdbInfoIdList) > 0 {
 		if len(tableData.EdbInfoIdList) > 0 {
-			err = data.EdbInfoRefreshAllFromBaseV3(tableData.EdbInfoIdList, false)
+			err, _ = data.EdbInfoRefreshAllFromBaseV3(tableData.EdbInfoIdList, false, true)
 			if err != nil {
 			if err != nil {
 				br.Msg = "刷新失败"
 				br.Msg = "刷新失败"
 				br.ErrMsg = "刷新失败,Err:" + err.Error()
 				br.ErrMsg = "刷新失败,Err:" + err.Error()

+ 8 - 3
controllers/data_manage/predict_edb_info.go

@@ -761,7 +761,7 @@ func (this *PredictEdbInfoController) Refresh() {
 		br.ErrMsg = "参数错误"
 		br.ErrMsg = "参数错误"
 		return
 		return
 	}
 	}
-	_, err, errMsg := data.RefreshPredictEdbInfo(edbInfoId, false)
+	_, isAsync, err, errMsg := data.RefreshPredictEdbInfo(edbInfoId, false)
 	if errMsg != `` {
 	if errMsg != `` {
 		br.Msg = errMsg
 		br.Msg = errMsg
 		br.ErrMsg = errMsg
 		br.ErrMsg = errMsg
@@ -775,7 +775,9 @@ func (this *PredictEdbInfoController) Refresh() {
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "刷新成功"
 	br.Msg = "刷新成功"
-	br.IsAddLog = true
+	if isAsync {
+		br.Msg = "该指标关联指标较多,请10分钟后刷新页面查看最新数据"
+	}
 }
 }
 
 
 // Move
 // Move
@@ -1124,7 +1126,7 @@ func (this *PredictEdbInfoController) RefreshAll() {
 		br.ErrMsg = "参数错误"
 		br.ErrMsg = "参数错误"
 		return
 		return
 	}
 	}
-	_, err, errMsg := data.RefreshPredictEdbInfo(edbInfoId, true)
+	_, isAsync, err, errMsg := data.RefreshPredictEdbInfo(edbInfoId, true)
 	if errMsg != `` {
 	if errMsg != `` {
 		br.Msg = errMsg
 		br.Msg = errMsg
 		br.ErrMsg = errMsg
 		br.ErrMsg = errMsg
@@ -1138,6 +1140,9 @@ func (this *PredictEdbInfoController) RefreshAll() {
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "刷新成功"
 	br.Msg = "刷新成功"
+	if isAsync {
+		br.Msg = "该指标关联指标较多,请10分钟后刷新页面查看最新数据"
+	}
 }
 }
 
 
 // DataList
 // DataList

+ 2 - 2
services/data/chart_info.go

@@ -1078,7 +1078,7 @@ func ChartInfoRefreshV2(chartInfoId int) (err error) {
 	}
 	}
 
 
 	// 批量刷新
 	// 批量刷新
-	err = EdbInfoRefreshAllFromBaseV3(edbIdList, false)
+	err, _ = EdbInfoRefreshAllFromBaseV3(edbIdList, false, true)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
@@ -1119,7 +1119,7 @@ func BatchChartInfoRefreshV2(chartInfoList []*data_manage.ChartInfo) (err error)
 	}
 	}
 
 
 	// 批量刷新
 	// 批量刷新
-	err = EdbInfoRefreshAllFromBaseV3(edbIdList, false)
+	err, _ = EdbInfoRefreshAllFromBaseV3(edbIdList, false, true)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}

+ 1 - 1
services/data/correlation/chart_info.go

@@ -509,7 +509,7 @@ func ChartInfoRefresh(chartInfoId int) (err error) {
 	}
 	}
 
 
 	// 批量刷新ETA指标
 	// 批量刷新ETA指标
-	err = data.EdbInfoRefreshAllFromBaseV3([]int{correlationChart.EdbInfoIdFirst, correlationChart.EdbInfoIdSecond}, false)
+	err, _ = data.EdbInfoRefreshAllFromBaseV3([]int{correlationChart.EdbInfoIdFirst, correlationChart.EdbInfoIdSecond}, false, true)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}

+ 28 - 4
services/data/edb_info.go

@@ -17,7 +17,7 @@ import (
 )
 )
 
 
 // EdbInfoRefreshAllFromBaseV2 全部刷新指标(切换到edb_lib服务)
 // EdbInfoRefreshAllFromBaseV2 全部刷新指标(切换到edb_lib服务)
-func EdbInfoRefreshAllFromBaseV2(edbInfoId int, refreshAll bool) (err error) {
+func EdbInfoRefreshAllFromBaseV2(edbInfoId int, refreshAll bool) (err error, isAsync bool) {
 	var errmsg string
 	var errmsg string
 	defer func() {
 	defer func() {
 		if err != nil {
 		if err != nil {
@@ -27,7 +27,7 @@ func EdbInfoRefreshAllFromBaseV2(edbInfoId int, refreshAll bool) (err error) {
 		}
 		}
 	}()
 	}()
 
 
-	err = EdbInfoRefreshAllFromBaseV3([]int{edbInfoId}, refreshAll)
+	err, isAsync = EdbInfoRefreshAllFromBaseV3([]int{edbInfoId}, refreshAll, false)
 	return
 	return
 	//// 获取关联的基础指标
 	//// 获取关联的基础指标
 	//newBaseEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr, err, errmsg := getRefreshEdbInfoList(edbInfoId)
 	//newBaseEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr, err, errmsg := getRefreshEdbInfoList(edbInfoId)
@@ -216,7 +216,7 @@ func EdbInfoRefreshAllFromBaseV2(edbInfoId int, refreshAll bool) (err error) {
 // @author Roc
 // @author Roc
 // @datetime 2022-09-16 11:04:44
 // @datetime 2022-09-16 11:04:44
 // @description 将原有的单个指标刷新,调整为批量多个指标刷新
 // @description 将原有的单个指标刷新,调整为批量多个指标刷新
-func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll bool) (err error) {
+func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll, isSync bool) (err error, isAsync bool) {
 	var errmsg string
 	var errmsg string
 	defer func() {
 	defer func() {
 		if err != nil {
 		if err != nil {
@@ -231,6 +231,30 @@ func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll bool) (err erro
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
+
+	// 需要刷新的指标数量
+	totalEdbInfo := len(newBaseEdbInfoArr) + len(calculateArr) + len(predictCalculateArr)
+
+	if totalEdbInfo <= 20 || isSync {
+		err = edbInfoRefreshAll(refreshAll, newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr)
+	} else {
+		isAsync = true
+		go edbInfoRefreshAll(refreshAll, newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr)
+	}
+
+	return
+}
+
+func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfoArr []*data_manage.EdbInfo, newCalculateMap, newPredictCalculateMap map[int]*data_manage.EdbInfo, calculateArr, predictCalculateArr []int) (err error) {
+	var errmsg string
+	defer func() {
+		if err != nil {
+			fmt.Println("EdbInfoRefreshAllFromBaseV2 Err:" + err.Error() + ";errmsg:" + errmsg)
+			go alarm_msg.SendAlarmMsg("EdbInfoRefreshFromBaseV2,Err"+err.Error()+";errMsg:"+errmsg, 3)
+			//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "EdbInfoRefreshFromBase:"+errmsg, utils.EmailSendToUsers)
+		}
+	}()
+
 	var startDate string
 	var startDate string
 	for _, bv := range newBaseEdbInfoArr {
 	for _, bv := range newBaseEdbInfoArr {
 		//source := bv.Source
 		//source := bv.Source
@@ -1169,7 +1193,7 @@ func RefreshManualData(edbCode string) {
 		return
 		return
 	}
 	}
 	// 刷新指标库
 	// 刷新指标库
-	err = EdbInfoRefreshAllFromBaseV2(edbInfo.EdbInfoId, true)
+	err, _ = EdbInfoRefreshAllFromBaseV2(edbInfo.EdbInfoId, true)
 	return
 	return
 }
 }
 
 

+ 1 - 1
services/data/future_good/chart_info.go

@@ -910,7 +910,7 @@ func FutureGoodChartInfoRefresh(chartInfoId int) (err error) {
 	}
 	}
 
 
 	// 批量刷新ETA指标
 	// 批量刷新ETA指标
-	err = data.EdbInfoRefreshAllFromBaseV3([]int{edbInfoMapping.EdbInfoId}, false)
+	err, _ = data.EdbInfoRefreshAllFromBaseV3([]int{edbInfoMapping.EdbInfoId}, false, true)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}

+ 2 - 2
services/data/predict_edb_info.go

@@ -404,7 +404,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName string, ruleList []re
 }
 }
 
 
 // RefreshPredictEdbInfo 刷新预测指标
 // RefreshPredictEdbInfo 刷新预测指标
-func RefreshPredictEdbInfo(edbInfoId int, refreshAll bool) (edbInfo *data_manage.EdbInfo, err error, errMsg string) {
+func RefreshPredictEdbInfo(edbInfoId int, refreshAll bool) (edbInfo *data_manage.EdbInfo, isAsync bool, err error, errMsg string) {
 	// 指标信息校验
 	// 指标信息校验
 	{
 	{
 		edbInfo, err = data_manage.GetEdbInfoById(edbInfoId)
 		edbInfo, err = data_manage.GetEdbInfoById(edbInfoId)
@@ -424,7 +424,7 @@ func RefreshPredictEdbInfo(edbInfoId int, refreshAll bool) (edbInfo *data_manage
 			return
 			return
 		}
 		}
 	}
 	}
-	err = EdbInfoRefreshAllFromBaseV2(edbInfo.EdbInfoId, refreshAll)
+	err, isAsync = EdbInfoRefreshAllFromBaseV2(edbInfo.EdbInfoId, refreshAll)
 
 
 	return
 	return
 }
 }