Ver Fonte

fix:日度、周度数据的更新时间如果未配置,那么默认每天的下午17点更新;月度、季度、年度指标更新时间调整为每周日的上午7点

Roc há 1 ano atrás
pai
commit
3def6c3b4d

+ 6 - 6
controller/index/index.go

@@ -2,14 +2,14 @@ package index
 
 import (
 	"encoding/json"
-	"fmt"
-	"github.com/gin-gonic/gin"
-	"github.com/go-playground/validator/v10"
-	"github.com/xuri/excelize/v2"
 	"eta/mysteel_watch/controller/resp"
 	"eta/mysteel_watch/global"
 	"eta/mysteel_watch/models/index"
 	"eta/mysteel_watch/services"
+	"fmt"
+	"github.com/gin-gonic/gin"
+	"github.com/go-playground/validator/v10"
+	"github.com/xuri/excelize/v2"
 	"os"
 	"time"
 )
@@ -98,7 +98,7 @@ func (s *IndexController) Create(c *gin.Context) {
 	time.Sleep(1 * time.Second)
 	fmt.Println("start MysteelChemicalRefresh")
 	//services.MysteelChemicalRefresh(filePath)
-	services.AddIndexRefreshToLpush(filePath)
+	services.AddIndexRefreshToLPush(filePath)
 	resp.Ok("保存成功", c)
 	return
 }
@@ -155,7 +155,7 @@ func (s *IndexController) Refresh(c *gin.Context) {
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		return
 	}
-	services.AddIndexRefreshToLpush(req.MergeFilePath)
+	services.AddIndexRefreshToLPush(req.MergeFilePath)
 	resp.Ok("保存成功", c)
 	return
 }

+ 16 - 30
init_serve/task.go

@@ -18,47 +18,32 @@ func InitTask() {
 	//每5分钟检测一次,指标生成
 	_, err := c.AddFunc("0 */5 * * * *", CheckIndexCreateMerge)
 	if err != nil {
-		global.LOG.Error("DownloadCvTask err" + err.Error())
+		global.LOG.Error("CheckIndexCreateMerge err" + err.Error())
 	}
 
-	// 定时统一更新
+	// 定时统一更新(日度、周度指标)
 	if len(global.CONFIG.Serve.RefreshTimeList) <= 0 {
-		panic("未配置数据统一刷新时间")
+		//panic("未配置数据统一刷新时间")
+		// 未配置时间的话,那么默认每天17点更新一次
+		global.CONFIG.Serve.RefreshTimeList = append(global.CONFIG.Serve.RefreshTimeList, "0 0 17 * * *")
 	}
 	for _, timeStr := range global.CONFIG.Serve.RefreshTimeList {
-		_, tmpErr := c.AddFunc(timeStr, services.MergeV2)
+		_, tmpErr := c.AddFunc(timeStr, services.MergeDayAndWeek)
 		if tmpErr != nil {
-			global.LOG.Error("services.MergeV2 服务启动失败" + "时间:" + timeStr + ";err:" + tmpErr.Error())
+			global.LOG.Error("services.MergeDayAndWeek 服务启动失败" + "时间:" + timeStr + ";err:" + tmpErr.Error())
 		}
 	}
-	//
-	////每天17点刷新指标
-	//_, err = c.AddFunc("0 0 14 * * *", services.MergeV2)
-	////_, err = c.AddFunc("0 */2 * * * *", services.MergeV2)
-	//if err != nil {
-	//	global.LOG.Info("services.MergeV2 14:00 err" + err.Error())
-	//}
-	//
-	////每天17点刷新指标
-	//_, err = c.AddFunc("0 0 16 * * *", services.MergeV2)
-	////_, err = c.AddFunc("0 */2 * * * *", services.MergeV2)
-	//if err != nil {
-	//	global.LOG.Info("services.MergeV2 16:00 err" + err.Error())
-	//}
-	//
-	////每天17点刷新指标
-	//_, err = c.AddFunc("0 0 20 * * *", services.MergeV2)
-	////_, err = c.AddFunc("0 */2 * * * *", services.MergeV2)
-	//if err != nil {
-	//	global.LOG.Info("services.MergeV2 20:00 err" + err.Error())
-	//}
+
+	// 每天早上7点处理一次
+	_, err = c.AddFunc("0 0 7 * * *", services.MergeMonthSeasonYear)
+	if err != nil {
+		global.LOG.Error("services.MergeMonthSeasonYear err" + err.Error())
+	}
 
 	//每2分钟检测一次指标文件是否更新
 	_, err = c.AddFunc("0 */2 * * * *", watch.ReadWatchIndexFile)
-
-	_, err = c.AddFunc("0 0 17 1 * *", services.MergeMonthSeasonYearV2)
 	if err != nil {
-		global.LOG.Error("DownloadCvTask err" + err.Error())
+		global.LOG.Error("watch.ReadWatchIndexFile err" + err.Error())
 	}
 
 	// 服务检测
@@ -79,6 +64,7 @@ func InitTask() {
 
 	c.Start()
 
+	// 异步处理待刷新的excel
 	go services.AutoRefresh()
 }
 
@@ -94,7 +80,7 @@ func CheckIndexCreate() {
 	err = services.IndexCreateCheck()
 }
 
-// CheckIndexCreate 检测指标数据是否生成
+// CheckIndexCreateMerge 检测指标数据是否生成
 func CheckIndexCreateMerge() {
 	var err error
 	defer func() {

+ 6 - 2
services/api_tool.go

@@ -11,10 +11,14 @@ const (
 	RefreshUrl = "http://127.0.0.1:7007/mysteel_chemical/refresh"
 )
 
+// MysteelChemicalRefresh
+// @Description: 调用python服务去刷新excel文件
+// @author: Roc
+// @datetime 2023-11-27 09:39:05
+// @param filePath string
 func MysteelChemicalRefresh(filePath string) {
-	var refreshUrl string
 	//filePathStr:=url.PathEscape(filePath)
-	refreshUrl = RefreshUrl + "?FilePath=" + url.QueryEscape(filePath)
+	refreshUrl := RefreshUrl + "?FilePath=" + url.QueryEscape(filePath)
 	fmt.Println("MysteelChemicalRefresh URL:" + refreshUrl)
 	body, err := http.Get(refreshUrl)
 	if err != nil {

+ 19 - 20
services/index.go

@@ -64,7 +64,7 @@ func IndexCreateCheck() (err error) {
 		fmt.Println("IndexCreate saveFilePath:" + v.FilePath)
 		time.Sleep(1 * time.Second)
 		if utils.FileIsExist(saveFilePath) {
-			AddIndexRefreshToLpush(saveFilePath)
+			AddIndexRefreshToLPush(saveFilePath)
 		}
 		fmt.Println("MysteelChemicalRefresh end:" + v.IndexCode)
 	}
@@ -156,27 +156,27 @@ func IndexRefreshAll() {
 		if v.Frequency == "年度" {
 			if month == 1 && day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "季度" {
 			if (month == 1 || month == 4 || month == 7 || month == 10) && day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "月度" {
 			if day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "周度" && frequency == "周度" {
 			if week > 2 && week < 6 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else {
 			if week < 6 && frequency == "" {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		}
 	}
@@ -207,27 +207,27 @@ func IndexRefreshMethanol() {
 		if v.Frequency == "年度" {
 			if month == 1 && day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "季度" {
 			if (month == 1 || month == 4 || month == 7 || month == 10) && day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "月度" {
 			if day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "周度" {
 			if week > 2 && week < 6 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else {
 			if week < 6 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		}
 	}
@@ -266,39 +266,38 @@ func IndexRefreshTimely() {
 		if v.Frequency == "年度" {
 			if month == 1 && day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "季度" {
 			if (month == 1 || month == 4 || month == 7 || month == 10) && day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "月度" {
 			if day == 1 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else if v.Frequency == "周度" {
 			if week > 2 && week < 6 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		} else {
 			if week < 6 {
 				//MysteelChemicalRefresh(v.MergeFilePath)
-				AddIndexRefreshToLpush(v.MergeFilePath)
+				AddIndexRefreshToLPush(v.MergeFilePath)
 			}
 		}
 	}
 	return
 }
 
-var lock sync.RWMutex
-
+// pushLock excel路径写入的读写锁
 var pushLock sync.RWMutex
 
-// AddIndexRefreshToLpush 添加到指标刷新
-func AddIndexRefreshToLpush(filePath string) {
+// AddIndexRefreshToLPush 添加到指标刷新
+func AddIndexRefreshToLPush(filePath string) {
 	pushLock.Lock()
 	//result := cache.IndexAutoRefresh(filePath)
 	cache.IndexAutoRefresh(filePath)

+ 4 - 1
services/index_create.go

@@ -137,6 +137,9 @@ func IndexCreateCheckMerge() (err error) {
 
 	defer templateFile.Close()
 	time.Sleep(3 * time.Second)
-	AddIndexRefreshToLpush(mergeIndexCreateFilePath)
+
+	// 将待刷新的excel文件路径传入到list里面处理
+	AddIndexRefreshToLPush(mergeIndexCreateFilePath)
+
 	return nil
 }

+ 5 - 5
services/index_merge.go

@@ -39,7 +39,7 @@ func Merge() {
 	fmt.Println("merge end")
 }
 
-// 年度
+// IndexYearMerge 年度
 func IndexYearMerge() {
 	frequency := "年度"
 	fileName := "year" + ".xlsx" //保存的文件名称
@@ -98,10 +98,10 @@ func IndexYearMerge() {
 	}
 	//刷新数据
 	//MysteelChemicalRefresh(yearIndexFilePath)
-	AddIndexRefreshToLpush(yearIndexFilePath)
+	AddIndexRefreshToLPush(yearIndexFilePath)
 }
 
-// 季度
+// IndexSeasonMerge 季度
 func IndexSeasonMerge() {
 	frequency := "季度"
 	fileName := "season" + ".xlsx" //保存的文件名称
@@ -160,7 +160,7 @@ func IndexSeasonMerge() {
 	}
 	//刷新数据
 	//MysteelChemicalRefresh(seasonIndexFilePath)
-	AddIndexRefreshToLpush(seasonIndexFilePath)
+	AddIndexRefreshToLPush(seasonIndexFilePath)
 }
 
 //月度
@@ -668,7 +668,7 @@ func indexMerge(frequency, filePre string, pageSize int) (err error) {
 		time.Sleep(1 * time.Second)
 		//刷新数据
 		//MysteelChemicalRefresh(mergeIndexFilePath)
-		//AddIndexRefreshToLpush(mergeIndexFilePath)
+		//AddIndexRefreshToLPush(mergeIndexFilePath)
 	}
 	return
 }

+ 22 - 17
services/index_merge_v2.go

@@ -16,9 +16,9 @@ const (
 	IndexPageSize = 100 //单个Sheet页,指标个数
 )
 
-// Merge 合并指标
-func MergeV2() {
-	fmt.Println("MergeV2 start")
+// MergeDayAndWeek 合并处理日度和周度的指标
+func MergeDayAndWeek() {
+	fmt.Println("MergeDayAndWeek start")
 	now := time.Now()
 	week := int(now.Weekday())
 	//日度
@@ -33,19 +33,24 @@ func MergeV2() {
 	fmt.Println("MergeV2 end")
 }
 
-// Merge 合并指标-月度,季度,年度
-func MergeMonthSeasonYearV2() {
-	fmt.Println("MergeV2 start")
-	//年度
-	IndexYearMergeV2()
-	//季度
-	IndexSeasonMergeV2()
+// MergeMonthSeasonYear 合并指标-月度,季度,年度
+func MergeMonthSeasonYear() {
+	week := int(time.Now().Weekday())
+	// 如果不是周日,那么就不处理
+	if week != 0 {
+		return
+	}
+	fmt.Println("MergeMonthSeasonYear start")
 	//月度
 	IndexMonthMergeV2()
+	//季度
+	IndexSeasonMergeV2()
+	//年度
+	IndexYearMergeV2()
 	fmt.Println("MergeV2 end")
 }
 
-// IndexDayMerge 日度指标合并
+// IndexDayMergeV2 日度指标合并
 func IndexDayMergeV2() {
 	frequency := "日度"
 	filePre := "day"
@@ -57,7 +62,7 @@ func IndexDayMergeV2() {
 	}
 }
 
-// IndexDayMerge 周度指标合并
+// IndexWeekMergeV2 周度指标合并
 func IndexWeekMergeV2() {
 	frequency := "周度"
 	filePre := "week"
@@ -69,7 +74,7 @@ func IndexWeekMergeV2() {
 	}
 }
 
-// 年度指标合并
+// IndexYearMergeV2 年度指标合并
 func IndexYearMergeV2() {
 	frequency := "年度"
 	filePre := "year"
@@ -81,7 +86,7 @@ func IndexYearMergeV2() {
 	}
 }
 
-// 季度指标合并
+// IndexSeasonMergeV2 季度指标合并
 func IndexSeasonMergeV2() {
 	frequency := "季度"
 	filePre := "season"
@@ -93,7 +98,7 @@ func IndexSeasonMergeV2() {
 	}
 }
 
-// 月度指标合并
+// IndexMonthMergeV2 月度指标合并
 func IndexMonthMergeV2() {
 	frequency := "月度"
 	filePre := "month"
@@ -105,7 +110,7 @@ func IndexMonthMergeV2() {
 	}
 }
 
-// indexMerge 指标合并
+// indexMergeV2 指标合并
 // @params frequency string 频度
 // @params filePre string 文件名前缀
 // @params pageSize int 每个excel表中的指标数量
@@ -210,6 +215,6 @@ func indexMergeV2(frequency, startDate, endDate, filePre string) (err error) {
 	defer templateFile.Close()
 	time.Sleep(1 * time.Second)
 	//MysteelChemicalRefresh(mergeIndexFilePath)
-	AddIndexRefreshToLpush(mergeIndexFilePath)
+	AddIndexRefreshToLPush(mergeIndexFilePath)
 	return
 }

+ 7 - 8
services/index_queue.go

@@ -1,8 +1,8 @@
 package services
 
 import (
-	"fmt"
 	"eta/mysteel_watch/cache"
+	"fmt"
 	"time"
 )
 
@@ -43,24 +43,23 @@ func AutoRefresh() {
 		}
 		filePath := el.Value.(string)
 		IndexHandle(filePath)
+
 		// 处理完后就移除该list
 		cache.RefreshList.Remove(el)
-
 		cache.FilePathMutex.Lock()
 		delete(cache.FilePathMap, filePath)
 		cache.FilePathMutex.Unlock()
 	}
 }
 
+// IndexHandle
+// @Description: 指标处理
+// @author: Roc
+// @datetime 2023-11-27 09:41:59
+// @param filePath string
 func IndexHandle(filePath string) {
-	//err := UpdateComment(filePath)
-	//if err != nil {
-	//	go alarm_msg.SendAlarmMsg(utils.APPNAME+" 指标数据未生成检测失败:"+err.Error()+";file:"+filePath, 3)
-	//}
 	//filePath = strings.Replace(filePath, `"`, ``, -1)
 	fmt.Println("开始刷新文件:", filePath)
 	time.Sleep(1 * time.Second)
 	MysteelChemicalRefresh(filePath)
-	//刷新完成后,清除缓存
-	//global.Rc.Delete(filePath)
 }