|
@@ -14,138 +14,6 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-// ChartInfoRefreshV1 图表刷新
|
|
|
-func ChartInfoRefreshV1(chartInfoId int) (err error) {
|
|
|
- var errmsg string
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ChartInfoRefresh:"+errmsg, utils.EmailSendToUsers)
|
|
|
- fmt.Println("ChartInfoRefresh Err:" + errmsg)
|
|
|
- }
|
|
|
- }()
|
|
|
- baseEdbInfoArr, calculateInfoArr, err := data_manage.GetChartInfoRefreshData(chartInfoId)
|
|
|
- if err != nil {
|
|
|
- errmsg = "获取需要刷新的指标失败:Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- var startDate string
|
|
|
-
|
|
|
- newBaseEdbInfoArr := make([]*data_manage.EdbInfo, 0)
|
|
|
- baseMap := make(map[int]*data_manage.EdbInfo)
|
|
|
- for _, bv := range baseEdbInfoArr {
|
|
|
- // 如果不是普通指标,那么过滤
|
|
|
- if bv.EdbInfoType != 0 {
|
|
|
- continue
|
|
|
- }
|
|
|
- if _, ok := baseMap[bv.EdbInfoId]; !ok {
|
|
|
- newBaseEdbInfoArr = append(newBaseEdbInfoArr, bv)
|
|
|
- }
|
|
|
- baseMap[bv.EdbInfoId] = bv
|
|
|
- }
|
|
|
-
|
|
|
- fmt.Println("calculateInfoArr:", len(calculateInfoArr))
|
|
|
-
|
|
|
- newCalculateInfoArr := make([]*data_manage.EdbInfo, 0)
|
|
|
- calculateMap := make(map[int]*data_manage.EdbInfo)
|
|
|
- var calculateArr []int
|
|
|
- for _, bv := range calculateInfoArr {
|
|
|
- if _, ok := calculateMap[bv.EdbInfoId]; !ok {
|
|
|
- newCalculateInfoArr = append(newCalculateInfoArr, bv)
|
|
|
- calculateArr = append(calculateArr, bv.EdbInfoId)
|
|
|
- }
|
|
|
- calculateMap[bv.EdbInfoId] = bv
|
|
|
- }
|
|
|
- sort.Ints(calculateArr)
|
|
|
- for _, bv := range newBaseEdbInfoArr {
|
|
|
- source := bv.Source
|
|
|
- edbInfoId := bv.EdbInfoId
|
|
|
- edbCode := bv.EdbCode
|
|
|
- startDate = bv.StartDate
|
|
|
- frequency := bv.Frequency
|
|
|
- if bv.StartDate == "0000-00-00" {
|
|
|
- continue
|
|
|
- }
|
|
|
- sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- var limitDay int
|
|
|
- startDate := ""
|
|
|
- switch frequency {
|
|
|
- case "日度":
|
|
|
- limitDay = utils.DATA_REFRESH
|
|
|
- case "周度":
|
|
|
- limitDay = utils.DATA_REFRESH * 7
|
|
|
- case "月度":
|
|
|
- limitDay = utils.DATA_REFRESH * 30
|
|
|
- case "季度":
|
|
|
- limitDay = utils.DATA_REFRESH * 90
|
|
|
- case "年度":
|
|
|
- limitDay = utils.DATA_REFRESH * 365
|
|
|
- default:
|
|
|
- limitDay = utils.DATA_REFRESH
|
|
|
- }
|
|
|
- startDate = sTime.AddDate(0, 0, -limitDay).Format(utils.FormatDate)
|
|
|
-
|
|
|
- fmt.Println("source:", source)
|
|
|
- respItem, err := RefreshEdbData(edbInfoId, source, edbCode, startDate)
|
|
|
- if err != nil {
|
|
|
- errmsg = errors.New("RefreshEdbData Err:" + err.Error()).Error()
|
|
|
- return err
|
|
|
- }
|
|
|
- if respItem.Ret != 200 {
|
|
|
- errmsg = errors.New(respItem.ErrMsg + ";EdbCode:" + edbCode).Error()
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- //maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
|
|
|
- //if err != nil {
|
|
|
- // return err
|
|
|
- //}
|
|
|
- //if maxAndMinItem != nil {
|
|
|
- // err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
|
|
|
- // if err != nil {
|
|
|
- // return err
|
|
|
- // }
|
|
|
- //}
|
|
|
- }
|
|
|
-
|
|
|
- //刷新相关计算指标
|
|
|
- for _, v := range calculateArr {
|
|
|
- edbInfo := calculateMap[v]
|
|
|
- if edbInfo == nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- startDate = edbInfo.StartDate
|
|
|
- source := edbInfo.Source
|
|
|
-
|
|
|
- if source == utils.DATA_SOURCE_CALCULATE {
|
|
|
- startDate = edbInfo.StartDate
|
|
|
- sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- startDate = sTime.Format(utils.FormatDate)
|
|
|
- }
|
|
|
-
|
|
|
- result, err := RefreshEdbCalculateData(edbInfo.EdbInfoId, edbInfo.EdbCode, startDate)
|
|
|
- if err != nil {
|
|
|
- fmt.Println(v, "RefreshEdbCalculateData err", time.Now())
|
|
|
- errmsg = "RefreshEdbCalculateData Err:" + err.Error()
|
|
|
- return err
|
|
|
- }
|
|
|
- if result.Ret != 200 {
|
|
|
- fmt.Println(v, "RefreshEdbCalculateData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
|
|
|
- errmsg = fmt.Sprint(v, "RefreshEdbCalculateData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
|
|
|
- return fmt.Errorf("刷新失败" + errmsg)
|
|
|
- }
|
|
|
- fmt.Println("end calculateArr:", v, time.Now())
|
|
|
- }
|
|
|
-
|
|
|
- return err
|
|
|
-}
|
|
|
-
|
|
|
// GetFrequencyEn 获取频度的英文版
|
|
|
func GetFrequencyEn(frequency string) (frequencyEn string) {
|
|
|
switch frequency {
|