diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 3354c239f..41e0147b5 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -185,7 +185,8 @@ class SoongWorkflowRecord(models.Model): emp_to_user = {emp.id: emp.user_id.id for emp in all_employees if emp.user_id} for record in self: record.is_to_do = False - if record.approve_state == 'start' and set(active_employee_ids) & set(record.employee_ids.ids) and not record.reclaim_state: + all_record_emp_ids = record.employee_ids.ids + record.employee2_ids.ids + if record.approve_state == 'start' and set(active_employee_ids) & set(all_record_emp_ids) and not record.reclaim_state: record.is_to_do = True continue # 原有逻辑:仅当新增条件不满足时,才执行原有log_ids/log_ids2判断 @@ -236,7 +237,7 @@ class SoongWorkflowRecord(models.Model): active_employee_ids = current_employees.ids if current_employees else [] if not active_employee_ids: return [('id', '=', False)] - base_domain = [('employee_ids', 'in', active_employee_ids)] + base_domain = ['|', ('employee_ids', 'in', active_employee_ids), ('employee2_ids', 'in', active_employee_ids)] if (operator == '=' and value) or (operator == '!=' and not value): candidate_records = self.search(base_domain) valid_ids = [] @@ -277,7 +278,8 @@ class SoongWorkflowRecord(models.Model): for rec in candidate_records: # 标记满足条件1的记录 - if rec.approve_state == 'start': + all_rec_emp_ids = rec.employee_ids.ids + rec.employee2_ids.ids + if rec.approve_state == 'start' and set(active_employee_ids) & set(all_rec_emp_ids) and not rec.reclaim_state: invalid_ids.append(rec.id) continue if rec.res_model and rec.res_id: @@ -558,12 +560,14 @@ class SoongWorkflowRecord(models.Model): log_model = "soong.workflow.log" if record_id.log_ids2: log_model = "soong.workflow.log2" + approval_state = '2' elif record_id.log_ids: log_model = "soong.workflow.log" + approval_state = '3' if log_records: log_records[-1].write({ - 'approval_state': '3', + 'approval_state': approval_state, 'lase_click_date': current_datetime, }) else: @@ -573,7 +577,7 @@ class SoongWorkflowRecord(models.Model): 'workflow_id': workflow.workflow_id.id, 'model': workflow.res_model, 'res_id': workflow.res_id, - 'approval_state': '3', + 'approval_state': approval_state, 'lase_click_date': current_datetime, 'sequence': 99, }) diff --git a/yuthon_catering/models/yuthon_catering.py b/yuthon_catering/models/yuthon_catering.py index d79413d10..74c902a8a 100644 --- a/yuthon_catering/models/yuthon_catering.py +++ b/yuthon_catering/models/yuthon_catering.py @@ -305,10 +305,10 @@ class YuthonCatering(models.Model): 'lunch': True, }) - def fill_march6_missing_catering(self): - """表3月10日缺失员工的餐饮收集任务数据""" + def fill_march11_missing_catering(self): + """表3月11日缺失员工的餐饮收集任务数据""" from datetime import date as date_cls - target_date = date_cls(2026, 3, 10) + target_date = date_cls(2026, 3, 11) conf_records = self.env['yuthon.catering.conf'].search([]) if not conf_records: return @@ -330,32 +330,6 @@ class YuthonCatering(models.Model): if create_vals: self.create(create_vals) - def cron_fill_today_missing(self): - """定时任务:自动补全当天缺失的餐饮收集数据,每天晚21:00执行,节假日/周末不触发""" - today = fields.Date.today() - if not self._process_shift_days(today): - return - conf_records = self.env['yuthon.catering.conf'].search([]) - if not conf_records: - return - employee_ids = conf_records.mapped('employee_ids') - if not employee_ids: - return - create_vals = [] - for employee in employee_ids: - existing = self.search([ - ('employee_id', '=', employee.id), - ('date', '=', today), - ], limit=1) - if not existing: - create_vals.append({ - 'date': today, - 'employee_id': employee.id, - 'state': 'unconfirmed', - }) - if create_vals: - self.create(create_vals) - def batch_generate_catering(self): """批量生成2025-12、2026-01、2026-02的餐饮收集任务数据,排除节假日""" from datetime import date as date_cls diff --git a/yuthon_catering/views/yuthon_catering.xml b/yuthon_catering/views/yuthon_catering.xml index f7c4fa97a..769a2f2c2 100644 --- a/yuthon_catering/views/yuthon_catering.xml +++ b/yuthon_catering/views/yuthon_catering.xml @@ -13,7 +13,7 @@