|
@@ -10,11 +10,9 @@ import (
|
|
|
chartEdbMappingModel "hongze/hongze_yb/models/tables/chart_edb_mapping"
|
|
|
chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
|
|
|
"hongze/hongze_yb/models/tables/chart_info_log"
|
|
|
- edbDataModel "hongze/hongze_yb/models/tables/edb_data"
|
|
|
edbInfoModel "hongze/hongze_yb/models/tables/edb_info"
|
|
|
"hongze/hongze_yb/services/alarm_msg"
|
|
|
"hongze/hongze_yb/services/chart"
|
|
|
- edbDataService "hongze/hongze_yb/services/edb_data"
|
|
|
"hongze/hongze_yb/services/user"
|
|
|
"hongze/hongze_yb/utils"
|
|
|
"io/ioutil"
|
|
@@ -169,183 +167,191 @@ func GetChartInfoDetail(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
// 指标列表
|
|
|
- sourceArr := make([]string, 0)
|
|
|
- edbList := make([]*chartEdbMappingModel.ChartEdbInfoMappingList, 0)
|
|
|
- for _, v := range mappingList {
|
|
|
- item := new(chartEdbMappingModel.ChartEdbInfoMappingList)
|
|
|
- item.EdbInfoId = v.EdbInfoId
|
|
|
- item.SourceName = v.SourceName
|
|
|
- item.Source = v.Source
|
|
|
- item.EdbCode = v.EdbCode
|
|
|
- item.EdbName = v.EdbName
|
|
|
- item.Frequency = v.Frequency
|
|
|
- if v.Unit != "无" {
|
|
|
- item.Unit = v.Unit
|
|
|
- }
|
|
|
- item.StartDate = v.StartDate
|
|
|
- item.EndDate = v.EndDate
|
|
|
- item.ModifyTime = v.ModifyTime
|
|
|
-
|
|
|
- if !utils.InArray(v.Source, utils.SystemSourceList) { //来源于系统的指标,都展示为弘则研究
|
|
|
- if !utils.InArray(v.SourceName, sourceArr) {
|
|
|
- sourceArr = append(sourceArr, v.SourceName)
|
|
|
- }
|
|
|
- }
|
|
|
- if chartInfoId <= 0 {
|
|
|
- item.IsAxis = 1
|
|
|
- item.LeadValue = 0
|
|
|
- item.LeadUnit = ""
|
|
|
- item.ChartEdbMappingId = 0
|
|
|
- item.ChartInfoId = 0
|
|
|
- item.IsOrder = false
|
|
|
- item.EdbInfoType = 1
|
|
|
- item.ChartStyle = ""
|
|
|
- item.ChartColor = ""
|
|
|
- item.ChartWidth = 0
|
|
|
- item.MaxData = v.MaxValue
|
|
|
- item.MinData = v.MinValue
|
|
|
- } else {
|
|
|
- item.IsAxis = v.IsAxis
|
|
|
- item.EdbInfoType = v.EdbInfoType
|
|
|
- item.LeadValue = v.LeadValue
|
|
|
- item.LeadUnit = v.LeadUnit
|
|
|
- item.ChartEdbMappingId = v.ChartEdbMappingId
|
|
|
- item.ChartInfoId = v.ChartInfoId
|
|
|
- item.ChartStyle = v.ChartStyle
|
|
|
- item.ChartColor = v.ChartColor
|
|
|
- item.ChartWidth = v.ChartWidth
|
|
|
- item.IsOrder = v.IsOrder
|
|
|
- item.MaxData = v.MaxData
|
|
|
- item.MinData = v.MinData
|
|
|
- }
|
|
|
- item.LatestValue = v.LatestValue
|
|
|
- item.LatestDate = v.LatestDate
|
|
|
- item.UniqueCode = v.UniqueCode
|
|
|
- item.ChartStyle = v.ChartStyle
|
|
|
-
|
|
|
- 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
|
|
|
- }
|
|
|
- }
|
|
|
- //fmt.Println("line 1011 chart:", v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
- calendarPreYear := 0
|
|
|
- if calendar == "农历" {
|
|
|
- newStartDateReal, err := time.Parse(utils.FormatDate, startDateReal)
|
|
|
- if err != nil {
|
|
|
- response.FailMsg("获取失败", "农历时间转换有误4001, Err:"+err.Error(), c)
|
|
|
- //fmt.Println("time.Parse:" + err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- calendarPreYear = newStartDateReal.Year() - 1
|
|
|
- newStartDateReal = newStartDateReal.AddDate(-1, 0, 0)
|
|
|
- startDateReal = newStartDateReal.Format(utils.FormatDate)
|
|
|
- }
|
|
|
- dataList := make([]*edbDataModel.EdbDataList, 0)
|
|
|
- fmt.Println("chart:", v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
- dataList, err = edbDataModel.GetEdbDataList(v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
- if err != nil {
|
|
|
- response.FailMsg("获取失败", "获取图表指标信息失败4003, Err:"+err.Error(), c)
|
|
|
- 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 == "农历" {
|
|
|
- if len(dataList) <= 0 {
|
|
|
- result := new(edbDataModel.EdbDataResult)
|
|
|
- item.DataList = result
|
|
|
- } else {
|
|
|
- result, err := edbDataService.AddCalculateQuarter(dataList)
|
|
|
- if err != nil {
|
|
|
- response.FailMsg("获取失败", "获取农历数据失败4002, Err:"+err.Error(), c)
|
|
|
- return
|
|
|
- }
|
|
|
- if result.List[0].Year != calendarPreYear {
|
|
|
- itemList := make([]*edbDataModel.EdbDataList, 0)
|
|
|
- items := new(edbDataModel.EdbDataItems)
|
|
|
- //items.Year = calendarPreYear
|
|
|
- items.Items = itemList
|
|
|
-
|
|
|
- newResult := new(edbDataModel.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([]*edbDataModel.QuarterData, 0)
|
|
|
- quarterMap := make(map[int][]*edbDataModel.EdbDataList)
|
|
|
- var quarterArr []int
|
|
|
- for _, v := range dataList {
|
|
|
- itemDate, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
- if err != nil {
|
|
|
- response.FailMsg("获取失败", "季度指标日期转换失败, Err:"+err.Error()+";DataTime:"+v.DataTime, c)
|
|
|
- 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(edbDataModel.QuarterData)
|
|
|
- quarterItem.Year = v
|
|
|
- quarterItem.DataList = itemList
|
|
|
- quarterDataList = append(quarterDataList, quarterItem)
|
|
|
- }
|
|
|
- item.DataList = quarterDataList
|
|
|
- }
|
|
|
- } else {
|
|
|
- item.DataList = dataList
|
|
|
- }
|
|
|
- edbList = append(edbList, item)
|
|
|
+ //sourceArr := make([]string, 0)
|
|
|
+ //edbList := make([]*chartEdbMappingModel.ChartEdbInfoMappingList, 0)
|
|
|
+ //for _, v := range mappingList {
|
|
|
+ // item := new(chartEdbMappingModel.ChartEdbInfoMappingList)
|
|
|
+ // item.EdbInfoId = v.EdbInfoId
|
|
|
+ // item.SourceName = v.SourceName
|
|
|
+ // item.Source = v.Source
|
|
|
+ // item.EdbCode = v.EdbCode
|
|
|
+ // item.EdbName = v.EdbName
|
|
|
+ // item.Frequency = v.Frequency
|
|
|
+ // if v.Unit != "无" {
|
|
|
+ // item.Unit = v.Unit
|
|
|
+ // }
|
|
|
+ // item.StartDate = v.StartDate
|
|
|
+ // item.EndDate = v.EndDate
|
|
|
+ // item.ModifyTime = v.ModifyTime
|
|
|
+ //
|
|
|
+ // if !utils.InArray(v.Source, utils.SystemSourceList) { //来源于系统的指标,都展示为弘则研究
|
|
|
+ // if !utils.InArray(v.SourceName, sourceArr) {
|
|
|
+ // sourceArr = append(sourceArr, v.SourceName)
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if chartInfoId <= 0 {
|
|
|
+ // item.IsAxis = 1
|
|
|
+ // item.LeadValue = 0
|
|
|
+ // item.LeadUnit = ""
|
|
|
+ // item.ChartEdbMappingId = 0
|
|
|
+ // item.ChartInfoId = 0
|
|
|
+ // item.IsOrder = false
|
|
|
+ // item.EdbInfoType = 1
|
|
|
+ // item.ChartStyle = ""
|
|
|
+ // item.ChartColor = ""
|
|
|
+ // item.ChartWidth = 0
|
|
|
+ // item.MaxData = v.MaxValue
|
|
|
+ // item.MinData = v.MinValue
|
|
|
+ // } else {
|
|
|
+ // item.IsAxis = v.IsAxis
|
|
|
+ // item.EdbInfoType = v.EdbInfoType
|
|
|
+ // item.LeadValue = v.LeadValue
|
|
|
+ // item.LeadUnit = v.LeadUnit
|
|
|
+ // item.ChartEdbMappingId = v.ChartEdbMappingId
|
|
|
+ // item.ChartInfoId = v.ChartInfoId
|
|
|
+ // item.ChartStyle = v.ChartStyle
|
|
|
+ // item.ChartColor = v.ChartColor
|
|
|
+ // item.ChartWidth = v.ChartWidth
|
|
|
+ // item.IsOrder = v.IsOrder
|
|
|
+ // item.MaxData = v.MaxData
|
|
|
+ // item.MinData = v.MinData
|
|
|
+ // }
|
|
|
+ // item.LatestValue = v.LatestValue
|
|
|
+ // item.LatestDate = v.LatestDate
|
|
|
+ // item.UniqueCode = v.UniqueCode
|
|
|
+ // item.ChartStyle = v.ChartStyle
|
|
|
+ //
|
|
|
+ // 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
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // //fmt.Println("line 1011 chart:", v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
+ // calendarPreYear := 0
|
|
|
+ // if calendar == "农历" {
|
|
|
+ // newStartDateReal, err := time.Parse(utils.FormatDate, startDateReal)
|
|
|
+ // if err != nil {
|
|
|
+ // response.FailMsg("获取失败", "农历时间转换有误4001, Err:"+err.Error(), c)
|
|
|
+ // //fmt.Println("time.Parse:" + err.Error())
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // calendarPreYear = newStartDateReal.Year() - 1
|
|
|
+ // newStartDateReal = newStartDateReal.AddDate(-1, 0, 0)
|
|
|
+ // startDateReal = newStartDateReal.Format(utils.FormatDate)
|
|
|
+ // }
|
|
|
+ // dataList := make([]*edbDataModel.EdbDataList, 0)
|
|
|
+ // fmt.Println("chart:", v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
+ // dataList, err = edbDataModel.GetEdbDataList(v.Source, v.EdbInfoId, startDateReal, endDate)
|
|
|
+ // if err != nil {
|
|
|
+ // response.FailMsg("获取失败", "获取图表指标信息失败4003, Err:"+err.Error(), c)
|
|
|
+ // 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 == "农历" {
|
|
|
+ // if len(dataList) <= 0 {
|
|
|
+ // result := new(edbDataModel.EdbDataResult)
|
|
|
+ // item.DataList = result
|
|
|
+ // } else {
|
|
|
+ // result, err := edbDataService.AddCalculateQuarter(dataList)
|
|
|
+ // if err != nil {
|
|
|
+ // response.FailMsg("获取失败", "获取农历数据失败4002, Err:"+err.Error(), c)
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // if result.List[0].Year != calendarPreYear {
|
|
|
+ // itemList := make([]*edbDataModel.EdbDataList, 0)
|
|
|
+ // items := new(edbDataModel.EdbDataItems)
|
|
|
+ // //items.Year = calendarPreYear
|
|
|
+ // items.Items = itemList
|
|
|
+ //
|
|
|
+ // newResult := new(edbDataModel.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([]*edbDataModel.QuarterData, 0)
|
|
|
+ // quarterMap := make(map[int][]*edbDataModel.EdbDataList)
|
|
|
+ // var quarterArr []int
|
|
|
+ // for _, v := range dataList {
|
|
|
+ // itemDate, err := time.Parse(utils.FormatDate, v.DataTime)
|
|
|
+ // if err != nil {
|
|
|
+ // response.FailMsg("获取失败", "季度指标日期转换失败, Err:"+err.Error()+";DataTime:"+v.DataTime, c)
|
|
|
+ // 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(edbDataModel.QuarterData)
|
|
|
+ // quarterItem.Year = v
|
|
|
+ // quarterItem.DataList = itemList
|
|
|
+ // quarterDataList = append(quarterDataList, quarterItem)
|
|
|
+ // }
|
|
|
+ // item.DataList = quarterDataList
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // item.DataList = dataList
|
|
|
+ // }
|
|
|
+ // edbList = append(edbList, item)
|
|
|
+ //}
|
|
|
+
|
|
|
+ // 获取图表中的指标数据
|
|
|
+ edbList, sourceArr, err := chart.GetChartEdbData(chartInfoId, chartType, calendar, startDate, endDate, mappingList)
|
|
|
+ if err != nil {
|
|
|
+ response.FailMsg("获取失败", "获取图表,指标信息失败, Err:"+err.Error(), c)
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
sourceArr = append(sourceArr, "弘则研究")
|
|
|
chartInfo.ChartSource = strings.Join(sourceArr, ",")
|
|
|
|