|
@@ -31,11 +31,13 @@ func EdbInfoRefreshAllFromBaseV2(edbInfoId int, refreshAll bool) (err error, isA
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
-// EdbInfoRefreshAllFromBaseV3 全部刷新指标(切换到edb_lib服务)
|
|
|
|
|
|
+// EdbInfoRefreshAllFromBaseV3Bak 全部刷新指标(切换到edb_lib服务)
|
|
// @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, isSync bool) (err error, isAsync bool) {
|
|
|
|
|
|
+// DeprecatedTime 2023-10-23 09:38:19废弃试用
|
|
|
|
+// Deprecated
|
|
|
|
+func EdbInfoRefreshAllFromBaseV3Bak(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 {
|
|
@@ -64,24 +66,94 @@ func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll, isSync bool) (
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
-func EdbInfoRefreshAllFromTrace(edbInfoId int, refreshAll bool) (err error, isAsync bool) {
|
|
|
|
- traceEdbInfo, err := TraceEdbInfoByEdbInfoId(edbInfoId)
|
|
|
|
|
|
+// EdbInfoRefreshAllFromBaseV3
|
|
|
|
+//
|
|
|
|
+// @Description: 全部刷新指标(切换到edb_lib服务)
|
|
|
|
+// @author: Roc
|
|
|
|
+// @datetime2023-10-23 09:57:55
|
|
|
|
+// @param edbInfoIdList []int
|
|
|
|
+// @param refreshAll bool
|
|
|
|
+// @param isSync bool
|
|
|
|
+// @return err error
|
|
|
|
+// @return isAsync bool
|
|
|
|
+func EdbInfoRefreshAllFromBaseV3(edbInfoIdList []int, refreshAll bool, isSync bool) (err error, isAsync bool) {
|
|
|
|
+ var errmsg string
|
|
|
|
+ defer func() {
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("EdbInfoRefreshAllFromBaseV3 Err:" + err.Error() + ";errmsg:" + errmsg)
|
|
|
|
+ go alarm_msg.SendAlarmMsg("EdbInfoRefreshAllFromBaseV3,Err"+err.Error()+";errMsg:"+errmsg, 3)
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+ traceEdbInfoList, err := TraceEdbInfoByEdbInfoIdList(edbInfoIdList)
|
|
if err != nil {
|
|
if err != nil {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
-
|
|
|
|
// existEdbInfoIdMap 已经处理了的指标id map
|
|
// existEdbInfoIdMap 已经处理了的指标id map
|
|
existEdbInfoIdMap := make(map[int]int)
|
|
existEdbInfoIdMap := make(map[int]int)
|
|
|
|
|
|
|
|
+ // 基础指标
|
|
|
|
+ newBaseEdbInfoArr := make([]*data_manage.EdbInfo, 0)
|
|
|
|
+ newBasePredictEdbInfoArr := make([]*data_manage.EdbInfo, 0)
|
|
|
|
+ newBaseMap := make(map[int]*data_manage.EdbInfo)
|
|
|
|
+ newPredictBaseMap := make(map[int]*data_manage.EdbInfo)
|
|
|
|
+
|
|
|
|
+ // 计算指标
|
|
|
|
+ newCalculateMap := make(map[int]*data_manage.EdbInfo)
|
|
|
|
+ newPredictCalculateMap := make(map[int]*data_manage.EdbInfo)
|
|
|
|
+ calculateArr := make([]int, 0)
|
|
|
|
+ predictCalculateArr := make([]int, 0)
|
|
|
|
+
|
|
// 获取关联指标
|
|
// 获取关联指标
|
|
- newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr := getRefreshEdbInfoListByTraceEdbInfo(traceEdbInfo, existEdbInfoIdMap)
|
|
|
|
|
|
+ for _, traceEdbInfo := range traceEdbInfoList {
|
|
|
|
+ tmpBaseEdbInfoArr, tmpBasePredictEdbInfoArr, tmpCalculateMap, tmpPredictCalculateMap, _, _ := getRefreshEdbInfoListByTraceEdbInfo(traceEdbInfo, existEdbInfoIdMap)
|
|
|
|
+
|
|
|
|
+ // 普通基础指标
|
|
|
|
+ for _, edbInfo := range tmpBaseEdbInfoArr {
|
|
|
|
+ if _, ok := newBaseMap[edbInfo.EdbInfoId]; !ok {
|
|
|
|
+ newBaseMap[edbInfo.EdbInfoId] = edbInfo
|
|
|
|
+ newBaseEdbInfoArr = append(newBaseEdbInfoArr, edbInfo)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 预测基础指标
|
|
|
|
+ for _, edbInfo := range tmpBasePredictEdbInfoArr {
|
|
|
|
+ if _, ok := newPredictBaseMap[edbInfo.EdbInfoId]; !ok {
|
|
|
|
+ newPredictBaseMap[edbInfo.EdbInfoId] = edbInfo
|
|
|
|
+ newBasePredictEdbInfoArr = append(newBasePredictEdbInfoArr, edbInfo)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 普通计算指标
|
|
|
|
+ for _, edbInfo := range tmpCalculateMap {
|
|
|
|
+ if _, ok := newCalculateMap[edbInfo.EdbInfoId]; !ok {
|
|
|
|
+ newCalculateMap[edbInfo.EdbInfoId] = edbInfo
|
|
|
|
+ calculateArr = append(calculateArr, edbInfo.EdbInfoId)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 预测计算指标
|
|
|
|
+ for _, edbInfo := range tmpPredictCalculateMap {
|
|
|
|
+ if _, ok := newPredictCalculateMap[edbInfo.EdbInfoId]; !ok {
|
|
|
|
+ newPredictCalculateMap[edbInfo.EdbInfoId] = edbInfo
|
|
|
|
+ predictCalculateArr = append(predictCalculateArr, edbInfo.EdbInfoId)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
// 普通计算指标的id
|
|
// 普通计算指标的id
|
|
sort.Ints(calculateArr)
|
|
sort.Ints(calculateArr)
|
|
// 预测计算指标的id
|
|
// 预测计算指标的id
|
|
sort.Ints(predictCalculateArr)
|
|
sort.Ints(predictCalculateArr)
|
|
|
|
|
|
- err = edbInfoRefreshAll(refreshAll, newBaseEdbInfoArr, newBasePredictEdbInfoArr, newCalculateMap, newPredictCalculateMap, calculateArr, predictCalculateArr)
|
|
|
|
|
|
+ // 需要刷新的指标数量
|
|
|
|
+ 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
|
|
return
|
|
}
|
|
}
|
|
@@ -2611,6 +2683,55 @@ func TraceEdbInfoByEdbInfoId(edbInfoId int) (traceEdbInfo data_manage.TraceEdbIn
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// TraceEdbInfoByEdbInfoIdList 指标追溯
|
|
|
|
+func TraceEdbInfoByEdbInfoIdList(edbInfoIdList []int) (traceEdbInfoList []data_manage.TraceEdbInfoResp, err error) {
|
|
|
|
+ traceEdbInfoList = make([]data_manage.TraceEdbInfoResp, 0)
|
|
|
|
+ edbInfoList, err := data_manage.GetEdbInfoByIdList(edbInfoIdList)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ edbInfoRuleMap := make(map[int]string, 0)
|
|
|
|
+ edbMappingMap := make(map[int][]*data_manage.EdbInfoCalculateMappingInfo)
|
|
|
|
+
|
|
|
|
+ findIdMap := make(map[int]int)
|
|
|
|
+ existMap := make(map[int]data_manage.TraceEdbInfoResp)
|
|
|
|
+
|
|
|
|
+ for _, edbInfo := range edbInfoList {
|
|
|
|
+ findIdMap[edbInfo.EdbInfoId] = edbInfo.EdbInfoId
|
|
|
|
+ //edbInfoRuleMap[edbInfoId] = getEdbRuleTitle(edbInfo)
|
|
|
|
+ traceEdbInfo := data_manage.TraceEdbInfoResp{
|
|
|
|
+ //EdbInfoId: edbInfo.EdbInfoId,
|
|
|
|
+ EdbInfoId: edbInfo.EdbInfoId,
|
|
|
|
+ EdbInfoType: edbInfo.EdbInfoType,
|
|
|
|
+ EdbName: edbInfo.EdbName,
|
|
|
|
+ EdbType: edbInfo.EdbType,
|
|
|
|
+ //Source: edbInfo.Source,
|
|
|
|
+ UniqueCode: edbInfo.UniqueCode,
|
|
|
|
+ ClassifyId: edbInfo.ClassifyId,
|
|
|
|
+ EdbInfo: edbInfo,
|
|
|
|
+ }
|
|
|
|
+ traceEdbInfo.Child, err = traceEdbInfoByEdbInfoId(edbInfo.EdbInfoId, traceEdbInfo, edbInfoRuleMap, findIdMap, existMap, edbMappingMap)
|
|
|
|
+ traceEdbInfoList = append(traceEdbInfoList, traceEdbInfo)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //findEdbInfoIdList := make([]int, 0)
|
|
|
|
+ //for _, v := range findIdMap {
|
|
|
|
+ // findEdbInfoIdList = append(findEdbInfoIdList, v)
|
|
|
|
+ //}
|
|
|
|
+ //findEdbInfoList, err := data_manage.GetEdbInfoByIdList(findEdbInfoIdList)
|
|
|
|
+ //if err != nil {
|
|
|
|
+ // return
|
|
|
|
+ //}
|
|
|
|
+ //edbInfoMap := make(map[int]*data_manage.EdbInfo)
|
|
|
|
+ //for _, tmpEdbInfo := range findEdbInfoList {
|
|
|
|
+ // edbInfoMap[tmpEdbInfo.EdbInfoId] = tmpEdbInfo
|
|
|
|
+ //}
|
|
|
|
+ //for k, traceEdbInfo := range traceEdbInfoList {
|
|
|
|
+ // traceEdbInfoList[k], err = handleTraceEdbInfo(traceEdbInfo, 0, edbInfoMap, edbMappingMap)
|
|
|
|
+ //}
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
// traceEdbInfoByEdbInfoId 指标追溯
|
|
// traceEdbInfoByEdbInfoId 指标追溯
|
|
func traceEdbInfoByEdbInfoId(edbInfoId int, traceEdbInfo data_manage.TraceEdbInfoResp, edbInfoRuleMap map[int]string, findIdMap map[int]int, existMap map[int]data_manage.TraceEdbInfoResp, edbMappingMap map[int][]*data_manage.EdbInfoCalculateMappingInfo) (child []data_manage.TraceEdbInfoResp, err error) {
|
|
func traceEdbInfoByEdbInfoId(edbInfoId int, traceEdbInfo data_manage.TraceEdbInfoResp, edbInfoRuleMap map[int]string, findIdMap map[int]int, existMap map[int]data_manage.TraceEdbInfoResp, edbMappingMap map[int][]*data_manage.EdbInfoCalculateMappingInfo) (child []data_manage.TraceEdbInfoResp, err error) {
|
|
traceEdbInfo, ok := existMap[edbInfoId]
|
|
traceEdbInfo, ok := existMap[edbInfoId]
|