Merge pull request !1843 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-03-16 02:33:34 +00:00
committed by Gitee
2 changed files with 37 additions and 32 deletions
+21 -21
View File
@@ -320,8 +320,8 @@ class SoongWorkflowMixin(models.AbstractModel):
record_obj = self.env["soong.workflow.record"].search([("res_model", "=", rec._name), ("res_id", "=", rec.id)])
record_id = self.env[rec._name].search([('id', '=', rec.id)])
current_user_id = self.env.user.id
button_ids = self.workflow_id.node_ids.search([('node_name', '=', self.state), ('workflow_id', '=', self.workflow_id.id)]).button_ids
if self.state in ['申请人', 'start', '拟办']:
# button_ids = self.workflow_id.node_ids.search([('node_name', '=', self.state), ('workflow_id', '=', self.workflow_id.id)]).button_ids
if self.state in ['申请人', '拟办']:
if not record_obj:
self.env["soong.workflow.record"].create({
"code": record_id.code,
@@ -333,22 +333,22 @@ class SoongWorkflowMixin(models.AbstractModel):
"users_ids": [(4, current_user_id)],
"employee_ids": self.env.user.employee_id,
})
elif self.state not in ['end']:
if button_ids:
self_state = button_ids[0]
else:
raise UserError('请配置节点按钮')
employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
('user_role_ids', 'in', self_state.users_role_id.id)])
employee_user_role_id = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
('user_role_ids', 'in', self_state.users_role_id.id), '|',
('department_id', '=', self.department_id.id),
('department_ids', 'in', self.department_id.id)])
employee_ids = employee_user_role_ids if not self_state.is_automatic else employee_user_role_id
user_ids_list = []
for employee in employee_ids:
if employee.user_id:
user_ids_list.append((4, employee.user_id.id))
# elif self.state not in ['end']:
# if button_ids:
# self_state = button_ids[0]
# else:
# raise UserError('请配置节点按钮')
# employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
# ('user_role_ids', 'in', self_state.users_role_id.id)])
# employee_user_role_id = self.env['hr.employee'].search(['|', ('user_role_id', '=', self_state.users_role_id.id),
# ('user_role_ids', 'in', self_state.users_role_id.id), '|',
# ('department_id', '=', self.department_id.id),
# ('department_ids', 'in', self.department_id.id)])
# employee_ids = employee_user_role_ids if not self_state.is_automatic else employee_user_role_id
# user_ids_list = []
# for employee in employee_ids:
# if employee.user_id:
# user_ids_list.append((4, employee.user_id.id))
if not record_obj:
record_obj = self.env["soong.workflow.record"].create({
"res_model": rec._name,
@@ -357,13 +357,13 @@ class SoongWorkflowMixin(models.AbstractModel):
"node_id": rec.node_id.id,
"done_by": self.env.uid,
"users_ids": [(4, current_user_id)],
"employee_ids": self.env.user.employee_id,
# "employee_ids": self.env.user.employee_id,
})
record_obj.update({"workflow_id": rec.workflow_id.id,
"node_id": rec.node_id.id,
"done_by": self.env.uid,
"users_ids": user_ids_list,
"employee_ids": employee_ids.ids,
# "users_ids": user_ids_list,
# "employee_ids": employee_ids.ids,
})
def unlink(self):
@@ -137,6 +137,9 @@ class SoongWorkflowCommentWizard(models.TransientModel):
"done_by": self.employee_ids.user_id.id,
"node_btn_name": "0",
})
workflow_record_id = self.env['soong.workflow.record'].search([('code', '=', record_id.code)])
workflow_record_id.users_ids = [(4, self.employee_ids.user_id.id)]
workflow_record_id.employee_ids = self.employee_ids
record_id.write({'state': self.trans_link_id.name})
# 抄送传阅日志
if self_node_id.is_carbon_copy:
@@ -173,7 +176,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
return self.node_btn_id.with_context(cx).run()
if self.node_btn_name == '退回':
record_id.write({'state': self.return_link_id.name})
next_node_id = record_id.workflow_id.link_ids.search([('name', '=', self.return_link_id.name), ('workflow_id', '=', record_id.workflow_id.id)])
next_node_id = record_id.workflow_id.node_ids.search([('name', '=', self.return_link_id.name), ('workflow_id', '=', record_id.workflow_id.id)])
for next_link in record_id.workflow_id.link_ids:
if next_link.name.split('-> ')[0].strip() == self.return_link_id.name.strip():
next_node_id = next_link.node_from
@@ -181,16 +184,18 @@ class SoongWorkflowCommentWizard(models.TransientModel):
"lase_click_date": fields.Datetime.now(),
"comment": self.comment_note_id.name,
"node_btn_name": "1"})
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,
})
# 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,
})
workflow_record_id = self.env['soong.workflow.record'].search([('code', '=', record_id.code)])
workflow_record_id.employee_ids = self.employee_ids
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,