From 91d7ca06128f996844aa7d2d691d083c944bdf1d Mon Sep 17 00:00:00 2001 From: lishihai <dslsh@dscom> Date: 星期三, 03 七月 2024 17:22:16 +0800 Subject: [PATCH] 导入物料/产品->新模版BUG修复 --- 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