From baf93c1db6186ad5acb400b52f4cb521dc4ae877 Mon Sep 17 00:00:00 2001
From: lishihai <dslsh@dscom>
Date: 星期三, 03 七月 2024 22:49:30 +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