企业自有审批单管理
企业自有审批单管理
企业自有差旅审批单同步
差旅审批单同步接口用于企业客户的IT系统将企业员工在自有的差旅审批系统创建并通过审批的审批单的内容同步给华为云数字化差旅系统,用于员工出差行程的管控。
出差申请单同步时,该接口携带的员工信息在系统中如果不存在则会新建(将发送提示更改密码邮件),如果存在则进行覆盖更新。
接口URL
/syntr
请求参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
Version | 版本号 | Y | String | 3.0 | 固定为3.0。 | |
MsgID | 唯一标识 | Y | String | 1000120150511190411000001 | 企业账号+消息方向+YYYYMMDDHHMMSS+NNNNNN | |
CorpCode | 操作企业账号 | Y | String | 企业账号 | ||
TenantUserId | 操作人帐号 | Y | String | HW_000001 | 1、如果是系统维护,写"sysadmin" 2、如果是普通员工维护,写员工id | |
EnterpriseTrID | 企业客户系统的审批单编号 | Y | String | TA0315012116281300028 | ||
TrCreator | 申请人 | Y | Employee | |||
ApplyTime | 申请时间 | Y | String | 20180811113019 | yyyyMMddHHmmss | |
ApplyType | 申请类型 | Y | String | 1:为本人申请(默认) 2:为他人申请 3:为客户 | ||
ServiceMask | 服务项 | N | String | 6 | 111111 | 格式为MMMMMM, 第一位标识国内机票 第二位标识国际机票 第三位标识国内酒店第 四位标识国际酒店第 五位标识国内火车票 第六位标识差旅用车 1表示开通,0表示不开通;若与企业开通的服务项冲突,以企业服务项为主,比如企业未开通国内机票服务,即时接口中第一位为1也不会生效。如果ServiceMask为空,则默认以企业服务项为主。 如11100标识国内机票、国际机票、国内酒店业务开通。 |
TravelPurpose | 出差目的 | N | String | |||
DepartDate | 出发日期 | Y | String | 20180811 | yyyyMMdd 如果企业有差旅管控需求,出发时间、出发城市信息、差旅目的地、差旅出差人信息必填 | |
DepartCityInfo | 出发城市信息 | Y | CityInfo | |||
DestinationList | 差旅目的地 | Y | List<Destination> | |||
BusinessTravelerList | 差旅出差人信息 | Y | List<BusinessTraveler> | |||
EmployeeLevelStrategy | 多出行人差标执行策略 | N | String | ORIGINAL | ORIGINAL:多出行人时,每出行人均取原始差标执行 HIGHER:多出行人时,取出行人中较高差标执行 默认ORIGINAL | |
DeptApprover | 部门审批人 | N | Employee | |||
ApproveStatus | 审批状态 | N | String | 0:待审批 1:审批通过 3:权签驳回 4:自主撤销 5:已关闭 | ||
ApproveTime | 审批时间 | N | String | yyyyMMddHHmmss | 精确到秒 | |
Opinion | 审批意见 | N | String | 50 | 不管审批意见如何,发此消息,系统均认为审批通过 | |
BenefitInfoList | 差旅受益信息 | N | List<BenefitInfo> | |||
Remark | 备注 | N | String | 512 | ||
ExtInfo | 扩展字段 | N | String | {"data":"123"} | 扩展字段,已经定义使用的字段名如下: TR_Source | |
TripCount | 往返次数 | N | Integer | 2 | 有值时,值为正整数,且>1,此TR需要多次往返;无值时,此TR不需多次往返 | |
TripList | 行程 | N | List<Trip> | 256 | ||
BudgetAmount | 预算金额 | N | String | 2000 | 币种为人民币 |
HotelPriceLimitInfo
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
CityInfo | 目的地信息 | Y | CityInfo | 与差旅审批单行程保持一致 | ||
HotelLimitPrice | 酒店住宿标准 | Y | String | 100 | ||
HotelPayCurrency | 酒店住宿标准货币 | N | String | CNY | 如不传,默认为CNY | |
FloatingControlMode | 浮动管控模式 | N | String | STRICT:完全匹配(入住日期必须完全在浮动范围日期内才上浮);EASY:弱匹配(入住日期与浮动范围日期有交叉时,则全部入住日期上浮);DAILY:按匹配日期上浮(入住日期与浮动范围日期有交叉时,仅上浮交叉部分入住日期); | 不传默认不上浮 | |
FloatingRuleList | 浮动规则列表 | N | List<FloatingRule> | 不传默认不上浮 |
FloatingRule
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
StartDate | 开始时间 | Y | String | 0102 | 月份日期,数字格式,多条数据存在时,不能存在交集 | |
EndDate | 结束时间 | Y | String | 0304 | 月份日期,数字格式,多条数据存在时,不能存在交集 | |
FloatingMode | 浮动模式 | Y | String | PERCENTAGE | PERCENTAGE:百分比,RELATIVE_AMOUNT:固定额度 | |
FloatingValue | 浮动值 | Y | String | -1、20 | 浮动值,固定金额或者比例值,-1表示不限,20表示上浮20% |
响应参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
ResultCode | 返回码 | Y | String | 0 | 0表示成功,其他值为失败。 | |
Description | 描述 | Y | String | Success | 描述信息,出错时为错误信息即错误原因。 | |
EnterpriseTrID | 企业客户系统审批单编号 | Y | String | TA0315012116281300028 | ||
HtTrID | 华为云数字化差旅审批单编号 | Y | String | TA0315012116281300028 | 根据EnterpriseTrID,系统将生成对应的HtTrID |
样例
请求:
{
"Version": "3.0",
"MsgID": "0008120220929071248283828",
"CorpCode": "0008",
"TenantUserId": "sysadmin",
"EnterpriseTrID": "TR2022092907124864692",
"TrCreator": {
"TenantUserId": "26215236521",
"Name": "颜敏",
"Surname": null,
"GivenName": null,
"Gender": null,
"Type": null,
"Nationality": null,
"Birthday": null,
"Mailbox": null,
"Cellphone": null,
"Telephone": null,
"CertificateInfoList": [],
"DeptNum": null,
"DeptName": null,
"DeptList": null,
"EmployeeNum": "10234118",
"EmployeeUID": "1011118",
"Role": "2",
"RoleGroupList": null,
"EmployeeLevel": null,
"EmployeeVIPLevel": null,
"Remark": null,
"NeedApproval": null
},
"ApplyTime": "20220929071248",
"ApplyType": "1",
"ServiceMask": "111111",
"TravelPurpose": "休假",
"DepartDate": "20221004",
"DepartCityInfo": {
"CountryID": "156",
"CountryEnglishName": null,
"CountryChineseName": null,
"CityID": "156310100",
"CityEnglishName": null,
"CityChineseName": null
},
"DestinationList": [
{
"ArriveCityInfo": {
"CountryID": "156",
"CountryEnglishName": null,
"CountryChineseName": null,
"CityID": "156320100",
"CityEnglishName": null,
"CityChineseName": null
},
"ArriveDate": "20221004",
"LeftDate": "20221024"
}
],
"TripList": [
{
"FromCountryId": "156",
"FromCityId": "156320100",
"ArriveCountryId": "156",
"ArriveCityId": "4403",
"TakeoffDate": "20230714"
}
],
"BusinessTravelerList": [
{
"Customer": {
"TenantUserId": null,
"Name": "颜敏",
"Surname": "",
"GivenName": "",
"Gender": "M",
"Type": null,
"Nationality": "156",
"Birthday": "19871224",
"Mailbox": "mafei@qq.com",
"Cellphone": "15911111111",
"Telephone": null,
"CertificateInfoList": [
{
"CertificateType": "1",
"CertificateNum": "362321199808088866",
"ExpiredDate": null,
"IssuePlace": null,
"PassportIssueDate": null,
"PassportIssueCountry": null,
"PassportIssueProvince": null
}
],
"DeptNum": null,
"DeptName": "科技质量科",
"DeptList": null,
"EmployeeNum": "10215118",
"EmployeeUID": "10215118",
"Role": "2",
"RoleGroupList": null,
"EmployeeLevel": null,
"EmployeeVIPLevel": null,
"Remark": null,
"NeedApproval": null
},
"FlightCabinLimit": "2",
"IairCabinLimit":"FIRST",
"TrainCabinLimit": "100",
"HotelPriceLimitInfoList": [
{
"CityInfo": {
"CountryID": "156",
"CountryEnglishName": null,
"CountryChineseName": null,
"CityID": "156320100",
"CityEnglishName": null,
"CityChineseName": null
},
"HotelLimitPrice": "400.00",
"HotelPayCurrency": "CNY"
}
],
"CarDailyAmountLimit":"-1",
"CarSingleAmountLimit":"100",
"CarExceedCurrency":"CNY",
"CarExceedRideType":"COMFORTABLE,BUSINESS,LUXURY",
"BenefitInfo": null
}
],
"EmployeeLevelStrategy": "ORIGINAL",
"DeptApprover": null,
"ApproveStatus": "1",
"ApproveTime": null,
"Opnion": null,
"BenefitInfoList": [],
"Remark": null,
"EnterpriseFlag": null,
"ExtInfo": null,
"BudgetAmount": "2000"
}
响应:
{
"ResultCode": "0",
"Description": "成功",
"EnterpriseTrID": "TR2022092907124864692",
"HtTrID": "TA0412066979"
}
企业自有差旅审批单有效性状态同步
接口URL
/syntrvalidstatus
请求参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
Version | 版本号 | Y | String | 3.0 | 固定为3.0。 | |
MsgID | 唯一标识 | Y | String | 1000120150511190411000001 | 企业账号+消息方向+YYYYMMDDHHMMSS+NNNNNN | |
CorpCode | 操作企业账号 | Y | String | 企业账号 | ||
TenantUserId | 操作人帐号 | Y | String | HW_000001 | 1、如果是系统维护,写"sysadmin" 2、如果是普通员工维护,写员工id | |
EnterpriseTrID | 企业客户系统的审批单编号 | Y | String | TA0315012116281300028 | ||
TrValidStatus | 审批单有效状态 | Y | String | 0:无效 1:有效 | ||
ReimburseStatus | 报销状态 | N | String | 1:报销中 2:未报销 3:已报销 |
响应参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
ResultCode | 返回码 | Y | String | 0 | 0表示成功,其他值为失败。 | |
Description | 描述 | Y | String | Success | 描述信息,出错时为错误信息即错误原因。 |
请求:
{
"Version": "3.0",
"MsgID": "0008120220929071248283828",
"CorpCode": "0008",
"TenantUserId": "sysadmin",
"EnterpriseTrID": "TA456438925",
"TrValidStatus": "0",
"ReimburseStatus": null
}
响应:
{
"ResultCode": "0",
"Description": null
}
企业自有差旅审批单修改同步
接口URL
/syntrupdate
请求参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
Version | 版本号 | Y | String | 3.0 | 固定为3.0。 | |
MsgID | 唯一标识 | Y | String | 1000120150511190411000001 | 企业账号+消息方向+YYYYMMDDHHMMSS+NNNNNN | |
CorpCode | 操作企业账号 | Y | String | 企业账号 | ||
TenantUserId | 操作人帐号 | Y | String | HW_000001 | 1、如果是系统维护,写"sysadmin" 2、如果是普通员工维护,写员工id | |
EnterpriseTrID | 企业客户系统的审批单编号 | Y | String | TA0315012116281300028 | 原始审批单号 | |
ApplyTime | 申请时间 | Y | String | 20110811113019 | yyyyMMddHHmmss 变更单的申请时间 | |
ApplyType | 申请类型 | N | String | 1:为本人申请(默认) 2:为他人申请 | 变更单的申请类型 如无变更,则不填入 | |
ServiceMask | 服务项 | N | String | 6 | 111111 | 变更只允许增加服务项。 格式为MMMMMM, 第一位标识国内机票 第二位标识国际机票 第三位标识国内酒店 第四位标识国际酒店 第五位标识国内火车票 第六位标识差旅用车 1表示开通,0表示不开通;若与企业开通的服务项冲突,以企业服务项为主,比如企业未开通国内机票服务,即时接口中第一位为1也不会生效。 如果ServiceMask为空,则默认以企业服务项为主。 |
ExtInfo | N | String | {"data":"123"} | 扩展参数 | ||
TravelPurpose | N | String | 调研 | 出差目的 | ||
DepartDate | 出发日期 | N | String | 20110811 | 变更后的出发日期 允许早于原始TR单 如无变更,则不填入 | |
DepartCityInfo | 出发城市信息 | N | CityInfo | 变更后的出发城市信息 如无变更,则不填入。 但是如果UpdateMode为ALL时,CountryID和CityID不能为空 | ||
UpdateMode | 修改模式 | N | String | ALL:全量修改 | 需要修改行程和出行人、删除出行人 需传入参数。DestinationList,BusinessTravelerList 需全量传入数据。原行程、出行人没传即默认删除。 | |
Remark | 备注 | N | String | |||
DestinationList | 差旅目的地 | Y | List<Destination> | 变更后的所有差旅目的地信息 必须包含原始TR单中差旅目的地信息,如不包含默认保留原始TR单中差旅目的地信息。 | ||
BusinessTravelerList | 差旅出差人信息 | Y | List<BusinessTraveler> | 变更后的所有差旅出差人信息 必须包含原始TR单中差旅出差人信息。 相同出差人判断逻辑: 如果出差人信息中Loginname不为空,变更的出差人信息中Loginname与原始TR单中出差人信息Loginname相同,则视为相同出差人; 如果Loginname为空, 1、原始TR单中EmployeeUID为空, 如原始TR单中EmployeeNum存在,变更的出差人信息中EmployeeNum与原始TR单中出差人信息EmployeeNum相同,则视为相同出差人; 如原始TR单中EmployeeNum不存在,变更的出差人信息中Name与原始TR单中出差人信息Name相同,则视为相同出差人; 2、原始TR单中EmployeeUID不为空, 变更的出差人信息中EmployeeUID与原始TR单中出差人信息EmployeeUID相同,则视为相同出差人; 其他场景都视为不同的出差人。 | ||
EmployeeLevelStrategy | 多出行人差标执行策略 | N | String | ORIGINAL | ORIGINAL:多出行人时,每出行人均取原始差标执行 HIGHER:多出行人时,取出行人中较高差标执行 默认ORIGINAL | |
BenefitInfoList | 差旅受益信息 | N | List<BenefitInfo> | |||
TripCount | 往返次数 | N | Integer | 2 | 有值时,值为正整数,且>1,此TR需要多次往返;无值时,此TR不需多次往返 | |
BudgetAmount | 预算金额 | N | String | 2000 | 币种为人民币 | |
TripList | 行程 | N | List<Trip> | 256 |
BusinessTraveler
参数名 | 参数说明 | 必填 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
Customer | 客户基本信息 | Y | Employee | |||
FlightCabinLimit | 舱位限定 | N | String | 0:头等舱1:商务舱2:经济舱3:高端经济舱9:不允许乘坐 若不传值,以系统的企业配置为准。 | ||
IairCabinLimit | 国际机票舱位限定 | N | String | 0:头等舱1:商务舱2:经济舱3:高端经济舱9:不允许乘坐 若不传值,以系统的企业配置为准。 | ||
TrainCabinLimit | 火车舱位限定 | N | String | 0:G商务座,10:G特等座,20:D商务座,30:D特等座、D高级动卧、特等软座,35:G优选一等座、D优选一等座,40:G一等座,50:一人软包、高级软卧,60:G一等双软、G二等双软、G一等卧、D一等双软、D一等卧、D动卧、D动卧上、D动卧下、D二等双软,70:D一等座,80:软卧、一等双软、二等双软、一等卧、二等卧、软卧上、软卧下,90:G软座、软座、软卧代软座、一等软座,95:G二等卧、D二等卧,98:G多功能座,100:G二等座、G无座,105:二等软座,110:硬卧、硬卧上、硬卧中、硬卧下,115:D多功能座,120:D二等座、D动卧代二等座、D软卧代二等座、D无座,130:硬卧代硬座、硬座、无座,999:不允许乘坐 若不传值,以系统的企业配置为准。通过系统企业配置,企业可以自定义火车票舱位限定的顺序。 | ||
HotelPriceLimitInfoList | 酒店限价列表 | N | List<HotelPriceLimitInfo> | 若与慧通系统的企业配置冲突,以慧通系统的企业配置为准。 | ||
CarDailyAmountLimit | 单日用车金额限制 | N | String | -1 | -1代表不限 若与慧通系统的企业配置冲突,以慧通系统的企业配置为准。 | |
CarSingleAmountLimit | 单次用车金额限制 | N | String | 100 | -1代表不限 若与慧通系统的企业配置冲突,以慧通系统的企业配置为准。 | |
CarExceedCurrency | 打车超标币种 | N | String | CNY | 若与慧通系统的企业配置冲突,以慧通系统的企业配置为准。 | |
CarExceedRideTypeList | 超标车型 | N | List<String> | ["ECONOMY","COMFORTABLE"] | ECONOMY:经济型 COMFORTABLE:舒适型 BUSINESS:商务型 LUXURY:豪华型 超标车型不支持向下兼容 若与慧通系统的企业配置冲突,以慧通系统的企业配置为准。 | |
ExtInfo | 出行人扩展信息 | N | String | {"settlementUnitCode":"123","settlementUnitName":""} | ||
BenefitInfoList | 差旅受益信息 | N | BenefitInfo |
响应参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
ResultCode | 返回码 | Y | String | 0 | 0表示成功,其他值为失败。 | |
Description | 描述 | Y | String | Success | 描述信息,出错时为错误信息即错误原因。 |
请求:
{
"Version": "3.0",
"MsgID": "0008120220929071248283828",
"CorpCode": "0008",
"TenantUserId": "sysadmin",
"EnterpriseTrID": "Y122342390013",
"ApplyTime": "20220919000000",
"DepartDate": "20220921",
"DestinationList": [
{
"ArriveCityInfo": {
"CityChineseName": "天水市",
"CityID": "156620500",
"CountryChineseName": "中国",
"CountryEnglishName": "Chinese",
"CountryID": "156"
},
"ArriveDate": "20220921",
"LeftDate": "20220923"
}
],
"TripList": [
{
"FromCountryId": "156",
"FromCityId": "156320100",
"ArriveCountryId": "156",
"ArriveCityId": "4403",
"TakeoffDate": "20230714"
}
],
"BusinessTravelerList": [
{
"Customer":{
"TenantUserId":"26215236521",
"Name":"张厦",
"Surname":null,
"GivenName":null,
"Gender":"M",
"Type":"0",
"Nationality":"CN",
"Birthday":null,
"Mailbox":null,
"Cellphone":"18755314839",
"Telephone":"",
"CertificateInfoList":[
{
"CertificateType":"1",
"CertificateNum":"320025199009011111"
}
],
"DeptNum":"370000",
"DeptName":"总经理办公室",
"EmployeeNum":"10000044",
"EmployeeUID":"ID012206210909253387",
"Role":"2",
"Remark":null
},
"FlightCabinLimit":"1",
"IairCabinLimit":"FIRST",
"TrainCabinLimit":null,
"HotelPriceLimitInfoList":[
],
"CarDailyAmountLimit":"-1",
"CarSingleAmountLimit":"100",
"CarExceedCurrency":"CNY",
"CarExceedRideType":"COMFORTABLE,BUSINESS,LUXURY",
"BenefitInfo":null
}
],
"EmployeeLevelStrategy": "ORIGINAL",
"TravelPurpose": "研发",
"BudgetAmount": "2000"
}
响应:
{
"ResultCode": "0",
"Description": null
}