enterprise/worker/worker.go

52 lines
1.1 KiB
Go

package worker
import (
"fmt"
"github.com/go-co-op/gocron"
"time"
)
func Init1() error {
for i := 0; i < 120; i++ {
day := time.Now().AddDate(0, 0, -1-i).Format("2006-01-02")
SyncCheckin(day)
}
return nil
}
func Init() error {
timezone, _ := time.LoadLocation("Asia/Shanghai")
cron := gocron.NewScheduler(timezone)
cron.Every(1).Hour().Do(func() {
go SyncCheckin(time.Now().Format("2006-01-02"))
})
// 早晚高频拉取
sch := cron.Every(1).Day()
for i := 0; i < 12; i++ {
sch.At(fmt.Sprintf("08:%02d", i*5))
sch.At(fmt.Sprintf("09:%02d", i*5))
sch.At(fmt.Sprintf("18:%02d", i*5))
}
sch.Do(func() {
go SyncCheckin(time.Now().Format("2006-01-02"))
})
// 每天同步企业人事信息
cron.Every(1).Day().At("01:00").Do(func() {
go SyncStaffInfo()
})
// 1-10号计算工资信息
cron.Every(1).Month(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).At("02:00").Do(func() {
go SyncStaffSalary("")
})
//10号晚上8点发送工资单
cron.Every(1).Month(10).At("22:00").Do(func() {
go SendStaffSalaryBill(time.Now().AddDate(0, -1, 0).Format("200601"))
})
cron.StartAsync()
return nil
}