diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index b3322f033..70110fd2e 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -80,44 +80,6 @@ class SoongWorkflowMixin(models.AbstractModel): for record in self: record.approval_sign_ids = record.log_ids.filtered(lambda r: r.node_btn_name == "2" and r.node_id == record.node_id).done_by.ids - - # workflow_approver_ids = fields.One2many('soong.workflow.log', 'w_res_id', string="审批记录", - # compute='_compute_workflow_approver_ids') - - # def _compute_workflow_approver_ids(self): - # wkf_obj = self.env["soong.workflow"] - # for rec in self: - # log_ids = [] - # # Variables - # rec_model = rec._name - # # Get Workflow - # workflow_id = wkf_obj.search([("model_id", "=", rec_model), ('is_enable', '=', True)]) - # node_ids = workflow_id.node_ids - # for node_id in node_ids: - # log_obj = self.env["soong.workflow.log"] - # record_obj = log_obj.search( - # [ - # ("model", "=", self._name), - # ("res_id", "=", self.id), - # ("node_id", "=", node_id.id), - # ] - # ) - # if not record_obj: - # record_obj = log_obj.create( - # { - # "model": self._name, - # "res_id": self.id, - # "node_id": node_id.id, - # "workflow_id": node_id.workflow_id.id, - # "lase_click_date": fields.Datetime.now(), - # } - # ) - # log_ids.append(record_obj.id) - # if log_ids: - # rec.workflow_approver_ids = log_ids - # else: - # rec.workflow_approver_ids = None - @api.depends("state") def _compute_workflow_id(self): # Objects @@ -161,52 +123,25 @@ class SoongWorkflowMixin(models.AbstractModel): def create(self, vals_list): res = super().create(vals_list) for record in res: - button_ids = record.sudo().workflow_id.node_ids.button_ids + button_ids = record.sudo().workflow_id.node_ids.button_ids.search([('sequence', '=', '1')]).search([('workflow_id', '=', res.workflow_id.id), ('sequence', '=', 1)]) for button_id in button_ids: if button_id.users_role_id and record.env.user.employee_id.department_id: - # 不自动匹配 if not button_id.is_automatic: employee_ids = record.sudo().env['hr.employee'].search( ['|', ('user_role_id', '=', button_id.users_role_id.id), ('user_role_ids', 'in', button_id.users_role_id.id)]) else: - # 自动匹配 employee_ids = record.sudo().env['hr.employee'].search( ['|', ('user_role_id', '=', button_id.users_role_id.id), ('user_role_ids', 'in', button_id.users_role_id.id), '|', ('department_id', '=', record.env.user.employee_id.department_id.id), ('department_ids', 'in', record.env.user.employee_id.department_id.id), ('yuthon_company', '=', record.env.user.employee_id.yuthon_company)]) - # 判断当前用户是否是 当前节点的员工 if record.env.user.employee_id.id in employee_ids.ids: record.state = button_id.node_id.node_name return res def _create_update_logs(self, btn_rec): log_obj = self.env["soong.workflow.log"] - # if btn_rec.name in ['退回']: - # record_obj = log_obj.search( - # [ - # ("model", "=", self._name), - # ("res_id", "=", self.id), - # ("node_id", "=", btn_rec.node_id.id), - # ("workflow_id", "=", btn_rec.workflow_id.id), - # ("node_btn_name", "=", "1") - # ], order="lase_click_date DESC", limit=1 - # ) - # if not record_obj: - # record_obj = log_obj.create( - # { - # "model": self._name, - # "res_id": self.id, - # "node_id": btn_rec.node_id.id, - # "workflow_id": btn_rec.workflow_id.id, - # "node_btn_id": btn_rec.id, - # "done_by": self.env.uid, - # "node_btn_name": "1", - # "lase_click_date": fields.Datetime.now(), - # } - # ) - if btn_rec.name not in ['转交', '加签', '加签确认', '退回', '收回']: record_obj = log_obj.search( [ @@ -219,8 +154,7 @@ class SoongWorkflowMixin(models.AbstractModel): ], order="lase_click_date DESC", limit=1 ) if not record_obj: - record_obj = log_obj.create( - { + record_obj = log_obj.create({ "model": self._name, "res_id": self.id, "node_id": btn_rec.node_id.id, @@ -229,11 +163,9 @@ class SoongWorkflowMixin(models.AbstractModel): "done_by": self.env.uid, "node_btn_name": "0", "lase_click_date": fields.Datetime.now(), - } - ) + }) record_obj.write({"node_btn_id": btn_rec.id, "done_by": self.env.uid, "approval_state": "2"}) - record_obj = log_obj.search( - [ + record_obj = log_obj.search([ ("model", "=", self._name), ("res_id", "=", self.id), ("node_id", "=", btn_rec.node_id.id), diff --git a/soong_workflow/wizard/soong_workflow_comment_wizard.py b/soong_workflow/wizard/soong_workflow_comment_wizard.py index 8660def76..f86ac23a9 100644 --- a/soong_workflow/wizard/soong_workflow_comment_wizard.py +++ b/soong_workflow/wizard/soong_workflow_comment_wizard.py @@ -62,28 +62,28 @@ class SoongWorkflowCommentWizard(models.TransientModel): 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)]) + [('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)]) + employee_user_role_ids = self.env['hr.employee'].search([('user_role_id', '=', btn.users_role_id.id)]) self.employee_ids = employee_user_role_ids @api.onchange('trans_link_id') def onchange_trans_employee_ids(self): record_id = self.env[self.res_model].search([('id', '=', self.res_id)]) for ret in self.trans_link_id: - if '分发' in self.trans_link_id.name: + if ['分发', '信息管理员'] in self.trans_link_id.name: self.employee_ids = record_id.users_id.employee_id else: workflow_id = self.trans_link_id.node_button_id.workflow_id - state_list = ['拟办' if i.node_name == 'start' else i.node_name for i in workflow_id.node_ids] + 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 # 不自动匹配 - employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id)]) + employee_user_role_ids = self.env['hr.employee'].search(['|', ('user_role_id', '=', link_users_id.id), + ('user_role_ids', 'in', link_users_id.id), + ('yuthon_company', '=', record_id.create_uid.employee_id.yuthon_company)]) # 自动匹配 employee_user_role_id = self.env['hr.employee'].search( ['|', ('user_role_id', '=', link_users_id.id), ('user_role_ids', 'in', link_users_id.id), diff --git a/yuthon_will_task/views/yuthon_will_task_views.xml b/yuthon_will_task/views/yuthon_will_task_views.xml index 81e98505d..8fbd3cc4c 100644 --- a/yuthon_will_task/views/yuthon_will_task_views.xml +++ b/yuthon_will_task/views/yuthon_will_task_views.xml @@ -105,7 +105,7 @@ 全部领导日程 yuthon.will.task tree,calendar - [('user_role_ids.name', 'in', ['董事长', '分管领导', '总经理'])] + [('user_role_ids.name', 'in', ['董事长', '分管领导', '总经理', '部门副经理', '部门经理', '副总经理'])] {'search_default_next_seven_days': 1, 'search_default_yuthon_company': 1}