enterprise/worker/worker.go

56 lines
1.6 KiB
Go

package worker
import (
"enterprise/common/model"
"github.com/go-co-op/gocron"
"time"
)
func InitCorp(corpId int64) error {
timezone, _ := time.LoadLocation("Asia/Shanghai")
cron := gocron.NewScheduler(timezone)
staff := new(Staff)
cron.Every(1).Day().At("09:00").Do(func() {
go staff.MontorWorkAge(corpId)
})
//同步每日考勤数据
cron.Every(1).Day().At("05:00").Do(func() {
checkIn := NewCheckin(corpId)
go checkIn.SyncCheckinDay(corpId, "")
})
cron.Every(1).Day().At("08:00").Do(func() {
checkIn := NewCheckin(corpId)
go checkIn.MonitorCheckinDay(corpId, "")
})
//每月1号同步上月考勤、补卡审批、请假审批、报销审批
cron.Every(1).Month(1).At("05:30").Do(func() {
checkIn := NewCheckin(corpId)
checkIn.SyncCheckinMonth(corpId, "")
lastMonth := time.Now().AddDate(0, -1, 0).Format("200601")
approve := NewApproval(corpId)
approve.Sync(corpId, lastMonth, model.ApprovalTypeCheckin)
approve.Sync(corpId, lastMonth, model.ApprovalTypeVacation)
approve.Sync(corpId, lastMonth, model.ApprovalTypeRefund)
approve.Sync(corpId, lastMonth, model.ApprovalTypePayment)
})
// 1号计算工资信息
cron.Every(1).Month(1, 2, 3, 4, 5, 6, 7, 8, 9).At("06:00").Do(func() {
go staff.SyncStaffSalary(corpId, "")
//go staff.SyncStaffSalary(1002, "")
})
//10号晚上8点发送工资单
cron.Every(1).Month(10).At("20:00").Do(func() {
go staff.SendStaffSalaryBill(corpId, time.Now().AddDate(0, -1, 0).Format("200601"))
//go staff.SendStaffSalaryBill(1002, time.Now().AddDate(0, -1, 0).Format("200601"))
})
cron.StartAsync()
return nil
}