获取当前登录人的名字和上级主管名字,需要根据具体的系统和登录机制来实现。以下是一种常见的做法,可以根据你的需求进行适当的调整:
获取当前登录人的名字:
获取上级主管的名字:
以下是一个示例代码,演示如何获取当前登录人的名字和上级主管的名字(假设使用会话保存用户信息):
# 获取当前登录人的名字
current_user_name = session.get('username')
# 获取上级主管的名字
current_user = User.query.filter_by(username=current_user_name).first()
supervisor = User.query.get(current_user.supervisor_id)
supervisor_name = supervisor.username
具体的实现方式可能因系统而异。你需要根据你的系统架构和数据模型进行适当的调整。
获取当前登陆人名称
表达式:LOGINUSER()
获取当前登录人昵称
表达式:GETUSERNAME()
获取成员 userID
表达式:LOGINUSERWORKNO()
获取指定人所在部门名称
表达式:DEPTNAME(userId)
获取当前登录人的部门:DEPTNAME(LOGINUSERWORKNO())
DIRECTOR 获取当前登陆人的主管名称
表达式:DIRECTOR(level)
入参:
level:几级主管
USERFIELD 查询成员信息
公式目的:人员搜索框需要联动带出一些基本信息
表达式:USERFIELD( 成员 ,"userId"), USERFIELD( 成员 ,"name")
入参:
成员:成员组件,或者USER() 公式,或者员工唯一 ID(UserID)
目前测试USER()、UserID做为第一参数都不能通过,结合官方所写公式目的为人员搜索框的信息联动推测第一参数为成员组件,或者成员组件赋值UserID,或者成员组件公式里USER()。
USER 获取登录人
表达式:USER([level])
入参:
无参数模式:User() 获取当前登录人;
有参数模式:User(level) 当前登录人的主管, level 是 获取当前登录人的主管
参数:
level:几级主管
如果想在动作面板获取用户信息,可以参考以下代码
您好,如果您使用的是钉钉,可以通过以下代码获取当前登录人的部门和名字:
name = fields.Many2one(’hr.employee’, string=” 申请人”, readonly=True)
manager = fields.Many2one(’hr.employee’, string=” 主管”,readonly=True)
current_name = fields.Many2one(’hr.employee’, string=” 当前登录人”,compute=”_get_current_name”)
def _get_current_name (self):
uid = self.env.uid
如果您使用的是用友NC,可以通过以下代码获取当前登录人的部门和名字:
# 获得登录人所属机构
dept_id = self.env['hr.employee'].search_count([('user_id','=',uid)])
dept = self.env['hr.department'].browse(dept_id)
组织架构数据:如果你的系统中存储了组织架构数据,包括部门和员工信息,你可以通过查询组织架构数据来获取当前登录人所在部门的主管姓名。通常,组织架构数据会包含部门和员工之间的层级关系,例如上级字段或直接管理者字段。
您可以通过钉钉工作台或API接口获取当前登入人所在部门的主管名字。如果您需要批量获取,可以使用API接口进行批量获取和处理。
在宜搭中,可以通过单行文本配置公式 DEPTNAME(成员),去获取指定人所在部门,那么如何获取到当前登陆人的上级部门呢,我们需要分两种情况去判断。
1.当前登陆人属于单部门并且有主管
2.当前登陆人属于多部门或者无主管
当前登陆人属于多部门或者无主管
2.1 使用中间表获取上级部门名称
如果有多个部门或者没有主管的情况,那么就不适用于第一种方案,所以要使用中间表的方式,将成员和部门依次录入,最终采用「数据联动」的方式,成员组件作为条件,联动出部门。
【怎么获取当前登入人所在部门的主管名字
】
您需要首先获取到当前登录人的用户信息,然后根据用户信息在企业组织架构中查询主管信息。具体实现步骤如下:
import requests
url = "https://api.dingtalk.com/v1.0/contact/users/me"
headers = {
"Authorization": "Bearer your_access_token"
}
response = requests.get(url, headers=headers)
data = response.json()
CopyCopy
请将 your_access_token 替换为您实际的访问令牌。
根据用户信息查询主管信息:
获取到当前登录人的用户信息后,您可以根据用户所属部门等信息在企业组织架构中查询主管信息。具体实现方法取决于您的企业组织架构数据如何存储,这里给出一个通用的 SQL 查询示例:
SELECT manager_name
FROM your_company_org_structure_table
WHERE user_id = current_user_id
AND department_id = current_user_department_id
CopyCopy
请将 your_company_org_structure_table 替换为您实际的企业组织架构表名,current_user_id 和 current_user_department_id 分别替换为当前登录人的用户 ID 和所属部门 ID。
根据查询结果,您应该可以获取到当前登录人所在部门的主管名字。注意这里给出的 SQL 查询只是一个示例,实际的查询方法可能需要根据您的数据库结构和需求进行调整。
要获取当前登录人所在部门的主管名字,你需要根据你所使用的系统或平台的具体情况采取不同的方法。以下是一些常见的方法:
组织架构数据:如果你的系统中存储了组织架构数据,包括部门和员工信息,你可以通过查询组织架构数据来获取当前登录人所在部门的主管姓名。通常,组织架构数据会包含部门和员工之间的层级关系,例如上级字段或直接管理者字段。
运行时动态查询:如果你的系统支持在运行时查询组织架构数据或用户信息,你可以通过在程序中编写逻辑来获取当前登录人所在部门的主管姓名。首先,根据当前登录人的信息获取其所属部门。然后,通过查询部门信息或关联关系,找到该部门的主管姓名。
API 或集成接口:有些系统提供了特定的 API 或集成接口,可以用于获取组织架构或用户信息。你可以调用这些接口来获取当前登录人所在部门的主管姓名。具体的调用方式和参数可能因系统而异,请参考相应系统的文档或开发者指南。
要获取当前登录人所在部门的主管名字,你需要先确定你使用的身份验证和权限管理系统。以下是一般性的步骤:
首先,确保你的身份验证系统(如LDAP、Active Directory等)已经集成到你的应用程序中,并且可以成功验证用户。
在用户登录后,你可以从身份验证系统中获取当前登录用户的信息,包括其所属部门的信息。
接下来,根据你的组织结构和部门信息,你可能需要查询一个部门-主管的映射关系表或者调用相关的API来获取该部门的主管信息。
根据部门信息查询到主管的姓名或标识后,你就可以将这些信息返回给前端或在服务器端进行进一步处理。
请注意,具体的实现方法会依赖于你所使用的身份验证和权限管理系统,以及你的组织结构。确保你对这些系统有足够的了解,并根据实际情况进行适当的配置和开发。
楼主你好,获取当前登录人的所在部门主管名字需要通过以下步骤:
import os
import requests
url = 'http://api.b.xxxxxxx.com/api/v2/account/current-user-departments'
headers = {
'Authorization': os.environ['ACCESS_TOKEN'],
'Content-Type': 'application/json',
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
departments = response.json().get('data')
print(departments)
else:
print(f'Error {response.status_code}: {response.text}')
url = 'http://api.b.xxxxxxx.com/api/v2/departments/{}/supervisors'
department_id = departments[0]['id'] # 获取第一个部门的id
headers = {
'Authorization': os.environ['ACCESS_TOKEN'],
'Content-Type': 'application/json',
}
response = requests.get(url.format(department_id), headers=headers)
if response.status_code == 200:
supervisors = response.json().get('data')
print(supervisors)
else:
print(f'Error {response.status_code}: {response.text}')
需要注意的是,以上代码中的 os.environ['ACCESS_TOKEN']
部分需要填写你的阿里云宜搭访问密钥。而具体的 API 地址需要根据你所在的阿里云宜搭环境进行相应的调整。
可以根据成员组件获取成员主管名字,可通过以下方式获取到:
(1)在表单内添加两个成员组件,一个成员组件用于选择人员,另一个成员用作公式编辑,详情如下:
(2)公式如下:
宜搭内可以使用GETUSERNAME公式获取登录人昵称。
表达式:GETUSERNAME()
宜搭流程审批时获取当前审批人姓名,不支持直接使用公式获取,需要在表单内加入成员组件,在页面加载动作didmount写入代码来获取当前审批人姓名,详情如下:
您可以通过以下步骤获取当前登入人所在部门的主管名字:
在钉钉工作台中,打开“通讯录”页面。
在通讯录页面中,找到当前登入人所在的部门,并点击进入该部门的详细页面。
在该部门的详细页面中,找到“主管”一栏,并查看该主管的姓名。
如果您需要批量获取当前登入人所在部门的主管名字,可以使用钉钉开放平台提供的API接口。具体的操作步骤如下: a. 在钉钉开放平台中,创建一个应用,并获取应用的access_token。 b. 使用API接口获取当前登入人的信息,包括所在部门的信息。 c. 根据所在部门的信息,使用API接口获取该部门的主管信息,包括主管的姓名。 d. 将获取到的主管姓名返回给您的应用程序,进行处理和展示。
总之,您可以通过钉钉工作台或API接口获取当前登入人所在部门的主管名字。如果您需要批量获取,可以使用API接口进行批量获取和处理。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。