Browse Source

截面组合图单位

xyxie 8 months ago
parent
commit
72322dd2fc

+ 24 - 15
models/data_manage/chart_info.go

@@ -2357,21 +2357,21 @@ type RadarYData struct {
 // 截面组合图额外配置
 type ChartSectionExtraConf struct {
 	DateConfList        []*ChartSectionDateConfItem
-	IsHeap              int      `description:"是否堆积(1.堆积,0不堆积)"`
-	XDataList           []XData  `description:"横轴名称设置"`
-	UnitList            []*XData `description:"纵轴单位设置"`
-	BaseChartSeriesName string   `description:"基准系列名称"`
-	SortType            int      `description:"排序类型,0默认,1升序,2降序"`
+	IsHeap              int                      `description:"是否堆积(1.堆积,0不堆积)"`
+	XDataList           []XData                  `description:"横轴名称设置"`
+	UnitList            *ChartSectionCombineUnit `description:"纵轴单位设置"`
+	BaseChartSeriesName string                   `description:"基准系列名称"`
+	SortType            int                      `description:"排序类型,0默认,1升序,2降序"`
 }
 
 // 截面组合图额外配置
 type ChartSectionAllExtraConf struct {
 	DateConfList        []*ChartSectionDateConfItem
-	IsHeap              int      `description:"是否堆积(1.堆积,0不堆积)"`
-	XDataList           []XData  `description:"横轴名称设置"`
-	UnitList            []*XData `description:"纵轴单位设置"`
-	BaseChartSeriesName string   `description:"基准系列名称"`
-	SortType            int      `description:"排序类型,0默认,1升序,2降序"`
+	IsHeap              int                      `description:"是否堆积(1.堆积,0不堆积)"`
+	XDataList           []XData                  `description:"横轴名称设置"`
+	UnitList            *ChartSectionCombineUnit `description:"纵轴单位设置"`
+	BaseChartSeriesName string                   `description:"基准系列名称"`
+	SortType            int                      `description:"排序类型,0默认,1升序,2降序"`
 	SeriesList          []*ChartSectionSeriesItem
 }
 
@@ -2427,11 +2427,11 @@ type ChartSectionSeriesEdbConf struct {
 
 type ChartSectionCombineDataResp struct {
 	DateConfList        []*ChartSectionDateConfItem
-	IsHeap              int      `description:"是否堆积(1.堆积,0不堆积)"`
-	XDataList           []XData  `description:"横轴名称设置"`
-	UnitList            []*XData `description:"纵轴单位设置"`
-	BaseChartSeriesName string   `description:"基准系列名称"`
-	SortType            int      `description:"排序类型,0默认,1升序,2降序"`
+	IsHeap              int                      `description:"是否堆积(1.堆积,0不堆积)"`
+	XDataList           []XData                  `description:"横轴名称设置"`
+	UnitList            *ChartSectionCombineUnit `description:"纵轴单位设置"`
+	BaseChartSeriesName string                   `description:"基准系列名称"`
+	SortType            int                      `description:"排序类型,0默认,1升序,2降序"`
 	SeriesList          []*ChartSectionSeriesItem
 }
 
@@ -2447,3 +2447,12 @@ type PreviewSectionCombineChartReq struct {
 	ChartClassifyId int    `description:"分类id"`
 	ExtraConfig     string `description:"图表额外配置信息,json字符串"`
 }
+
+type ChartSectionCombineUnit struct {
+	LeftName       string `description:"左轴单位"`
+	LeftNameEn     string `description:"左轴英文单位"`
+	RightName      string `description:"右轴单位"`
+	RightNameEn    string `description:"右轴英文单位"`
+	RightTwoName   string `description:"右2轴单位"`
+	RightTwoNameEn string `description:"右2轴英文单位"`
+}

+ 4 - 1
models/data_manage/chart_series.go

@@ -95,6 +95,10 @@ func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err e
 			ModifyTime:    time.Now(),
 		}
 		if _, ok := seriesMap[v.ChartSeriesId]; !ok {
+			if seriesId > 0 {
+				err = fmt.Errorf("系列ID错误")
+				return
+			}
 			//新增
 			delete(seriesDeleteMap, v.ChartSeriesId)
 			tmp.CreateTime = time.Now()
@@ -104,7 +108,6 @@ func EditChartSeriesAndEdbMapping(extraConfigStr string, chartInfoId int) (err e
 				return
 			}
 			seriesId = int(seriesIdTmp)
-
 		} else {
 			_, e := to.Update(tmp)
 			if e != nil {

+ 40 - 24
services/data/chart_extra_config.go

@@ -255,14 +255,25 @@ func handleChartSectionCombineData(extraConfig data_manage.ChartSectionAllExtraC
 		}
 	}
 
-	for _, v := range extraConfig.UnitList {
-		if _, ok := translateNameMap[v.Name]; !ok && v.NameEn == "" {
-			translateNameMap[v.Name] = true
-			tmpName := strings.TrimSuffix(v.Name, " ")
-			tmpName = strings.TrimPrefix(tmpName, " ")
-			translateNameList = append(translateNameList, tmpName)
-		}
+	if _, ok := translateNameMap[extraConfig.UnitList.LeftName]; !ok && extraConfig.UnitList.LeftNameEn == "" {
+		translateNameMap[extraConfig.UnitList.LeftName] = true
+		tmpName := strings.TrimSuffix(extraConfig.UnitList.LeftName, " ")
+		tmpName = strings.TrimPrefix(tmpName, " ")
+		translateNameList = append(translateNameList, tmpName)
+	}
+	if _, ok := translateNameMap[extraConfig.UnitList.RightName]; !ok && extraConfig.UnitList.RightNameEn == "" {
+		translateNameMap[extraConfig.UnitList.RightName] = true
+		tmpName := strings.TrimSuffix(extraConfig.UnitList.RightName, " ")
+		tmpName = strings.TrimPrefix(tmpName, " ")
+		translateNameList = append(translateNameList, tmpName)
 	}
+	if _, ok := translateNameMap[extraConfig.UnitList.RightTwoName]; !ok && extraConfig.UnitList.RightTwoNameEn == "" {
+		translateNameMap[extraConfig.UnitList.RightTwoName] = true
+		tmpName := strings.TrimSuffix(extraConfig.UnitList.RightTwoName, " ")
+		tmpName = strings.TrimPrefix(tmpName, " ")
+		translateNameList = append(translateNameList, tmpName)
+	}
+
 	for _, v := range extraConfig.XDataList {
 		if _, ok := translateNameMap[v.Name]; !ok && v.NameEn == "" {
 			translateNameMap[v.Name] = true
@@ -304,10 +315,15 @@ func handleChartSectionCombineData(extraConfig data_manage.ChartSectionAllExtraC
 			extraConfig.XDataList[k].NameEn = tmpNameEn
 		}
 	}
-	for k, v := range extraConfig.UnitList {
-		if tmpNameEn, ok := enNameMap[v.Name]; ok && v.NameEn == "" {
-			extraConfig.UnitList[k].NameEn = tmpNameEn
-		}
+
+	if tmpNameEn, ok := enNameMap[extraConfig.UnitList.LeftName]; ok && extraConfig.UnitList.LeftNameEn == "" {
+		extraConfig.UnitList.LeftName = tmpNameEn
+	}
+	if tmpNameEn, ok := enNameMap[extraConfig.UnitList.RightName]; ok && extraConfig.UnitList.RightNameEn == "" {
+		extraConfig.UnitList.RightName = tmpNameEn
+	}
+	if tmpNameEn, ok := enNameMap[extraConfig.UnitList.RightTwoName]; ok && extraConfig.UnitList.RightTwoNameEn == "" {
+		extraConfig.UnitList.RightTwoName = tmpNameEn
 	}
 	for k, v := range extraConfig.DateConfList {
 		if tmpNameEn, ok := enNameMap[v.DateConfName]; ok && v.DateConfNameEn == "" {
@@ -475,7 +491,7 @@ func GetChartSectionCombineData(chartInfoId int, mappingList []*data_manage.Char
 	dataListResp.XDataList = xDataList
 
 	// todo 处理纵轴, 如果只存在一个右轴会有问题
-	unitList := make([]*data_manage.XData, 3)
+	unitList := new(data_manage.ChartSectionCombineUnit)
 	if baseSeries.IsAxis == 1 { //左轴,右轴
 		leftUnit = firstUnit
 	} else if baseSeries.IsAxis == 2 {
@@ -483,18 +499,18 @@ func GetChartSectionCombineData(chartInfoId int, mappingList []*data_manage.Char
 	} else {
 		right2Unit = firstUnit
 	}
-	if len(extraConfig.UnitList) == 0 {
-		unitList[0] = leftUnit
-		unitList[1] = rightUnit
-		unitList[2] = right2Unit
-	} else if len(extraConfig.UnitList) == 1 {
-		unitList[0] = extraConfig.UnitList[0]
-		unitList[1] = rightUnit
-		unitList[2] = right2Unit
-	} else if len(extraConfig.UnitList) == 2 {
-		unitList[0] = extraConfig.UnitList[0]
-		unitList[1] = extraConfig.UnitList[1]
-		unitList[2] = right2Unit
+	if unitList.LeftName != "" {
+		unitList.LeftName = leftUnit.Name
+		unitList.LeftNameEn = leftUnit.NameEn
+	}
+	if unitList.RightName != "" {
+		unitList.RightName = rightUnit.Name
+		unitList.RightNameEn = rightUnit.NameEn
+	}
+
+	if unitList.RightTwoName != "" {
+		unitList.RightTwoName = right2Unit.Name
+		unitList.RightTwoNameEn = right2Unit.NameEn
 	}
 
 	dataListResp.XDataList = extraConfig.XDataList

+ 8 - 1
services/data/chart_info.go

@@ -1778,8 +1778,12 @@ func CheckChartExtraConfig(chartType int, extraConfigStr string) (edbIdList []in
 
 		// 遍历指标列表获取指标id
 		edbIdMap := make(map[int]int)
+		hasUsed := make(map[string]struct{})
 		for _, v := range extraConfig.SeriesList {
 			for _, item := range v.EdbInfoList {
+				if item.DateConfName != "" {
+					hasUsed[item.DateConfName] = struct{}{}
+				}
 				if _, ok := edbIdMap[item.EdbInfoId]; !ok {
 					edbIdMap[item.EdbInfoId] = item.EdbInfoId
 					edbIdList = append(edbIdList, item.EdbInfoId)
@@ -1788,6 +1792,9 @@ func CheckChartExtraConfig(chartType int, extraConfigStr string) (edbIdList []in
 		}
 		// todo 遍历引用日期获取引用日期里的指标ID, 如果引用日期里的指标没有被引用,是否加入映射
 		for _, v := range extraConfig.DateConfList {
+			if _, ok := hasUsed[v.DateConfName]; !ok {
+				continue
+			}
 			if _, ok := edbIdMap[v.EdbInfoId]; !ok && v.EdbInfoId > 0 {
 				edbIdMap[v.EdbInfoId] = v.EdbInfoId
 				edbIdList = append(edbIdList, v.EdbInfoId)
@@ -2574,7 +2581,7 @@ func EditChartInfo(req data_manage.EditChartInfoReq, sysUser *system.Admin, lang
 	// 关联指标
 	var edbInfoIdArr []int
 	// 非散点截面图的直接通过前端获取,散点截面图需要额外从配置中获取
-	if chartItem.ChartType != 10 {
+	if chartItem.ChartType != 10 && chartItem.ChartType != utils.CHART_TYPE_SECTION_COMBINE {
 		//edbList := make([]*data_manage.EdbInfo, 0)
 		for _, v := range req.ChartEdbInfoList {
 			edbInfoId := v.EdbInfoId