--增员类别社招and职级小于15 and 部门不等于总部and 上级主管等于所在部门所属四级部门部门主管领导 result = False emp_job_instance = self.employee_id.job_info_id department_id = self.employee_id.department_id # 增员类别code increase_type_code = emp_job_instance.x_increasetype.code # 职级 job_level_id = emp_job_instance.job_level.id # 部门code department_instance = self.employee_id.department_id department_code = department_instance.code # 当前四级部门层级 department_level = department_instance.organization_level_id.code # 上级主管id manager_id = self.employee_id.manager if job_level_id and increase_type_code and department_code and manager_id: # raise ValidationError('123') if int(increase_type_code[-2:]) == 21 or 32 and job_level_id >= 23 and department_code != 'JXJK000150000000': while department_level: if int(department_level[-1:]) == 4: # 所在部门所属四级部门部门主管领导id department_manager_id = department_instance.x_fenguan if department_manager_id: if manager_id == department_manager_id: result = True break else: raise ValidationError('上级主管id不等于所在部门所属四级部门部门主管领导id') else: raise ValidationError('x_fenguan无值') elif int(department_level[-1:]) > 4: department_level = department_instance.parent_department_id.organization_level_id.code elif int(department_level[-1:]) < 4: break else: raise ValidationError('增员类别,职级,部门code 不符合要求') else: raise ValidationError('增员类别,职级,部门code某个字段无值') --增员类别社招and职级小于15 and 部门不等于总部and 上级主管等于所在部门所属三级部门部门主管领导 result = False emp_job_instance = self.employee_id.job_info_id department_id = self.employee_id.department_id # 增员类别code increase_type_code = emp_job_instance.x_increasetype.code # 职级 job_level_id = emp_job_instance.job_level.id # 部门code department_instance = self.employee_id.department_id department_code = department_instance.code # 当前四级部门层级 department_level = department_instance.organization_level_id.code # 上级主管id manager_id = self.employee_id.manager if job_level_id and increase_type_code and department_code and manager_id: # raise ValidationError('123') if int(increase_type_code[-2:]) == 21 or 32 and job_level_id >= 23 and department_code != 'JXJK000150000000': while department_level: if int(department_level[-1:]) == 3: # 所在部门所属四级部门部门主管领导id department_manager_id = department_instance.x_fenguan if department_manager_id: if manager_id == department_manager_id: result = True break else: raise ValidationError('上级主管id不等于所在部门所属四级部门部门主管领导id') else: raise ValidationError('x_fenguan无值') elif int(department_level[-1:]) > 3: department_level = department_instance.parent_department_id.organization_level_id.code elif int(department_level[-1:]) < 3: break else: raise ValidationError('增员类别,职级,部门code 不符合要求') else: raise ValidationError('增员类别,职级,部门code某个字段无值') --员工所在部门层级为4级的部门分管领导 department_instance = self.employee_id.department_id manager_id = self.employee_id.manager # 层级code department_level = department_instance.organization_level_id.code # raise ValidationError(department_instance.organization_level_id.code) while department_level: if int(department_level[-1:]) == 4: # 所在部门所属四级部门部门主管领导id department_manager = department_instance.x_fenguan if department_manager: # raise ValidationError(department_manager.name) result = department_manager.user_id break else: raise ValidationError('x_fenguan无值') elif int(department_level[-1:]) > 4: department_level = department_instance.parent_department_id.organization_level_id.code elif int(department_level[-1:]) < 4: break