diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 9530d2475..9bc94f4e6 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -676,16 +676,23 @@ class SoongWorkflowCommentWizard(models.TransientModel): btntxt="查看详情") if self.node_btn_name == "收回": - log_ids = record_id.log_ids.sorted('sequence') - if log_ids[-1].approval_state == '2': + record = self.env[self.res_model].search([('id', '=', self.res_id)]) + log_ids = record.log_ids.sorted('sequence') + if log_ids[-1].approval_state in ['1', '2']: raise UserError('当前状态不可以收回') related_record = self.env[self.res_model].browse(self.res_id) - log_ids[-1].unlink() if hasattr(related_record, 'self_users_ids'): - related_record.self_users_ids = [(6, 0, [log_ids[-1].done_by.id])] - self.env['soong.workflow.record'].search([('code', '=', record_id.code)]).write({"employee_ids": self.env.user.employee_id.id, }) + related_record.self_users_ids = [(6, 0, [log_ids[-2].done_by.id])] + self.env['soong.workflow.record'].search([('code', '=', record.code)]).write( + {"employee_ids": [(6, 0, [log_ids[-2].done_by.employee_id.id])], + "users_ids": [(6, 0, [log_ids[-2].done_by.id])], + 'soong_state': 'to_do' + }) + log_ids[-1].unlink() log_ids[-2].write({'approval_state': '1'}) - record_id.write({'state': log_ids[-2].name}) + record.write({'state': log_ids[-2].name, + 'work_end': False, + }) return self.node_btn_id.with_context(cx).run()