From ba6443f036be987e186b1bcd2417d5d2e2c14ddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Wed, 5 Mar 2025 16:21:31 +0800 Subject: [PATCH] 1 --- soong_workflow/models/soong_workflow_mixin.py | 13 ++++--- .../wizard/soong_workflow_comment_wizard.py | 38 +++++-------------- 2 files changed, 17 insertions(+), 34 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index b54c65447..68c87c12f 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -287,12 +287,13 @@ class SoongWorkflowMixin(models.AbstractModel): # 退回节点根据日志进行判断 if btn_rec.name == '退回': for ret in self.log_ids.search([('approval_state', '=', '2'), ('res_id', '=', self.id), ('node_btn_name', '=', '0')]): - self.env['trans.link'].create({ - 'node_button_id': btn_rec.id, - 'name': ret.name, - 'link_type': 'return', - 'record_id': self.id, - }) + if not self.env['trans.link'].search([('name', '=', ret.name)]): + self.env['trans.link'].create({ + 'node_button_id': btn_rec.id, + 'name': ret.name, + 'link_type': 'return', + 'record_id': self.id, + }) if btn_rec.name == '转交': node_list = list(btn_rec.workflow_id.node_ids.sorted('sequence')) index = self_state diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index ebda2672c..dfbc79c71 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -77,7 +77,6 @@ class SoongWorkflowCommentWizard(models.TransientModel): record_id = self.env[self.res_model].search([('id', '=', self.res_id)]) for ret in self.trans_link_id: workflow_id = self.trans_link_id.node_button_id.workflow_id - state_list = [i.node_name for i in workflow_id.node_ids] link_users_id = workflow_id.node_ids.search([('name', '=', self.trans_link_id.name), ('workflow_id', '=', workflow_id.id)]).button_ids[0].users_role_id next_is_automatic = workflow_id.node_ids.search([('name', '=', self.trans_link_id.name), ('workflow_id', '=', workflow_id.id)]).button_ids[0].is_automatic # 不自动匹配 @@ -94,24 +93,6 @@ class SoongWorkflowCommentWizard(models.TransientModel): self.employee_ids = employee_user_role_ids if not next_is_automatic else employee_user_role_id if '分发' in ret.name: self.employee_ids = record_id.users_id.employee_id - if self.node_btn_name == '退回': - next_list = [] - self_state = state_list.index(ret.name) - button_ids = workflow_id.node_ids[self_state].button_ids - for btn in button_ids: - next_list.append(btn.name) - if '转交' not in next_list: - raise UserError('配置错误,请配置当前{}的转交按钮'.format(btn.name)) - else: - if btn.is_automatic: - employee_user_role_id = self.env['hr.employee'].search( - [('user_role_id', '=', btn.users_role_id.id), - ('department_id', '=', record_id.department_id.id)]) - self.employee_ids = employee_user_role_id - else: - employee_user_role_ids = self.env['hr.employee'].search( - [('user_role_id', '=', btn.users_role_id.id)]) - self.employee_ids = employee_user_role_ids def add_comment(self): self.ensure_one() @@ -194,15 +175,16 @@ class SoongWorkflowCommentWizard(models.TransientModel): "lase_click_date": fields.Datetime.now(), "comment": self.comment_note_id.name, "node_btn_name": "1"}) - self.sudo().env["soong.workflow.log"].create({ - "model": self.res_model, - "res_id": self.res_id, - "node_id": next_node_id.id, - "workflow_id": self.node_btn_id.workflow_id.id, - "done_by": self.employee_ids[0].user_id.id, - "approval_state": "0", - "node_btn_id": self.node_btn_id.id, - }) + if not self.sudo().env["soong.workflow.log"].search([('node_id', '=', next_node_id.id)]): + self.sudo().env["soong.workflow.log"].create({ + "model": self.res_model, + "res_id": self.res_id, + "node_id": next_node_id.id, + "workflow_id": self.node_btn_id.workflow_id.id, + "done_by": self.employee_ids[0].user_id.id, + "approval_state": "0", + "node_btn_id": self.node_btn_id.id, + }) return self.node_btn_id.with_context(cx).run() if self.node_btn_name == '结束': record_id.log_ids[-1].write({"comment": self.comment_note_id.name,