From 4cdc0f8438f66d0e9617bdf569685091cf229291 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, 11 Sep 2025 11:45:04 +0800 Subject: [PATCH] =?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 --- .../models/soong_workflow_record.py | 61 +++++++++++-------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 74c446269..bf74c7802 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -59,33 +59,13 @@ class SoongWorkflowRecord(models.Model): current_datetime = fields.Datetime.now() for workflow in workflow_ids: record_id = self.env[workflow.res_model].search([('id', '=', workflow.res_id)]) + if hasattr(record_id, 'user_id') and record_id.user_id: + user_id = record_id.user_id + elif hasattr(record_id, 'users_id') and record_id.users_id: + user_id = record_id.users_id.employee_id if not record_id: continue - log_records = None - if record_id.log_ids2: - log_records = record_id.log_ids2 - elif 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', - 'lase_click_date': current_datetime, - }) - else: - self.env[log_model].create({ - 'name': None, - 'workflow_id': workflow.workflow_id.id, - 'model': workflow.res_model, - 'res_id': workflow.res_id, - 'approval_state': '3', - 'lase_click_date': current_datetime, - 'sequence': 99, - }) + # 触发模型对应的结束方法 end_node = self.env["soong.workflow.node"].search( [('workflow_id', '=', workflow.workflow_id.id), ('is_end', '=', True)], limit=1 @@ -97,6 +77,37 @@ class SoongWorkflowRecord(models.Model): ) if end_btn: self.execute_button_code(end_btn.id, workflow.res_model, workflow.res_id) + # 修改日志 + log_records = None + if record_id.log_ids2: + log_records = record_id.log_ids2 + elif 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', + 'lase_click_date': current_datetime, + }) + else: + self.env[log_model].create({ + 'done_by': user_id.id, + 'node_id': end_node.id if end_node else False, + 'node_btn_id': end_btn.id if end_btn else False, + 'workflow_id': workflow.workflow_id.id, + 'model': workflow.res_model, + 'res_id': workflow.res_id, + 'approval_state': '3', + 'lase_click_date': current_datetime, + 'sequence': 99, + }) + workflow.approve_state = 'end' def execute_button_code(self, button_id, res_model, res_id):