Browse Source

中石油新加坡-Bloomberg

hsun 10 months ago
parent
commit
ab0f231c36
4 changed files with 153 additions and 0 deletions
  1. 80 0
      services/data/base_from_pcsg.go
  2. 53 0
      services/data/edb_info.go
  3. 18 0
      services/task.go
  4. 2 0
      utils/constants.go

+ 80 - 0
services/data/base_from_pcsg.go

@@ -0,0 +1,80 @@
+package data
+
+import (
+	"context"
+	"eta/eta_task/services/alarm_msg"
+	"eta/eta_task/utils"
+	"fmt"
+)
+
+// RefreshPCSGBloombergDaily 中石油新加坡-刷新彭博日度指标
+func RefreshPCSGBloombergDaily(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			tips := "RefreshPCSGBloombergDaily-中石油新加坡-刷新彭博日度指标失败, ErrMsg:\n" + err.Error()
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+	}()
+
+	param := make(map[string]interface{})
+	uri := "bloomberg/pcsg/refresh_daily"
+	res, e := postRefreshEdbData(param, uri)
+	if e != nil {
+		err = fmt.Errorf("postRefreshEdbData err: %s", e.Error())
+		return
+	}
+	if res != nil && res.Ret != 200 {
+		err = fmt.Errorf("postRefreshEdbData fail")
+		return
+	}
+	return
+}
+
+// RefreshPCSGBloombergWeekly 中石油新加坡-刷新彭博周度指标
+func RefreshPCSGBloombergWeekly(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			tips := "RefreshPCSGBloombergWeekly-中石油新加坡-刷新彭博周度指标失败, ErrMsg:\n" + err.Error()
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+	}()
+
+	param := make(map[string]interface{})
+	uri := "bloomberg/pcsg/refresh_weekly"
+	res, e := postRefreshEdbData(param, uri)
+	if e != nil {
+		err = fmt.Errorf("postRefreshEdbData err: %s", e.Error())
+		return
+	}
+	if res != nil && res.Ret != 200 {
+		err = fmt.Errorf("postRefreshEdbData fail")
+		return
+	}
+	return
+}
+
+// RefreshPCSGBloombergMonthly 中石油新加坡-刷新彭博月度指标
+func RefreshPCSGBloombergMonthly(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			tips := "RefreshPCSGBloombergMonthly-中石油新加坡-刷新彭博月度指标失败, ErrMsg:\n" + err.Error()
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+	}()
+
+	param := make(map[string]interface{})
+	uri := "bloomberg/pcsg/refresh_monthly"
+	res, e := postRefreshEdbData(param, uri)
+	if e != nil {
+		err = fmt.Errorf("postRefreshEdbData err: %s", e.Error())
+		return
+	}
+	if res != nil && res.Ret != 200 {
+		err = fmt.Errorf("postRefreshEdbData fail")
+		return
+	}
+	return
+}

+ 53 - 0
services/data/edb_info.go

@@ -1248,3 +1248,56 @@ func RefreshDataFromGz(wg *sync.WaitGroup) (err error) {
 	}
 	return err
 }
+
+// RefreshDataFromBloomberg 刷新Bloomberg
+func RefreshDataFromBloomberg(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
+	defer func() {
+		if err != nil {
+			fmt.Println("RefreshDataFromBloomberg Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg("RefreshDataFromBloomberg ErrMsg:"+err.Error(), 3)
+		}
+		if len(errMsgList) > 0 {
+			errMsg := "RefreshDataFromBloomberg Err:" + strings.Join(errMsgList, "\n")
+			fmt.Println(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
+		}
+		wg.Done()
+	}()
+	var condition string
+	var pars []interface{}
+	condition += ` AND source = ? AND no_update = 0 `
+	pars = append(pars, utils.DATA_SOURCE_BLOOMBERG)
+
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return err
+	}
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+		if err != nil {
+			errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
+			continue
+		}
+		if resp.Ret != 200 {
+			errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
+		}
+	}
+	fmt.Println("Bloomberg刷新结束")
+	return err
+}

+ 18 - 0
services/task.go

@@ -117,6 +117,17 @@ func releaseTask() {
 		task.AddTask("定时同步中基宁波SMM指标列表", syncZhongJiIndexList)
 	}
 
+	// 中石油新加坡
+	if utils.BusinessCode == utils.BusinessCodePCSG {
+		refreshPCSGBloombergDaily := task.NewTask("refreshPCSGBloombergDaily", "0 30 9 * * *", data.RefreshPCSGBloombergDaily)
+		task.AddTask("刷新中石油新加坡-Bloomberg日度指标", refreshPCSGBloombergDaily)
+
+		refreshPCSGBloombergWeekly := task.NewTask("refreshPCSGBloombergWeekly", "0 30 9 * * *", data.RefreshPCSGBloombergWeekly)
+		task.AddTask("刷新中石油新加坡-Bloomberg周度指标", refreshPCSGBloombergWeekly)
+
+		refreshPCSGBloombergMonthly := task.NewTask("refreshPCSGBloombergMonthly", "0 30 9 * * *", data.RefreshPCSGBloombergMonthly)
+		task.AddTask("刷新中石油新加坡-Bloomberg月度指标", refreshPCSGBloombergMonthly)
+	}
 }
 
 func RefreshData(cont context.Context) (err error) {
@@ -155,6 +166,13 @@ func RefreshData(cont context.Context) (err error) {
 	go data.RefreshDataFromNationalStatistics(&wg)
 	//富宝指标刷新
 	go data.RefreshDataFromFubao(&wg)
+
+	// Bloomberg
+	go func() {
+		wg.Add(1)
+		_ = data.RefreshDataFromBloomberg(&wg)
+	}()
+
 	wg.Wait()
 	////计算指标
 	data.RefreshDataFromCalculateAll()

+ 2 - 0
utils/constants.go

@@ -102,6 +102,7 @@ const (
 	DATA_SOURCE_CALCULATE_RJZ                                   // 日均值计算->75
 	DATA_SOURCE_GFEX                                 = 78       // 广州期货交易所->78
 	DATA_SOURCE_ICPI                                 = 79       // ICPI消费价格指数->79
+	DATA_SOURCE_BLOOMBERG                            = 83       // bloomberg彭博数据
 )
 
 // 数据刷新频率
@@ -143,6 +144,7 @@ const (
 	BusinessCodeRelease = "E2023080900" // 生产环境
 	BusinessCodeJiaYue  = "E2023092201" // 嘉悦物产
 	BusinessCodeZhongJi = "E2023110300" // 中基宁波
+	BusinessCodePCSG    = "E2024022900" // 中石油新加坡
 )
 
 // 子数据来源渠道