1.组织架构同步

接口说明:

注意事项:

  • 如果部门已经被删除了,被删除了的部门的修改,不要放到 updatedOrgs 发给有数,但可以放到 deletedOrgs 发过来重复删除
  • 部门负责人列表,目前只取第一个负责人,最好第一个元素是部门的主要负责人
  • 如果部门或子部门下还有直属员工,或者部门下还有子部门,均无法删除部门
  • 2023年1月10日 update:
    • deletedOrgCodes 中的部门,如果不传 forceDeleteOrg: false ,会递归的删除该部门下的所有部门,并冻结所有人员。
    • deletedOrgCodes 被删除的部门的应用项目,如果在 updatedOrgs 中有同样的 orgCode,会在添加的时候被恢复

基本信息:

API /api/dash/orgStructure/syncOrg
Method POST

请求参数:

字段名称 参数类型 参数说明
token String 鉴权token,必须是超管
companyName Optional(String) 公司名,如果传了会更改公司名
updatedOrgs Array 见输入样例
forceDeleteOrg Optional(Boolean) 是否强制删除部门,默认为 true,如果不设置为 false,会递归的删除该部门下的所有部门,并冻结所有人员
deletedOrgCodes Array(String) 需要删除的部门的编码,可以重复删除,如果不删除可以传一个空数组

输入样例:

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

2.人员和组织的关系同步

接口说明:

使用对外接口文档中的/api/dash/user/batchImport接口 ,在导入用户的过程中,把组织关系也同步过来。

该接口的 users 字段新增 userOrgs 字段,表示用户当前直属于哪些部门,以及在这些部门里的角色

注意:

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

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

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

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

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

    最终这个用户在 EFG 部门

基本信息:

API /api/dash/user/batchImport
Method POST

输入样例:

{
    "token": "167817564178376dcd64c0bebedc9b161bb8a",
    "users": [{
        "uniqueId": "wanglibing6@admin.com",
        "userOrgs": [{
            "orgCode": "4BnnSF6KcKnY",
            "orgRole": "normal"
        }],
    }],
    "returnOrgFailedUsers": true //如果有用户的 org 没同步成功,返回报错信息
}

返回样例:

{
    "code": 200,
    "result": [ // 如果设置了 returnOrgFailedUsers
      {
        "uniqueId": "maomao",
        "message": "code1 dosen't exist!"
      }
    ]
}