|
@@ -24,6 +24,7 @@ var classifyMap = map[string]string{
|
|
"Demand - Jet Fuel": "analytics library",
|
|
"Demand - Jet Fuel": "analytics library",
|
|
"Demand - Maritime Bunker": "analytics library",
|
|
"Demand - Maritime Bunker": "analytics library",
|
|
"Oil_Demand_Signals_Weekly_Report": "analytics library",
|
|
"Oil_Demand_Signals_Weekly_Report": "analytics library",
|
|
|
|
+ "cube dashboards": "cube dashboards",
|
|
}
|
|
}
|
|
|
|
|
|
// RoadIndexProcessor
|
|
// RoadIndexProcessor
|
|
@@ -32,6 +33,9 @@ type RoadIndexProcessor struct{}
|
|
|
|
|
|
func (p *RoadIndexProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
func (p *RoadIndexProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
logs.Info("Processing AnalyticsLibrary...")
|
|
logs.Info("Processing AnalyticsLibrary...")
|
|
|
|
+ if tableName == "Content" {
|
|
|
|
+ return nil, nil
|
|
|
|
+ }
|
|
if rowIndex < 4 {
|
|
if rowIndex < 4 {
|
|
return nil, nil
|
|
return nil, nil
|
|
}
|
|
}
|
|
@@ -54,10 +58,10 @@ func (p *RoadIndexProcessor) Process(tableName string, sheetName string, rowInde
|
|
indexNameTwo := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
indexNameTwo := sheetName + "/" + rowData[len(rowData)-3] + "/" + indexNameColTwo
|
|
|
|
|
|
// 生成指标编码
|
|
// 生成指标编码
|
|
- indexCodeOne, err := getIndexId(sheetName, strings.ToLower(rowData[len(rowData)-3]), indexNameColOne)
|
|
|
|
- indexCodeTwo, err := getIndexId(sheetName, strings.ToLower(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 indexInfoMap map[string]string
|
|
|
|
|
|
+ indexInfoMap := make(map[string]string)
|
|
indexInfoMap[indexCodeOne] = indexNameOne
|
|
indexInfoMap[indexCodeOne] = indexNameOne
|
|
indexInfoMap[indexCodeTwo] = indexNameTwo
|
|
indexInfoMap[indexCodeTwo] = indexNameTwo
|
|
|
|
|
|
@@ -110,42 +114,69 @@ func (p *RoadIndexProcessor) Process(tableName string, sheetName string, rowInde
|
|
// @Description: ReDashboardExportOneProcessor处理器
|
|
// @Description: ReDashboardExportOneProcessor处理器
|
|
type ReDashboardExportOneProcessor struct{}
|
|
type ReDashboardExportOneProcessor struct{}
|
|
|
|
|
|
-/*
|
|
|
|
- func (p *ReDashboardExportOneProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
|
- logs.Info("Processing ReDashboardExportOne...")
|
|
|
|
- if rowIndex < 4 {
|
|
|
|
- return nil, nil
|
|
|
|
- }
|
|
|
|
|
|
+func (p *ReDashboardExportOneProcessor) Process(tableName string, sheetName string, rowIndex int, rowData []string) ([]models.BaseFromRzdData, error) {
|
|
|
|
+ logs.Info("Processing ReDashboardExportOne...")
|
|
|
|
+ if rowIndex < 1 {
|
|
|
|
+ return nil, nil
|
|
|
|
+ }
|
|
|
|
|
|
- frequency := "季度"
|
|
|
|
- unit := "千桶每天"
|
|
|
|
- indexNameColOne := "Index"
|
|
|
|
- indexNameColTwo := "Index 7DMA"
|
|
|
|
|
|
+ frequency := "季度"
|
|
|
|
+ unit := "千桶每天"
|
|
|
|
+ indexNameColSuffix := "YearQuarter"
|
|
|
|
+ indexNameColPrefix := "CountryRevisionGroup"
|
|
|
|
|
|
- // step_1: 分类
|
|
|
|
- classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- logs.Info("classifyId: %v", classifyId)
|
|
|
|
|
|
+ // step_1: 分类
|
|
|
|
+ classifyId, err := dealClassify("cube dashboards", "Supply Revision Analysis")
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ logs.Info("classifyId: %v", classifyId)
|
|
|
|
|
|
- // step_2: 指标
|
|
|
|
- indexOneId, indexTwoId, indexCodeOne, indexCodeTwo, err := dealIndex(sheetName, rowData, indexNameColOne, indexNameColTwo, frequency, unit, classifyId)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- logs.Info("indexOneId: %v, indexTwoId: %v, indexCodeOne: %v, indexCodeTwo: %v", indexOneId, indexTwoId, indexCodeOne, indexCodeTwo)
|
|
|
|
|
|
+ // step_2: 指标
|
|
|
|
+ // 指标名称
|
|
|
|
+ indexName := "Supply Revision Analysis" + "/" + indexNameColPrefix + "/" + indexNameColSuffix + "/" + rowData[len(rowData)-1]
|
|
|
|
|
|
- // step_3: 指标数据
|
|
|
|
- dataList, err := dealData(indexOneId, indexTwoId, indexCodeOne, indexCodeTwo, rowData)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- logs.Info("dataList: %v", dataList)
|
|
|
|
|
|
+ // 生成指标编码
|
|
|
|
+ indexCode, err := getIndexId("Supply Revision Analysis"+" Country Revision Group"+" Year Quarter", 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.ConvertDateFormat2(dataTime)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ indexInfoList = append(indexInfoList, &models.IndexInfo{
|
|
|
|
+ IndexName: indexName,
|
|
|
|
+ IndexCode: indexCode,
|
|
|
|
+ Value: value,
|
|
|
|
+ DataTime: format,
|
|
|
|
+ })
|
|
|
|
|
|
- return dataList, err
|
|
|
|
|
|
+ indexInfoList, err = dealIndex(indexInfoList, frequency, unit, classifyId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
}
|
|
}
|
|
-*/
|
|
|
|
|
|
+ logs.Info("ReDashboardExportOne indexInfoList: %v", indexInfoList)
|
|
|
|
+
|
|
|
|
+ // step_3: 指标数据
|
|
|
|
+ dataList, err := dealData(indexInfoList)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ logs.Info("ReDashboardExportOne dataList: %v", dataList)
|
|
|
|
+
|
|
|
|
+ return dataList, err
|
|
|
|
+}
|
|
|
|
+
|
|
func dealData(indexInfoList []*models.IndexInfo) ([]models.BaseFromRzdData, error) {
|
|
func dealData(indexInfoList []*models.IndexInfo) ([]models.BaseFromRzdData, error) {
|
|
var dataList []models.BaseFromRzdData
|
|
var dataList []models.BaseFromRzdData
|
|
for _, indexInfo := range indexInfoList {
|
|
for _, indexInfo := range indexInfoList {
|
|
@@ -220,84 +251,6 @@ func dealIndex(indexInfoList []*models.IndexInfo, frequency string, unit string,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return indexInfoList, nil
|
|
return indexInfoList, nil
|
|
- /*// 处理第一个指标
|
|
|
|
- paramsLib := make(map[string]interface{})
|
|
|
|
- paramsLib["indexCode"] = indexCodeOne
|
|
|
|
- postEdbLib, err := httpRequestFill(paramsLib, utils.GET_RZD_INDEX_BY_CODE)
|
|
|
|
- if err != nil {
|
|
|
|
- return 0, 0, 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 0, 0, err
|
|
|
|
- }
|
|
|
|
- if requestResponse.Data.BaseFromRzdIndexId == 0 {
|
|
|
|
- indexOne := models.BaseFromRzdIndex{
|
|
|
|
- CreateTime: utils.GetCurrentTime(),
|
|
|
|
- ModifyTime: utils.GetCurrentTime(),
|
|
|
|
- BaseFromLyClassifyId: classifyId,
|
|
|
|
- IndexCode: indexCodeOne,
|
|
|
|
- IndexName: indexNameOne,
|
|
|
|
- Frequency: frequency,
|
|
|
|
- Unit: unit,
|
|
|
|
- }
|
|
|
|
- // 这里避免服务器宕机 出现唯一索引异常,进行分开保存
|
|
|
|
- postEdbLib, err = httpRequestFill(indexOne, utils.ADD_RZD_INDEX)
|
|
|
|
- if err != nil {
|
|
|
|
- return 0, 0, 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 0, 0, err
|
|
|
|
- }
|
|
|
|
- indexOneId = requestResponse.Data
|
|
|
|
- logs.Info("indexOneId: %v", indexOneId)
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- indexOneId = requestResponse.Data.BaseFromRzdIndexId
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 处理第二个指标
|
|
|
|
- paramsLib = make(map[string]interface{})
|
|
|
|
- paramsLib["indexCode"] = indexCodeTwo
|
|
|
|
- postEdbLib, err = httpRequestFill(paramsLib, utils.GET_RZD_INDEX_BY_CODE)
|
|
|
|
- if err != nil {
|
|
|
|
- return 0, 0, fmt.Errorf("getIndexId() : Failed to get rzd index by code: %v", err)
|
|
|
|
- }
|
|
|
|
- var requestResponseTwo models.RequestResponse[models.BaseFromRzdIndex]
|
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponseTwo)
|
|
|
|
- if err != nil {
|
|
|
|
- return 0, 0, err
|
|
|
|
- }
|
|
|
|
- if requestResponseTwo.Data.BaseFromRzdIndexId == 0 {
|
|
|
|
- indexTwo := models.BaseFromRzdIndex{
|
|
|
|
- CreateTime: utils.GetCurrentTime(),
|
|
|
|
- ModifyTime: utils.GetCurrentTime(),
|
|
|
|
- BaseFromLyClassifyId: classifyId,
|
|
|
|
- IndexCode: indexCodeTwo,
|
|
|
|
- IndexName: indexNameTwo,
|
|
|
|
- Frequency: frequency,
|
|
|
|
- Unit: unit,
|
|
|
|
- }
|
|
|
|
- // 这里避免服务器宕机 出现唯一索引异常,进行分开保存
|
|
|
|
- var requestResponse models.RequestResponse[int]
|
|
|
|
- postEdbLib, err = httpRequestFill(indexTwo, utils.ADD_RZD_INDEX)
|
|
|
|
- if err != nil {
|
|
|
|
- return 0, 0, fmt.Errorf("getIndexId() : Failed to get rzd index by code: %v", err)
|
|
|
|
- }
|
|
|
|
- err = json.Unmarshal(postEdbLib, &requestResponse)
|
|
|
|
- if err != nil {
|
|
|
|
- return 0, 0, err
|
|
|
|
- }
|
|
|
|
- indexTwoId = requestResponse.Data
|
|
|
|
- logs.Info("indexTwoId: %v", indexTwoId)
|
|
|
|
- } else {
|
|
|
|
- indexTwoId = requestResponseTwo.Data.BaseFromRzdIndexId
|
|
|
|
- }*/
|
|
|
|
-
|
|
|
|
- //return indexOneId, indexTwoId, nil
|
|
|
|
}
|
|
}
|
|
|
|
|
|
func getIndexId(prefix string, area string, suffix string) (string, error) {
|
|
func getIndexId(prefix string, area string, suffix string) (string, error) {
|
|
@@ -359,7 +312,6 @@ func dealClassify(tableName, sheetName string) (int, error) {
|
|
// 一级分类已存在,使用其 ID
|
|
// 一级分类已存在,使用其 ID
|
|
parentId = requestResponse.Data.BaseFromRzdClassifyId
|
|
parentId = requestResponse.Data.BaseFromRzdClassifyId
|
|
}
|
|
}
|
|
-
|
|
|
|
// 查询二级分类是否存在
|
|
// 查询二级分类是否存在
|
|
paramsSubLib := make(map[string]interface{})
|
|
paramsSubLib := make(map[string]interface{})
|
|
paramsSubLib["classifyName"] = sheetName // 这里替换成实际的二级分类名称
|
|
paramsSubLib["classifyName"] = sheetName // 这里替换成实际的二级分类名称
|