xyxie 6 kuukautta sitten
vanhempi
commit
2e8f8e8ddd

+ 6 - 18
controllers/data_manage/range_analysis/chart_info.go

@@ -1305,13 +1305,11 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 	defer func() {
 		_ = utils.Rc.Delete(cacheKey)
 	}()
-	fromEdbInfoIds := make([]int, 0)
 	edbInfoIds := make([]int, 0)
 	for _, v := range req.EdbInfoList {
 		if v.EdbInfoId > 0 {
 			edbInfoIds = append(edbInfoIds, v.EdbInfoId)
 		}
-		fromEdbInfoIds = append(fromEdbInfoIds, v.FromEdbInfoId)
 		edbInfoIds = append(edbInfoIds, v.FromEdbInfoId)
 	}
 	edbInfoMappingList, err := data_manage.GetChartEdbMappingListByEdbInfoIdList(edbInfoIds)
@@ -1368,30 +1366,16 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 		return
 	}
 	deleteEdbInfoIds := make([]int, 0) // 需要解除绑定的指标ID
+	deleteEdbInfoIdMap := make(map[int]int, 0)
 	configMapping := make(map[int]*data_manage.MultipleGraphConfigEdbMapping, 0)
 	if len(multipleGraphConfigEdbMappingList) == 0 || req.IsSaveAs {
 		// 需要新增的指标
 	} else {
 		// 需要更新的指标
 		// 查询原先所有指标的来源指标,进一步筛选出需要新增,或者更新 或者删除的指标
-		oldEdbInfoIds := make([]int, 0)
 		for _, v := range multipleGraphConfigEdbMappingList {
+			deleteEdbInfoIdMap[v.EdbInfoId] = v.EdbInfoId
 			configMapping[v.EdbInfoId] = v
-			oldEdbInfoIds = append(oldEdbInfoIds, v.EdbInfoId)
-		}
-
-		oldEdbCalculateMappingList, e := data_manage.GetEdbInfoCalculateMappingListByEdbInfoIds(oldEdbInfoIds)
-		if e != nil {
-			br.Msg = `保存失败`
-			br.ErrMsg = "获取计算指标信息失败,ERR:" + e.Error()
-			return
-		}
-
-		// 说明指标还在,没有被删除
-		for _, v := range oldEdbCalculateMappingList {
-			if !utils.InArrayByInt(fromEdbInfoIds, v.FromEdbInfoId) && (config.EdbInfoMode == 1 || req.EdbInfoType != v.FromEdbInfoType) {
-				deleteEdbInfoIds = append(deleteEdbInfoIds, v.EdbInfoId)
-			}
 		}
 	}
 	resp := data_manage.BatchEdbInfoCalculateBatchSaveResp{
@@ -1456,6 +1440,7 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 		}
 		if v.EdbInfoId > 0 {
 			editReqEdbList = append(editReqEdbList, v)
+			delete(deleteEdbInfoIdMap, v.EdbInfoId)
 		} else {
 			addReqEdbList = append(addReqEdbList, v)
 		}
@@ -1569,6 +1554,9 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 	}
 
 	// 批量删除
+	for k, _ := range deleteEdbInfoIdMap {
+		deleteEdbInfoIds = append(deleteEdbInfoIds, k)
+	}
 	if len(deleteEdbInfoIds) > 0 {
 		err = data_manage.DeleteMultipleGraphConfigEdbMappingByEdbIds(req.MultipleGraphConfigId, utils.CHART_SOURCE_RANGE_ANALYSIS, deleteEdbInfoIds)
 		if err != nil {

+ 31 - 1
services/data/range_analysis/chart_info.go

@@ -1454,7 +1454,22 @@ func CopyChartInfo(classifyId int, chartName string, oldChartInfo *data_manage.C
 		err = errors.New(errMsg + ", Err: " + err.Error())
 		return
 	}
-	extraConfig.MultipleGraphConfigId = 0
+
+	//新增配置,并绑定图表
+	multipleGraphConfig := &data_manage.MultipleGraphConfig{
+		//MultipleGraphConfigId: 0,
+		SysUserId:       sysUser.AdminId,
+		SysUserRealName: sysUser.RealName,
+		ModifyTime:      time.Now(),
+		CreateTime:      time.Now(),
+	}
+	err = data_manage.AddMultipleGraphConfig(multipleGraphConfig)
+	if err != nil {
+		errMsg = "新增区间计算图表配置失败"
+		err = errors.New(errMsg + ", Err: " + err.Error())
+		return
+	}
+	extraConfig.MultipleGraphConfigId = multipleGraphConfig.MultipleGraphConfigId
 	newExtraConfigBytes, err := json.Marshal(extraConfig)
 	if err != nil {
 		errMsg = "配置信息错误"
@@ -1575,6 +1590,21 @@ func CopyChartInfo(classifyId int, chartName string, oldChartInfo *data_manage.C
 		}
 	}
 
+	multipleGraphConfigChartMapping := &data_manage.MultipleGraphConfigChartMapping{
+		//Id:                    0,
+		MultipleGraphConfigId: extraConfig.MultipleGraphConfigId,
+		ChartInfoId:           chartInfo.ChartInfoId,
+		Source:                utils.CHART_SOURCE_RANGE_ANALYSIS,
+		ModifyTime:            time.Now(),
+		CreateTime:            time.Now(),
+	}
+	err = data_manage.AddMultipleGraphConfigChartMapping(multipleGraphConfigChartMapping)
+	if err != nil {
+		errMsg = "操作失败"
+		err = errors.New("新增区间计算图表和配置关联关系失败, Err: " + err.Error())
+		return
+	}
+
 	//添加es数据
 	go data.EsAddOrEditChartInfo(chartInfo.ChartInfoId)