# 员工 ##### 新增/更新, 每批次最多可处理300条记录 ##### 接口 /employee/save POST JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | :--- | :--- | :--- | :--- | :--- | :--- | | mobile | string | Y | | | 手机号码(也可提供邮箱) | | email | string | Y | | | 邮箱\(也可提供手机号码) | | name | string | Y | | | 员工姓名 | | employeeId | string | Y | | Y | 员工工号 | | rank | string | | | | 员工职级名称, (如果系统无该职级,将自动创建该职级)| | position | string | | | | 员工职务编码 | | departments | array | Y | | | 员工所属部门,及部门上级,详见下表 | | status | string | | ENABLE | | 员工在职状态, 可以选择ENABLE, DISABLE | | defaultSubsidiaryBizCode | string | | | | 员工默认业务实体 | | hireDate | long | | | | 入职时间 | | tag | string | | | | 属性,可被用于流程 | | source | string | | | | 外联平台,可选值 WEIXIN、DING\_TALK | | sourceId | string | | | | 外联平台key 格式:外联平台的企业ID+"\_"+外联平台的用户ID| | residenceCode | string | | | | 常驻地,传入每刻地址编码,具体见备注 | | custField1 | string | | | | 自定义字段1 | | custField2 | string | | | | 自定义字段2 | | custField3 | string | | | | 自定义字段3 | | custField4 | string | | | | 自定义字段4 | | custField5 | string | | | | 自定义字段5 | | custField6 | string | | | | 自定义字段6 | | custField7 | string | | | | 自定义字段7 | | custField8 | string | | | | 自定义字段8 | | custField9 | string | | | | 自定义字段9 | | custField10 | string | | | | 自定义字段10 | | note | string | | | | 备注| | firstName | string | | | | 姓 | | middleName | string | | | | 多为非中国人填写使用 | | lastName | string | | | | 名 | | restrictSubsidiaryBizCodes| array | | | | 限定的业务实体 | | notifyActivation | boolean| | false | | 是否发送加入通知 | ###### 部门列表 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | ----------------- | ------ | ---- | ---- | ---- | ---------------------- | | departmentBizCode | string | Y | | | 部门编码 | | managerId | string | N | | | 部门内上级工号 | | cover | string | N | Y | | 是否承担部门, 如果不是承担部门,请输入 N | ##### 返回数据 | 字段 | 类型 | 描述 | | ---------- | ------ | ------- | | code | string | 系统内唯一主键 | | employeeId | string | 员工工号 | ##### 备注 * 部门内上级必须在当前员工之前被提交; * 每刻提供每刻的地址编码,接口调用方需要把地址映射成每刻的地址编码。比如常驻地为临安,需要传入每刻地址编码domestic-ZH32-ZH32_1-ZH32_1_85,如常驻地为墨西哥,需要传入abroad-MEX * 如果要使用自定义字段custField1 - custField10, 请和我们联系,开启相关功能; * note 字段用于定义显示在员工-个人设置页面, 用于提醒员工的信息,可以应用自定义字段;如果custField1,配制显示为 成本中心;note 设置为: 成本中心{成本中心}; 某员工的成本中心为A001; 那么在该员工的个人设置页面提醒显示为: 成本中心A001 * 职务全路径为见每刻企业设置-职务,点击对应的职务详情里的职务路径的值,例如一级职务/二级职务 * source、sourceId必须成对出现 * 该接口采用单条失败的处理方式,即整批数据中,如果只有其中的几条因为各种原因失败,那么只有那几条数据不会被保存;其它的数据仍然会被正常处理;错误数据的主键(employeeId)会被放在errorData里面;errorData为结构体, 包含出错记录主键(employeeId), 以及与之对应的出错信息; 类似 {"employeeId": "错误信息"}; 具体参见失败示例;如果有错误信息,则返回的code为NACK,然后错误信息会放在errorData里,只有全部成功返回的code为ACK。 ##### 示例 请求数据 ``` { "timestamp": 123456, "data": [ { "mobile": "12345667", "email": "a@b.com", "name": "测试A", "employeeId": "001", "rank": "P1", "position": "EMPLOYEE", "status": "ENABLE", "departments": [ { "departmentBizCode": "YFA", "managerId": "000" } ], "restrictSubsidiaryBizCodes": ["AB3D"] } ] } ``` 返回数据(成功) ``` { "code": "ACK", "message": "", "data": [ { "code": "ABCDAAFA1234", "employeeId": "001" } ] } ``` 返回数据(失败) ``` { "code": "NACK", "message": null, "errorData":{"001":"缺少部门信息"} ... } ``` ##### 更新部分员工信息接口 ##### 接口 /employee/part/update POST JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | :--- | :--- | :--- | :--- | :--- | :--- | | mobile | string | Y/N | | | 手机号码(也可提供邮箱 | | email | string | Y/N | | | 邮箱\(也可提供手机号码) | | name | string | Y/N | | | 员工姓名 | | employeeId | string | Y | | Y | 员工工号 | | rank | string | | | | 员工职级名称, (如果系统无该职级,将自动创建该职级)| | position | string | | | | 员工职务编码 | | departments | array | Y/N | | | 员工所属部门,及部门上级,详见下表 | | status | string | | ENABLE | | 员工在职状态, 可以选择ENABLE, DISABLE | | defaultSubsidiaryBizCode | string | | | | 员工默认业务实体 | | hireDate | long | | | | 入职时间 | | tag | string | | | | 属性,可被用于流程 | | source | string | | | | 外联平台,可选值 WEIXIN、DING\_TALK | | sourceId | string | | | | 外联平台key 格式:外联平台的企业ID+"\_"+外联平台的用户ID| | residenceCode | string | | | | 常驻地,传入每刻地址编码,具体见备注 | | custField1 | string | | | | 自定义字段1 | | custField2 | string | | | | 自定义字段2 | | custField3 | string | | | | 自定义字段3 | | custField4 | string | | | | 自定义字段4 | | custField5 | string | | | | 自定义字段5 | | custField6 | string | | | | 自定义字段6 | | custField7 | string | | | | 自定义字段7 | | custField8 | string | | | | 自定义字段8 | | custField9 | string | | | | 自定义字段9 | | custField10 | string | | | | 自定义字段10 | | note | string | | | | 备注| | firstName | string | | | | 姓 | | middleName | string | | | | 多为非中国人填写使用 | | lastName | string | | | | 名 | | restrictSubsidiaryBizCodes| array | | | | 限定的业务实体 | | notifyActivation | boolean| | false | | 是否发送激活通知 | ###### 部门列表 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | ----------------- | ------ | ---- | ---- | ---- | ---------------------- | | departmentBizCode | string | Y | | | 部门编码 | | managerId | string | N | | | 部门内上级工号 | | cover | string | N | Y | | 是否承担部门, 如果不是承担部门,请输入 N | ##### 返回数据 | 字段 | 类型 | 描述 | | ---------- | ------ | ------- | | code | string | 系统内唯一主键 | | employeeId | string | 员工工号 | ##### 备注 * 如果员工不存在则新增员工。如果员工存在,则只更新传入的参数,没传入的参数保持不变 * 新增员工的情况下,Y/N表示该参数必填。更新员工的情况下,Y/N表示,该参数可以不传,如果要传则不能传null,空字符串,空数组等 请求数据 ``` { "timestamp": 123456, "data": [ { "employeeId": "001", "name": "测试B", "rank": "P1", "position": "EMPLOYEE", "status": "ENABLE", "departments": [ { "departmentBizCode": "YFB", "managerId": "000" } ], } ] } ``` 返回数据(成功) ``` { "code": "ACK", "message": "", "data": [ { "code": "ABCDAAFA1234", "employeeId": "001" } ] } ``` 返回数据(失败) ``` { "code": "NACK", "message": null, "errorData":{"001":"缺少部门信息"} ... } ``` ### 设置员工部门 ##### 接口 /employee/department/save POST JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | :---------------- | :----- | :--- | :--- | :--- | :-------------------------- | | employeeId | string | Y | | Y | 员工工号 | | departmentBizCode | string | Y | | | 部门编码 | | managerId | string | N | | | 部门内上级工号, 提供null,则在该部门内删除该上级 | ##### 返回数据 | 字段 | 类型 | 描述 | | ---------- | ------ | ------- | | code | string | 系统内唯一主键 | | employeeId | string | 员工工号 | #####示例 请求数据 ``` { "timestamp": 123456, "data": [ { "employeeId": "001", "departmentBizCode": "YFA", "managerId": "000" } ] } ``` 返回数据(成功) ``` { "code": "ACK", "message": "", "data": [ { "code": "ABCDAAFA1234", "employeeId": "001" } ] } ``` 返回数据(失败) ``` { "code": "NACK", "message": "处理错误" } ``` ### 删除员工部门 ##### 接口 /employee/department/delete DELETE JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | ----------------- | ------ | ---- | ---- | ---- | ---- | | employeeId | string | Y | | Y | 员工工号 | | departmentBizCode | string | Y | | | 部门编码 | ##### 返回数据 | 字段 | 类型 | 描述 | | ---------- | ------ | ------- | | code | string | 系统内唯一主键 | | employeeId | string | 员工工号 | ##### 示例 请求数据 ``` { "timestamp": 123456, "data": [ { "employeeId": "001", "departmentBizCode": "YFA", } ] } ``` 返回数据(成功) ``` { "code": "ACK", "message": "", "data": [ { "code": "ABCDAAFA1234", "employeeId": "001" } ] } ``` ### 设置员工默认辅助核算选项 ##### 接口 /employee/costTracking/items/save POST JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | ---------------------------- | ------ | ---- | ---- | ---- | ---------- | | employeeId | string | Y | | Y | 员工工号 | | costTrackingName | string | Y | | | 辅助核算名称 | | costTrackingItemBusinessCode | string | U | | | 辅助核算选项业务编码 | ##### 返回数据 ### 员工离职接口 ##### 接口 /employee/disable POST JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 主键 | 描述 | | ---------- | ------ | ---- | ---- | ---- | ---- | | employeeId | string | Y | | Y | 员工工号 | ##### 示例 请求数据 ``` { "timestamp": 123456, "data": [ { "employeeId": "001" } ] } ``` 返回数据(成功) ``` { "code":"ACK", "message":"" } ``` 返回数据(失败) ``` { "code":"NACK", "errorData":{"001":"未找到工号为001的员工."} } ``` ### 员工查询接口 ##### 接口 /employee?offset={offset}&limit={limit} GET JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 描述 | | :--------- | :----- | :--- | :--- | :------------------------- | | offset | int | Y | 0 | 分页起始 | | limit | int | Y | 500 | 分页条数 | | start | date | N | | 根据员工的修改时间,返回start(包括)之后的数据 | | end | date | N | | 根据员工的修改时间, 返回end(不包括)之前的数据 | | employeeId | string | N | | 根据员工工号查询数据 | ##### * start, end的格式为yyyy-MM-dd * 如果不提供start和end, 则默认取全部的数据 * 接口最多返回500条记录;可通过offset, limit进行分页 * 结果集根据创建时间升序排列 ##### 返回数据 | 参数 | 类型 | 描述 | | :----------------------- | :----- | :--------------------------------------- | | mobile | string | 手机号码 | | email | string | 邮箱 | | name | string | 员工姓名 | | employeeId | string | 员工工号 | | rank | string | 员工职级名称 | | position | string | 员工职级编码 | | status | string | 员工在职状态, 在职(ENABLE) 离职(DISABLE) | | defaultSubsidiaryBizCode | string | 员工默认业务实体 | | hireDate | date | 员工入职时间 | | tag | string | 属性 | | residenceCode | string | 常驻地 | | custField1 | string | 自定义字段1 | | custField2 | string | 自定义字段2 | | custField3 | string | 自定义字段3 | | custField.. | string | 自定义字段.. | | note | string | 备注 | | departments | array | 部门信息包含 departmentBizCode(部门编码)、managerId(部门内上级工号)、employeeId(员工工号)、cover(是否承担部门) | | firstName | string | 姓 | | middleName | string | 多为非中国人填写使用 | | lastName | string | 名 | ### 员工增量更新角色接口 ##### 接口 /employee/roles/incremental POST JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 描述 | | :----------------- | :------ | :--- | :--- | :-------------------------------------- | | employeeId | string | Y | | 员工工号 | | roles | array | N | | 角色组,可输入内容下面描述1 | | roles.role | string | Y | | 角色名称 | | roles.assume | boolean | Y | N | true表示增加角色,false表示减少角色 | | roles.visibility | string | N | | 角色适用范围类型,可选用OPEN(全部适用),WHITE_LIST(部分适用) | | roles.subsidiaries | array | N | | 角色适用业务实体,业务实体的业务编码 | | roles.departments | array | N | | 角色适用部门,部门的业务编码 | | roles.formTypes | array | N | | 角色适用单据大类:可选用PRECONSUME(申请单),REIMBURSE(对私报销单),CORP_REIMBURSE(对公报销单) | * 描述1:以下描述格式为:角色名称(支持使用范围,若括号中无内容,表示暂不支持适用范围):传入的编码字段 * 系统管理员:SYSTEM_ADMIN * 财务管理员:FINANCIAL_ADMIN * 财务:FINANCE * 财务-还款单:FINANCIAL_REPAYMENT * 财务-对公收款单:FINANCIAL_CORP_REPAYMENT * 出纳(业务实体,部门):TELLER * 管理层(业务实体):BOSS ##### 示例 请求数据 ```json { "data":{ "employeeId":"1001", "roles":[{ "role":"TELLER", "assume":true, "visibility":"WHITE_LIST", "formTypes":["PRECONSUME","REIMBURSE"], "subsidiaries":["sub1","sub2"], "departments":["dep1","dep2"]//增加支持适用范围的角色 },{ "role":"SYSTEM_ADMIN", "assume":false//移除角色 },{ "role":"财务", "assume":true, "visibility":"OPEN"//增加不支持使用范围的角色 }] }, "timestamp":1497603851171 } ``` ### 员工增量更新权限接口 ##### 接口 /employee/business/privilege/incremental POST JSON ##### 请求参数 | 参数 | 类型 | 必须 | 默认值 | 描述 | | :---| :------ | :--- | :--- | :--------- | | employeeId | string | Y | | 员工工号 | | businessPrivileges | array | N | | 权限组, 可输入内容下面描述2| | businessPrivileges.businessPrivilege | string | Y | | 权限名称 | | businessPrivileges.assume | bool | Y | N | true表示增加权限, false表示减少权限| | businessPrivileges.visibility | string | N | | 权限适用范围类型, 可选用OPEN, WHITE_LIST| | businessPrivileges.subsidiaries | array | N | | 权限适用业务实体, 业务实体的业务编码 | | businessPrivileges.departments | array | N | | 权限适用部门, 部门的业务编码 | | businessPrivileges.formSubTypeCodeVisibility | string | N | | 权限单据小类适用范围类型, 可选用OPEN,WHITE_LIST | | businessPrivileges.formSubTypes | array | N | | 权限适用单据小类, 单据小类的业务编码 | * 描述2:以下描述格式为:业务权限(支持适用范围,若业务权限后面没有括号内容,表示暂不支持适用范围): 传入的编码字段: * 对公支付:CORP_REIMBURSE * 对公未结清业务: CORP_UNSETTLED_PROCESS * 采购合同:CORP_CONTRACT * 信用管理:CREDIT_MANAGEMENT * 第三方服务:THIRD_PARTY_SERVICE * 供应商维护(业务实体):SUPPLIER_MAINTENANCE * 单据流程处理(业务实体):FORM_TASK_HANDLE * 支付设置(业务实体):PAYMENT_MANAGEMENT * 汇率管理(业务实体):EXCHANGE_RATE_MANAGEMENT * 开票信息(业务实体):TAXPAYER_INFO_MANAGEMENT * 员工管理(业务实体):STAFF_MANAGEMENT * 附件导出(业务实体,部门):ATTACHMENT_DOWNLOAD * 凭证(业务实体,部门):VOUCHER * 借款管理(业务实体,部门):LOAN_MANAGEMENT * 报表(业务实体,部门):REPORTING * 单据查询(业务实体,部门,适用单据类型):FORM_QUERY * 发票管理(业务实体):INVOICE_MANAGEMENT * 合同台账(业务实体):CONTRACT_ACCOUNT ##### 示例 请求数据 ```json { "data":{ "employeeId":"1001", "businessPrivileges":[{ "businessPrivilege":"CORP_REIMBURSE", "assume":true, "visibility":"OPEN"//增加没有适用范围的角色 },{ "businessPrivilege":"SUPPLIER_MAINTENANCE", "assume":false//移除角色 },{ "businessPrivilege":"STAFF_MANAGEMENT", "assume":true, "visibility":"WHITE_LIST", "subsidiaries":["sub1","sub2"], "departments":["dep1","dep2"]//增加有使用范围的角色 }] }, "timestamp":1497603851171 } ```