Browse Source

图表复制

xyxie 8 months ago
parent
commit
0e3280fe82

+ 22 - 0
controllers/data_manage/chart_info.go

@@ -3184,6 +3184,28 @@ func (this *ChartInfoController) CopyChartInfo() {
 			return
 		}
 	}
+	if chartInfo.ChartType == utils.CHART_TYPE_SECTION_COMBINE {
+		// 查询系列信息并复制
+		chartSeriesList, e := data_manage.GetChartSeriesByChartInfoId(oldChartInfo.ChartInfoId)
+		if e != nil {
+			br.Msg = "获取图表关联的系列信息失败"
+			br.ErrMsg = "获取图表关联的系列信息失败,Err:" + e.Error()
+			return
+		}
+
+		chartSeriesEdbList, e := data_manage.GetChartSeriesEdbByChartInfoId(oldChartInfo.ChartInfoId)
+		if err != nil {
+			br.Msg = "获取图表关联的系列指标信息失败"
+			br.ErrMsg = "获取图表关联的系列指标信息失败,Err:" + err.Error()
+			return
+		}
+		err = data_manage.CopyChartSeriesAndEdbMapping(chartSeriesList, chartSeriesEdbList, chartInfo.ChartInfoId)
+		if err != nil {
+			br.Msg = "保存失败"
+			br.ErrMsg = "保存图表系列失败,Err:" + err.Error()
+			return
+		}
+	}
 
 	//添加es数据
 	go data.EsAddOrEditChartInfo(chartInfo.ChartInfoId)

+ 69 - 0
models/data_manage/chart_series.go

@@ -271,3 +271,72 @@ func DeleteChartSeriesAndEdbMapping(chartInfoId int) (err error) {
 	_, err = to.Raw(sql, chartInfoId).Exec()
 	return
 }
+
+func CopyChartSeriesAndEdbMapping(seriesList []*ChartSeries, seriesEdbInfoList []*ChartSeriesEdbMapping, chartInfoId int) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+	seriesEdbMap := make(map[int][]*ChartSeriesEdbMapping)
+	for _, v := range seriesEdbInfoList {
+		seriesEdbMap[v.ChartSeriesId] = append(seriesEdbMap[v.ChartSeriesId], v)
+	}
+	for _, v := range seriesList {
+		tmp := &ChartSeries{
+			SeriesName:   v.SeriesName,
+			SeriesNameEn: v.SeriesNameEn,
+			ChartInfoId:  chartInfoId,
+			ChartStyle:   v.ChartStyle,
+			ChartColor:   v.ChartColor,
+			ChartWidth:   v.ChartWidth,
+			IsPoint:      v.IsPoint,
+			IsNumber:     v.IsNumber,
+			IsAxis:       v.IsAxis,
+			MaxData:      v.MaxData,
+			MinData:      v.MinData,
+			CreateTime:   time.Now(),
+			ModifyTime:   time.Now(),
+		}
+		seriesIdTmp, e := to.Insert(tmp)
+		if e != nil {
+			err = fmt.Errorf("AddChartSeries Err:" + e.Error())
+			return
+		}
+		seriesId := int(seriesIdTmp)
+		addSeriesEdbList := make([]*ChartSeriesEdbMapping, 0)
+		mappingList, ok := seriesEdbMap[v.ChartSeriesId]
+		if ok {
+			for _, edbItem := range mappingList {
+				edbTmp := &ChartSeriesEdbMapping{
+					ChartSeriesId: seriesId,    //todo 系列ID
+					ChartInfoId:   chartInfoId, //todo 表图ID
+					EdbInfoId:     edbItem.EdbInfoId,
+					//EdbAliasName:            "",
+					//EdbAliasNameEn:          "",
+					DateConfName: edbItem.DateConfName,
+					DateConfType: edbItem.DateConfType,
+					DateConf:     edbItem.DateConf,
+					CreateTime:   time.Now(),
+					ModifyTime:   time.Now(),
+				}
+				addSeriesEdbList = append(addSeriesEdbList, edbTmp)
+			}
+			if len(addSeriesEdbList) > 0 {
+				_, e = to.InsertMulti(len(addSeriesEdbList), addSeriesEdbList)
+				if e != nil {
+					err = fmt.Errorf("AddChartSeries Err:" + e.Error())
+					return
+				}
+			}
+		}
+	}
+	return
+}

+ 1 - 1
services/data/chart_extra_config.go

@@ -393,7 +393,7 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
 			}
 			seriesItem.EdbInfoList[index].EdbName = edbMappingInfo.EdbName
 			seriesItem.EdbInfoList[index].EdbNameEn = edbMappingInfo.EdbNameEn
-			seriesItem.EdbInfoList[index].EdbInfoType = edbMappingInfo.EdbInfoType
+			seriesItem.EdbInfoList[index].EdbInfoType = edbMappingInfo.EdbInfoCategoryType
 			seriesItem.EdbInfoList[index].Unit = edbMappingInfo.Unit
 			seriesItem.EdbInfoList[index].UnitEn = edbMappingInfo.UnitEn
 			if index == 0 {