From 45b5c1d4993d2149a89be717a059568d2cb672ae Mon Sep 17 00:00:00 2001 From: jiangyong27 Date: Thu, 25 Apr 2024 12:23:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/dao/approval_vacation.go | 9 +++++++-- worker/checkin.go | 10 +++++++++- worker/staff.go | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/common/dao/approval_vacation.go b/common/dao/approval_vacation.go index 97a422c..1a88165 100644 --- a/common/dao/approval_vacation.go +++ b/common/dao/approval_vacation.go @@ -65,10 +65,15 @@ func (d *ApprovalVacationDao) GetBySpNo(spNo string) (*model.ApprovalVacation, e return &u, nil } -func (d *ApprovalVacationDao) GetByUsername(username, month string) ([]*model.ApprovalVacation, error) { +func (d *ApprovalVacationDao) GetByUsername(username, month, day string) ([]*model.ApprovalVacation, error) { var u []*model.ApprovalVacation tx := GetDB().Table(d.TableName()) - tx = tx.Where("month = ?", month) + if month != "" { + tx = tx.Where("month = ?", month) + } + if day != "" { + tx = tx.Where("vacation_date = ?", day) + } tx = tx.Where("username = ?", username) res := tx.Find(&u) if res.Error != nil { diff --git a/worker/checkin.go b/worker/checkin.go index 3cf8bee..e3c90f9 100644 --- a/worker/checkin.go +++ b/worker/checkin.go @@ -89,13 +89,21 @@ func (c *Checkin) MonitorCheckinDay(day string) { if checkin.Exception == "" { continue } + approvals, err := dao.NewApprovalVacationDao().GetByUsername(checkin.Username, "", checkin.Day) + if err != nil { + log.Errorf("db error :%s", err.Error()) + continue + } + if len(approvals) > 0 { + continue + } message := make([]string, 0) message = append(message, fmt.Sprintf("【考勤异常】%s", checkin.Username)) message = append(message, fmt.Sprintf("考勤日期:%s", checkin.Day)) message = append(message, fmt.Sprintf("上班时间:%s", goutil.TimeToDateTime(checkin.StartTime))) message = append(message, fmt.Sprintf("下班时间:%s", goutil.TimeToDateTime(checkin.EndTime))) message = append(message, fmt.Sprintf("异常原因:%s", checkin.Exception)) - global.SendMessage([]string{"jiangyong"}, strings.Join(message, "\n")) + global.SendMessage([]string{"jiangyong", checkin.Username}, strings.Join(message, "\n")) } } diff --git a/worker/staff.go b/worker/staff.go index c458b15..7ccf916 100644 --- a/worker/staff.go +++ b/worker/staff.go @@ -160,7 +160,7 @@ func (s *Staff) SyncStaffSalary(month string) { } // 休假申请 - approveVacations, err := dao.NewApprovalVacationDao().GetByUsername(staff.Username, month) + approveVacations, err := dao.NewApprovalVacationDao().GetByUsername(staff.Username, month, "") if err != nil { log.Errorf("db error :%s", err.Error()) continue