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}