diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py index 472a20b71..d42ff4ade 100644 --- a/yuthon_hr_attendance/models/hr_attendance.py +++ b/yuthon_hr_attendance/models/hr_attendance.py @@ -133,7 +133,6 @@ class HrAttendance(models.Model): def card_remind(self): menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的异常')]) all_employees = self.env['hr.employee'].search([('name', '=', '叶华锋')]) - abnormal_employees = [] current_date = fields.Date.to_date('2025-04-21') # 使用当前年份2025 month_start = current_date.replace(day=1) month_end = (month_start + relativedelta(months=1) - relativedelta(days=1)) @@ -144,19 +143,33 @@ class HrAttendance(models.Model): ('current_data', '>=', month_start), ('current_data', '<=', month_end) ] + is_no_card = 0 + is_early_card = 0 + is_late_card = 0 + is_abnormal = 0 + absenteeism_card = 0 attend_records = self.env['hr.attendance'].search(domain) has_abnormal = False - for attend_id in attend_records: - if attend_id.is_no_card or attend_id.is_early_card or attend_id.is_late_card or attend_id.is_abnormal or attend_id.absenteeism_card: + for record in attend_records: + if record.is_no_card or record.is_early_card or record.is_late_card or record.is_abnormal or record.absenteeism_card: has_abnormal = True - break - if has_abnormal: - if employee.id not in [emp.id for emp in abnormal_employees]: - abnormal_employees.append(employee) - for emp in abnormal_employees: - url = f'https://oa.thtzjt.com/web?login={emp.user_id.login}&oauth_uid={emp.wecom_userid}&cids=2&action={menu_id.action.id}&menu_id={menu_id.id}&model={self._name}&view_type=list#action={menu_id.action.id}&model={self._name}&view_type=list&menu_id={menu_id.id}' - self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att', user_id=emp.wecom_userid, title="打卡异常提醒", - description="您本月有打卡异常", url=url, btntxt="详细信息") + if record.is_no_card: + is_no_card += 1 + if record.is_early_card: + is_early_card += 1 + if record.is_late_card: + is_late_card += 1 + if record.is_abnormal: + is_abnormal += 1 + if record.absenteeism_card: + absenteeism_card += 1 + if has_abnormal: + url = (f'https://oa.thtzjt.com/web?login={employee.user_id.login}&oauth_uid={employee.wecom_userid}&cids=2&action={menu_id.action.id}&menu_id={menu_id.id}&model={self._name}' + f'&view_type=list#action={menu_id.action.id}&model={self._name}&view_type=list&menu_id={menu_id.id}') + self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att', user_id=employee.wecom_userid, title="打卡异常提醒", + description="本月迟到: {}\n本月缺卡: {}\n本月早退: {}\n本月异常:{}\n 本月旷工: {}\n" + .format(is_late_card, is_no_card, is_early_card, is_abnormal, absenteeism_card), + url=url, btntxt="详细信息") @api.depends('employee_id', 'check_in', 'check_out') def _compute_display_name(self):