Browse Source

Merge branch 'feature/pscg_edb' of eta_server/eta_bridge into master

xyxie 4 months ago
parent
commit
08581c38d9
2 changed files with 76 additions and 3 deletions
  1. 68 0
      models/pcsg/bloomberg.go
  2. 8 3
      services/index_data/pcsg_bloomberg.go

+ 68 - 0
models/pcsg/bloomberg.go

@@ -31,6 +31,9 @@ type PythonBloombergGeneralData struct {
 	DL_SNAPSHOT_START_TIME string   `json:"DL_SNAPSHOT_START_TIME" description:"数据日期"`
 	LAST_UPDATE            string   `json:"LAST_UPDATE" description:"IDpcsgDailySnap0000和IDpcsgDailySnap0330判断用的"`
 	PX_CLOSE_DT            string   `json:"PX_CLOSE_DT" description:"数据日期"`
+	LAST_UPDATE_DT         string   `json:"LAST_UPDATE_DT" description:"数据日期"`
+	HEATING_DAYS           *float64 `json:"HEATING_DAYS" description:"数据值, 可能为null"`
+	COOLING_DAYS           *float64 `json:"COOLING_DAYS" description:"数据值, 可能为null"`
 }
 
 // PythonBloombergGeneralResult API响应体
@@ -126,3 +129,68 @@ func FormatPythonBloombergGeneralData2Base(origin PythonBloombergGeneralData, fr
 	}
 	return
 }
+
+func FormatPythonBloombergDailyRun11Data2Base(origin PythonBloombergGeneralData, frequency, taskKey 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
+	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)
+
+	// 数据来源的值和日期对应字段不同
+	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,
+		})
+	}
+	items = append(items, item, itemHDD, itemCDD)
+	return
+}

+ 8 - 3
services/index_data/pcsg_bloomberg.go

@@ -20,9 +20,14 @@ func GetPCSGBloombergGeneralIndex(taskKey, frequency string) (indexes []pcsg.Bas
 		return
 	}
 	for _, v := range apiData {
-		t := pcsg.FormatPythonBloombergGeneralData2Base(v, frequency, taskKey)
-		if t.IndexCode != "" {
-			indexes = append(indexes, t)
+		if taskKey == "IDpcsgDailyRun11" {
+			tList := pcsg.FormatPythonBloombergDailyRun11Data2Base(v, frequency, taskKey)
+			indexes = append(indexes, tList...)
+		} else {
+			t := pcsg.FormatPythonBloombergGeneralData2Base(v, frequency, taskKey)
+			if t.IndexCode != "" {
+				indexes = append(indexes, t)
+			}
 		}
 	}
 	return