tuoling805 1 год назад
Родитель
Сommit
e0177c882b
3 измененных файлов с 116 добавлено и 7 удалено
  1. 14 1
      init_serve/task.go
  2. 99 0
      services/index_create.go
  3. 3 6
      services/index_merge.go

+ 14 - 1
init_serve/task.go

@@ -17,7 +17,8 @@ func InitTask() {
 	c := cron.New(cron.WithSeconds())
 
 	//每1分钟检测一次,指标生成
-	_, err := c.AddFunc("0 */1 * * * *", CheckIndexCreate)
+	//_, err := c.AddFunc("0 */1 * * * *", CheckIndexCreate)
+	_, err := c.AddFunc("0 */1 * * * *", CheckIndexCreateMerge)
 	if err != nil {
 		global.LOG.Info("DownloadCvTask err" + err.Error())
 	}
@@ -119,3 +120,15 @@ func CheckIndexCreate() {
 	}()
 	err = services.IndexCreateCheck()
 }
+
+// CheckIndexCreate 检测指标数据是否生成
+func CheckIndexCreateMerge() {
+	var err error
+	defer func() {
+		if err != nil && err.Error() != "record not found" {
+			global.LOG.Info(utils.APPNAME + " 定时任务 出错" + time.Now().Format("2006-01-02 15:04:05") + ";Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg(utils.APPNAME+" 定时任务 出错"+time.Now().Format("2006-01-02 15:04:05")+";Err:"+err.Error(), 3)
+		}
+	}()
+	err = services.IndexCreateCheckMerge()
+}

+ 99 - 0
services/index_create.go

@@ -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
+}

+ 3 - 6
services/index_merge.go

@@ -2,11 +2,11 @@ package services
 
 import (
 	"encoding/json"
-	"fmt"
 	"eta/mysteel_watch/global"
 	"eta/mysteel_watch/models/index"
 	"eta/mysteel_watch/utils"
 	"eta/mysteel_watch/watch"
+	"fmt"
 	"os"
 	"strconv"
 	"strings"
@@ -907,9 +907,9 @@ func GetIndexCommentV2(indexFilePath string, list []index.BaseFromMysteelChemica
 }
 
 func GetIndexCommentV3(indexFilePath, StartDate string, list []index.BaseFromMysteelChemicalIndex) (commentResult string, err error) {
-	fmt.Println("GetIndexCommentV2 start")
+	fmt.Println("GetIndexCommentV3 start")
 	fmt.Println(indexFilePath)
-	fmt.Println("GetIndexCommentV2 end")
+	fmt.Println("GetIndexCommentV3 end")
 	//runMode := "release"
 	indexInfo := new(IndexObj)
 	if utils.FileIsExist(indexFilePath) { //文件存在
@@ -970,9 +970,6 @@ func GetIndexCommentV3(indexFilePath, StartDate string, list []index.BaseFromMys
 	modelsList = append(modelsList, indexInfo.Models...)
 
 	for _, v := range list {
-		if v.IndexCode == "ID01084004" {
-			fmt.Println("IndexInfo:", v.IndexCode, v.IndexName)
-		}
 		//fmt.Println(k, v)
 		item := new(IndexModels)
 		item.DataFormat = 0