package services import ( "encoding/json" "eta/eta_data_analysis/models" "eta/eta_data_analysis/utils" "fmt" "github.com/tealeg/xlsx" "os" ) func JsmHistory(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalCoastal Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalCoastal, Err: %s", err)) } }() //path := "/home/code/python/coal_mail/emailFile/沿海八省动力煤终端用户供耗存数据更新.xlsx" //path := "/Users/xi/Desktop/瑞茂通-中国煤炭市场网数据/442家晋陕蒙、沿海8省、内陆17省历史数据/442家晋陕蒙历史数据.xlsx" //path := "D:\\瑞茂通-中国煤炭市场网数据\\442家晋陕蒙、沿海8省、内陆17省历史数据\\442家晋陕蒙历史数据.xlsx" var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } //sheetData, err := json.Marshal(xlFile) //if err != nil { // fmt.Println("json.Marshal err:", err) // return //} sheetDatas := make([]models.SheetData, 0) data := *xlFile.Sheets[0] sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows sheetDatas = append(sheetDatas, sheetData) params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_JSM_HISTORY) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return } func CoastalHistory(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalCoastal Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalCoastal, Err: %s", err)) } }() //path := "/Users/xi/Desktop/瑞茂通-中国煤炭市场网数据/442家晋陕蒙、沿海8省、内陆17省历史数据/CⅢ-8-16 25省市库存和日耗情况(CCTD).xlsx" //path := "D:\\瑞茂通-中国煤炭市场网数据\\442家晋陕蒙、沿海8省、内陆17省历史数据\\CⅢ-8-16 25省市库存和日耗情况(CCTD).xlsx" var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } sheetDatas := make([]models.SheetData, 0) for i, sheet := range xlFile.Sheets { if i < 4 { data := sheet sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows sheetDatas = append(sheetDatas, sheetData) } } params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_COASTAL_HISTORY) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return } func InlandHistory(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalCoastal Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalCoastal, Err: %s", err)) } }() //path := "/Users/xi/Desktop/瑞茂通-中国煤炭市场网数据/442家晋陕蒙、沿海8省、内陆17省历史数据/CⅢ-8-16 25省市库存和日耗情况(CCTD).xlsx" //path := "D:\\瑞茂通-中国煤炭市场网数据\\442家晋陕蒙、沿海8省、内陆17省历史数据\\CⅢ-8-16 25省市库存和日耗情况(CCTD).xlsx" var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } sheetDatas := make([]models.SheetData, 0) for i, sheet := range xlFile.Sheets { if i > 3 { data := sheet sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows sheetDatas = append(sheetDatas, sheetData) } } params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_INLAND_HISTORY) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return } func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { //文件或者目录存在 return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } func Jsm(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalCoastal Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalCoastal, Err: %s", err)) } }() //path := "/home/code/python/coal_mail/emailFile/沿海八省动力煤终端用户供耗存数据更新.xlsx" //path := "/Users/xi/Desktop/瑞茂通-中国煤炭市场网数据/442家晋陕蒙、沿海8省、内陆17省最新数据/442家晋陕蒙煤矿周度产量数据-20231201.xlsx" //path := "D:\\瑞茂通-中国煤炭市场网数据\\442家晋陕蒙、沿海8省、内陆17省历史数据\\442家晋陕蒙历史数据.xlsx" var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } sheetDatas := make([]models.SheetData, 0) data := *xlFile.Sheets[0] sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows sheetDatas = append(sheetDatas, sheetData) params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_JSM) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return } func Coastal(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalCoastal Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalCoastal, Err: %s", err)) } }() //path := "/Users/xi/Desktop/瑞茂通-中国煤炭市场网数据/442家晋陕蒙、沿海8省、内陆17省最新数据/内陆17省动力煤终端用户供耗存.xlsx" //path := "D:\\瑞茂通-中国煤炭市场网数据\\442家晋陕蒙、沿海8省、内陆17省历史数据\\CⅢ-8-16 25省市库存和日耗情况(CCTD).xlsx" fmt.Println("沿海开始") var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } sheetDatas := make([]models.SheetData, 0) for _, sheet := range xlFile.Sheets { data := sheet sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows fmt.Println("rows:", len(rows)) sheetDatas = append(sheetDatas, sheetData) } fmt.Println("sheetDatas:", len(sheetDatas)) params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_COASTAL) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return } func Inland(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalCoastal Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalCoastal, Err: %s", err)) } }() //path := "/Users/xi/Desktop/瑞茂通-中国煤炭市场网数据/442家晋陕蒙、沿海8省、内陆17省最新数据/内陆17省动力煤终端用户供耗存.xlsx" //path := "D:\\瑞茂通-中国煤炭市场网数据\\442家晋陕蒙、沿海8省、内陆17省历史数据\\CⅢ-8-16 25省市库存和日耗情况(CCTD).xlsx" var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } sheetDatas := make([]models.SheetData, 0) for _, sheet := range xlFile.Sheets { data := sheet sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows sheetDatas = append(sheetDatas, sheetData) } params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_INLAND) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return } func Mtjh(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalMtjh Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalMtjh, Err: %s", err)) } }() //path = "/Users/xi/Desktop/煤炭江湖数据定制化服务——中国主流港口煤炭库存20231129.xlsx" var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } sheetDatas := make([]models.SheetData, 0) for i, sheet := range xlFile.Sheets { if i > 0 { break } data := sheet sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows sheetDatas = append(sheetDatas, sheetData) } params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_MTJH) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return } func Firm(path string) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromCoalFirm Err:" + err.Error()) utils.FileLog.Info(fmt.Sprintf("RefreshDataFromCoalFirm, Err: %s", err)) } }() //path = "/Users/xi/Desktop/煤炭江湖数据定制化服务——中国主流港口煤炭库存20231129.xlsx" var xlFile *xlsx.File exist, err := PathExists(path) if err != nil { fmt.Println(err) return } if exist { xlFile, err = xlsx.OpenFile(path) if err != nil { fmt.Println("OpenFile err:", err) return } } else { fmt.Println("Not Exist") return } sheetDatas := make([]models.SheetData, 0) for _, sheet := range xlFile.Sheets { data := sheet sheetData := models.SheetData{ Name: data.Name, MaxRow: data.MaxRow, MaxCol: data.MaxCol, Hidden: data.Hidden, Selected: data.Selected, } rows := make([]models.Row, 0) for _, v := range data.Rows { cells := make([]models.Cell, 0) for _, cell := range v.Cells { cells = append(cells, models.Cell{ Value: cell.String(), }) } row := models.Row{ Cells: cells, } rows = append(rows, row) } sheetData.Rows = rows sheetDatas = append(sheetDatas, sheetData) } params := make(map[string]interface{}) params["SheetData"] = sheetDatas result, e := PostEdbLib(params, utils.LIB_ROUTE_COAL_MINE_FIRM) if e != nil { b, _ := json.Marshal(params) fmt.Println(e) utils.FileLog.Info(fmt.Sprintf("PostEdbLib err: %s, params: %s", e.Error(), string(b))) return } resp := new(models.BaseEdbLibResponse) if e := json.Unmarshal(result, &resp); e != nil { utils.FileLog.Info(fmt.Sprintf("json.Unmarshal err: %s", e)) return } if resp.Ret != 200 { utils.FileLog.Info(fmt.Sprintf("Msg: %s, ErrMsg: %s", resp.Msg, resp.ErrMsg)) return } return }