From 8ab41cc0db8f7be3c56a121ab917579db4a83ab6 Mon Sep 17 00:00:00 2001 From: jiangyong27 Date: Thu, 10 Apr 2025 20:44:29 +0800 Subject: [PATCH] salarybill --- worker/staff.go | 14 +++++++++----- worker/worker.go | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/worker/staff.go b/worker/staff.go index c16965c..237f8bb 100644 --- a/worker/staff.go +++ b/worker/staff.go @@ -76,23 +76,24 @@ func (s *Staff) SendStaffSalaryBill(corpId int64, month string) { log.Errorf("db error :%s", err.Error()) continue } - totalMessage = append(totalMessage, fmt.Sprintf("%s:%s", staffSalary.Username, staffSalary.GetBillUrl(true))) + if time.Now().Day() != salaryDay { continue } - if staffSalary.Status != model.StaffSalaryStatusPayed { + if staffSalary.Status != model.StaffSalaryStatusPayed && staffUser.GetConfig().PayChannel != model.StaffSalaryPaymentBank { continue } + totalMessage = append(totalMessage, fmt.Sprintf(`%s:查看明细`, staffSalary.Username, staffSalary.GetBillUrl(true))) message := make([]string, 0) message = append(message, fmt.Sprintf("【工资单】[%s][%s]", staffUser.Username, month)) message = append(message, fmt.Sprintf("实发工资:%.2f", staffSalary.GetRealSalary())) message = append(message, fmt.Sprintf(`查看明细`, staffSalary.GetBillUrl(false))) - if err := global.SendMessage([]string{staffSalary.Username}, strings.Join(message, "\n")); err != nil { + if err := global.SendCorpMessage(staffUser.CorpId, []string{staffSalary.Username}, strings.Join(message, "\n")); err != nil { log.Errorf("send message error :%s", err.Error()) } } - if err := global.SendMessage([]string{"jiangyong"}, strings.Join(totalMessage, "\n")); err != nil { + if err := global.SendCorpMessage(corpId, []string{"jiangyong"}, strings.Join(totalMessage, "\n")); err != nil { log.Errorf("send message error :%s", err.Error()) } } @@ -125,6 +126,9 @@ func (s *Staff) PayStaffSalary(corpId int64, month string) { if staffUser.GetConfig().PayChannel != model.StaffSalaryPaymentAlipay { continue } + if staffSalary.Status == model.StaffSalaryStatusPayed { + continue + } salaryDay := cast.ToInt(corp.GetConfig().SalaryDay) isSend := time.Now().Day() == salaryDay @@ -140,7 +144,7 @@ func (s *Staff) PayStaffSalary(corpId int64, month string) { message = append(message, fmt.Sprintf("[%s]:%.2f", staffSalary.Username, staffSalary.GetRealSalary())) totalPayFee += staffSalary.GetRealSalary() } else { - message = append(message, fmt.Sprintf("[%s]:%s", staffSalary.Username, err.Error())) + message = append(message, fmt.Sprintf("[%s]:ERR", staffSalary.Username)) staffSalary.SetExtra("pay_error", err.Error()) } dao.NewStaffSalaryDao().Update(staffSalary) diff --git a/worker/worker.go b/worker/worker.go index e36a5d7..545d79d 100644 --- a/worker/worker.go +++ b/worker/worker.go @@ -92,7 +92,7 @@ func InitCorp1000(cron *gocron.Scheduler) { }) //10号晚上8点发送工资单 - cron.Every(1).Month(10).At("20:00").Do(func() { + cron.Every(1).Month(11).At("20:00").Do(func() { NewStaff().PayStaffSalary(corpId, time.Now().AddDate(0, -1, 0).Format("200601")) NewStaff().SendStaffSalaryBill(corpId, time.Now().AddDate(0, -1, 0).Format("200601")) })