|
@@ -0,0 +1,99 @@
|
|
|
+package services
|
|
|
+
|
|
|
+import (
|
|
|
+ "eta/mysteel_watch/global"
|
|
|
+ "eta/mysteel_watch/models/index"
|
|
|
+ "eta/mysteel_watch/utils"
|
|
|
+ "eta/mysteel_watch/watch"
|
|
|
+ "fmt"
|
|
|
+ "github.com/xuri/excelize/v2"
|
|
|
+ "os"
|
|
|
+ "strconv"
|
|
|
+ "sync"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+const (
|
|
|
+ IndexCreatePageSize = 50 //单个Sheet页,指标个数
|
|
|
+)
|
|
|
+
|
|
|
+var indexCreateCheckLock sync.RWMutex
|
|
|
+
|
|
|
+func IndexCreateCheckMerge() (err error) {
|
|
|
+ indexCreateCheckLock.Lock()
|
|
|
+ defer func() {
|
|
|
+ indexCreateCheckLock.Unlock()
|
|
|
+ }()
|
|
|
+ fmt.Println("IndexCreateCheck")
|
|
|
+ list, err := watch.GetIndexCreate()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("listLen:", len(list))
|
|
|
+ time.Sleep(3 * time.Second)
|
|
|
+ if len(list) <= 0 {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ var filePre string
|
|
|
+ filePre = list[0].IndexCode
|
|
|
+
|
|
|
+ startDate := "1990-01-01"
|
|
|
+ fileName := "create_" + filePre + ".xlsx" //保存的文件名称
|
|
|
+ mergeIndexCreateFilePath := global.CONFIG.Serve.IndexSaveDir + fileName
|
|
|
+
|
|
|
+ if utils.FileIsExist(mergeIndexCreateFilePath) { //修改文件
|
|
|
+ err = os.Remove(mergeIndexCreateFilePath)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("os.Remove Err:" + err.Error() + "; mergeIndexCreateFilePath:" + mergeIndexCreateFilePath)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pageList := make([]index.BaseFromMysteelChemicalIndex, 0)
|
|
|
+ if len(list) >= IndexCreatePageSize {
|
|
|
+ pageList = list[:IndexCreatePageSize]
|
|
|
+ } else {
|
|
|
+ pageList = list
|
|
|
+ }
|
|
|
+
|
|
|
+ commentResult, tmpErr := GetIndexCommentV3(mergeIndexCreateFilePath, startDate, pageList)
|
|
|
+ if tmpErr != nil {
|
|
|
+ fmt.Println("GetIndexCommentV3 Err:" + tmpErr.Error())
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ templatePath := global.CONFIG.Serve.IndexSaveDir + "index_template.xlsx"
|
|
|
+ templateFile, tmpErr := excelize.OpenFile(templatePath)
|
|
|
+ if tmpErr != nil {
|
|
|
+ fmt.Println("打开文件失败,Err:" + tmpErr.Error())
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ sheetMap := make(map[string]string)
|
|
|
+ sheetName := "Sheet" + strconv.Itoa(1)
|
|
|
+ sheetMap[sheetName] = sheetName
|
|
|
+
|
|
|
+ templateFile.NewSheet(sheetName)
|
|
|
+ templateFile.DeleteComment(sheetName, "A1")
|
|
|
+ templateFile.AddComment(sheetName, "A1", commentResult)
|
|
|
+
|
|
|
+ sheetList := templateFile.GetSheetList()
|
|
|
+ for _, v := range sheetList {
|
|
|
+
|
|
|
+ if _, ok := sheetMap[v]; !ok {
|
|
|
+ templateFile.DeleteSheet(v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if err = templateFile.SaveAs(mergeIndexCreateFilePath); err != nil {
|
|
|
+ fmt.Println("保存失败,Err:" + err.Error())
|
|
|
+ templateFile.Close()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ defer templateFile.Close()
|
|
|
+ time.Sleep(3 * time.Second)
|
|
|
+ //MysteelChemicalRefresh(mergeIndexCreateFilePath)
|
|
|
+ return nil
|
|
|
+}
|