|
@@ -1,3483 +0,0 @@
|
|
|
-// Package ruizide
|
|
|
-// @Author gmy 2024/10/21 10:50:00
|
|
|
-package ruizide
|
|
|
-
|
|
|
-import (
|
|
|
- "encoding/json"
|
|
|
- "eta/eta_data_analysis/models"
|
|
|
- "eta/eta_data_analysis/utils"
|
|
|
- "fmt"
|
|
|
- "github.com/beego/beego/v2/core/logs"
|
|
|
- "math"
|
|
|
- "strconv"
|
|
|
- "strings"
|
|
|
- "unicode"
|
|
|
-)
|
|
|
-
|
|
|
-var classifyMap = map[string]string{
|
|
|
- "Road Index": "analytics library",
|
|
|
- "Road Active Fleet": "analytics library",
|
|
|
- "Aviation Index": "analytics library",
|
|
|
- "Aviation Active Fleet": "analytics library",
|
|
|
- "Demand-Gasoline": "analytics library",
|
|
|
- "Demand - Diesel": "analytics library",
|
|
|
- "Demand - Jet Fuel": "analytics library",
|
|
|
- "Demand - Maritime Bunker": "analytics library",
|
|
|
- "Oil_Demand_Signals_Weekly_Report": "analytics library",
|
|
|
- "cube dashboards": "cube dashboards",
|
|
|
- "Oil Market Cube": "Oil Market Cube",
|
|
|
-}
|
|
|
-
|
|
|
-// RoadIndexProcessor
|
|
|
-// @Description: AnalyticsLibrary处理器
|
|
|
-type RoadIndexProcessor struct{}
|
|
|
-
|
|
|
-func (p *RoadIndexProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing AnalyticsLibrary...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "%"
|
|
|
- indexNameColOne := "Index"
|
|
|
- indexNameColTwo := "Index 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCodeOne] = indexNameOne
|
|
|
- indexInfoMap[indexCodeTwo] = indexNameTwo
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- valueOne, err := strconv.ParseFloat(rowData[len(rowData)-2], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- valueTwo, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// RoadActiveFleetProcessor
|
|
|
-// @Description: RoadActiveFleetProcessor处理器
|
|
|
-type RoadActiveFleetProcessor struct{}
|
|
|
-
|
|
|
-func (p *RoadActiveFleetProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing RoadActiveFleet...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "辆"
|
|
|
- indexNameColOne := "Active Fleet"
|
|
|
- indexNameColTwo := "Active Fleet 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- valueOne, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- valueTwo, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("RoadActiveFleetProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("RoadActiveFleetProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// AviationIndexProcessor
|
|
|
-// @Description: AviationIndexProcessor处理器
|
|
|
-type AviationIndexProcessor struct{}
|
|
|
-
|
|
|
-func (p *AviationIndexProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing AviationIndexProcessor...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "%"
|
|
|
- indexNameColOne := "Index"
|
|
|
- indexNameColTwo := "Index 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- valueOne, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- valueTwo, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("AviationIndexProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("AviationIndexProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// AviationActiveFleetProcessor
|
|
|
-// @Description: AviationActiveFleetProcessor处理器
|
|
|
-type AviationActiveFleetProcessor struct{}
|
|
|
-
|
|
|
-func (p *AviationActiveFleetProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing AviationActiveFleetProcessor...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "辆"
|
|
|
- indexNameColOne := "Active Fleet"
|
|
|
- indexNameColTwo := "Active Fleet 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId(sheetName, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- valueOne, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- valueTwo, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("AviationActiveFleetProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("AviationActiveFleetProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// DemandGasolineProcessor
|
|
|
-// @Description: DemandGasolineProcessor处理器
|
|
|
-type DemandGasolineProcessor struct{}
|
|
|
-
|
|
|
-func (p *DemandGasolineProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing DemandGasolineProcessor...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColOne := "Demand"
|
|
|
- indexNameColTwo := "Demand 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := "Gasoline Demand" + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := "Gasoline Demand" + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId("Gasoline Demand", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId("Gasoline Demand", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- var valueOne float64
|
|
|
- if rowData[len(rowData)-2] == "" {
|
|
|
- valueOne = 0
|
|
|
- } else {
|
|
|
- valueOne, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- var valueTwo float64
|
|
|
- if rowData[len(rowData)-1] == "" {
|
|
|
- valueTwo = 0
|
|
|
- } else {
|
|
|
- valueTwo, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandGasolineProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandGasolineProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// DemandDieselProcessor
|
|
|
-// @Description: DemandDieselProcessor处理器
|
|
|
-type DemandDieselProcessor struct{}
|
|
|
-
|
|
|
-func (p *DemandDieselProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing DemandDieselProcessor...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColOne := "Demand"
|
|
|
- indexNameColTwo := "Demand 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := "Demand Diesel" + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := "Demand Diesel" + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId("Demand Diesel", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId("Demand Diesel", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- valueOne, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- valueTwo, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandDieselProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandDieselProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// DemandJetFuelProcessor
|
|
|
-// @Description: DemandJetFuelProcessor处理器
|
|
|
-type DemandJetFuelProcessor struct{}
|
|
|
-
|
|
|
-func (p *DemandJetFuelProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing DemandJetFuelProcessor...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColOne := "Demand"
|
|
|
- indexNameColTwo := "Demand 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := "Demand Jet Fuel" + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := "Demand Jet Fuel" + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId("Demand Jet Fuel", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId("Demand Jet Fuel", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- valueOne, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- valueTwo, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandJetFuelProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandJetFuelProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// DemandMaritimeBunkerProcessor
|
|
|
-// @Description: DemandMaritimeBunkerProcessor处理器
|
|
|
-type DemandMaritimeBunkerProcessor struct{}
|
|
|
-
|
|
|
-func (p *DemandMaritimeBunkerProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing DemandMaritimeBunkerProcessor...")
|
|
|
- if tableName == "Content" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowIndex < 4 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "日度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColOne := "Demand"
|
|
|
- indexNameColTwo := "Demand 7DMA"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify(tableName, sheetName)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := "Demand Maritime Bunker" + "/" + rowData[len(rowData)-3] + "/" + indexNameColOne
|
|
|
- indexNameTwo := "Demand Maritime Bunker" + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId("Demand Maritime Bunker", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColOne)
|
|
|
- indexCodeTwo, err := getIndexId("Demand Maritime Bunker", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-3]), " ", ""), indexNameColTwo)
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- valueOne, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- valueTwo, err := strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandMaritimeBunkerProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("DemandMaritimeBunkerProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// SupplyRevisionAnalysisChartOneProcessor
|
|
|
-// @Description: SupplyRevisionAnalysisChartOneProcessor处理器
|
|
|
-type SupplyRevisionAnalysisChartOneProcessor struct{}
|
|
|
-
|
|
|
-func (p *SupplyRevisionAnalysisChartOneProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing SupplyRevisionAnalysisChartOne...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "季度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "YearQuarter"
|
|
|
- indexNameColPrefix := "Country Revision Group"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-1]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix+" Year Quarter", strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-1]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- var value float64
|
|
|
- if rowData[len(rowData)-2] == "" {
|
|
|
- value = 0
|
|
|
- } else {
|
|
|
- value, err = strconv.ParseFloat(rowData[len(rowData)-2], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat2(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartOneProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartOneProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// SupplyRevisionAnalysisChartTwoProcessor
|
|
|
-// @Description: SupplyRevisionAnalysisChartTwoProcessor处理器
|
|
|
-type SupplyRevisionAnalysisChartTwoProcessor struct{}
|
|
|
-
|
|
|
-func (p *SupplyRevisionAnalysisChartTwoProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing SupplyRevisionAnalysisChartTwoProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "季度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColPrefix := "YearQuarter"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + "Current"
|
|
|
- indexNameTwo := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + "Previous"
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix, "Current", "")
|
|
|
- indexCodeTwo, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix, "Previous", "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- var valueOne float64
|
|
|
- if rowData[len(rowData)-2] == "" {
|
|
|
- valueOne = 0
|
|
|
- } else {
|
|
|
- valueOne, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[1]
|
|
|
- formatOne, err := utils.ConvertDateFormat2(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- var valueTwo float64
|
|
|
- if rowData[len(rowData)-1] == "" {
|
|
|
- valueTwo = 0
|
|
|
- } else {
|
|
|
- valueTwo, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartTwoProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartTwoProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// SupplyRevisionAnalysisChartThreeProcessor
|
|
|
-// @Description: SupplyRevisionAnalysisChartThreeProcessor
|
|
|
-type SupplyRevisionAnalysisChartThreeProcessor struct{}
|
|
|
-
|
|
|
-func (p *SupplyRevisionAnalysisChartThreeProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing SupplyRevisionAnalysisChartThreeProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "年度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Year"
|
|
|
- indexNameColPrefix := "Country Revision Group"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-1]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix+" "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-1]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- var value float64
|
|
|
- if rowData[len(rowData)-2] == "" {
|
|
|
- value = 0
|
|
|
- } else {
|
|
|
- value, err = strconv.ParseFloat(rowData[len(rowData)-2], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat4(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartThreeProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartThreeProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// SupplyRevisionAnalysisChartFourProcessor
|
|
|
-// @Description: SupplyRevisionAnalysisChartFourProcessor处理器
|
|
|
-type SupplyRevisionAnalysisChartFourProcessor struct{}
|
|
|
-
|
|
|
-func (p *SupplyRevisionAnalysisChartFourProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing SupplyRevisionAnalysisChartFourProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "年度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColPrefix := "Year"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + "Current"
|
|
|
- indexNameTwo := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + "Previous"
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix, "current", "")
|
|
|
- indexCodeTwo, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix, "previous", "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- var valueOne float64
|
|
|
- if rowData[len(rowData)-2] == "" {
|
|
|
- valueOne = 0
|
|
|
- } else {
|
|
|
- valueOne, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[0]
|
|
|
- formatOne, err := utils.ConvertDateFormat4(dataTimeOne)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- var valueTwo float64
|
|
|
- if rowData[len(rowData)-1] == "" {
|
|
|
- valueTwo = 0
|
|
|
- } else {
|
|
|
- valueTwo, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-1], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartFourProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartFourProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// SupplyRevisionAnalysisChartFiveProcessor
|
|
|
-// @Description: SupplyRevisionAnalysisChartFiveProcessor处理器
|
|
|
-type SupplyRevisionAnalysisChartFiveProcessor struct{}
|
|
|
-
|
|
|
-func (p *SupplyRevisionAnalysisChartFiveProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing SupplyRevisionAnalysisChartFiveProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColPrefix := "YearMonth"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexNameOne := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + "Current/Chat5"
|
|
|
- indexNameTwo := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + "Previous/Chat5"
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCodeOne, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix, "currentchat5", "")
|
|
|
- indexCodeTwo, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix, "previouschat5", "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- var valueOne float64
|
|
|
- if rowData[len(rowData)-2] == "" {
|
|
|
- valueOne = 0
|
|
|
- } else {
|
|
|
- valueOne, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-2], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataTimeOne := rowData[len(rowData)-1]
|
|
|
- timeSplit := strings.Split(dataTimeOne, "-")
|
|
|
- formatOne, err := utils.GetLastDayOfMonth(timeSplit[0] + "-" + timeSplit[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameOne,
|
|
|
- IndexCode: indexCodeOne,
|
|
|
- Value: valueOne,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
- var valueTwo float64
|
|
|
- if rowData[len(rowData)-3] == "" {
|
|
|
- valueTwo = 0
|
|
|
- } else {
|
|
|
- valueTwo, err = strconv.ParseFloat(strings.ReplaceAll(rowData[len(rowData)-3], ",", ""), 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexNameTwo,
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
- Value: valueTwo,
|
|
|
- DataTime: formatOne,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartFiveProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartFiveProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// SupplyRevisionAnalysisChartSixProcessor
|
|
|
-// @Description: SupplyRevisionAnalysisChartSixProcessor
|
|
|
-type SupplyRevisionAnalysisChartSixProcessor struct{}
|
|
|
-
|
|
|
-func (p *SupplyRevisionAnalysisChartSixProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing SupplyRevisionAnalysisChartSixProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "YearMonth"
|
|
|
- indexNameColPrefix := "Country Revision Group"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Supply Revision Analysis "+indexNameColPrefix+" "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- var value float64
|
|
|
- if rowData[len(rowData)-1] == "" {
|
|
|
- value = 0
|
|
|
- } else {
|
|
|
- value, err = strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- timeSplit := strings.Split(dataTime, "-")
|
|
|
- format, err := utils.GetLastDayOfMonth(timeSplit[0] + "-" + timeSplit[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartSixProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("SupplyRevisionAnalysisChartSixProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilSupplyAnalysisChartOneProcessor
|
|
|
-// @Description: OilSupplyAnalysisChartOneProcessor处理器
|
|
|
-type OilSupplyAnalysisChartOneProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilSupplyAnalysisChartOneProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilSupplyAnalysisChartOne...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Oil And Gas Category"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Supply Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Supply Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Supply Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartOneProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartOneProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilSupplyAnalysisChartTwoProcessor
|
|
|
-// @Description: OilSupplyAnalysisChartTwoProcessor处理器
|
|
|
-type OilSupplyAnalysisChartTwoProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilSupplyAnalysisChartTwoProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilSupplyAnalysisChartTwoProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Region"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Supply Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Supply Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-1]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Supply Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-1]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-2], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartTwoProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartTwoProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilSupplyAnalysisChartThreeProcessor
|
|
|
-// @Description: OilSupplyAnalysisChartThreeProcessor处理器
|
|
|
-type OilSupplyAnalysisChartThreeProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilSupplyAnalysisChartThreeProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilSupplyAnalysisChartThreeProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "CapacityDetail"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Supply Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Supply Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Supply Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartThreeProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartThreeProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilSupplyAnalysisChartFourProcessor
|
|
|
-// @Description: OilSupplyAnalysisChartFourProcessor处理器
|
|
|
-type OilSupplyAnalysisChartFourProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilSupplyAnalysisChartFourProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilSupplyAnalysisChartFourProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Oil Classification Group"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Supply Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Supply Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Supply Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartFourProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilSupplyAnalysisChartFourProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisContinentProcessor
|
|
|
-// @Description: OilDemandAnalysisContinentProcessor处理器
|
|
|
-type OilDemandAnalysisContinentProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisContinentProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisContinentProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Continent"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisContinentProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisContinentProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisRegionProcessor
|
|
|
-// @Description: OilDemandAnalysisRegionProcessor处理器
|
|
|
-type OilDemandAnalysisRegionProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisRegionProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisRegionProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Region"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisRegionProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisRegionProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisCountryProcessor
|
|
|
-// @Description: OilDemandAnalysisCountryProcessor
|
|
|
-type OilDemandAnalysisCountryProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisCountryProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisCountryProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Country"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisCountryProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisCountryProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisProductCategoryProcessor
|
|
|
-// @Description: OilDemandAnalysisProductCategoryProcessor处理器
|
|
|
-type OilDemandAnalysisProductCategoryProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisProductCategoryProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisProductCategoryProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Product category"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisProductCategoryProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisProductCategoryProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisProductDetailProcessor
|
|
|
-// @Description: OilDemandAnalysisProductDetailProcessor处理器
|
|
|
-type OilDemandAnalysisProductDetailProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisProductDetailProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisProductDetailProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Product detail"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisProductDetailProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisProductDetailProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisSectorCategoryProcessor
|
|
|
-// @Description: OilDemandAnalysisSectorCategoryProcessor处理器
|
|
|
-type OilDemandAnalysisSectorCategoryProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisSectorCategoryProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisSectorCategoryProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Sector category"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisSectorCategoryProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisSectorCategoryProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisSectorDetailProcessor
|
|
|
-// @Description: OilDemandAnalysisSectorDetailProcessor处理器
|
|
|
-type OilDemandAnalysisSectorDetailProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisSectorDetailProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisSectorDetailProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Sector detail"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisSectorDetailProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisSectorDetailProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilDemandAnalysisScenarioProcessor
|
|
|
-// @Description: OilDemandAnalysisScenarioProcessor处理器
|
|
|
-type OilDemandAnalysisScenarioProcessor struct{}
|
|
|
-
|
|
|
-func (p *OilDemandAnalysisScenarioProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilDemandAnalysisScenarioProcessor...")
|
|
|
- if rowIndex < 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "千桶每天"
|
|
|
- indexNameColSuffix := "Scenario"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Oil Demand Analysis")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Oil Demand Analysis" + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-2]
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Oil Demand Analysis "+indexNameColSuffix, strings.ReplaceAll(strings.ToLower(rowData[len(rowData)-2]), " ", ""), "")
|
|
|
-
|
|
|
- indexInfoMap := make(map[string]string)
|
|
|
- indexInfoMap[indexCode] = indexName
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat3(dataTime)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisScenarioProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilDemandAnalysisScenarioProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyOilQualityApiProcessor
|
|
|
-// @Description: UpstreamSupplyOilQualityApiProcessor处理器
|
|
|
-type UpstreamSupplyOilQualityApiProcessor struct{}
|
|
|
-
|
|
|
-var rzdApiFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyOilQualityApiProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyOilQualityApiProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdApiFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdApiFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "°"
|
|
|
- indexNameColSuffix := "Oil Quality"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColSuffix + "/" + "API"
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColSuffix, strings.ToLower("API"), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOilQualityApiProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOilQualityApiProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor
|
|
|
-// @Description: OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor处理器
|
|
|
-type OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor struct{}
|
|
|
-
|
|
|
-var rzdSulphurFlag string
|
|
|
-
|
|
|
-func (p *OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdSulphurFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdSulphurFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "%wt"
|
|
|
- indexNameColSuffix := "Oil Quality"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColSuffix + "/" + "Sulphur"
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColSuffix, strings.ToLower("Sulphur"), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilMarketCubeUpstreamSupplyCapacityCapacityProcessor
|
|
|
-// @Description: OilMarketCubeUpstreamSupplyCapacityCapacityProcessor处理器
|
|
|
-type OilMarketCubeUpstreamSupplyCapacityCapacityProcessor struct{}
|
|
|
-
|
|
|
-var rzdCapacityFlag string
|
|
|
-
|
|
|
-func (p *OilMarketCubeUpstreamSupplyCapacityCapacityProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilMarketCubeUpstreamSupplyCapacityCapacityProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdCapacityFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdCapacityFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColSuffix := "Capacity"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply ", strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilMarketCubeUpstreamSupplyCapacityCapacityProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilMarketCubeUpstreamSupplyCapacityCapacityProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// OilMarketCubeUpstreamSupplyProductionProcessor
|
|
|
-// @Description: OilMarketCubeUpstreamSupplyProductionProcessor处理器
|
|
|
-type OilMarketCubeUpstreamSupplyProductionProcessor struct{}
|
|
|
-
|
|
|
-var rzdProductionFlag string
|
|
|
-
|
|
|
-func (p *OilMarketCubeUpstreamSupplyProductionProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing OilMarketCubeUpstreamSupplyProductionProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdProductionFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdProductionFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColSuffix := "Production"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply", strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilMarketCubeUpstreamSupplyProductionProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("OilMarketCubeUpstreamSupplyProductionProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyProductionWoSeasonalityProcessor
|
|
|
-// @Description: UpstreamSupplyProductionWoSeasonalityProcessor处理器
|
|
|
-type UpstreamSupplyProductionWoSeasonalityProcessor struct{}
|
|
|
-
|
|
|
-var rzdProductionWoSeasonalityFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyProductionWoSeasonalityProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyProductionWoSeasonalityProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdProductionWoSeasonalityFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdProductionWoSeasonalityFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColSuffix := "Production Wo Seasonality"
|
|
|
- //indexNameColPrefix := "CountryRevisionGroup"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply", strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyProductionWoSeasonalityProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyProductionWoSeasonalityProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyOPECPolicyReferenceProductionProcessor
|
|
|
-// @Description: UpstreamSupplyOPECPolicyReferenceProductionProcessor处理器
|
|
|
-type UpstreamSupplyOPECPolicyReferenceProductionProcessor struct{}
|
|
|
-
|
|
|
-var rzdReferenceProductionFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyOPECPolicyReferenceProductionProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyOPECPolicyReferenceProductionProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdReferenceProductionFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdReferenceProductionFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Reference Production"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColPrefix + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColPrefix, strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyReferenceProductionProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyReferenceProductionProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyOPECPolicyTargetProductionProcessor
|
|
|
-// @Description: UpstreamSupplyOPECPolicyTargetProductionProcessor处理器
|
|
|
-type UpstreamSupplyOPECPolicyTargetProductionProcessor struct{}
|
|
|
-
|
|
|
-var rzdTargetProductionFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyOPECPolicyTargetProductionProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyOPECPolicyTargetProductionProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdTargetProductionFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdTargetProductionFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Target Production"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColPrefix + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColPrefix, strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyTargetProductionProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyTargetProductionProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyOPECPolicyTargetCutProcessor
|
|
|
-// @Description: UpstreamSupplyOPECPolicyTargetCutProcessor处理器
|
|
|
-type UpstreamSupplyOPECPolicyTargetCutProcessor struct{}
|
|
|
-
|
|
|
-var rzdTargetCutFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyOPECPolicyTargetCutProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyOPECPolicyTargetCutProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdTargetCutFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdTargetCutFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Target Cut"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColPrefix + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColPrefix, strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyTargetCutProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyTargetCutProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyOPECPolicyActualCutProcessor
|
|
|
-// @Description: UpstreamSupplyOPECPolicyActualCutProcessor处理器
|
|
|
-type UpstreamSupplyOPECPolicyActualCutProcessor struct{}
|
|
|
-
|
|
|
-var rzdActualCutFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyOPECPolicyActualCutProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyOPECPolicyActualCutProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdActualCutFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdActualCutFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Actual Cut"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColPrefix + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColPrefix, strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyActualCutProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyActualCutProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyOPECPolicyComplianceProcessor
|
|
|
-// @Description: UpstreamSupplyOPECPolicyComplianceProcessor处理器
|
|
|
-type UpstreamSupplyOPECPolicyComplianceProcessor struct{}
|
|
|
-
|
|
|
-var rzdComplianceFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyOPECPolicyComplianceProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyOPECPolicyComplianceProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdComplianceFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdComplianceFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Compliance"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColPrefix + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColPrefix, strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyComplianceProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyComplianceProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor
|
|
|
-// @Description: UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor处理器
|
|
|
-type UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor struct{}
|
|
|
-
|
|
|
-var rzdProductionSubjectToCutFlag string
|
|
|
-
|
|
|
-func (p *UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdProductionSubjectToCutFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdProductionSubjectToCutFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Production Subject To Cut"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Upstream Supply")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Upstream Supply" + "/" + indexNameColPrefix + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Upstream Supply "+indexNameColPrefix, strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// ProductsDemandProductsDemandMeanProcessor
|
|
|
-// @Description: ProductsDemandProductsDemandMeanProcessor处理器
|
|
|
-type ProductsDemandProductsDemandMeanProcessor struct{}
|
|
|
-
|
|
|
-var rzdProductsDemandMeanFlag string
|
|
|
-
|
|
|
-func (p *ProductsDemandProductsDemandMeanProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing ProductsDemandProductsDemandMeanProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdProductsDemandMeanFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdProductsDemandMeanFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- //indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Products Demand Mean (1.0 DG) "
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Products Demand")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Products Demand" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Products Demand "+"Products Demand Mean", strings.ReplaceAll(strings.ToLower("1.0dg"), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("ProductsDemandProductsDemandMeanProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("ProductsDemandProductsDemandMeanProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// ProductsDemandProductsDemandAddSigmaProcessor
|
|
|
-// @Description: ProductsDemandProductsDemandAddSigmaProcessor处理器
|
|
|
-type ProductsDemandProductsDemandAddSigmaProcessor struct{}
|
|
|
-
|
|
|
-var rzdAddSigmaFlag string
|
|
|
-
|
|
|
-func (p *ProductsDemandProductsDemandAddSigmaProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing ProductsDemandProductsDemandAddSigmaProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdAddSigmaFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdAddSigmaFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- //indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Products Demand +Sigma (2.2 DG) "
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Products Demand")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Products Demand" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Products Demand "+"Products Demand Sigma", strings.ReplaceAll(strings.ToLower("2.2dg"), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("ProductsDemandProductsDemandAddSigmaProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("ProductsDemandProductsDemandAddSigmaProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// ProductsDemandProductsDemandSubSigmaProcessor
|
|
|
-// @Description: ProductsDemandProductsDemandSubSigmaProcessor处理器
|
|
|
-type ProductsDemandProductsDemandSubSigmaProcessor struct{}
|
|
|
-
|
|
|
-var rzdSubSigmaFlag string
|
|
|
-
|
|
|
-func (p *ProductsDemandProductsDemandSubSigmaProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing ProductsDemandProductsDemandSubSigmaProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdSubSigmaFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdSubSigmaFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- //indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Products Demand -Sigma (1.8 DG) "
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Products Demand")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Products Demand" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Products Demand "+"Products Demand Sigma", strings.ReplaceAll(strings.ToLower("1.8dg"), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("ProductsDemandProductsDemandSubSigmaProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("ProductsDemandProductsDemandSubSigmaProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// BalancesTotalLiquidsBalancesProcessor
|
|
|
-// @Description: BalancesTotalLiquidsBalancesProcessor处理器
|
|
|
-type BalancesTotalLiquidsBalancesProcessor struct{}
|
|
|
-
|
|
|
-var rzdTotalLiquidsBalancesFlag string
|
|
|
-
|
|
|
-func (p *BalancesTotalLiquidsBalancesProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing BalancesTotalLiquidsBalancesProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdTotalLiquidsBalancesFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdTotalLiquidsBalancesFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := "kbbl/d"
|
|
|
- //indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Total Liquids Balances"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Balances")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Balances" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Balances", strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("BalancesTotalLiquidsBalancesProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("BalancesTotalLiquidsBalancesProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// GeographyLatitudeProcessor
|
|
|
-// @Description: GeographyLatitudeProcessor处理器
|
|
|
-type GeographyLatitudeProcessor struct{}
|
|
|
-
|
|
|
-var rzdLatitudeFlag string
|
|
|
-
|
|
|
-func (p *GeographyLatitudeProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing GeographyLatitudeProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdLatitudeFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdLatitudeFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := ""
|
|
|
- //indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Latitude"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Geography")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Geography" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Geography", strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("GeographyLatitudeProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("GeographyLatitudeProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-// GeographyLongitudeProcessor
|
|
|
-// @Description: GeographyLongitudeProcessor处理器
|
|
|
-type GeographyLongitudeProcessor struct{}
|
|
|
-
|
|
|
-var rzdLongitudeFlag string
|
|
|
-
|
|
|
-func (p *GeographyLongitudeProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
- logs.Info("Processing GeographyLongitudeProcessor...")
|
|
|
- if rowIndex <= 1 {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- if rowData[0] != "" {
|
|
|
- rzdLongitudeFlag = rowData[0]
|
|
|
- } else {
|
|
|
- rowData[0] = rzdLongitudeFlag
|
|
|
- }
|
|
|
-
|
|
|
- frequency := "月度"
|
|
|
- unit := ""
|
|
|
- //indexNameColPrefix := "OPEC_Policy"
|
|
|
- indexNameColSuffix := "Longitude"
|
|
|
-
|
|
|
- if !utils.IsNumeric(rowData[0]) {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
- if rowData[1] == "Sum" {
|
|
|
- return nil, nil
|
|
|
- }
|
|
|
-
|
|
|
- // step_1: 分类
|
|
|
- classifyId, err := dealClassify("Oil Market Cube", "Geography")
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
-
|
|
|
- // step_2: 指标
|
|
|
- // 指标名称
|
|
|
- indexName := "Geography" + "/" + indexNameColSuffix
|
|
|
-
|
|
|
- // 生成指标编码
|
|
|
- indexCode, err := getIndexId("Geography", strings.ReplaceAll(strings.ToLower(indexNameColSuffix), " ", ""), "")
|
|
|
-
|
|
|
- var indexInfoList []*models.IndexInfo
|
|
|
- value, err := strconv.ParseFloat(rowData[len(rowData)-1], 64)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- dataTime := rowData[0]
|
|
|
- format, err := utils.ConvertDateFormat6(dataTime + "-" + rowData[1])
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
- IndexName: indexName,
|
|
|
- IndexCode: indexCode,
|
|
|
- Value: value,
|
|
|
- DataTime: format,
|
|
|
- })
|
|
|
-
|
|
|
- indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("GeographyLongitudeProcessor indexInfoList: %v", indexInfoList)
|
|
|
-
|
|
|
- // step_3: 指标数据
|
|
|
- dataList, err := dealData(indexInfoList)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("GeographyLongitudeProcessor dataList: %v", dataList)
|
|
|
-
|
|
|
- return dataList, err
|
|
|
-}
|
|
|
-
|
|
|
-func dealData(indexInfoList []*models.IndexInfo) ([]models.BaseFromRzdData, error) {
|
|
|
- var dataList []models.BaseFromRzdData
|
|
|
- for _, indexInfo := range indexInfoList {
|
|
|
- paramsLib := make(map[string]interface{})
|
|
|
- paramsLib["IndexCode"] = indexInfo.IndexCode
|
|
|
- paramsLib["DataTime"] = indexInfo.DataTime
|
|
|
- postEdbLib, err := httpRequestFill(paramsLib, utils.GET_RZD_INDEX_DATA_BY_CODE_AND_TIME)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[models.BaseFromRzdData]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- if requestResponse.Data.BaseFromRzdIndexId == 0 {
|
|
|
- dataOne := models.BaseFromRzdData{
|
|
|
- BaseFromRzdIndexId: indexInfo.IndexInfoId,
|
|
|
- CreateTime: utils.GetCurrentTime(),
|
|
|
- DataTime: indexInfo.DataTime,
|
|
|
- IndexCode: indexInfo.IndexCode,
|
|
|
- ModifyTime: utils.GetCurrentTime(),
|
|
|
- Value: math.Round(indexInfo.Value*10000) / 10000,
|
|
|
- }
|
|
|
- dataList = append(dataList, dataOne)
|
|
|
- } else {
|
|
|
- // 编辑
|
|
|
- value := math.Round(indexInfo.Value*10000) / 10000
|
|
|
- if requestResponse.Data.Value != value {
|
|
|
- rzdData := requestResponse.Data
|
|
|
- rzdData.Value = value
|
|
|
-
|
|
|
- _, err = httpRequestFill(rzdData, utils.UPDATE_RZD_EDB_DATA)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return dataList, nil
|
|
|
-}
|
|
|
-
|
|
|
-func dealIndex(indexInfoList []*models.IndexInfo, frequency string, unit string, classifyId int) ([]*models.IndexInfo, error) {
|
|
|
- for _, index := range indexInfoList {
|
|
|
- // 处理第一个指标
|
|
|
- paramsLib := make(map[string]interface{})
|
|
|
- paramsLib["indexCode"] = index.IndexCode
|
|
|
- postEdbLib, err := httpRequestFill(paramsLib, utils.GET_RZD_INDEX_BY_CODE)
|
|
|
- if err != nil {
|
|
|
- return nil, fmt.Errorf("getIndexId() : Failed to get rzd index by code: %v", err)
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[models.BaseFromRzdIndex]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- if requestResponse.Data.BaseFromRzdIndexId == 0 {
|
|
|
- indexOne := models.BaseFromRzdIndex{
|
|
|
- CreateTime: utils.GetCurrentTime(),
|
|
|
- ModifyTime: utils.GetCurrentTime(),
|
|
|
- BaseFromLyClassifyId: classifyId,
|
|
|
- IndexCode: index.IndexCode,
|
|
|
- IndexName: index.IndexName,
|
|
|
- Frequency: frequency,
|
|
|
- Unit: unit,
|
|
|
- }
|
|
|
- // 这里避免服务器宕机 出现唯一索引异常,进行分开保存
|
|
|
- postEdbLib, err = httpRequestFill(indexOne, utils.ADD_RZD_INDEX)
|
|
|
- if err != nil {
|
|
|
- return nil, fmt.Errorf("getIndexId() : Failed to get rzd index by code: %v", err)
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[int]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- logs.Info("indexOneId: %v", requestResponse.Data)
|
|
|
-
|
|
|
- index.IndexInfoId = requestResponse.Data
|
|
|
- } else {
|
|
|
- logs.Info("indexOneId: %v", requestResponse.Data.BaseFromRzdIndexId)
|
|
|
- index.IndexInfoId = requestResponse.Data.BaseFromRzdIndexId
|
|
|
- }
|
|
|
- }
|
|
|
- return indexInfoList, nil
|
|
|
-}
|
|
|
-
|
|
|
-func getIndexId(prefix string, area string, suffix string) (string, error) {
|
|
|
- prefixWords := strings.Fields(prefix) // 分割字符串为单词
|
|
|
- firstLetters := ""
|
|
|
-
|
|
|
- for _, word := range prefixWords {
|
|
|
- if len(word) > 0 {
|
|
|
- firstLetters += string(unicode.ToLower(rune(word[0]))) // 获取小写的第一个字母
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- suffixWords := strings.Fields(suffix) // 分割字符串为单词
|
|
|
- SecondLetters := ""
|
|
|
-
|
|
|
- for _, word := range suffixWords {
|
|
|
- if len(word) > 0 {
|
|
|
- SecondLetters += string(unicode.ToLower(rune(word[0]))) // 获取小写的第一个字母
|
|
|
- }
|
|
|
- }
|
|
|
- indexCode := "rzd" + firstLetters + area + SecondLetters
|
|
|
-
|
|
|
- return indexCode, nil
|
|
|
-}
|
|
|
-
|
|
|
-// 处理分类
|
|
|
-func dealClassify(tableName, sheetName string) (int, error) {
|
|
|
- // 查询一级分类是否存在
|
|
|
- paramsLib := make(map[string]interface{})
|
|
|
- paramsLib["classifyName"] = classifyMap[tableName]
|
|
|
- postEdbLib, err := httpRequestFill(paramsLib, utils.GET_RZD_CLASSIFY_BY_NAME)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to get classify: %v", err)
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[models.BaseFromRzdClassify]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
-
|
|
|
- // 处理一级分类
|
|
|
- var parentId int
|
|
|
- if requestResponse.Data.BaseFromRzdClassifyId == 0 {
|
|
|
- // 一级分类不存在,新增一级分类
|
|
|
- paramsLib = make(map[string]interface{})
|
|
|
- paramsLib["parentId"] = 0
|
|
|
- paramsLib["classifyName"] = classifyMap[tableName]
|
|
|
- postEdbLib, err = httpRequestFill(paramsLib, utils.ADD_RZD_CLASSIFY)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to add classify: %v", err)
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[int]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
- parentId = requestResponse.Data
|
|
|
- } else {
|
|
|
- // 一级分类已存在,使用其 ID
|
|
|
- parentId = requestResponse.Data.BaseFromRzdClassifyId
|
|
|
- }
|
|
|
- // 查询二级分类是否存在
|
|
|
- paramsSubLib := make(map[string]interface{})
|
|
|
- paramsSubLib["classifyName"] = sheetName // 这里替换成实际的二级分类名称
|
|
|
- postSubEdbLib, err := httpRequestFill(paramsSubLib, utils.GET_RZD_CLASSIFY_BY_NAME)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to get sub classify: %v", err)
|
|
|
- }
|
|
|
-
|
|
|
- var subRequestResponse models.RequestResponse[models.BaseFromRzdClassify]
|
|
|
- err = json.Unmarshal(postSubEdbLib, &subRequestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
-
|
|
|
- // 新增二级分类
|
|
|
- var classifyId int
|
|
|
- if subRequestResponse.Data.BaseFromRzdClassifyId == 0 {
|
|
|
- paramsLib = make(map[string]interface{})
|
|
|
- paramsLib["parentId"] = parentId
|
|
|
- paramsLib["classifyName"] = sheetName
|
|
|
- postEdbLib, err = httpRequestFill(paramsLib, utils.ADD_RZD_CLASSIFY)
|
|
|
- if err != nil {
|
|
|
- return 0, fmt.Errorf("AnalyticsLibraryProcessor Process() : failed to add classify: %v", err)
|
|
|
- }
|
|
|
- var requestResponse models.RequestResponse[int]
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
- classifyId = requestResponse.Data
|
|
|
- } else {
|
|
|
- classifyId = subRequestResponse.Data.BaseFromRzdClassifyId
|
|
|
- }
|
|
|
-
|
|
|
- return classifyId, nil
|
|
|
-}
|