123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package main
- import (
- "eta/eta_data_analysis/models"
- "fmt"
- )
- type ReportProcessor interface {
- Process(string, string, int, []string) ([]models.BaseFromRzdData, error)
- }
- func GetProcessor(tableName string, sheetName string) (ReportProcessor, error) {
- if tableName == "Oil_Demand_Signals_Weekly_Report" {
- switch sheetName {
- case "Road Index":
- return &RoadIndexProcessor{}, nil
- case "Road Active Fleet":
- return &RoadActiveFleetProcessor{}, nil
- case "Aviation Index":
- return &AviationIndexProcessor{}, nil
- case "Aviation Active Fleet":
- return &AviationActiveFleetProcessor{}, nil
- case "Demand - Gasoline":
- return &DemandGasolineProcessor{}, nil
- case "Demand - Diesel":
- return &DemandDieselProcessor{}, nil
- case "Demand - Jet Fuel":
- return &DemandJetFuelProcessor{}, nil
- case "Demand - Maritime Bunker":
- return &DemandMaritimeBunkerProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Supply_Revision_Analysis" {
- switch sheetName {
- case "Chart1":
- return &SupplyRevisionAnalysisChartOneProcessor{}, nil
- case "Chart2":
- return &SupplyRevisionAnalysisChartTwoProcessor{}, nil
- case "Chart3":
- return &SupplyRevisionAnalysisChartThreeProcessor{}, nil
- case "Chart4":
- return &SupplyRevisionAnalysisChartFourProcessor{}, nil
- case "Chart5":
- return &SupplyRevisionAnalysisChartFiveProcessor{}, nil
- case "Chart6":
- return &SupplyRevisionAnalysisChartSixProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Supply_Analysis" {
- switch sheetName {
- case "Chart1":
- return &OilSupplyAnalysisChartOneProcessor{}, nil
- case "Chart2":
- return &OilSupplyAnalysisChartTwoProcessor{}, nil
- case "Chart3":
- return &OilSupplyAnalysisChartThreeProcessor{}, nil
- case "Chart4":
- return &OilSupplyAnalysisChartFourProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Continent" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisContinentProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Region" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisRegionProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Country" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisCountryProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Product_Category" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisProductCategoryProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Product_Detail" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisProductDetailProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Sector_Category" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisSectorCategoryProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Sector_Detail" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisSectorDetailProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- } else if tableName == "Oil_Demand_Analysis_Scenario" {
- switch sheetName {
- case "Chart1":
- return &OilDemandAnalysisScenarioProcessor{}, nil
- default:
- return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
- }
- }
- // 可以添加更多的逻辑来处理其他产品和类别
- return nil, fmt.Errorf("no processor found for tableName %s and sheetName %s", tableName, sheetName)
- }
|