|
@@ -3408,6 +3408,18 @@ func GetChartEdbDataV2(chartInfoId, chartType int, calendar, startDate, endDate
|
|
|
|
|
|
var extraConfig interface{}
|
|
|
switch chartType {
|
|
|
+ case 6:
|
|
|
+ var tmpConfig data_manage.ChartTimeCombineExtraConf
|
|
|
+ if extraConfigStr != `` {
|
|
|
+ err = json.Unmarshal([]byte(extraConfigStr), &tmpConfig)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "雷达图配置异常"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ extraConfig = tmpConfig
|
|
|
case 7: // 柱形图
|
|
|
var barConfig data_manage.BarChartInfoReq
|
|
|
if extraConfigStr == `` {
|
|
@@ -3451,6 +3463,159 @@ func GetChartEdbDataV2(chartInfoId, chartType int, calendar, startDate, endDate
|
|
|
return
|
|
|
}
|
|
|
extraConfig = barConfig
|
|
|
+ case utils.CHART_TYPE_SECTION_COMBINE:
|
|
|
+ // 预览和详情都走这个接口
|
|
|
+ var sectionExtraConfig data_manage.ChartSectionAllExtraConf
|
|
|
+ if extraConfigStr == `` {
|
|
|
+ errMsg = "截面组合图未配置"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if chartInfoId > 0 {
|
|
|
+ var sectionExtraConfigTmp data_manage.ChartSectionExtraConf
|
|
|
+ err = json.Unmarshal([]byte(extraConfigStr), §ionExtraConfigTmp)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "截面组合图配置异常"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ sectionExtraConfig.XDataList = sectionExtraConfigTmp.XDataList
|
|
|
+ sectionExtraConfig.BaseChartSeriesName = sectionExtraConfigTmp.BaseChartSeriesName
|
|
|
+ sectionExtraConfig.UnitList = sectionExtraConfigTmp.UnitList
|
|
|
+ sectionExtraConfig.DateConfList = sectionExtraConfigTmp.DateConfList
|
|
|
+ sectionExtraConfig.IsHeap = sectionExtraConfigTmp.IsHeap
|
|
|
+ sectionExtraConfig.SortType = sectionExtraConfigTmp.SortType
|
|
|
+ // 查询所有的seriesEdb
|
|
|
+ seriesEdbList, e := data_manage.GetChartSeriesEdbByChartInfoId(chartInfoId)
|
|
|
+ if e != nil {
|
|
|
+ errMsg = "查询seriesEdb失败"
|
|
|
+ err = errors.New(errMsg + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // todo 是否有必要返回单位信息
|
|
|
+ // 组装成map
|
|
|
+ seriesEdbMap := make(map[int][]*data_manage.ChartSectionSeriesEdbConf)
|
|
|
+ for _, v := range seriesEdbList {
|
|
|
+ var dateConf *data_manage.ChartSectionSeriesDateConfItem
|
|
|
+ if v.DateConf != "" {
|
|
|
+ err = json.Unmarshal([]byte(v.DateConf), &dateConf)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "截面组合图配置异常"
|
|
|
+ err = errors.New(errMsg + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tmp := &data_manage.ChartSectionSeriesEdbConf{
|
|
|
+ ChartSeriesEdbMappingId: v.ChartSeriesEdbMappingId,
|
|
|
+ ChartSeriesId: v.ChartSeriesId,
|
|
|
+ //ChartInfoId: v.ChartInfoId,
|
|
|
+ EdbInfoId: v.EdbInfoId,
|
|
|
+ DateConf: dateConf,
|
|
|
+ EdbName: "",
|
|
|
+ EdbNameEn: "",
|
|
|
+ Unit: "",
|
|
|
+ UnitEn: "",
|
|
|
+ DateConfName: v.DateConfName,
|
|
|
+ DateConfType: v.DateConfType,
|
|
|
+ }
|
|
|
+ seriesEdbMap[v.ChartSeriesId] = append(seriesEdbMap[v.ChartSeriesId], tmp)
|
|
|
+ }
|
|
|
+ //查询series
|
|
|
+ seriesListTmp, e := data_manage.GetChartSeriesByChartInfoId(chartInfoId)
|
|
|
+ if e != nil {
|
|
|
+ errMsg = "查询series失败"
|
|
|
+ err = errors.New(errMsg + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ seriesList := make([]*data_manage.ChartSectionSeriesItem, 0)
|
|
|
+ for _, v := range seriesListTmp {
|
|
|
+
|
|
|
+ tmpSeries := &data_manage.ChartSectionSeriesItem{
|
|
|
+ ChartSeriesId: v.ChartSeriesId,
|
|
|
+ SeriesName: v.SeriesName,
|
|
|
+ SeriesNameEn: v.SeriesNameEn,
|
|
|
+ ChartStyle: v.ChartStyle,
|
|
|
+ ChartColor: v.ChartColor,
|
|
|
+ ChartWidth: v.ChartWidth,
|
|
|
+ IsPoint: v.IsPoint,
|
|
|
+ IsNumber: v.IsNumber,
|
|
|
+ IsAxis: v.IsAxis,
|
|
|
+ MaxData: v.MaxData,
|
|
|
+ MinData: v.MinData,
|
|
|
+ //IsOrder: false,
|
|
|
+ EdbInfoList: nil,
|
|
|
+ DataList: nil,
|
|
|
+ }
|
|
|
+ edbInfoList, ok := seriesEdbMap[v.ChartSeriesId]
|
|
|
+ if ok {
|
|
|
+ tmpSeries.EdbInfoList = edbInfoList
|
|
|
+ }
|
|
|
+ seriesList = append(seriesList, tmpSeries)
|
|
|
+ }
|
|
|
+ sectionExtraConfig.SeriesList = seriesList
|
|
|
+
|
|
|
+ } else {
|
|
|
+ err = json.Unmarshal([]byte(extraConfigStr), §ionExtraConfig)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "截面组合图配置异常"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //校验引用日期名称是否重复
|
|
|
+ dateNameMap := make(map[string]int)
|
|
|
+ dateNameEnMap := make(map[string]int)
|
|
|
+ for _, v := range sectionExtraConfig.DateConfList {
|
|
|
+ if _, ok := dateNameMap[v.DateConfName]; ok {
|
|
|
+ errMsg = "截面组合图引用日期名称设置重复"
|
|
|
+ err = errors.New(errMsg + v.DateConfName)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if _, ok := dateNameEnMap[v.DateConfNameEn]; ok {
|
|
|
+ errMsg = "截面组合图引用日期名称设置重复"
|
|
|
+ err = errors.New(errMsg + v.DateConfNameEn)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if v.DateConfName != "" {
|
|
|
+ dateNameMap[v.DateConfName] = 1
|
|
|
+ }
|
|
|
+ if v.DateConfNameEn != "" {
|
|
|
+ dateNameEnMap[v.DateConfNameEn] = 1
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //检查系列名称是否重复
|
|
|
+ seriesNameMap := make(map[string]int)
|
|
|
+ seriesNameEnMap := make(map[string]int)
|
|
|
+ for _, v := range sectionExtraConfig.SeriesList {
|
|
|
+ if _, ok := seriesNameMap[v.SeriesName]; ok {
|
|
|
+ errMsg = "截面组合图系列名称设置重复"
|
|
|
+ err = errors.New(errMsg + v.SeriesName)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if _, ok := seriesNameEnMap[v.SeriesNameEn]; ok {
|
|
|
+ errMsg = "截面组合图系列名称设置重复"
|
|
|
+ err = errors.New(errMsg + v.SeriesNameEn)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if v.SeriesName != "" {
|
|
|
+ seriesNameMap[v.SeriesName] = 1
|
|
|
+ }
|
|
|
+ if v.SeriesNameEn != "" {
|
|
|
+ seriesNameEnMap[v.SeriesNameEn] = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查基准系列是否设置
|
|
|
+ if sectionExtraConfig.BaseChartSeriesName == "" {
|
|
|
+ errMsg = "截面组合图基准系列名称未设置"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //todo 如果是详情接口,应该要从其他表里查询配置
|
|
|
+ extraConfig = sectionExtraConfig
|
|
|
default:
|
|
|
xEdbIdValue = make([]int, 0)
|
|
|
yDataList = make([]data_manage.YData, 0)
|
|
@@ -3464,6 +3629,15 @@ func GetChartEdbDataV2(chartInfoId, chartType int, calendar, startDate, endDate
|
|
|
|
|
|
// 特殊图形数据处理
|
|
|
switch chartType {
|
|
|
+ case 6: //时序组合图
|
|
|
+ //判断是否堆积
|
|
|
+ timeConf := extraConfig.(data_manage.ChartTimeCombineExtraConf)
|
|
|
+ if extraConfigStr == "" { //历史数据,默认开启堆积
|
|
|
+ timeConf = data_manage.ChartTimeCombineExtraConf{
|
|
|
+ IsHeap: 1,
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataResp = data_manage.ChartTimeCombineDataResp{IsHeap: timeConf.IsHeap}
|
|
|
case 7: // 柱形图
|
|
|
barChartConf := extraConfig.(data_manage.BarChartInfoReq)
|
|
|
xEdbIdValue, yDataList, err = BarChartData(mappingList, edbDataListMap, barChartConf.DateList, barChartConf.Sort)
|
|
@@ -3500,6 +3674,22 @@ func GetChartEdbDataV2(chartInfoId, chartType int, calendar, startDate, endDate
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 这个数据没有必要返回给前端
|
|
|
+ for _, v := range edbList {
|
|
|
+ v.DataList = nil
|
|
|
+ }
|
|
|
+ case utils.CHART_TYPE_SECTION_COMBINE: // 截面组合图
|
|
|
+ sectionConf := extraConfig.(data_manage.ChartSectionAllExtraConf)
|
|
|
+ var chartInfo *data_manage.ChartInfo
|
|
|
+ if chartInfoId > 0 {
|
|
|
+ chartInfo, err = data_manage.GetChartInfoById(chartInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "获取图表信息失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ xEdbIdValue, dataResp, err = GetChartSectionCombineData(chartInfo, mappingList, edbDataListMap, sectionConf)
|
|
|
+
|
|
|
// 这个数据没有必要返回给前端
|
|
|
for _, v := range edbList {
|
|
|
v.DataList = nil
|