diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 52662599d..17e3d53db 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -153,6 +153,11 @@ class SoongWorkflowMixin(models.AbstractModel): all_approved = all(log.approval_state == '2' for log in lg1) if all_approved: record.is_done = True + workflow_record_id = self.env["soong.workflow.record"].search( + [("res_model", "=", self._name), ("res_id", "=", self.id), ('reclaim_state', '=', False)]) + if workflow_record_id: + if workflow_record_id.approve_state == 'end': + record.is_done = True def _compute_is_confirm(self): for record in self: diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 3354c239f..1f0460715 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: @@ -550,17 +552,10 @@ class SoongWorkflowRecord(models.Model): ) # 修改日志 log_records = None - if record_id.log_ids2: - log_records = record_id.log_ids2 - elif record_id.log_ids: + if record_id.log_ids: log_records = record_id.log_ids log_model = "soong.workflow.log" - if record_id.log_ids2: - log_model = "soong.workflow.log2" - elif record_id.log_ids: - log_model = "soong.workflow.log" - if log_records: log_records[-1].write({ 'approval_state': '3', diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py index 624ea8e03..9c4d9477b 100644 --- a/yuthon_property_approval/models/inherit_yuthon_property.py +++ b/yuthon_property_approval/models/inherit_yuthon_property.py @@ -71,7 +71,6 @@ class MeterArchivesLine(models.Model): for record in archives_ids: record.lessee_id = record.contract_id.lessee_id.id - class MeterWaterLine(models.Model): _inherit = 'meter.water.line'