From 73b6baf6af3d88cdcb0e2df7932a9bd96b0b85c5 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期一, 01 七月 2024 22:32:34 +0800 Subject: [PATCH] 月度统计出入库按类型汇总报表定时任务和手动跑任务接口 --- task/tasklist.go | 43 ++++++++++++++++++++++++++++++++++--------- 1 files changed, 34 insertions(+), 9 deletions(-) diff --git a/task/tasklist.go b/task/tasklist.go index e4ddd4b..1a787a1 100644 --- a/task/tasklist.go +++ b/task/tasklist.go @@ -4,19 +4,44 @@ "github.com/go-co-op/gocron" "time" "wms/pkg/logx" + "wms/service" ) -var s *gocron.Scheduler +var dynamicScheduler *gocron.Scheduler func init() { - s = gocron.NewScheduler(time.Local) + dynamicScheduler = gocron.NewScheduler(time.Local) } -func Init() { - _, err := s.Every(1).Month(1).Do(MonthStats) //姣忔湀鍒濇墽琛屼竴娆� - if err != nil { - logx.Errorf("init task err:%v", err) - panic(err) - } +func Init() error { + return StartDynamicTask() +} - s.StartAsync() +func StartDynamicTask() (err error) { + sysCfgService := service.NewSystemConfigService() + day, timeStr, _ := sysCfgService.GetInventoryCutOffPoint() + if day != 0 && timeStr != "" { + _, err = dynamicScheduler.Every(1).Month(day).At(timeStr).Do(MonthStats) //姣忔湀鍒濇墽琛屼竴娆� + if err != nil { + logx.Errorf("init task err:%v", err) + return err + } + _, err = dynamicScheduler.Every(1).Month(day).At(timeStr).Do(WarehouseMonthStats) //姣忔湀鍒濇墽琛屼竴娆� + if err != nil { + logx.Errorf("init task err:%v", err) + return err + } + } + if dynamicScheduler.Len() == 0 { + return + } + dynamicScheduler.StartAsync() + return nil +} + +func RestartDynamicTask() error { + if dynamicScheduler != nil { + dynamicScheduler.Stop() + dynamicScheduler.Clear() + } + return StartDynamicTask() } -- Gitblit v1.8.0