diff --git a/soong_workflow/models/soong_workflow_entrust.py b/soong_workflow/models/soong_workflow_entrust.py
index e536d8ca8..787415965 100644
--- a/soong_workflow/models/soong_workflow_entrust.py
+++ b/soong_workflow/models/soong_workflow_entrust.py
@@ -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]
diff --git a/yuthon_hr_employee/models/inherit_res_groups.py b/yuthon_hr_employee/models/inherit_res_groups.py
index 6a2719c04..c8fc31159 100644
--- a/yuthon_hr_employee/models/inherit_res_groups.py
+++ b/yuthon_hr_employee/models/inherit_res_groups.py
@@ -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))
diff --git a/yuthon_hr_employee_approval/data/process_code_data.xml b/yuthon_hr_employee_approval/data/process_code_data.xml
index 26adae08b..54112c0a2 100644
--- a/yuthon_hr_employee_approval/data/process_code_data.xml
+++ b/yuthon_hr_employee_approval/data/process_code_data.xml
@@ -14,7 +14,13 @@
3
-
+
+ 合同审查表-编号
+ contract_review_approval_code
+ CH%(y)s%(month)s%(day)s
+ 3
+
+
参保方案申请表-编号
yuthon_enrollment_approval_code
diff --git a/yuthon_hr_employee_approval/models/contract_review_approval.py b/yuthon_hr_employee_approval/models/contract_review_approval.py
index e9d79c702..826ea24e2 100644
--- a/yuthon_hr_employee_approval/models/contract_review_approval.py
+++ b/yuthon_hr_employee_approval/models/contract_review_approval.py
@@ -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='是否上会')