!7452 添加功能

Merge pull request !7452 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-12-30 08:26:42 +00:00
committed by Gitee
+22 -7
View File
@@ -16,18 +16,33 @@ class SoongBouncedWizard(models.Model):
record = self.env[self.res_model].search([('id', '=', self.res_id)])
is_admin = current_user.has_group('base.group_system') or current_user.has_group('base.group_admin')
log_ids = record.log_ids.sorted('sequence')
log_to_delete = log_ids.filtered(lambda log: log.name == record.state)
if not is_admin:
if log_ids[-1].approval_state in ['1', '2']:
invalid_logs = log_to_delete.filtered(
lambda log: log.approval_state in ['1', '2']
)
if invalid_logs:
raise UserError('当前状态不可以收回')
related_record = self.env[self.res_model].browse(self.res_id)
prev_log = None
if hasattr(related_record, 'self_users_ids'):
total_log_count = len(log_ids)
deleted_log_count = len(log_to_delete)
prev_log_index = (total_log_count - deleted_log_count) - 1
if prev_log_index < 0 or prev_log_index >= len(log_ids):
raise UserError('无有效的上一级审批明细行,无法执行收回操作')
prev_log = log_ids[prev_log_index]
related_record = self.env[self.res_model].browse(self.res_id)
if hasattr(related_record, 'self_users_ids'):
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_ids.id])],
"users_ids": [(6, 0, [log_ids[-2].done_by.id])],
related_record.self_users_ids = [(6, 0, [prev_log.done_by.id])]
self.env['soong.workflow.record'].search([('code', '=', record.code)]).write({"employee_ids": [(6, 0, [prev_log.done_by.employee_ids.id])],
"users_ids": [(6, 0, [prev_log.done_by.id])],
'soong_state': 'to_do'
})
log_ids[-1].unlink()
log_ids[-2].write({'approval_state': '1'})
record.write({'state': log_ids[-2].name,
log_to_delete.unlink()
prev_log.write({'approval_state': '1'})
record.write({'state': prev_log.name,
'work_end': False,
})