|
@@ -9,10 +9,12 @@ import (
|
|
|
)
|
|
|
|
|
|
const (
|
|
|
- TaskKey0000 = "IDpcsgDailySnap0000"
|
|
|
- SubOneDayTaskKey = "IDpcsgDailySnap0330" // 日期-1的key
|
|
|
- TaskKey0345 = "IDpcsgDailySnap0345"
|
|
|
- TaskKeyHistU3 = "IDpcsgDailyRunHistU3"
|
|
|
+ TaskKey0000 = "IDpcsgDailySnap0000"
|
|
|
+ SubOneDayTaskKey = "IDpcsgDailySnap0330" // 日期-1的key
|
|
|
+ TaskKey0345 = "IDpcsgDailySnap0345"
|
|
|
+ TaskKeyHistU3 = "IDpcsgDailyRunHistU3"
|
|
|
+ TaskKeyIDpcsgDailyRun11 = "IDpcsgDailyRun11"
|
|
|
+ TaskKeyIDpcsgDailyRun12 = "IDpcsgDailyRun12"
|
|
|
)
|
|
|
|
|
|
// PythonBloombergGeneralData 通用数据格式(有空改成Map吧...然后做成配置方便加新字段...)
|
|
@@ -38,6 +40,8 @@ type PythonBloombergGeneralData struct {
|
|
|
PX_OPEN *float64 `json:"PX_OPEN" description:"数据值, 可能为null"`
|
|
|
PX_LOW *float64 `json:"PX_LOW" description:"数据值, 可能为null"`
|
|
|
PX_HIGH *float64 `json:"PX_HIGH" description:"数据值, 可能为null"`
|
|
|
+ WIND_SPEED *float64 `json:"WIND_SPEED" description:"数据值, 可能为null"`
|
|
|
+ PRECIPITATION *float64 `json:"PRECIPITATION" description:"数据值, 可能为null"`
|
|
|
}
|
|
|
|
|
|
// PythonBloombergGeneralResult API响应体
|
|
@@ -134,6 +138,7 @@ func FormatPythonBloombergGeneralData2Base(origin PythonBloombergGeneralData, fr
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// FormatPythonBloombergDailyRun11Data2Base Run11不要了被Run12替代了,留这过渡一下
|
|
|
func FormatPythonBloombergDailyRun11Data2Base(origin PythonBloombergGeneralData, frequency, taskKey string) (items []BaseFromBloombergApiIndexAndData) {
|
|
|
if origin.IDENTIFIER == "" {
|
|
|
return
|
|
@@ -338,3 +343,101 @@ func FormatPythonBloombergDailyHistU3Data2Base(origin PythonBloombergGeneralData
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// FormatPythonBloombergDailyRun12Data2Base 替换Run11
|
|
|
+func FormatPythonBloombergDailyRun12Data2Base(origin PythonBloombergGeneralData, frequency string) (items []BaseFromBloombergApiIndexAndData) {
|
|
|
+ if origin.IDENTIFIER == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if origin.LAST_UPDATE_DT == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dataTime, err := time.ParseInLocation(utils.FormatDate, origin.LAST_UPDATE_DT, time.Local)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ items = make([]BaseFromBloombergApiIndexAndData, 0)
|
|
|
+ // WER1UK00 Index, WER1UK00 Index HDD, WER1UK00 Index CDD, WER1UK00 Index Pre, WER1UK00 Index Win
|
|
|
+ item := BaseFromBloombergApiIndexAndData{}
|
|
|
+ item.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
|
|
|
+ item.IndexName = strings.TrimSpace(origin.NAME)
|
|
|
+ item.Frequency = frequency
|
|
|
+ item.Unit = "无"
|
|
|
+ item.Data = make([]BaseFromBloombergApiIndexData, 0)
|
|
|
+
|
|
|
+ itemHDD := BaseFromBloombergApiIndexAndData{}
|
|
|
+ itemHDD.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
|
|
|
+ itemHDD.IndexCode = fmt.Sprintf("%s HDD", itemHDD.IndexCode)
|
|
|
+ itemHDD.IndexName = strings.TrimSpace(origin.NAME)
|
|
|
+ itemHDD.IndexName = fmt.Sprintf("%s HDD", itemHDD.IndexName)
|
|
|
+ itemHDD.Frequency = frequency
|
|
|
+ itemHDD.Unit = "无"
|
|
|
+ itemHDD.Data = make([]BaseFromBloombergApiIndexData, 0)
|
|
|
+
|
|
|
+ itemCDD := BaseFromBloombergApiIndexAndData{}
|
|
|
+ itemCDD.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
|
|
|
+ itemCDD.IndexCode = fmt.Sprintf("%s CDD", itemCDD.IndexCode)
|
|
|
+ itemCDD.IndexName = strings.TrimSpace(origin.NAME)
|
|
|
+ itemCDD.IndexName = fmt.Sprintf("%s CDD", itemCDD.IndexName)
|
|
|
+ itemCDD.Frequency = frequency
|
|
|
+ itemCDD.Unit = "无"
|
|
|
+ itemCDD.Data = make([]BaseFromBloombergApiIndexData, 0)
|
|
|
+
|
|
|
+ itemPre := BaseFromBloombergApiIndexAndData{}
|
|
|
+ itemPre.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
|
|
|
+ itemPre.IndexCode = fmt.Sprintf("%s Pre", itemPre.IndexCode)
|
|
|
+ itemPre.IndexName = strings.TrimSpace(origin.NAME)
|
|
|
+ itemPre.IndexName = fmt.Sprintf("%s Precipitation", itemPre.IndexName)
|
|
|
+ itemPre.Frequency = frequency
|
|
|
+ itemPre.Unit = "无"
|
|
|
+ itemPre.Data = make([]BaseFromBloombergApiIndexData, 0)
|
|
|
+
|
|
|
+ itemWin := BaseFromBloombergApiIndexAndData{}
|
|
|
+ itemWin.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
|
|
|
+ itemWin.IndexCode = fmt.Sprintf("%s Win", itemWin.IndexCode)
|
|
|
+ itemWin.IndexName = strings.TrimSpace(origin.NAME)
|
|
|
+ itemWin.IndexName = fmt.Sprintf("%s Wind Speed", itemWin.IndexName)
|
|
|
+ itemWin.Frequency = frequency
|
|
|
+ itemWin.Unit = "无"
|
|
|
+ itemWin.Data = make([]BaseFromBloombergApiIndexData, 0)
|
|
|
+
|
|
|
+ // 数据来源的值和日期对应字段不同
|
|
|
+ if origin.PX_LAST != nil {
|
|
|
+ val := origin.PX_LAST
|
|
|
+ item.Data = append(item.Data, BaseFromBloombergApiIndexData{
|
|
|
+ DataTime: dataTime,
|
|
|
+ Value: *val,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if origin.HEATING_DAYS != nil {
|
|
|
+ val := origin.HEATING_DAYS
|
|
|
+ itemHDD.Data = append(itemHDD.Data, BaseFromBloombergApiIndexData{
|
|
|
+ DataTime: dataTime,
|
|
|
+ Value: *val,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if origin.COOLING_DAYS != nil {
|
|
|
+ val := origin.COOLING_DAYS
|
|
|
+ itemCDD.Data = append(itemCDD.Data, BaseFromBloombergApiIndexData{
|
|
|
+ DataTime: dataTime,
|
|
|
+ Value: *val,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if origin.WIND_SPEED != nil {
|
|
|
+ val := origin.WIND_SPEED
|
|
|
+ itemWin.Data = append(itemWin.Data, BaseFromBloombergApiIndexData{
|
|
|
+ DataTime: dataTime,
|
|
|
+ Value: *val,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if origin.PRECIPITATION != nil {
|
|
|
+ val := origin.PRECIPITATION
|
|
|
+ itemPre.Data = append(itemPre.Data, BaseFromBloombergApiIndexData{
|
|
|
+ DataTime: dataTime,
|
|
|
+ Value: *val,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ items = append(items, item, itemHDD, itemCDD, itemWin, itemPre)
|
|
|
+ return
|
|
|
+}
|