This commit is contained in:
李鹏宇
2025-03-05 16:21:31 +08:00
parent eee7a090ba
commit ba6443f036
2 changed files with 17 additions and 34 deletions
@@ -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
@@ -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,