diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index d25b06225..4536f7cc5 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -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): diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 51635fd16..4927c5842 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -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,