开放平台
版本:v1.0.0
用于接口数据上传及员工合同信息获取
开放平台使用说明
开放平台接口为https://ectcs.hrsecn.com/openAPI
在接入开放平台前,请联系平台管理员获取企业公钥
接口说明
返回数据中如果数据为空,则返回null
所有参数请放作为一个JSONObject中作为
Request Body
请求
数据data
需要以utf-8格式编码为base64字符串,再使用public key
进行分段加密
加密数据java示例:
/**
* RSA最大加密明文大小
*/
private static final int MAX_ENCRYPT_BLOCK = 117;
/**
* 使用公钥加密
*
* @param str 数据
* @param publicKey 公钥字符串
* @return
* @throws Exception
*/
public static String encrypt(String str, String publicKey) throws Exception {
// base64编码的公钥
byte[] decoded = (new BASE64Decoder()).decodeBuffer(publicKey);
RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded));
// RSA加密
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
byte []sourceCode=str.getBytes("UTF-8");
int inputLen = sourceCode.length;
ByteArrayOutputStream out = new ByteArrayOutputStream();
int offSet = 0;
byte[] cache;
int i = 0;
// 对数据分段加密
while (inputLen - offSet > 0) {
if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {
cache = cipher.doFinal(sourceCode, offSet, MAX_ENCRYPT_BLOCK);
} else {
cache = cipher.doFinal(sourceCode, offSet, inputLen - offSet);
}
out.write(cache, 0, cache.length);
i++;
offSet = i * MAX_ENCRYPT_BLOCK;
}
byte[] encryptedData = out.toByteArray();
out.close();
String outStr = Base64.encode(encryptedData);
return outStr;
}
导入部门 action=importDepart
在企业新建时会产生pid为-1,名称为企业名称的部门,导入人员时若不指定部门,则默认导入该部门
删除部门时该部门下所有员工默认归属到企业默认部门下
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后的数据 | N |
action | 当前值为importDepart | N |
其中data
为JSONArray
结构
字段 | 属性类型及限制 | 说明 | 是否可为空 |
---|---|---|---|
depart_name | String(50) | 部门名称 | N |
depart_address | String(80) | 部门地址 | Y |
comments | String(50) | 说明 | Y |
contact_information | String(50) | 联系方式 | Y |
children | JSONArray | 子部门(属性值同上) | Y |
返回值
返回字段 | 说明 |
---|---|
code | |
data | |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或 错误代码 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "importDepart",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data": "e3HHTeJH1OiOv+************x3fvv/uYPxvO9z4eXEXGKr***********PIIvoCrefwF2LXoZyQRLlB/ONOsrkTV********1XCBTpk8B0LejgBO7R6dPZUglcgRNRAs6FueNq*********OVFcz4qfCkMehgxh79U3BwM1dIXUpyQKQkWc+uGkFeFabLeXMa878OgplwvQnALfLgrfkyVXdbXKSXh******8cwpXQG0pRkEVcXzCHcPTG86jIVCzY18Rky8Pjw=="
}
其中 data 原始数据为
data:[{
depart_name: "测试部门1",
depart_address: "**楼",
comments: "**楼",
contact_information: "101",
children: [{
depart_name: "测试部门1_1",
depart_address: "**楼",
comments: "**楼",
contact_information: "1011"
}]
}]
正常返回值为
{
"code": null,
"data": "成功2条,插入1条,更新1条,失败0条",//失败1条(原因为:)
"success": true,
"message": "successful!",
"status": "default"
}
删除部门 action=removeDepart
删除部门时该部门下所有员工默认归属到企业默认部门下
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后的数据 | N |
action | 当前值为removeDepart | N |
其中 data
为JSONArray
结构
字段 | 属性类型及限制 | 说明 | 是否可为空 |
---|---|---|---|
depart_name | String(50) | 部门名称 | N |
返回值
返回字段 | 说明 |
---|---|
code | |
data | |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或 错误代码 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "removeDepart",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data": "a8LluZaiagwlgbIDRH+************x3fvv/uYPxvO9z4eXEXGKr***********PIIvoCrefwF2LXoZyQRLlB/ONOsrkTV********1XCBTpk8B0LejgBO7R6dPZUglcgRNRAs6FueNq*********OVFcz4qfCkMehgxh79U3BwM1dIXUpyQKQkWc+uGkFeFabLeXMa878OgplwvQnALfLgrfkyVXdbXKSXh******8cwpXQG0pRkEVcXzCHcPTG86jIVCzY18Rky8Pjw=="
}
其中 data 原始数据为
data:[{depart_name: "测试部门1"}]
正常返回值为
{
"code": null,
"data": "成功1条,失败0条",
"success": true,
"message": "successful!",
"status": "default"
}
获取部门列表 action=listDepart
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
action | 当前值为listDepart | N |
返回值
返回字段 | 说明 |
---|---|
code | |
data | 人员列表信息 |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或 错误代码 |
data
为JSONArray
结构
字段 | 说明 | 备注 |
---|---|---|
depart_id | 部门id | 36位uuid |
depart_name | 部门名称 | |
depart_address | 部门地址 | |
contact_information | 联系方式 | |
comments | 说明 | |
pid | 上级部门id | 36位uuid |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "listDepart",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
}
正常返回值为
{
"code": null,
"data": [
{
"comments": null,
"contact_information": null,
"depart_address": null,
"depart_id": "00afe***e-***88b2fc",
"depart_name": "研发组二",
"pid": "ef6****fc-*****00afe088",
}.....
],
"success": true,
"message": "successful!",
"status": "default"
}
导入人员 action=importUser
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后的数据 | N |
action | 当前值为importUser | N |
data
为JSONArray
结构
字段 | 属性类型及限制 | 说明 | 是否可为空 | 备注 |
---|---|---|---|---|
depart_name | String(50) | 部门名称 | N | |
name | String(50) | 姓名 | N | |
id_number | String(20) | 身份证号码 | N | |
phone_number | String(11) | 手机号码 | N | |
union_pay_type | String(4) | 银联卡类型 | Y | 目前支持:农业银行/工商银行/建设银行/中国银行 |
union_pay_number | String(30) | 银联卡号码 | Y | |
address | String(50) | 户籍地址 | N | |
live_address | String(50) | 居住地址 | N | |
emergency_name | String(30) | 紧急联系人 | N | |
emergency_sex | String(4) | 紧急联系人性别 | N | 男/女 |
emergency_relation | String(10) | 紧急联系人 与本人关系 | N | |
emergency_phone_number | String(30) | 紧急联系人联系方式 | N | |
employee_status | String(10) | 员工状态 | N | 状态有:待入职/实习/试用/转正/离职/兼职 |
entry_time | String | 入职时间 | N | 格式为yyyy-MM-dd |
job_description | String(50) | 工作职责 | Y | |
salary | String(10) | 薪资 | Y | |
workplace | String(50) | 工作地点 | Y | |
job_post | String(30) | 工作岗位 | Y | |
trial_salary | String(10) | 试用期薪资标准 | Y | |
contract_start_time | String | 合同开始时间 | Y | 格式为yyyy-MM-dd |
contract_expire_time | String | 合同到期时间 | Y | 格式为yyyy-MM-dd |
official_time | String | 转正时间 | Y | 格式为yyyy-MM-dd |
返回值
返回字段 | 说明 |
---|---|
code | |
data | |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或 错误代码 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "importUser",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data": "Pu4TX9tQo0jC7w0cu8oZthVjlnhgEANFSRtjTMA4UaYjEgT36ygZ+Lp2PfeP6O5az9X8Ma5lOOmlu8C301d1zvIKH4X+Z9niOhZE+qIyOZojdmqoPCqhTEB54mjK7MgcbjPbNxFViyVLCYhPGltIb5ny478zDbmaS/wFZLXnWuhSC*******/nGaGyXzxUizYYjNd6oG8AD3mAvBjwhKP+c1IKv/yE68G*******uBh5fAhUuJaCwdsoJmkJGSJGR/j3VSdewIydW0YdmLX3upMfCyCbNxv0nOw6Bm7C4Zxdz4ZjaUEt3XD328*******Z0Czy3ihSDAMuRhXV43TsPMzKxRMQMQRPvT2Fz0EwMNsRDgzdBb/8WWdPDoU3m2IoIRN0Rwff0NCNuuZkB9KyLHqDKkj2neABp7HQnu7Af6+/QdlagmEHSDXUEdacJRjAZwvSxrY+83Tivr/BkMa"
}
data原始数据为:
data:[{
name: "张四",
entry_time: "2018-01-01",
employee_status: "实习",
depart_name: "测试部门",
id_number: "34******37",
phone_number: "138****35"
emergency_phone_number: "13********",
emergency_relation: "父子",
emergency_name: "张三",
emergency_sex: "男",
}]
正常返回值为
{
"code": null,
"data": "成功1条",
"success": true,
"message": "successful!",
"status": "default"
}
获取员工列表 action=listEmployee
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
action | 当前值为listEmployee | N |
返回值
返回字段 | 说明 |
---|---|
code | |
data | 人员列表信息 |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或 错误代码 |
data
为JSONArray
结构
字段 | 说明 | 备注 |
---|---|---|
id | 员工编码 | 36位uuid |
id_number | 身份证号 | |
name | 姓名 | |
sex | 性别 | 男/女 |
phone_number | 手机号 | |
entry_time | 入职时间 | yyyy-MM-dd |
depart_name | 部门名称 | |
employee_status | 员工状态 | 待入职/实习/试用/转正/离职/兼职 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "listEmployee",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
}
正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)
{
"code": null,
"data": [
{
"birth": "19**-**-**",
"depart_name": "测试部门",
"employee_status": "实习",
"entry_time": "2018-01-01",
"id": "0*****d38",
"id_number": "3**96**3",
"name": "张四",
"phone_number": "13******11",
"sex": "男"
}.....
],
"success": true,
"message": "successful!",
"status": "default"
}
获取合同列表 action=getContractListByUser
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后人员id | N |
action | 当前值为getContractListByUser |
N |
contract_status | 为'done'时只显示已签署的合同 | Y |
返回值
返回字段 | 说明 |
---|---|
code | |
data | 返回该人员的合同列表,按发起时间倒序 |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或 错误代码 |
data
为JSONArray
结构
字段 | 说明 | 备注 |
---|---|---|
name | 合同名称 | |
start_time | 合同发起时间 | yyyy-MM-DD |
id | 合同id | 36位uuid |
contract_status | 合同状态 | 待签署、已完成、已过期、已作废 |
url | 合同签署地址 | 待签署(待我签署) 才有 |
distinguish | 待签署分类 | 0待我签署,1待他人签署 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "getContractListByUser",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="
}
正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)
{
"code": null,
"data": [
{
"id": "399bb184-ce79-4eaa-8d8e-f198cbf4a01c",
"name": "与****劳动合同20200428",
"start_time": "2020-04-28"
}.....
],
"success": true,
"message": "successful!",
"status": "default"
}
获取合同详情 action=getContractByContractID
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后合同id | N |
action | 当前值为getContractByContractID |
N |
返回值
返回字段 | 说明 |
---|---|
code | |
data | 该合同的文件信息 |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或错误代码 |
data
为jsonObject
结构
字段 | 说明 | 备注 | |
---|---|---|---|
name | 合同名称 | ||
start_time | 合同发起时间 | yyyy-MM-DD | |
res_path | 合同下载地址 | 可通过该地址直接下载合同 | 、 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "getContractByContractID",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="
}
正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)
{
"code": null,
"data": [
"data": {
"start_time": "2020-04-28",
"res_path": "http://****.aliyuncs.com/d7cd*******b03fd7d41b.pdf?Expires=1588****&OSSAccessKeyId=LTAIrKxH7CZ*****oO%2BI%3D",
"name": "与梅钧翔的附件2:浙江人力资源协会防疫承诺书20200428"
},
],
"success": true,
"message": "successful!",
"status": "default"
}
获取人员免登陆码 action=avoidLogin
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后人员id | N |
action | 当前值为avoidLogin |
N |
返回值
返回字段 | 说明 |
---|---|
code | |
data | 返回该人员的免登陆码 |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或 错误代码 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "getContractListByUser",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="
}
正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)
{
"code": null,
"data": "ce7557d0-5af6-4b7f-****-8252682fee55"
"success": true,
"message": "successful!",
"status": "default"
}
获取合同签署记录 action=getSignLog
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后合同id | N |
action | 当前值为getSignLog |
N |
返回值
返回字段 | 说明 |
---|---|
code | |
data | 该合同的签署记录 |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或错误代码 |
data
为jsonObject
结构
字段 | 说明 | 备注 | |
---|---|---|---|
sign_date | 操作时间 | YYYY-MM-DD HH:mm:ss | |
sign_operator | 操作人 | ||
sign_status | 操作状态 | 发起、查看、签署、完后、拒绝、关闭、签署,但签署失败 | 、 |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "getContractByContractID",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data":"binVVN+sDis9RK4Qh2******PznOIpv4/SDLxYW6DukWTHoC3Ae83Fuft*******YU8cUHyfcsAzEaMKKlpGsjteFA="
}
正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)
{
"code": null,
"data": [
{
"sign_date": "2020-**-** 23:41:52",
"sign_operator": "陈**",
"sign_status": "签署"
}.....
],
"success": true,
"message": "successful!",
"status": "default"
}
免登陆码有效性校验 action=checkAvoidLogin
入参
字段 | 说明 | 是否可为空 |
---|---|---|
pub_key | 企业公钥 | N |
data | 加密后的数据 | N |
action | checkAvoidLogin | N |
data
为jsonObject
结构
字段 | 属性类型及限制 | 说明 | 是否可为空 | 备注 |
---|---|---|---|---|
id | String(50) | 人员主键 | N | |
contract | String(50) | 合同主键 | N | |
code | String(255) | 免登陆码 | N |
返回值
返回字段 | 说明 |
---|---|
code | |
data | 免登陆码有效性校验结果,合同、人员主键 |
success | 是否成功,true:成功,false:失败 |
message | 返回信息(发生错误时的错误信息) |
status | 返回状态,默认:default或错误代码 |
data
为jsonObject
结构
字段 | 说明 | 备注 |
---|---|---|
id | 人员主键 | |
contract | 合同主键 | |
flag | 免登陆码有效性校验结果 | true,false |
请求示例
HTTP请求示例
GET /openAPI HTTP/1.1
Host: https://ectcs.hrsecn.com
Content-Type: application/json
{
"action": "checkAvoidLogin",
"pub_key": "MIGfMA0GCSqGSIb3DQEB*****8pL9xZ+o0YFxDu6ApCvL9e2WhVkwlKMK1K8P*******AFEX6BRtHwXvv81Y*******eeo9xRsousieAM9J+05qy+tGFmQnVWue0f7eLPjKE4pb5hR0658wIDAQAB",
"data": "Pu4TX9tQo0jC7w0cu8oZthVjlnhgEANFSRtjTMA4UaYjEgT36ygZ+Lp2PfeP6O5az9X8Ma5lOOmlu8C301d1zvIKH4X+Z9niOhZE+qIyOZojdmqoPCqhTEB54mjK7MgcbjPbNxFViyVLCYhPGltIb5ny478zDbmaS/wFZLXnWuhSC*******/nGaGyXzxUizYYjNd6oG8AD3mAvBjwhKP+c1IKv/yE68G*******uBh5fAhUuJaCwdsoJmkJGSJGR/j3VSdewIydW0YdmLX3upMfCyCbNxv0nOw6Bm7C4Zxdz4ZjaUEt3XD328*******Z0Czy3ihSDAMuRhXV43TsPMzKxRMQMQRPvT2Fz0EwMNsRDgzdBb/8WWdPDoU3m2IoIRN0Rwff0NCNuuZkB9KyLHqDKkj2neABp7HQnu7Af6+/QdlagmEHSDXUEdacJRjAZwvSxrY+83Tivr/BkMa"
}
data原始数据为:
data:[{
id: "06b0133a-c8c2*****b-6895f7f82df3",
contract: "4ae1c411-1e8a-4d6e*****-934cbd514cbb",
code: "3ff607db-25c1*****-87f3-5263d5770ee1",
}]
正常返回值为(演示数据经过模糊处理,实际返回为未模糊处理数据)
{
"code": null,
"data": {
id: "06b0133a-c8c2*****b-6895f7f82df3",
contract: "4ae1c411-1e8a-4d6e*****-934cbd514cbb",
flag: true
},
"success": true,
"message": "successful!",
"status": "default"
}
错误信息参考
错误status | 错误提示 message | 原因及建议处理方式 |
---|---|---|
ERR.ENTERPRISE_NOT_EXISTS | 查无此企业 | 核对公钥是否正确 |
ERR.DECRYPT_ERR | 数据解密错误 | 参考接口示例 |
ERR.DATA_ERR | 数据格式转化错误 | data部分需要是规范的jsonArray 或jsonObject |
ERR.NO_MATCH_ACTION | 未找到接口 | 核对action属性 |
ERR.DEPART_NAME IS NULL | 部门名称为空 | 部门名称不允许为空,请核对 |
ERR.DEPART_NAME IS DUPLICATE | 部门名称重复 | 部门名称不允许重复,请核对 |
ERR.USER_ERR | 用户信息错误 | 用户信息错误,请核对 |
ERR.DEPART OWN NEXT LEVEL DEPART | 部门拥有下层部门 | 请先删除下层部门在删除该部门 |
ERR.DEPART_NAME NOT EXIST | 部门名称不存在 | 请核对部门名称 |