Browse Source

修改指标刷新逻辑

longyu 2 years ago
parent
commit
29c467021e
4 changed files with 48 additions and 26 deletions
  1. 6 0
      controller/index/index.go
  2. 15 14
      init_serve/task.go
  3. 1 0
      services/api_tool.go
  4. 26 12
      services/index.go

+ 6 - 0
controller/index/index.go

@@ -9,8 +9,10 @@ import (
 	"hongze/mysteel_watch/controller/resp"
 	"hongze/mysteel_watch/global"
 	"hongze/mysteel_watch/models/index"
+	"hongze/mysteel_watch/services"
 	"hongze/mysteel_watch/utils"
 	"os"
+	"time"
 )
 
 type IndexController struct {
@@ -90,6 +92,9 @@ func (s *IndexController) Create(c *gin.Context) {
 		resp.FailData("保存失败", "保存失败,Err:"+err.Error(), c)
 		return
 	}
+	time.Sleep(1 * time.Second)
+	fmt.Println("start MysteelChemicalRefresh")
+	services.MysteelChemicalRefresh(filePath)
 	resp.Ok("保存成功", c)
 	return
 }
@@ -132,6 +137,7 @@ func (s *IndexController) Test(c *gin.Context) {
 	resp.OkData("检测成功", 1, c)
 	return
 }
+
 //
 //func init() {
 //	fmt.Println("start")

+ 15 - 14
init_serve/task.go

@@ -14,22 +14,22 @@ import (
 func InitTask() {
 	c := cron.New(cron.WithSeconds())
 
-	//每5分钟检测一次,指标生成
-	_, err := c.AddFunc("0 */5 * * * *", CheckIndexCreate)
-	if err != nil {
-		global.LOG.Info("DownloadCvTask err" + err.Error())
-		panic("DownloadCvTask err" + err.Error())
-	}
-
-	//每30分钟检测一次,指标生成
-	_, err = c.AddFunc("0 */30 * * * *", services.IndexRefreshWeek)
-	if err != nil {
-		global.LOG.Info("DownloadCvTask err" + err.Error())
-		panic("DownloadCvTask err" + err.Error())
-	}
+	////每5分钟检测一次,指标生成
+	//_, err := c.AddFunc("0 */5 * * * *", CheckIndexCreate)
+	//if err != nil {
+	//	global.LOG.Info("DownloadCvTask err" + err.Error())
+	//	panic("DownloadCvTask err" + err.Error())
+	//}
+	//
+	////每30分钟检测一次,周度指标刷新
+	//_, err = c.AddFunc("0 */30 * * * *", services.IndexRefreshWeek)
+	//if err != nil {
+	//	global.LOG.Info("DownloadCvTask err" + err.Error())
+	//	panic("DownloadCvTask err" + err.Error())
+	//}
 
 	//其他指标刷新
-	_, err = c.AddFunc("0 00 03 * * *", services.IndexRefreshAll)
+	_, err := c.AddFunc("0 00 03 * * *", services.IndexRefreshAll)
 	if err != nil {
 		global.LOG.Info("DownloadCvTask err" + err.Error())
 		panic("DownloadCvTask err" + err.Error())
@@ -42,6 +42,7 @@ func InitTask() {
 		panic("DownloadCvTask err" + err.Error())
 	}
 	c.Start()
+
 	go watch.ListenFolderNew()
 	go services.AutoRefresh()
 }

+ 1 - 0
services/api_tool.go

@@ -12,6 +12,7 @@ const (
 func MysteelChemicalRefresh(filePath string) {
 	var refreshUrl string
 	refreshUrl = RefreshUrl + "?FilePath=" + filePath
+	fmt.Println("MysteelChemicalRefresh URL:"+RefreshUrl)
 	body, err := http.Get(refreshUrl)
 	if err != nil {
 		fmt.Println("MysteelChemicalRefresh Err:" + err.Error())

+ 26 - 12
services/index.go

@@ -21,7 +21,13 @@ const (
 	FormatTimeStr = "15:04"    //时间格式
 )
 
+//var checkLock sync.RWMutex
+
 func IndexCreateCheck() (err error) {
+	//checkLock.Lock()
+	//defer func() {
+	//	checkLock.Unlock()
+	//}()
 	fmt.Println("IndexCreateCheck")
 	indexObj := new(index.BaseFromMysteelChemicalIndex)
 	list, err := indexObj.GetIndexCreate()
@@ -40,30 +46,37 @@ func IndexCreateCheck() (err error) {
 	fmt.Println("indexCodeStr:" + indexCodeStr)
 	go alarm_msg.SendAlarmMsg(utils.APPNAME+" 存在指标数据未生成:"+indexCodeStr, 3)
 	for _, v := range list {
+		fmt.Println("IndexCreateCheck start:", v.IndexCode, v.FilePath)
 		if v.FilePath != "" && utils.FileIsExist(v.FilePath) {
+			fmt.Println("Refresh:" + v.IndexCode)
 			err = UpdateComment(v.FilePath)
 			if err != nil {
+				fmt.Println("UpdateComment Err:" + err.Error())
 				go alarm_msg.SendAlarmMsg(utils.APPNAME+" 指标数据未生成检测失败:"+err.Error()+";file:"+v.FilePath, 3)
 			}
 			time.Sleep(1 * time.Second)
 			MysteelChemicalRefresh(v.FilePath)
 		} else {
-			err := IndexCreate(v)
+			fmt.Println("IndexCreate:" + v.IndexCode)
+			saveFilePath, err := IndexCreate(v)
 			if err != nil {
+				fmt.Println("IndexCreate Err:" + err.Error())
 				go alarm_msg.SendAlarmMsg(utils.APPNAME+" 指标数据未生成检测失败:"+err.Error(), 3)
 			}
+			v.FilePath = saveFilePath
+			fmt.Println("IndexCreate saveFilePath:" + v.FilePath)
+			time.Sleep(1 * time.Second)
+			MysteelChemicalRefresh(v.FilePath)
+			fmt.Println("MysteelChemicalRefresh end:"+v.IndexCode)
 		}
+		fmt.Println("IndexCreateCheck end:"+v.IndexCode)
 	}
 	return nil
 }
 
-func IndexCreate(item *index.BaseFromMysteelChemicalIndex) (err error) {
+func IndexCreate(item *index.BaseFromMysteelChemicalIndex) (saveFilePath string, err error) {
 	item.UpdateWeek = utils.GetUpdateWeekEn(item.UpdateWeek)
 	global.LOG.Info("task IndexCreate:" + time.Now().Format(utils.FormatDateTime))
-
-	if utils.FileIsExist(item.FilePath) {
-		os.Remove(item.FilePath)
-	}
 	runMode := "release"
 	//fileName := req.IndexName + "_" + req.IndexCode + ".xlsx"
 	var fileName string
@@ -73,7 +86,9 @@ func IndexCreate(item *index.BaseFromMysteelChemicalIndex) (err error) {
 		fileName = item.IndexCode + "_" + runMode + ".xlsx" //保存的文件名称
 	}
 	filePath := utils.IndexSaveDir + fileName
-
+	if utils.FileIsExist(filePath) {
+		os.Remove(filePath)
+	}
 	templatePath := utils.IndexSaveDir + "index_template.xlsx"
 	templateFile, err := excelize.OpenFile(templatePath)
 	if err != nil {
@@ -89,12 +104,10 @@ func IndexCreate(item *index.BaseFromMysteelChemicalIndex) (err error) {
 	commentMap := make(map[string]interface{})
 	commentMap["author"] = "{"
 	commentMap["text"] = commentStr
-	//commentMap["text"] = commentItem
 
 	commentJson, err := json.Marshal(commentMap)
 	if err != nil {
 		fmt.Println("json.Marshal err:" + err.Error())
-		return err
 	}
 
 	fmt.Println("commentJson")
@@ -103,9 +116,10 @@ func IndexCreate(item *index.BaseFromMysteelChemicalIndex) (err error) {
 	templateFile.AddComment("Sheet1", "A1", string(commentJson))
 	if err := templateFile.SaveAs(filePath); err != nil {
 		fmt.Println(err)
-		return err
+		return "", err
 	}
-	time.Sleep(1 * time.Minute)
+	time.Sleep(1 * time.Second)
+	saveFilePath = filePath
 	return
 }
 
@@ -221,7 +235,7 @@ func UpdateComment(filePath string) (err error) {
 	}
 	if err := templateFile.SaveAs(filePath); err != nil {
 		fmt.Println("templateFile.SaveAs Err:", err)
-		return
+		return err
 	}
 	return
 }