开发者社区> 问答> 正文

怎么获取当前登入人所在部门的主管名字

早知道怎么获取当前登入人的名字,不知道上级主管的怎么获得

展开
收起
游客oesnntet2iqbw 2023-09-01 10:14:42 877 3
来自:钉钉宜搭
11 条回答
写回答
取消 提交回答
  • SRE(Site Reliability Engineering)工程师,专注于人工智能领域,建立和维护可靠、高效的软件系统和基础设施。作为一名SRE工程师,我将开发和运维的最佳实践结合起来,以确保系统的稳定性、可扩展性和安全性。

    获取当前登录人的名字和上级主管名字,需要根据具体的系统和登录机制来实现。以下是一种常见的做法,可以根据你的需求进行适当的调整:

    1. 获取当前登录人的名字:

      • 如果你的系统有登录功能,通常会有一个用户认证机制,可以通过该机制获取当前登录用户的信息。具体的实现方式可能因系统而异,你可以查阅相关文档或参考系统的开发文档。
      • 一种常见的方式是使用会话(Session)来保存用户信息。你可以通过读取会话中的用户信息来获取当前登录人的名字。
    2. 获取上级主管的名字:

      • 如果你的系统有组织结构或用户角色的概念,通常会有一种方式来关联用户和上级主管的关系。你可以通过查询相关的用户角色或组织结构关系来获取上级主管的信息。
      • 一种常见的方式是在用户表中添加一个字段来表示上级主管的ID,你可以通过查询该字段来获取上级主管的信息。

    以下是一个示例代码,演示如何获取当前登录人的名字和上级主管的名字(假设使用会话保存用户信息):

    # 获取当前登录人的名字
    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
    

    具体的实现方式可能因系统而异。你需要根据你的系统架构和数据模型进行适当的调整。

    2023-09-26 11:37:30
    赞同 3 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    image.png
    获取当前登陆人名称
    表达式: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:几级主管
    如果想在动作面板获取用户信息,可以参考以下代码
    image.png

    2023-09-11 17:36:35
    赞同 2 展开评论 打赏
  • 您好,如果您使用的是钉钉,可以通过以下代码获取当前登录人的部门和名字:

    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)
    
    2023-09-03 11:51:30
    赞同 1 展开评论 打赏
  • 组织架构数据:如果你的系统中存储了组织架构数据,包括部门和员工信息,你可以通过查询组织架构数据来获取当前登录人所在部门的主管姓名。通常,组织架构数据会包含部门和员工之间的层级关系,例如上级字段或直接管理者字段。微信截图_20230902110117.png
    您可以通过钉钉工作台或API接口获取当前登入人所在部门的主管名字。如果您需要批量获取,可以使用API接口进行批量获取和处理。微信截图_20230902110126.png

    2023-09-02 11:02:18
    赞同 2 展开评论 打赏
  • 在宜搭中,可以通过单行文本配置公式 DEPTNAME(成员),去获取指定人所在部门,那么如何获取到当前登陆人的上级部门呢,我们需要分两种情况去判断。

    1.当前登陆人属于单部门并且有主管
    2.当前登陆人属于多部门或者无主管

    1. 当前登陆人属于单部门并且有主管
      思路:用 user(2) 公式获取到上级部门主管,再用 DEPTNAME(成员),将成员替换成获取到的主管。

    8ef9a9fd9f13dc77d3cabf71549a71ed_1630058099360-523ea847-2f62-4133-aadf-be12e6f40a12.png

    当前登陆人属于多部门或者无主管
    2.1 使用中间表获取上级部门名称
    如果有多个部门或者没有主管的情况,那么就不适用于第一种方案,所以要使用中间表的方式,将成员和部门依次录入,最终采用「数据联动」的方式,成员组件作为条件,联动出部门。

    d1a7c113ef30e3a54c3589e2ff1bc049_1630059086657-c5919811-8290-4a6a-88ec-2e62d7c91a8d.png

    2093508ebdc5147fff1fd04be4477e4c_1630564761824-4d9086c5-e19a-4e16-b158-137dc3986aec.gif

    2023-09-02 09:51:31
    赞同 2 展开评论 打赏
  • 北京阿里云ACE会长

    我已经认真阅读了 你的问题:

    【怎么获取当前登入人所在部门的主管名字

    并思考了

    建议如下:


    您需要首先获取到当前登录人的用户信息,然后根据用户信息在企业组织架构中查询主管信息。具体实现步骤如下:

    1. 获取当前登录人的用户信息:
      在钉钉 API 中,您可以使用 https://api.dingtalk.com/v1.0/contact/users/me 接口获取当前登录人的用户信息。示例代码如下:

    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 替换为您实际的访问令牌。

    1. 根据用户信息查询主管信息:
      获取到当前登录人的用户信息后,您可以根据用户所属部门等信息在企业组织架构中查询主管信息。具体实现方法取决于您的企业组织架构数据如何存储,这里给出一个通用的 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 查询只是一个示例,实际的查询方法可能需要根据您的数据库结构和需求进行调整。

    2023-09-01 18:57:07
    赞同 1 展开评论 打赏
  • 要获取当前登录人所在部门的主管名字,你需要根据你所使用的系统或平台的具体情况采取不同的方法。以下是一些常见的方法:

    1. 组织架构数据:如果你的系统中存储了组织架构数据,包括部门和员工信息,你可以通过查询组织架构数据来获取当前登录人所在部门的主管姓名。通常,组织架构数据会包含部门和员工之间的层级关系,例如上级字段或直接管理者字段。

    2. 运行时动态查询:如果你的系统支持在运行时查询组织架构数据或用户信息,你可以通过在程序中编写逻辑来获取当前登录人所在部门的主管姓名。首先,根据当前登录人的信息获取其所属部门。然后,通过查询部门信息或关联关系,找到该部门的主管姓名。

    3. API 或集成接口:有些系统提供了特定的 API 或集成接口,可以用于获取组织架构或用户信息。你可以调用这些接口来获取当前登录人所在部门的主管姓名。具体的调用方式和参数可能因系统而异,请参考相应系统的文档或开发者指南。

    2023-09-01 18:47:36
    赞同 1 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    要获取当前登录人所在部门的主管名字,你需要先确定你使用的身份验证和权限管理系统。以下是一般性的步骤:

    1. 首先,确保你的身份验证系统(如LDAP、Active Directory等)已经集成到你的应用程序中,并且可以成功验证用户。

    2. 在用户登录后,你可以从身份验证系统中获取当前登录用户的信息,包括其所属部门的信息。

    3. 接下来,根据你的组织结构和部门信息,你可能需要查询一个部门-主管的映射关系表或者调用相关的API来获取该部门的主管信息。

    4. 根据部门信息查询到主管的姓名或标识后,你就可以将这些信息返回给前端或在服务器端进行进一步处理。

    请注意,具体的实现方法会依赖于你所使用的身份验证和权限管理系统,以及你的组织结构。确保你对这些系统有足够的了解,并根据实际情况进行适当的配置和开发。

    2023-09-01 18:22:01
    赞同 1 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,获取当前登录人的所在部门主管名字需要通过以下步骤:

    1. 获取当前登录用户的部门信息,可以通过以下代码实现:
      image.png
    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}')
    
    1. 根据部门信息获取部门主管的信息,可以通过以下代码实现:
      image.png
    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 地址需要根据你所在的阿里云宜搭环境进行相应的调整。

    2023-09-01 15:55:09
    赞同 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    可以根据成员组件获取成员主管名字,可通过以下方式获取到:

    (1)在表单内添加两个成员组件,一个成员组件用于选择人员,另一个成员用作公式编辑,详情如下:

    (2)公式如下:

    宜搭内可以使用GETUSERNAME公式获取登录人昵称。

    表达式:GETUSERNAME()

    宜搭流程审批时获取当前审批人姓名,不支持直接使用公式获取,需要在表单内加入成员组件,在页面加载动作didmount写入代码来获取当前审批人姓名,详情如下:

    2023-09-01 10:36:57
    赞同 1 展开评论 打赏
  • 全栈JAVA领域创作者

    您可以通过以下步骤获取当前登入人所在部门的主管名字:

    在钉钉工作台中,打开“通讯录”页面。
    在通讯录页面中,找到当前登入人所在的部门,并点击进入该部门的详细页面。
    在该部门的详细页面中,找到“主管”一栏,并查看该主管的姓名。
    如果您需要批量获取当前登入人所在部门的主管名字,可以使用钉钉开放平台提供的API接口。具体的操作步骤如下: a. 在钉钉开放平台中,创建一个应用,并获取应用的access_token。 b. 使用API接口获取当前登入人的信息,包括所在部门的信息。 c. 根据所在部门的信息,使用API接口获取该部门的主管信息,包括主管的姓名。 d. 将获取到的主管姓名返回给您的应用程序,进行处理和展示。
    总之,您可以通过钉钉工作台或API接口获取当前登入人所在部门的主管名字。如果您需要批量获取,可以使用API接口进行批量获取和处理。

    2023-09-01 10:34:51
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答地址:
关联地址:
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载