package worker import ( "enterprise/common/model" "github.com/go-co-op/gocron" "time" ) func InitCorp() { timezone, _ := time.LoadLocation("Asia/Shanghai") cron := gocron.NewScheduler(timezone) InitCorp1000(cron) InitCorp1002(cron) cron.StartAsync() } func InitCorp1002(cron *gocron.Scheduler) { corpId := int64(1002) staff := new(Staff) //同步每日考勤数据 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("") 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")) }) } func InitCorp1000(cron *gocron.Scheduler) { corpId := int64(1000) 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("") 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")) }) }