用户组保存接口
业务场景
可以使用「用户组保存接口」保存或更新用户组,该接口内支持部分更新用户组的信息。
接口说明
- 接口支持批量导入多个用户组,单次导入最多支持10组数据
- 某个用户组的失败不会导致整体的失败
- 用户组子组导入,若员工工号不存在(employeeIds),则该用户组下所有子组同步失败
- 用户组子组导入,若子组的管理范围内的值部分不存在,不会导致整个子组失败
- fullReload字段true值慎用,会将原来的子组全部删除,如果在流程中被使用,则可能导致流程不正常运行。如不知哪些子组需要被删除,可以通过查询接口查询后比对再删除。
接口限制
1. 10次/秒;
2. 用户组子组一次导入数量不能大于50个,超出可以尝试使用该接口的增量模式分批次导入。
接口地址
用户组编辑接口
/api/openapi/usergroup
请求类型
POST
请求参数
参数说明
参数名称 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
name | string | 是 | 用户组的名称 。 如名称已存在则视为更新操作,不存在则视为新增操作 |
nameEn | string | 否 | 用户组英文名称 |
bizCode | string | 否。如涉及改名动作,则其必填 | 用户组的编码 。 如编码不填,则以name为主键去匹配更新或新增动作(新增时,会自动生成一个唯一编码)。 |
categoryName | string | 否 | 分类名称 。 如分类名称已存在则认为用户组在该分类下,若分类名称不存在则创建该分类 不填则认为用户组在根目录下 |
comment | string | 否 | 用户组的描述信息 |
affiliatedCompanyBizCodes | List<String> | 否 | 用户组所属公司编码 |
source | string | 否 不填则认为其属于内部用户组,可以在每刻页面中被编辑 |
描述用户组来源 。 若填了改值,则每刻页面上会显示该用户组属于外部用户组,在每刻页面上会以只读形式出现 |
subUserGroups | array | 否 | 用户组子组 |
defaultSubUserGroup | object | 否 | 默认子组 。 如果是新增动作,则是;如果是修改动作,不填则认为不对默认子组做修改 |
fullReload | boolean | 是 | 是否覆盖更新 。 选择覆盖更新则会将子组的信息以覆盖的形式更新进用户组中,原来的用户子组会被删除,如已被使用则可能导致流程问题(慎用)。否则则是以增量的形式添加进用户组中。 默认:false |
用户组子组(subUserGroups)
参数名称 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
name | string | 是 | 子组名称 |
bizCode | string | 是 | 子组编码 。 若子组编码已存在则认为是更新动作,否则则认为是新增动作。 |
affiliatedCompanyBizCodes | List<String> | 否 | 子组所属公司编码 |
employeeIds | array | 否 | 员工工号 |
responsiblePersonIds | array | 否 | 子组负责人工号 |
conditions | array | 是 | 子组管理范围 。 每组条件之间为或关系。 每组条件内可以选择多个条件,为且关系 |
条件(conditions)
参数名 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
departmentBizCodes | List<String> | 否 (保证这些条件有一个即可) | 部门编码(承担部门)(含下级部门) |
currentDepartmentBizCodes | List<String> | 否 (保证这些条件有一个即可) | 部门编码(承担部门)(不含下级部门) |
departmentBizCodesIncludeAllocations | List<String> | 否 (保证这些条件有一个即可) | 部门编码(承担部门)(含分摊及其下级部门) |
currentDepartmentBizCodesIncludeAllocations | List<String> | 否 (保证这些条件有一个即可) | 部门编码(承担部门)(含分摊)(不含下级部门) |
requestUserDepartmentBizCodes | List<String> | 否 (保证这些条件有一个即可) | 提单人所在部门的编码 (含下级部门) |
requestUserCurrentDepartmentBizCodes | List<String> | 否 (保证这些条件有一个即可) | 提单人所在部门的编码(不含下级部门) |
internalUserDepartmentBizCodes | List<String> | 否 (保证这些条件有一个即可) | 内部参与人所在部门的编码 (含下级部门) |
internalUserCurrentDepartmentBizCodes | List<String> | 否 (保证这些条件有一个即可) | 内部参与人所在部门的编码(不含下级部门) |
legalEntityBizCodes | List<String> | 否 (保证这些条件有一个即可) | 公司抬头 |
referenceDatas | List<referenceDatas> | 否 (保证这些条件有一个即可) | 自定义档案信息(内部档案) |
externalReferenceDatas | List<externalReferenceDatas> | 否 (保证这些条件有一个即可) | 自定义档案信息(外部档案) |
shareReferenceDatas | List<referenceDatas> | 否 (保证这些条件有一个即可) | 自定义档案信息(内部档案)(含分摊) |
notExpression | boolean | 否 | 是否为非逻辑 。 true 表示 不属于 false 表示属于 默认为false |
expenseTypeTotalAmountCondition | object | 否 | 费用类型合计金额条件 |
内部档案信息(referenceDatas)
参数名 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
bizCode | String | 是 | 自定义档案编码(选项组) |
detailBizCodes | List<String> | 是 | 该自定义档案中的选项编码。 两者需有关联关系,即保证选项在所填档案编码的档案中 |
新增内部档案信息(含分摊)(shareReferenceDatas)
参数名 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
bizCode | String | 是 | 自定义档案编码(选项组) |
detailBizCodes | List<String> | 是 | 该自定义档案中的选项编码。 两者需有关联关系,即保证选项在所填档案编码的档案中 |
外部档案信息(externalReferenceDatas)
参数名 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
bizCode | String | 是 | 外部档案编码 |
details | List<details> | 是 | 外部档案内选项的信息 |
外部档案选项信息(details)
参数名 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
bizCode | String | 是 | 选项的编码(保证其唯一性)(费控系统内全局唯一) |
name | String | 是 | 选项的名称(保证其唯一性) |
默认子组(defaultSubUserGroup)
参数名 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
bizCode | String | 否 | 编码 |
employeeIds | List<String> | 否 | 员工工号 |
费用类型合计金额条件(expenseTypeTotalAmountCondition)
参数名 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
expenseTypeTotalAmountComparison | String | 否(保证这些条件有一个即可) | 费用类型合计金额比较符(>,>=,<,<=) |
expenseTypeTotalAmountIncludedExpenseTypeBizCodes | List<String> | 否(当需要以费用类型合计金额作为管理范围的条件时,费用类型编码必填) | 费用类型合计金额包含的费用类型编码 |
expenseTypeTotalAmount | String | 否 | 费用类型合计金额 |
参数示例
{
"userGroups": [
{
"name": "部门主管",
"nameEn": "userGroup EnglishName",
"bizCode": "业务编码",
"categoryName": "职级",
"comment": "这是描述",
"affiliatedCompanyBizCodes": [
"00001",
"00002"
],
"source": "Maycur",
"subUserGroups": [
{
"name": "测试分组",
"bizCode": "subBizCode",
"affiliatedCompanyBizCodes": [
"00001",
"00002"
],
"employeeIds": [
"Maycur003"
],
"responsiblePersonIds": [
"Maycur004"
],
"conditions": [
{
"departmentBizCodes": [
"departmentBizCode"
],
"currentDepartmentBizCodes": [
"departmentBizCode"
],
"internalUserDepartmentBizCodes": ["internalUserDepartmentBizCodes"],
"internalUserCurrentDepartmentBizCodes": ["internalUserCurrentDepartmentBizCodes"],
"referenceDatas": [
{
"bizCode": "referenceDataBizCode",
"details": [
"detailBizCode1",
"detailBizCode2"
]
}
],
"externalReferenceDatas": [
{
"bizCode": "externalReferenceDatas",
"details": [
{
"bizCode":"bizCode1",
"name":"name1"
}
]
}
],
"notExpression": false,
"expenseTypeTotalAmountCondition": {
"expenseTypeTotalAmountComparison": ">=",
"expenseTypeTotalAmountIncludedExpenseTypeBizCodes": [
"expenseTypeBizCode1",
"expenseTypeBizCode2"
],
"expenseTypeTotalAmount": "100"
}
}
]
}
],
"defaultSubUserGroup": {
"bizCode": "Maycur001",
"employeeIds": [
"Maycur003"
]
},
"fullReload": true
}
]
}
响应参数
参数样例
- 正常响应参数示例
{ "success":true, "code": "ACK", "message": "保存成功!", "data": null }
- 错误返回示例
{
"code": "NACK",
"message": "保存失败!",
"data": [
{
"userGroupName": "部门主管",
"userGroupNameEn": "EnglishName",
"errorMsg": "部门子组编码不能为空"
}
],
"success": false
}
{
"code": "NACK",
"message": "保存失败",
"data": [
{
"userGroupName": "测试2333",
"userGroupNameEn": null,
"userGroupBizCode": "ces2333",
"errorMsg": "子组编码为【Maycur001】的子组条件中具体的业务对象不存在!"
}
],
"errorCode": null,
"success": false
}
errorCode 说明
编码 | 说明 |
---|---|
SUB_USER_GROUP_NOT_EXISTED | 用户组子组不存在 |
USER_GROUP_NOT_EXISTED | 用户组不存在 |
常见报错说明
errorMsg错误提示 | 说明 |
---|---|
子组编码为【Maycur001】的子组条件中具体的业务对象不存在! | 【Maycur001】子组内conditions内存在空数组 |
修改记录
2022-01-19 新增
2023-11-03 添加条件:部门编码(承担部门)(含分摊)(不含下级部门)