gmy пре 6 месеци
родитељ
комит
1384391989

+ 12 - 0
models/base_from_rzd_classify.go

@@ -0,0 +1,12 @@
+// Package models @Author gmy 2024/10/21 9:26:00
+package models
+
+type BaseFromRzdClassify struct {
+	BaseFromRzdClassifyId int    `orm:"column(base_from_rzd_classify_id);pk"`
+	CreateTime            string `orm:"column(create_time)"`
+	ModifyTime            string `orm:"column(modify_time)"`
+	ClassifyName          string `orm:"column(classify_name)"`
+	ParentId              int    `orm:"column(parent_id)"`
+	Sort                  int    `orm:"column(sort)"`
+	ClassifyNameEn        string `orm:"column(classify_name_en)"`
+}

+ 12 - 0
models/base_from_rzd_data.go

@@ -0,0 +1,12 @@
+// @Author gmy 2024/8/7 9:50:00
+package models
+
+type BaseFromRzdData struct {
+	BaseFromLyDataId  int     `orm:"column(base_from_ly_data_id);pk"`
+	BaseFromLyIndexId int     `orm:"column(base_from_ly_index_id)"`
+	CreateTime        string  `orm:"column(create_time)"`
+	DataTime          string  `orm:"column(data_time)"`
+	IndexCode         string  `orm:"column(index_code)"`
+	ModifyTime        string  `orm:"column(modify_time)"`
+	Value             float64 `orm:"column(value)"`
+}

+ 14 - 0
models/base_from_rzd_index.go

@@ -0,0 +1,14 @@
+// Package models
+// @Author gmy 2024/8/7 9:38:00
+package models
+
+type BaseFromRzdIndex struct {
+	BaseFromRzdIndexId   int    `orm:"column(base_from_rzd_index_id);pk"`
+	CreateTime           string `orm:"column(create_time)"`
+	ModifyTime           string `orm:"column(modify_time)"`
+	BaseFromLyClassifyId int    `orm:"column(base_from_ly_classify_id)"`
+	IndexCode            string `orm:"column(index_code)"`
+	IndexName            string `orm:"column(index_name)"`
+	Frequency            string `orm:"column(frequency)"`
+	Unit                 string `orm:"column(unit)"`
+}

+ 16 - 8
services/ruizide/data_processor.go

@@ -1,4 +1,4 @@
-package main
+package ruizide
 
 import (
 	"context"
@@ -311,9 +311,9 @@ func resolverNet() {
 // func fileResolver() {
 func main() {
 	var fileName string
-
+	var tableName = "Oil_Demand_Signals_Weekly_Report"
 	// 解析Oil_Demand_Signals_Weekly_Report_表格
-	fileName = "Oil_Demand_Signals_Weekly_Report_" + utils.GetCurrentYearMonth() + ".xlsx"
+	fileName = tableName + "_" + utils.GetCurrentYearMonth() + ".xlsx"
 	filePath := filepath.Join(downloadDir, fileName)
 
 	// 打开 Excel 文件
@@ -324,8 +324,11 @@ func main() {
 
 	// 获取所有工作表
 	sheetNames := f.GetSheetList()
-	for _, sheetName := range sheetNames {
+	for sheetIndex, sheetName := range sheetNames {
 		fmt.Printf("读取工作表: %s\n", sheetName)
+		if sheetIndex == 0 {
+			continue
+		}
 
 		// 获取工作表的最大行数
 		maxRow, err := f.GetRows(sheetName) // 直接获取所有行数据
@@ -334,11 +337,16 @@ func main() {
 		}
 
 		// 遍历行并打印内容
-		for _, row := range maxRow {
-			for _, cell := range row {
-				fmt.Printf("%s ", cell)
+		for rowIndex, rowData := range maxRow {
+			if rowIndex < 4 {
+				continue
 			}
-			fmt.Println()
+			processor, err := GetProcessor(tableName, sheetName)
+			if err != nil {
+				return
+			}
+			baseFromLyDataList, err := processor.Process(tableName, sheetName, rowData)
+
 		}
 	}
 }

+ 36 - 0
services/ruizide/processor_business_logic.go

@@ -0,0 +1,36 @@
+// Package ruizide
+// @Author gmy 2024/10/21 10:50:00
+package ruizide
+
+import (
+	"eta/eta_data_analysis/models"
+	"github.com/beego/beego/v2/core/logs"
+)
+
+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",
+}
+
+// AnalyticsLibraryProcessor
+// @Description: AnalyticsLibrary处理器
+type AnalyticsLibraryProcessor struct{}
+
+func (p *AnalyticsLibraryProcessor) Process(tableName string, sheetName string, rowData []string) ([]models.BaseFromRzdData, error) {
+	logs.Info("Processing AnalyticsLibrary...")
+
+	// step_1: 分类
+	// 查询分类是否存在
+
+	// 不存在则新增
+
+	//
+
+	return nil, nil
+}

+ 26 - 0
services/ruizide/processor_factory.go

@@ -0,0 +1,26 @@
+package ruizide
+
+import (
+	"eta/eta_data_analysis/models"
+	"fmt"
+)
+
+type ReportProcessor interface {
+	Process(string, string, []string) ([]models.BaseFromRzdData, error)
+}
+
+func GetProcessor(tableName string, sheetName string) (ReportProcessor, error) {
+	if tableName == "Oil_Demand_Signals_Weekly_Report" {
+		switch sheetName {
+		default:
+			return &AnalyticsLibraryProcessor{}, nil
+		}
+	} else if tableName == "豆粕" {
+		switch sheetName {
+		default:
+			return nil, fmt.Errorf("unknown category: %s", sheetName)
+		}
+	}
+	// 可以添加更多的逻辑来处理其他产品和类别
+	return nil, fmt.Errorf("no processor found for tableName %s and sheetName %s", tableName, sheetName)
+}