@@ -49,56 +49,57 @@ class SoongWorkflowEntrust(models.Model):
|
||||
# 如果是全部流程
|
||||
if self.is_enable:
|
||||
all_work_list = []
|
||||
if self.env['ir.model'].search([('id', '=', self.model_id.id)]).name == '全部流程':
|
||||
all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True)])
|
||||
else:
|
||||
all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True), ('model_id', '=', self.model_id.id)])
|
||||
# 便利出所有的记录集,查出与本人相关的
|
||||
for work_id in all_work_ids:
|
||||
state_dict = {}
|
||||
for state in work_id.node_ids:
|
||||
node_data_list = []
|
||||
for node in state.button_ids:
|
||||
if node.name == '转交':
|
||||
if node.btn_hide:
|
||||
if node.review_type == 'user_role':
|
||||
node_data = {'users_role_id': node.users_role_id.id}
|
||||
elif node.review_type == 'individual':
|
||||
node_data = {'reviewer_id': node.reviewer_id.id, }
|
||||
for model_id in self.model_ids:
|
||||
if self.env['ir.model'].search([('id', '=', model_id.id)]).name == '全部流程':
|
||||
all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True)])
|
||||
else:
|
||||
all_work_ids = self.env['soong.workflow'].search([('is_enable', '=', True), ('model_id', '=', model_id.id)])
|
||||
# 便利出所有的记录集,查出与本人相关的
|
||||
for work_id in all_work_ids:
|
||||
state_dict = {}
|
||||
for state in work_id.node_ids:
|
||||
node_data_list = []
|
||||
for node in state.button_ids:
|
||||
if node.name == '转交':
|
||||
if node.btn_hide:
|
||||
if node.review_type == 'user_role':
|
||||
node_data = {'users_role_id': node.users_role_id.id}
|
||||
elif node.review_type == 'individual':
|
||||
node_data = {'reviewer_id': node.reviewer_id.id, }
|
||||
else:
|
||||
node_data = []
|
||||
node_data_list.append(node_data)
|
||||
state_dict[state.name + '-' + str(work_id.id)] = node_data_list
|
||||
all_work_list.append(state_dict)
|
||||
# 查找委托人当前关联的流程
|
||||
reviewer_id = self.env['res.users'].search([('id', '=', self.entrust_user_id.id)])
|
||||
users_role_id = reviewer_id.employee_id.user_role_id.id
|
||||
for work in all_work_list:
|
||||
# 判断角色是否在里面
|
||||
users_role = [key for key, items in work.items() if
|
||||
any(item.get('users_role_id') == users_role_id for item in items)]
|
||||
for role in users_role:
|
||||
workflow = int(role.split('-')[-1])
|
||||
work_code = role.split('-')[0]
|
||||
workflow_id = self.env['soong.workflow'].search([('id', '=', workflow)])
|
||||
for flow in workflow_id.node_ids:
|
||||
if flow.name == work_code and flow.button_ids[-1].name != '转交':
|
||||
flow.write({
|
||||
'button_ids': [(0, 0, {
|
||||
"name": _("转交"),
|
||||
"workflow_id": workflow_id.id,
|
||||
"sequence": 999,
|
||||
"review_type": "individual",
|
||||
"btn_hide": True,
|
||||
"action_type": 'code',
|
||||
"reviewer_id": self.entrust_user_id2.id,
|
||||
"has_comment": True,
|
||||
})]
|
||||
})
|
||||
if self.workflow_data:
|
||||
self.workflow_data = self.workflow_data + work_code + '-' + str(workflow_id.id) + ','
|
||||
else:
|
||||
node_data = []
|
||||
node_data_list.append(node_data)
|
||||
state_dict[state.name + '-' + str(work_id.id)] = node_data_list
|
||||
all_work_list.append(state_dict)
|
||||
# 查找委托人当前关联的流程
|
||||
reviewer_id = self.env['res.users'].search([('id', '=', self.entrust_user_id.id)])
|
||||
users_role_id = reviewer_id.employee_id.user_role_id.id
|
||||
for work in all_work_list:
|
||||
# 判断角色是否在里面
|
||||
users_role = [key for key, items in work.items() if
|
||||
any(item.get('users_role_id') == users_role_id for item in items)]
|
||||
for role in users_role:
|
||||
workflow = int(role.split('-')[-1])
|
||||
work_code = role.split('-')[0]
|
||||
workflow_id = self.env['soong.workflow'].search([('id', '=', workflow)])
|
||||
for flow in workflow_id.node_ids:
|
||||
if flow.name == work_code and flow.button_ids[-1].name != '转交':
|
||||
flow.write({
|
||||
'button_ids': [(0, 0, {
|
||||
"name": _("转交"),
|
||||
"workflow_id": workflow_id.id,
|
||||
"sequence": 999,
|
||||
"review_type": "individual",
|
||||
"btn_hide": True,
|
||||
"action_type": 'code',
|
||||
"reviewer_id": self.entrust_user_id2.id,
|
||||
"has_comment": True,
|
||||
})]
|
||||
})
|
||||
if self.workflow_data:
|
||||
self.workflow_data = self.workflow_data + work_code + '-' + str(workflow_id.id) + ','
|
||||
else:
|
||||
self.workflow_data = work_code + '-' + str(workflow_id.id) + ','
|
||||
self.workflow_data = work_code + '-' + str(workflow_id.id) + ','
|
||||
else:
|
||||
for de in self:
|
||||
work_ids_list = de.workflow_data.split(',')[0:-1]
|
||||
|
||||
@@ -38,6 +38,7 @@ class ResGroups(models.Model):
|
||||
for employee in self.employee_ids:
|
||||
if employee.user_id:
|
||||
all_user_ids.add(employee.user_id.id)
|
||||
|
||||
# 2. 添加选中部门及其子部门的所有员工对应的用户
|
||||
def get_department_employees(department_id, is_initial_call=False):
|
||||
"""
|
||||
@@ -54,7 +55,7 @@ class ResGroups(models.Model):
|
||||
else:
|
||||
dept_id = department_id.id
|
||||
else:
|
||||
return valid_user_ids # 无效输入,返回空集
|
||||
return valid_user_ids
|
||||
# 查询当前部门的员工
|
||||
employee_ids = self.env['hr.employee'].search([('department_id', '=', dept_id)])
|
||||
valid_user_ids.update([user.user_id.id for user in employee_ids if user.user_id])
|
||||
@@ -63,7 +64,7 @@ class ResGroups(models.Model):
|
||||
for child in child_ids:
|
||||
valid_user_ids.update(get_department_employees(child, is_initial_call=False))
|
||||
return valid_user_ids
|
||||
all_user_ids = set()
|
||||
|
||||
for department_id in self.department_ids:
|
||||
all_user_ids.update(get_department_employees(department_id, is_initial_call=True))
|
||||
|
||||
|
||||
@@ -14,7 +14,13 @@
|
||||
<field name="padding">3</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="contract_review_approval_code" model="ir.sequence">
|
||||
<field name="name">合同审查表-编号</field>
|
||||
<field name="code">contract_review_approval_code</field>
|
||||
<field name="prefix">CH%(y)s%(month)s%(day)s</field>
|
||||
<field name="padding">3</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
<record id="yuthon_enrollment_approval_code" model="ir.sequence">
|
||||
<field name="name">参保方案申请表-编号</field>
|
||||
<field name="code">yuthon_enrollment_approval_code</field>
|
||||
|
||||
@@ -7,7 +7,7 @@ class ContractReviewApproval(models.Model):
|
||||
_inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
|
||||
code = fields.Char(string="编号",
|
||||
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_appointment_approval_code'))
|
||||
default=lambda self: self.env['ir.sequence'].next_by_code('contract_review_approval_code'))
|
||||
name = fields.Char(string='合同名称')
|
||||
user_id = fields.Many2one('res.users', string='合同经办人')
|
||||
is_issues = fields.Boolean(string='是否上会')
|
||||
|
||||
Reference in New Issue
Block a user