|
@@ -15,6 +15,7 @@ import (
|
|
|
"hongze/hongze_yb/models/tables/chart_info_log"
|
|
|
edbInfoModel "hongze/hongze_yb/models/tables/edb_info"
|
|
|
"hongze/hongze_yb/models/tables/yb_my_chart"
|
|
|
+ "hongze/hongze_yb/services"
|
|
|
"hongze/hongze_yb/services/alarm_msg"
|
|
|
"hongze/hongze_yb/services/chart"
|
|
|
"hongze/hongze_yb/services/chart/cross_variety"
|
|
@@ -74,107 +75,145 @@ func GetChartInfoDetail(c *gin.Context) {
|
|
|
response.FailMsg("获取失败", "获取图表信息失败, Err:"+err.Error(), c)
|
|
|
return
|
|
|
}
|
|
|
- // 获取主题样式
|
|
|
- chartTheme, err := chart.GetChartThemeConfig(chartInfo.ChartThemeId, chartInfo.Source, chartInfo.ChartType)
|
|
|
- if err != nil {
|
|
|
- response.FailMsg("获取失败", "获取主题信息失败, Err:"+err.Error(), c)
|
|
|
- return
|
|
|
- }
|
|
|
- chartInfo.ChartThemeStyle = chartTheme.Config
|
|
|
- chartInfo.ChartThemeId = chartTheme.ChartThemeID
|
|
|
+ var (
|
|
|
+ edbList []*chartEdbMappingModel.ChartEdbInfoMappingList
|
|
|
+ xEdbIdValue []int
|
|
|
+ yDataList []chart_info.YData
|
|
|
+ sourceArr []string
|
|
|
+ dataResp interface{}
|
|
|
+ )
|
|
|
+ // todo 特殊处理平衡表
|
|
|
+ if chartInfo.Source == utils.CHART_SOURCE_BALANCE_EXCEL {
|
|
|
+ //调用接口
|
|
|
+ chartData, e := services.GetBalanceChartDetail(chartInfo.UniqueCode)
|
|
|
+ if e != nil {
|
|
|
+ response.FailMsg("获取失败", "获取图表信息失败, Err:"+e.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ chartDataResp := new(chart_info.ChartInfoDetailResp)
|
|
|
+ // 兼容返回值类型
|
|
|
+ chartDataString, _ := json.Marshal(chartData)
|
|
|
+ err = json.Unmarshal(chartDataString, chartDataResp)
|
|
|
+ if err != nil {
|
|
|
+ response.FailMsg("获取失败", "获取图表信息失败, Err:"+err.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ chartInfo = chartDataResp.ChartInfo
|
|
|
+ yDataList = chartDataResp.YDataList
|
|
|
+ edbList = chartDataResp.EdbInfoList
|
|
|
+ xEdbIdValue = chartDataResp.XEdbIdValue
|
|
|
+ sourceArr = append(sourceArr, "平衡表")
|
|
|
+ dataResp = chartDataResp.DataResp
|
|
|
|
|
|
- chartType = chartInfo.ChartType
|
|
|
- startDate := chartInfo.StartDate
|
|
|
- endDate := chartInfo.EndDate
|
|
|
- startYear := chartInfo.StartYear
|
|
|
- calendar := chartInfo.Calendar
|
|
|
- if reqCalendar != "" {
|
|
|
- calendar = reqCalendar
|
|
|
- }
|
|
|
+ } else {
|
|
|
|
|
|
- // 时段筛选
|
|
|
- reqDateType := c.DefaultQuery("DateType", "")
|
|
|
- dateType := chartInfo.DateType
|
|
|
- if reqDateType != "" {
|
|
|
- dateType, _ = strconv.Atoi(reqDateType)
|
|
|
- }
|
|
|
- if dateType <= 0 {
|
|
|
- dateType = 3 // 默认同后台15年至今
|
|
|
- }
|
|
|
- if reqStartDate != "" {
|
|
|
- startDate = reqStartDate
|
|
|
- }
|
|
|
- if reqEndDate != "" {
|
|
|
- endDate = reqEndDate
|
|
|
- }
|
|
|
- // 获取图表指标映射
|
|
|
- mappingList := make([]*chartEdbMappingModel.ChartEdbInfoMapping, 0)
|
|
|
- if chartInfoId > 0 {
|
|
|
- mappingList, err = chartEdbMappingModel.GetMappingListByChartInfoId(chartInfoId)
|
|
|
+ // 获取主题样式
|
|
|
+ chartTheme, err := chart.GetChartThemeConfig(chartInfo.ChartThemeId, chartInfo.Source, chartInfo.ChartType)
|
|
|
if err != nil {
|
|
|
- response.FailMsg("获取失败", "获取图表指标信息失败4001, Err:"+err.Error(), c)
|
|
|
+ response.FailMsg("获取失败", "获取主题信息失败, Err:"+err.Error(), c)
|
|
|
return
|
|
|
}
|
|
|
- } else {
|
|
|
- if edbInfoId != "" {
|
|
|
- mappingList, err = chartEdbMappingModel.GetMappingListByEdbInfoId(edbInfoId)
|
|
|
+ chartInfo.ChartThemeStyle = chartTheme.Config
|
|
|
+ chartInfo.ChartThemeId = chartTheme.ChartThemeID
|
|
|
+
|
|
|
+ chartType = chartInfo.ChartType
|
|
|
+ startDate := chartInfo.StartDate
|
|
|
+ endDate := chartInfo.EndDate
|
|
|
+ startYear := chartInfo.StartYear
|
|
|
+ calendar := chartInfo.Calendar
|
|
|
+ if reqCalendar != "" {
|
|
|
+ calendar = reqCalendar
|
|
|
+ }
|
|
|
+
|
|
|
+ // 时段筛选
|
|
|
+ reqDateType := c.DefaultQuery("DateType", "")
|
|
|
+ dateType := chartInfo.DateType
|
|
|
+ if reqDateType != "" {
|
|
|
+ dateType, _ = strconv.Atoi(reqDateType)
|
|
|
+ }
|
|
|
+ if dateType <= 0 {
|
|
|
+ dateType = 3 // 默认同后台15年至今
|
|
|
+ }
|
|
|
+ if reqStartDate != "" {
|
|
|
+ startDate = reqStartDate
|
|
|
+ }
|
|
|
+ if reqEndDate != "" {
|
|
|
+ endDate = reqEndDate
|
|
|
+ }
|
|
|
+ // 获取图表指标映射
|
|
|
+ mappingList := make([]*chartEdbMappingModel.ChartEdbInfoMapping, 0)
|
|
|
+ if chartInfoId > 0 {
|
|
|
+ mappingList, err = chartEdbMappingModel.GetMappingListByChartInfoId(chartInfoId)
|
|
|
if err != nil {
|
|
|
- response.FailMsg("获取失败", "获取图表指标信息失败4002, Err:"+err.Error(), c)
|
|
|
+ response.FailMsg("获取失败", "获取图表指标信息失败4001, Err:"+err.Error(), c)
|
|
|
return
|
|
|
}
|
|
|
+ } else {
|
|
|
+ if edbInfoId != "" {
|
|
|
+ mappingList, err = chartEdbMappingModel.GetMappingListByEdbInfoId(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ response.FailMsg("获取失败", "获取图表指标信息失败4002, Err:"+err.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- yearMax := 0
|
|
|
- if dateType == utils.DateTypeNYears {
|
|
|
- for _, v := range mappingList {
|
|
|
- if v.LatestDate.Year() > yearMax {
|
|
|
- yearMax = v.LatestDate.Year()
|
|
|
+ yearMax := 0
|
|
|
+ if dateType == utils.DateTypeNYears {
|
|
|
+ for _, v := range mappingList {
|
|
|
+ if v.LatestDate.Year() > yearMax {
|
|
|
+ yearMax = v.LatestDate.Year()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- startDate, endDate = utils.GetDateByDateTypeV2(dateType, startDate, endDate, startYear, yearMax)
|
|
|
-
|
|
|
- // 图表额外数据参数
|
|
|
- extraConfigStr := chartInfo.ExtraConfig
|
|
|
- // 柱方图的一些配置
|
|
|
- var barConfig request.BarChartInfoReq
|
|
|
- if chartInfo != nil && chartInfo.ChartType == 7 {
|
|
|
- if chartInfo.BarConfig == `` {
|
|
|
- response.FailMsg("柱方图未配置", "柱方图未配置", c)
|
|
|
- return
|
|
|
+ startDate, endDate = utils.GetDateByDateTypeV2(dateType, startDate, endDate, startYear, yearMax)
|
|
|
+
|
|
|
+ // 图表额外数据参数
|
|
|
+ extraConfigStr := chartInfo.ExtraConfig
|
|
|
+ // 柱方图的一些配置
|
|
|
+ var barConfig request.BarChartInfoReq
|
|
|
+ if chartInfo != nil && chartInfo.ChartType == 7 {
|
|
|
+ if chartInfo.BarConfig == `` {
|
|
|
+ response.FailMsg("柱方图未配置", "柱方图未配置", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = json.Unmarshal([]byte(chartInfo.BarConfig), &barConfig)
|
|
|
+ if err != nil {
|
|
|
+ response.FailMsg("柱方图配置异常", "柱方图配置异常", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ extraConfigStr = chartInfo.BarConfig
|
|
|
}
|
|
|
- err = json.Unmarshal([]byte(chartInfo.BarConfig), &barConfig)
|
|
|
+ var errMsg string
|
|
|
+ // 获取图表中的指标数据
|
|
|
+ edbList, xEdbIdValue, yDataList, sourceArr, dataResp, err, errMsg = chart.GetChartEdbData(chartInfoId, chartType, calendar, startDate, endDate, mappingList, extraConfigStr, chartInfo.SeasonExtraConfig)
|
|
|
if err != nil {
|
|
|
- response.FailMsg("柱方图配置异常", "柱方图配置异常", c)
|
|
|
+ msg := `获取失败`
|
|
|
+ if errMsg != `` {
|
|
|
+ msg = errMsg
|
|
|
+ }
|
|
|
+ response.FailMsg(msg, "获取图表,指标信息失败, Err:"+err.Error(), c)
|
|
|
return
|
|
|
}
|
|
|
- extraConfigStr = chartInfo.BarConfig
|
|
|
- }
|
|
|
-
|
|
|
- // 获取图表中的指标数据
|
|
|
- edbList, xEdbIdValue, yDataList, sourceArr, dataResp, err, errMsg := chart.GetChartEdbData(chartInfoId, chartType, calendar, startDate, endDate, mappingList, extraConfigStr, chartInfo.SeasonExtraConfig)
|
|
|
- if err != nil {
|
|
|
- msg := `获取失败`
|
|
|
- if errMsg != `` {
|
|
|
- msg = errMsg
|
|
|
- }
|
|
|
- response.FailMsg(msg, "获取图表,指标信息失败, Err:"+err.Error(), c)
|
|
|
- return
|
|
|
- }
|
|
|
|
|
|
- for _, v := range edbList {
|
|
|
- // 指标别名
|
|
|
- if barConfig.EdbInfoIdList != nil && len(barConfig.EdbInfoIdList) > 0 {
|
|
|
- for _, reqEdb := range barConfig.EdbInfoIdList {
|
|
|
- if v.EdbInfoId == reqEdb.EdbInfoId {
|
|
|
- v.EdbAliasName = reqEdb.Name
|
|
|
+ for _, v := range edbList {
|
|
|
+ // 指标别名
|
|
|
+ if barConfig.EdbInfoIdList != nil && len(barConfig.EdbInfoIdList) > 0 {
|
|
|
+ for _, reqEdb := range barConfig.EdbInfoIdList {
|
|
|
+ if v.EdbInfoId == reqEdb.EdbInfoId {
|
|
|
+ v.EdbAliasName = reqEdb.Name
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // 图表的指标来源
|
|
|
+ sourceNameList, sourceNameEnList := chart.GetEdbSourceByEdbInfoIdList(edbList)
|
|
|
+ chartInfo.ChartSource = strings.Join(sourceNameList, ",")
|
|
|
+ chartInfo.ChartSourceEn = strings.Join(sourceNameEnList, ",")
|
|
|
}
|
|
|
|
|
|
sourceArr = append(sourceArr, "弘则研究")
|
|
|
+
|
|
|
chartInfo.ChartSource = strings.Join(sourceArr, ",")
|
|
|
|
|
|
// 访问记录-仅普通用户记录
|
|
@@ -210,11 +249,6 @@ func GetChartInfoDetail(c *gin.Context) {
|
|
|
myChartInfo.CreateTime = utils.TimeTransferString(utils.FormatDateTime, exists.CreateTime)
|
|
|
}
|
|
|
|
|
|
- // 图表的指标来源
|
|
|
- sourceNameList, sourceNameEnList := chart.GetEdbSourceByEdbInfoIdList(edbList)
|
|
|
- chartInfo.ChartSource = strings.Join(sourceNameList, ",")
|
|
|
- chartInfo.ChartSourceEn = strings.Join(sourceNameEnList, ",")
|
|
|
-
|
|
|
resp := new(chart_info.ChartInfoDetailResp)
|
|
|
resp.ChartInfo = chartInfo
|
|
|
resp.EdbInfoList = edbList
|