From ba30d5b01ff6faa89d58e0d8c188537626f4b2f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Thu, 9 Jul 2026 10:06:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_catering/models/yuthon_catering.py | 39 ++++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/yuthon_catering/models/yuthon_catering.py b/yuthon_catering/models/yuthon_catering.py index 1811a4bcf..91e74ed61 100644 --- a/yuthon_catering/models/yuthon_catering.py +++ b/yuthon_catering/models/yuthon_catering.py @@ -316,21 +316,27 @@ class YuthonCatering(models.Model): return False def is_leave(self, current_data, employee): - att_id = self.env['hr.attendance'].search([ + leaves = self.env['hr.leave'].search([ ('employee_id', '=', employee.id), - ('current_data', '=', current_data) - ], limit=1) - if not (att_id and att_id.workflow_id and att_id.workflow_id.name == '请假'): - return False - leave_record = self.env[att_id.workflow_id.res_model].browse(att_id.workflow_id.res_id) - if not leave_record: - return False - if not (leave_record.start_date and leave_record.end_date): - return False - total_leave_days = leave_record.days + 1 - used_days = (current_data - leave_record.start_date).days + 1 - remaining_days = total_leave_days - used_days - return remaining_days >= 0 + ('state', '=', 'validate'), + ]) + for leave in leaves: + if leave.date_from.date() <= current_data <= leave.date_to.date(): + return True + return False + + def is_maternity_leave(self, employee): + """判断员工当前是否在产假期间""" + today = fields.Date.today() + leaves = self.env['hr.leave'].search([ + ('employee_id', '=', employee.id), + ('state', '=', 'validate'), + ('holiday_status_id.name', '=', '产假'), + ]) + for leave in leaves: + if leave.date_from.date() <= today <= leave.date_to.date(): + return True + return False # 定义定时任务方法,每天九点半发送消息提醒 def cron_send_message(self): @@ -352,13 +358,16 @@ class YuthonCatering(models.Model): return # 判断今天是否为工作日 today = fields.Date.today() - if not self._process_shift_days(today): + if not self._process_shift_days(today) : # 如果不是工作日,则不发送提醒 return # 发送通用提醒消息 employees = self._get_active_conf_employees() for employee in employees: + # 产假期间不发消息 + if self.is_maternity_leave(employee): + continue if employee.user_id: # 确保员工有关联的用户 # 构造跳转URL,格式为 f'https://phone.thtzjt.com/phone/Restaurant/(users_id) users_id = employee.user_id.id From c9ada8f45ca4ca36dfc788a70c2134ac68f75470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Thu, 9 Jul 2026 10:37:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soong_workflow/wizard/soong_workflow_comment_wizard.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 4652a6c76..151661a89 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -94,8 +94,8 @@ class SoongWorkflowCommentWizard(models.TransientModel): @api.onchange('scope_type', 'employee_ids1', 'department_id', 'company_id') def _onchange_employee_ids1(self): + self.employee_ids = False if not self.employee_ids1: - self.employee_ids = False return filtered_employees = self.employee_ids1 # 范围过滤 @@ -209,6 +209,7 @@ class SoongWorkflowCommentWizard(models.TransientModel): @api.onchange('trans_link_id') def onchange_trans_employee_ids(self): for record in self: + # 先清空 record_id = self.env[record.res_model].browse(record.res_id) if record.res_model and record.res_id else None ctx_links = self.env.context.get('all_workflow_links', []) valid_links = self.env['trans.link'].browse(ctx_links) if isinstance(ctx_links, (list, tuple)) else ctx_links