From ebdeae052d08be5701e04b68f7bd7f1f18842d00 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: Tue, 13 Jan 2026 12:22:54 +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 --- soong_workflow/models/soong_workflow_log.py | 4 +- .../wizard/soong_workflow_comment_wizard.py | 72 +++++++++++-------- 2 files changed, 43 insertions(+), 33 deletions(-) diff --git a/soong_workflow/models/soong_workflow_log.py b/soong_workflow/models/soong_workflow_log.py index 71330f18a..5d52bbcc1 100644 --- a/soong_workflow/models/soong_workflow_log.py +++ b/soong_workflow/models/soong_workflow_log.py @@ -46,8 +46,8 @@ class SoongWorkflowLog(models.Model): def _compute_name(self): for rec in self: if rec.name == '归档': - pass - if rec.node_id: + rec.name = '归档' + elif rec.node_id: rec.name = "%(node_id_name)s" % {"node_id_name": rec.node_id.name} else: rec.name = "" diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 059a19cc4..dea9905e0 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -552,17 +552,17 @@ class SoongWorkflowCommentWizard(models.TransientModel): current_user = self.env.user current_datetime = fields.Datetime.now() is_admin = current_user.has_group('soong_workflow.group_soong_workflow_manager') - if is_admin: - record_id.log_ids[-1].sudo().write({ - 'comment': self.comment, - 'approval_state': "2", - 'lase_click_date': fields.Datetime.now() - timedelta(hours=8), - 'document_ids': [(6, 0, self.document_ids.ids)] - }) - self.env['soong.workflow.record'].search([('code', '=', record_id.code)]).write({'approve_state': 'end', - "employee_ids": False, - "node_id": False, }) - record_id.work_end = True + # if is_admin: + # record_id.log_ids[-1].sudo().write({ + # 'comment': self.comment, + # 'approval_state': "2", + # 'lase_click_date': fields.Datetime.now() - timedelta(hours=8), + # 'document_ids': [(6, 0, self.document_ids.ids)] + # }) + # self.env['soong.workflow.record'].search([('code', '=', record_id.code)]).write({'approve_state': 'end', + # "employee_ids": False, + # "node_id": False, }) + # record_id.work_end = True if record_id.log_ids: user_log = record_id.log_ids.filtered(lambda log: log.done_by == current_user) if user_log: @@ -631,26 +631,36 @@ class SoongWorkflowCommentWizard(models.TransientModel): if all_approved and log2_ids_all_qualified: workflow_record = self.env['soong.workflow.record'].search([('code', '=', record_id.code)], limit=1) - if workflow_record: - workflow_record.write({ - 'approve_state': 'end', - 'employee_ids': [(6, 0, [applicant.employee_ids.id])], - 'soong_state': 'to_active', - 'node_id': False, - }) - log_id = record_id.log_ids.filtered(lambda l: l.comment in ['归档', '待归档']) - if not log_id: - self.env["soong.workflow.log"].create({ - 'name': '归档', - "code": self.code, - "model": self.res_model, - "res_id": self.res_id, - "workflow_id": self.node_btn_id.workflow_id.id, - "lase_click_date": fields.Datetime.now(), - "done_by": applicant.id, - "approval_state": "0", - "node_btn_id": self.node_btn_id.id, - }) + has_archive_btn = any(btn_name.name == '归档' for btn_name in self.node_btn_id.node_id.button_ids) + if has_archive_btn: + if workflow_record: + workflow_record.write({ + 'approve_state': 'end', + 'employee_ids': [(6, 0, [applicant.employee_ids.id])], + 'soong_state': 'to_active', + 'node_id': False, + }) + log_id = record_id.log_ids.filtered(lambda l: l.comment in ['归档', '待归档']) + if not log_id: + self.env["soong.workflow.log"].create({ + 'name': '归档', + "code": self.code, + "model": self.res_model, + "res_id": self.res_id, + "workflow_id": self.node_btn_id.workflow_id.id, + "lase_click_date": fields.Datetime.now(), + "done_by": applicant.id, + "approval_state": "0", + "node_btn_id": self.node_btn_id.id, + }) + else: + if workflow_record: + workflow_record.write({ + 'approve_state': 'end', + 'employee_ids': False, + 'node_id': False, + 'soong_state': 'done', + }) record_id.work_end = True # 给申请人发消息 biz_record = self.env[self.res_model].browse(self.res_id)