// 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" "strings" "unicode" ) // // OilDemandAnalysisContinentProcessor // // @Description: OilDemandAnalysisContinentProcessor处理器 // type OilDemandAnalysisContinentProcessor struct{} // // func (p *OilDemandAnalysisContinentProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisContinentProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisRegionProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisCountryProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisProductCategoryProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisProductDetailProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisSectorCategoryProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisSectorDetailProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilDemandAnalysisScenarioProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyOilQualityApiProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilMarketCubeUpstreamSupplyCapacityCapacityProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("OilMarketCubeUpstreamSupplyProductionProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyProductionWoSeasonalityProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyOPECPolicyReferenceProductionProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyOPECPolicyTargetProductionProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyOPECPolicyTargetCutProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyOPECPolicyActualCutProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyOPECPolicyComplianceProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("ProductsDemandProductsDemandMeanProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("ProductsDemandProductsDemandAddSigmaProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("ProductsDemandProductsDemandSubSigmaProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("BalancesTotalLiquidsBalancesProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("GeographyLatitudeProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.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) { // utils.FileLog.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 // } // utils.FileLog.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 // } // utils.FileLog.Info("GeographyLongitudeProcessor indexInfoList: %v", indexInfoList) // // // step_3: 指标数据 // dataList, err := dealData(indexInfoList) // if err != nil { // return nil, err // } // utils.FileLog.Info("GeographyLongitudeProcessor dataList: %v", dataList) // // return dataList, err // } // // 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 // } // utils.FileLog.Info("indexOneId: %v", requestResponse.Data) // //index.IndexInfoId = requestResponse.Data // } else { // utils.FileLog.Info("indexOneId: %v", requestResponse.Data.BaseFromRzdIndexId) // //index.IndexInfoId = requestResponse.Data.BaseFromRzdIndexId // } // } // return indexInfoList, nil // } func getIndexId(prefix string, area string, suffix string) (indexCode string) { 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 } // 处理分类 type BatchAddClassifyType struct { List []models.AddRzdClassify } func dealClassify(tableName string, sheetNames []string) (classifyList map[string]int, err error) { var rzdClassifyList []models.AddRzdClassify var parentId int classifyList = make(map[string]int) rzdMapStruct := classifyMap[tableName] // 查询一级分类是否存在 if classify, ok := RzdClassifyMap[rzdMapStruct.ClassifyName]; !ok { parentClassify := models.AddRzdClassify{ ClassifyName: rzdMapStruct.ClassifyName, Sort: rzdMapStruct.Sort, ParentId: 0, } rzdClassifyList = append(rzdClassifyList, parentClassify) resp, httpErr := httpRequestFill(BatchAddClassifyType{ List: rzdClassifyList, }, utils.BATCH_ADD_RZD_CLASSYFY) if httpErr != nil { err = fmt.Errorf("添加睿咨得分类失败: %v", err) return } var rzdResp models.RequestResponse[[]models.BaseFromRzdClassify] jsonErr := json.Unmarshal(resp, &rzdResp) if jsonErr != nil { err = fmt.Errorf("解析添加睿咨得分类失败: %v", err) return } if rzdResp.Ret != 200 { err = fmt.Errorf("添加睿咨得分类失败: %v", err) return } parentId = rzdResp.Data[0].BaseFromRzdClassifyId classifyList[tableName] = rzdResp.Data[0].BaseFromRzdClassifyId } else { parentId = classify.BaseFromRzdClassifyId classifyList[tableName] = classify.BaseFromRzdClassifyId } rzdClassifyList = []models.AddRzdClassify{} //处理二级分类 for _, sheetName := range sheetNames { if sheetName == "Content" { continue } rzdMapStruct = classifyMap[sheetName] if classify, ok := RzdClassifyMap[rzdMapStruct.ClassifyName]; !ok { rzdClassifyList = append(rzdClassifyList, models.AddRzdClassify{ ClassifyName: rzdMapStruct.ClassifyName, Sort: rzdMapStruct.Sort, ParentId: parentId, }) } else { classifyList[sheetName] = classify.BaseFromRzdClassifyId } } if len(rzdClassifyList) > 0 { resp, httpErr := httpRequestFill(BatchAddClassifyType{ List: rzdClassifyList}, utils.BATCH_ADD_RZD_CLASSYFY) if httpErr != nil { err = fmt.Errorf("添加睿咨得分类失败: %v", err) return } var rzdResp models.RequestResponse[[]models.BaseFromRzdClassify] jsonErr := json.Unmarshal(resp, &rzdResp) if jsonErr != nil { err = fmt.Errorf("解析添加睿咨得分类失败: %v", err) return } if rzdResp.Ret != 200 { err = fmt.Errorf("添加睿咨得分类失败: %v", err) return } for _, classify := range rzdResp.Data { classifyList[classify.ClassifyName] = classify.BaseFromRzdClassifyId } } return } // 处理分类 func getRzdClassifyList() (list []*models.BaseFromRzdClassify, err error) { //查询睿咨得分类 postEdbLib, httpErr := httpRequestFill(nil, utils.GET_RZD_CLASSIFY) if httpErr != nil { err = fmt.Errorf("获取睿咨得分类数据失败: %v", httpErr) return } var requestResponse models.RequestResponse[[]*models.BaseFromRzdClassify] jsonErr := json.Unmarshal(postEdbLib, &requestResponse) if jsonErr != nil { err = fmt.Errorf("获取睿咨得分类数据失败,解析JSON数据失败: %v", jsonErr) return } if requestResponse.Ret != 200 { err = fmt.Errorf("获取睿咨得分类数据失败,请求应答异常: %v", requestResponse.ErrMsg) return } return requestResponse.Data, nil }