enterprise/worker/worker.go

98 lines
2.7 KiB
Go
Raw Normal View History

2023-08-04 11:13:41 +08:00
package worker
2023-08-04 18:27:37 +08:00
import (
2024-01-24 17:39:05 +08:00
"enterprise/common/model"
2023-08-04 18:27:37 +08:00
"github.com/go-co-op/gocron"
"time"
)
2025-03-04 23:27:13 +08:00
func InitCorp() {
2023-08-04 18:27:37 +08:00
timezone, _ := time.LoadLocation("Asia/Shanghai")
cron := gocron.NewScheduler(timezone)
2025-03-04 23:27:13 +08:00
InitCorp1000(cron)
InitCorp1002(cron)
cron.StartAsync()
}
func InitCorp1002(cron *gocron.Scheduler) {
corpId := int64(1002)
2024-01-07 17:17:33 +08:00
staff := new(Staff)
2023-10-19 10:07:41 +08:00
2025-03-04 23:27:13 +08:00
//同步每日考勤数据
cron.Every(1).Day().At("05:00").Do(func() {
checkIn := NewCheckin(corpId)
2025-03-06 17:45:28 +08:00
go checkIn.SyncCheckinDay("")
2025-03-04 23:27:13 +08:00
})
cron.Every(1).Day().At("08:00").Do(func() {
checkIn := NewCheckin(corpId)
2025-03-06 17:45:28 +08:00
go checkIn.MonitorCheckinDay("")
2025-03-04 23:27:13 +08:00
})
//每月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)
2025-03-05 23:06:46 +08:00
approve.Sync(lastMonth, model.ApprovalTypeCheckin)
approve.Sync(lastMonth, model.ApprovalTypeVacation)
approve.Sync(lastMonth, model.ApprovalTypeRefund)
approve.Sync(lastMonth, model.ApprovalTypePayment)
2025-03-04 23:27:13 +08:00
})
// 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)
2024-09-21 18:46:51 +08:00
cron.Every(1).Day().At("09:00").Do(func() {
2025-03-11 00:49:14 +08:00
go NewStaff().MontorWorkAge(corpId)
2024-09-21 18:46:51 +08:00
})
2024-01-07 17:17:33 +08:00
//同步每日考勤数据
2024-01-17 22:30:38 +08:00
cron.Every(1).Day().At("05:00").Do(func() {
2025-03-04 23:14:09 +08:00
checkIn := NewCheckin(corpId)
2025-03-06 17:45:28 +08:00
go checkIn.SyncCheckinDay("")
2023-08-31 22:20:40 +08:00
})
2024-04-03 13:53:48 +08:00
cron.Every(1).Day().At("08:00").Do(func() {
2025-03-04 23:14:09 +08:00
checkIn := NewCheckin(corpId)
2025-03-06 17:45:28 +08:00
go checkIn.MonitorCheckinDay("")
2024-04-03 13:53:48 +08:00
})
2023-10-08 21:22:49 +08:00
2024-01-24 17:39:05 +08:00
//每月1号同步上月考勤、补卡审批、请假审批、报销审批
cron.Every(1).Month(1).At("05:30").Do(func() {
2025-03-04 23:14:09 +08:00
checkIn := NewCheckin(corpId)
2025-03-04 23:27:13 +08:00
checkIn.SyncCheckinMonth("")
2024-01-24 17:39:05 +08:00
lastMonth := time.Now().AddDate(0, -1, 0).Format("200601")
2025-01-08 12:35:29 +08:00
2025-03-04 23:14:09 +08:00
approve := NewApproval(corpId)
2025-03-05 23:06:46 +08:00
approve.Sync(lastMonth, model.ApprovalTypeCheckin)
approve.Sync(lastMonth, model.ApprovalTypeVacation)
approve.Sync(lastMonth, model.ApprovalTypeRefund)
approve.Sync(lastMonth, model.ApprovalTypePayment)
2024-01-10 12:16:48 +08:00
})
2024-01-24 17:39:05 +08:00
// 1号计算工资信息
2024-05-06 10:35:03 +08:00
cron.Every(1).Month(1, 2, 3, 4, 5, 6, 7, 8, 9).At("06:00").Do(func() {
2025-03-11 00:49:14 +08:00
go NewStaff().SyncStaffSalary(corpId, "")
2023-09-04 19:14:02 +08:00
})
2023-10-08 21:22:49 +08:00
//10号晚上8点发送工资单
2024-01-07 17:17:33 +08:00
cron.Every(1).Month(10).At("20:00").Do(func() {
2025-03-11 00:49:14 +08:00
go NewStaff().SendStaffSalaryBill(corpId, time.Now().AddDate(0, -1, 0).Format("200601"))
2023-10-08 21:22:49 +08:00
})
2025-03-04 23:27:13 +08:00
2023-08-04 11:13:41 +08:00
}