From 0ad11e002052483efb850db86e007e7f038251f7 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: Wed, 11 Mar 2026 09:37:09 +0800 Subject: [PATCH 1/4] =?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/models/soong_workflow_record.py | 6 ++++-- yuthon_property_approval/models/inherit_yuthon_property.py | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 3354c239f..a5e9e7548 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -558,12 +558,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 +575,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_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' From 6f1db30d3b70e7809efda1095d21fc48af0411d5 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: Wed, 11 Mar 2026 10:18:04 +0800 Subject: [PATCH 2/4] =?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/models/soong_workflow_record.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index a5e9e7548..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: From 2c222e24ff275c2fa46cbcd65937cc9faeb66429 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: Wed, 11 Mar 2026 10:26:31 +0800 Subject: [PATCH 3/4] =?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/models/soong_workflow_record.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 41e0147b5..1f0460715 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -552,22 +552,13 @@ 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" - 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': approval_state, + 'approval_state': '3', 'lase_click_date': current_datetime, }) else: @@ -577,7 +568,7 @@ class SoongWorkflowRecord(models.Model): 'workflow_id': workflow.workflow_id.id, 'model': workflow.res_model, 'res_id': workflow.res_id, - 'approval_state': approval_state, + 'approval_state': '3', 'lase_click_date': current_datetime, 'sequence': 99, }) From 44d18f7b1fc822d64bf3c194e2879a276bc1503f 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: Wed, 11 Mar 2026 10:34:05 +0800 Subject: [PATCH 4/4] =?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/models/soong_workflow_mixin.py | 5 +++++ 1 file changed, 5 insertions(+) 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: