如何通过API接口将人员信息同步到组织架构中

组织架构同步接口

一、组织架构同步

注意事项:

如果部门已经被删除了,被删除了的部门的修改,不要放到 updatedOrgs 发给有数,但可以放到 deletedOrgs 发过来重复删除

部门负责人列表,目前只取第一个负责人,最好第一个元素是部门的主要负责人

如果部门或子部门下还有直属员工,或者部门下还有子部门,均无法删除部门

2023年1月10日 update:

deletedOrgCodes 中的部门,如果传了 forceDeleteOrg ,会递归的删除该部门下的所有部门,并冻结所有人员。

deletedOrgCodes 被删除的部门的应用项目,如果在 updatedOrgs 中有同样的 orgCode,会在添加的时候被恢复

[POST] /api/dash/orgStructure/syncOrg
输入:
{
    "companyName": "xxx公司", // 可选字段,如果传了会更改公司名
    "updatedOrgs": [{ // 新增或更新的部门
        "orgCode": "xxx", // 部门编码,要保证全局唯一
        "name": "部门名称",
        "parentOrgCode": "上级部门编码", // 可选,如果不传,说明是一级部门
        "orgAdminUniqueIds": ["account1", "account2"], // 部门负责人列表,目前只取第一个负责人
        "description": "部门描述"
    }],
    "forceDeleteOrg": true,  // 是否强制删除部门
    "deletedOrgCodes": ["code1", "code2", "code3"] // 必传,需要删除的部门的编码,可以重复删除,如果不删除可以传一个空数组
}

二、人员和组织的关系同步

使用对外接口文档中的【用户批量导入接口/api/dash/user/batchImport,在导入用户的过程中,把组织关系也同步过来。新增 userOrgs 字段,表示用户当前直属于哪些部门,以及在这些部门里的角色,因为有数目前只支持一个部门负责人,对于兼职领导,orgRole 先传 normal

{
    "uniqueId": "xxx", // 用户账号
    "phone": "xxxxx",// 手机号
    "returnOrgFailedUsers": true,
    //...
    // 新增部门关系字段,说明这个用户属于哪些部门,以此为依据更新关系
    "userOrgs": [{
       "orgCode": "xxx", // 部门编码
       "orgRole": "leader" // or "normal"
    }]
}

案例:
{
    "token": "167817564178376dcd64c0bebedc9b161bb8a",
    "users": [{
        "uniqueId": "wanglibing6@admin.com",
        "userOrgs": [{
            "orgCode": "4BnnSF6KcKnY",
            "orgRole": "normal"
        }]
    }],
    "returnOrgFailedUsers": true
}

注意:

第一次调用 [(部门A, leader)] ,会把这个用户加入部门A,且作为负责人

第二次调用 [(部门A, normal)],这个用户仍然在A,但不是负责人了

第一次调用 userOrgs 说这个用户在A部门

第二次调用 userOrgs 说这个用户在B,C部门

第三次调用 userOrgs 说这个用户在 E,F,G 部门

最终这个用户在 EFG 部门

11月3号更新

新增 returnOrgFailedUsers 字段,如果有用户的 org 没同步成功,返回报错信息

如何通过API接口将人员信息同步到组织架构里面 - 图1

如果成功,返回 "ok"

如何通过API接口将人员信息同步到组织架构里面 - 图2