|
@@ -4,6 +4,7 @@ import (
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
"hongze/hongze_chart_lib/models"
|
|
|
+ "hongze/hongze_chart_lib/models/data_manage"
|
|
|
"hongze/hongze_chart_lib/services/data"
|
|
|
"hongze/hongze_chart_lib/utils"
|
|
|
"strconv"
|
|
@@ -145,161 +146,38 @@ func (this *ChartController) ChartInfoDetail() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //edbList := make([]*models.ChartEdbInfoMapping, 0)
|
|
|
- //for _, v := range mappingList {
|
|
|
- // //minData, maxData, err := data_manage.GetEdbDataListMinAndMax(v.Source, v.EdbInfoId, startDate, endDate)
|
|
|
- // item := new(models.ChartEdbInfoMapping)
|
|
|
- // item.EdbInfoId = v.EdbInfoId
|
|
|
- // item.SourceName = v.SourceName
|
|
|
- // item.Source = v.Source
|
|
|
- // item.EdbCode = v.EdbCode
|
|
|
- // item.EdbName = v.EdbName
|
|
|
- // item.EdbNameEn = v.EdbNameEn
|
|
|
- // item.Frequency = v.Frequency
|
|
|
- // item.FrequencyEn = GetFrequencyEn(v.Frequency)
|
|
|
- // //无就是不展示
|
|
|
- // if v.Unit != `无` {
|
|
|
- // item.Unit = v.Unit
|
|
|
- // }
|
|
|
- // item.UnitEn = v.UnitEn
|
|
|
- // item.StartDate = v.StartDate
|
|
|
- // item.EndDate = v.EndDate
|
|
|
- // //item.ModifyTime = v.ModifyTime
|
|
|
- // //item.ChartEdbMappingId = v.ChartEdbMappingId
|
|
|
- // item.ChartInfoId = v.ChartInfoId
|
|
|
- // item.MaxData = v.MaxData
|
|
|
- // item.MinData = v.MinData
|
|
|
- // item.IsOrder = v.IsOrder
|
|
|
- // item.IsAxis = v.IsAxis
|
|
|
- // item.EdbInfoType = v.EdbInfoType
|
|
|
- // item.EdbType = v.EdbType
|
|
|
- // item.LeadValue = v.LeadValue
|
|
|
- // item.LeadUnit = v.LeadUnit
|
|
|
- // item.LeadUnitEn = GetLeadUnitEn(v.LeadUnit)
|
|
|
- // item.ChartStyle = v.ChartStyle
|
|
|
- // item.ChartColor = v.ChartColor
|
|
|
- // item.ChartWidth = v.ChartWidth
|
|
|
- //
|
|
|
- // var startDateReal string
|
|
|
- // var diffSeconds int64
|
|
|
- // if chartType == 2 { //季节性图表
|
|
|
- // startDateReal = startDate
|
|
|
- // } else {
|
|
|
- // if v.EdbInfoType == 0 && v.LeadUnit != "" && v.LeadValue > 0 { //领先指标
|
|
|
- // var startTimeRealTemp time.Time
|
|
|
- // startDateParse, _ := time.Parse(utils.FormatDate, startDate)
|
|
|
- // switch v.LeadUnit {
|
|
|
- // case "天":
|
|
|
- // startTimeRealTemp = startDateParse.AddDate(0, 0, -v.LeadValue)
|
|
|
- // case "月":
|
|
|
- // startTimeRealTemp = startDateParse.AddDate(0, -v.LeadValue, 0)
|
|
|
- // case "季":
|
|
|
- // startTimeRealTemp = startDateParse.AddDate(0, -3*v.LeadValue, 0)
|
|
|
- // case "周":
|
|
|
- // startTimeRealTemp = startDateParse.AddDate(0, 0, -7*v.LeadValue)
|
|
|
- // case "年":
|
|
|
- // startTimeRealTemp = startDateParse.AddDate(-v.LeadValue, 0, 0)
|
|
|
- // }
|
|
|
- // if startTimeRealTemp.Before(startDateParse) {
|
|
|
- // startDateReal = startTimeRealTemp.Format(utils.FormatDate)
|
|
|
- // diffSeconds = (int64(startTimeRealTemp.UnixNano()) - int64(startDateParse.UnixNano())) / 1e6
|
|
|
- // } else {
|
|
|
- // startDateReal = startDate
|
|
|
- // diffSeconds = 0
|
|
|
- // }
|
|
|
- // } else {
|
|
|
- // startDateReal = startDate
|
|
|
- // }
|
|
|
- // }
|
|
|
- // calendarPreYear := 0
|
|
|
- // if calendar == "农历" {
|
|
|
- // newStartDateReal, err := time.Parse(utils.FormatDate, startDateReal)
|
|
|
- // if err != nil {
|
|
|
- // fmt.Println("time.Parse:" + err.Error())
|
|
|
- // utils.FileLog.Info("startDateReal parse err:" + err.Error())
|
|
|
- // }
|
|
|
- // calendarPreYear = newStartDateReal.Year() - 1
|
|
|
- // newStartDateReal = newStartDateReal.AddDate(-1, 0, 0)
|
|
|
- // startDateReal = newStartDateReal.Format(utils.FormatDate)
|
|
|
- // }
|
|
|
- // dataList := make([]*models.EdbDataList, 0)
|
|
|
- // fmt.Println("chart:", v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
- // dataList, err = models.GetEdbDataList(v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
- // if err != nil {
|
|
|
- // br.Msg = "获取失败"
|
|
|
- // br.Msg = "获取失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if diffSeconds != 0 && v.EdbInfoType == 0 {
|
|
|
- // dataListLen := len(dataList)
|
|
|
- // for i := 0; i < dataListLen; i++ {
|
|
|
- // dataList[i].DataTimestamp = dataList[i].DataTimestamp - diffSeconds
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // if chartType == 2 {
|
|
|
- // if calendar == "农历" {
|
|
|
- // result, err := models.AddCalculateQuarterV5(dataList)
|
|
|
- // if err != nil {
|
|
|
- // br.Msg = "获取失败"
|
|
|
- // br.Msg = "获取农历数据失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if result.List[0].Year != calendarPreYear {
|
|
|
- // itemList := make([]*models.EdbDataList, 0)
|
|
|
- // items := new(models.EdbDataItems)
|
|
|
- // //items.Year = calendarPreYear
|
|
|
- // items.Items = itemList
|
|
|
- //
|
|
|
- // newResult := new(models.EdbDataResult)
|
|
|
- // newResult.List = append(newResult.List, items)
|
|
|
- // newResult.List = append(newResult.List, result.List...)
|
|
|
- // item.DataList = newResult
|
|
|
- // } else {
|
|
|
- // item.DataList = result
|
|
|
- // }
|
|
|
- // } else {
|
|
|
- // currentYear := time.Now().Year()
|
|
|
- // quarterDataList := make([]*models.QuarterData, 0)
|
|
|
- // quarterMap := make(map[int][]*models.EdbDataList)
|
|
|
- // var quarterArr []int
|
|
|
- // for _, v := range dataList {
|
|
|
- // //v.DataTime
|
|
|
- // itemDate, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
- // if err != nil {
|
|
|
- // br.Msg = "获取失败"
|
|
|
- // br.Msg = "季度指标日期转换,Err:" + err.Error() + ";DataTime:" + v.DataTime
|
|
|
- // return
|
|
|
- // }
|
|
|
- // year := itemDate.Year()
|
|
|
- // newItemDate := itemDate.AddDate(currentYear-year, 0, 0)
|
|
|
- // timestamp := newItemDate.UnixNano() / 1e6
|
|
|
- // v.DataTimestamp = timestamp
|
|
|
- // if findVal, ok := quarterMap[year]; !ok {
|
|
|
- // quarterArr = append(quarterArr, year)
|
|
|
- // findVal = append(findVal, v)
|
|
|
- // quarterMap[year] = findVal
|
|
|
- // } else {
|
|
|
- // findVal = append(findVal, v)
|
|
|
- // quarterMap[year] = findVal
|
|
|
- // }
|
|
|
- // }
|
|
|
- // for _, v := range quarterArr {
|
|
|
- // itemList := quarterMap[v]
|
|
|
- // quarterItem := new(models.QuarterData)
|
|
|
- // quarterItem.Year = v
|
|
|
- // quarterItem.DataList = itemList
|
|
|
- // quarterDataList = append(quarterDataList, quarterItem)
|
|
|
- // }
|
|
|
- // item.DataList = quarterDataList
|
|
|
- // }
|
|
|
- // } else {
|
|
|
- // item.DataList = dataList
|
|
|
- // }
|
|
|
- // edbList = append(edbList, item)
|
|
|
- //}
|
|
|
- // 获取图表中的指标数据
|
|
|
- edbList, err := data.GetChartEdbData(chartInfoId, chartType, calendar, startDate, endDate, mappingList)
|
|
|
+ barChartInfoDateList := make([]data_manage.BarChartInfoDateReq, 0)
|
|
|
+ barChartInfoSort := data_manage.BarChartInfoSortReq{}
|
|
|
+ // 柱方图的一些配置
|
|
|
+ if chartInfo != nil && chartInfo.ChartType == 7 {
|
|
|
+ if chartInfo.BarConfig == `` {
|
|
|
+ br.Msg = "柱方图未配置"
|
|
|
+ br.ErrMsg = "柱方图未配置"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var barConfig data_manage.BarChartInfoReq
|
|
|
+ err := json.Unmarshal([]byte(chartInfo.BarConfig), &barConfig)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "柱方图配置异常"
|
|
|
+ br.ErrMsg = "柱方图配置异常"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ barChartInfoDateList = barConfig.DateList
|
|
|
+ barChartInfoSort = barConfig.Sort
|
|
|
+
|
|
|
+ // 指标别名
|
|
|
+ for _, v := range mappingList {
|
|
|
+ for _, confEdb := range barConfig.EdbInfoIdList {
|
|
|
+ if v.EdbInfoId == confEdb.EdbInfoId {
|
|
|
+ v.EdbAliasName = confEdb.Name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ edbList, xEdbIdValue, yDataList, err := data.GetChartEdbData(chartInfoId, chartType, calendar, startDate, endDate, mappingList, barChartInfoDateList, barChartInfoSort)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
|
|
@@ -308,6 +186,9 @@ func (this *ChartController) ChartInfoDetail() {
|
|
|
|
|
|
resp.ChartInfo = chartInfo
|
|
|
resp.EdbInfoList = edbList
|
|
|
+ resp.XEdbIdValue = xEdbIdValue
|
|
|
+ resp.YDataList = yDataList
|
|
|
+
|
|
|
if utils.Re == nil {
|
|
|
data, _ := json.Marshal(resp)
|
|
|
utils.Rc.Put(key, data, 10*time.Minute)
|