企业自有审批单管理
企业自有审批单管理
企业自有差旅审批单同步
差旅审批单同步接口用于企业客户的IT系统将企业员工在自有的差旅审批系统创建并通过审批的审批单的内容同步给华为云数字化差旅系统,用于员工出差行程的管控。
出差申请单同步时,该接口携带的员工信息在系统中如果不存在则会新建(将发送提示更改密码邮件),如果存在则进行覆盖更新。
接口URL
/syntr
请求参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
CorpCode | 企业账号 | Y | String | 1000 | 系统提供的企业账号 | |
Timestamp | 时间戳 | Y | String | 14 | 20180811113019 | 服务方仅允许20分钟内的时间误差。 |
Version | 版本号 | Y | String | 3.0 | 固定为3.0。 | |
MsgID | 唯一标识 | Y | String | 1000020150511190411000001 | 企业账号+消息方向+YYYYMMDDHHMMSS+NNNNNN | |
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为空,则默认以企业服务项为主。如111000标识国内机票、国际机票、国内酒店业务开通。 |
TravelPurpose | 出差目的 | N | String | |||
DepartDate | 出发日期 | Y | String | 20180811 | yyyyMMdd如果企业有差旅管控需求,出发时间、出发城市信息、差旅目的地、差旅出差人信息必填 | |
DepartCityInfo | 出发城市信息 | Y | CityInfo | |||
DestinationList | 差旅目的地 | Y | List<Destination> | |||
TripList | 差旅行程 | N | List<Trip> | 256 | 不传时,将自动生成行程信息。 | |
BusinessTravelerList | 差旅出差人信息 | Y | List<BusinessTraveler> | |||
DeptApprover | 部门审批人 | N | Employee | |||
ApproveStatus | 审批状态 | N | String | 0:待审批,1:审批通过,3:权签驳回,4:自主撤销,5:已关闭,6:已删除 | ||
ApproveTime | 审批时间 | N | String | yyyyMMddHHmmss | 精确到秒 | |
Opinion | 审批意见 | N | String | 50 | 不管审批意见如何,发此消息,系统均认为审批通过 | |
BenefitInfoList | 差旅受益信息 | N | List<BenefitInfo> | |||
Remark | 备注 | N | String | 512 | ||
ExtInfo | 扩展字段 | N | String | {"data":"123"} | 扩展字段,已经定义使用的字段名如下:TR_Source | |
BenefitShareType | 受益分摊类型 | N | String | TA | 按审批单:TA,按人:PERSON | |
TripCount | 往返次数 | N | Integer | 2 | 有值时,值为正整数,且>1,此TR需要多次往返;无值时,此TR不需多次往返 |
响应参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
ResultCode | 返回码 | Y | String | 0 | 0表示成功,其他值为失败。 | |
Description | 描述 | Y | String | Success | 描述信息,出错时为错误信息即错误原因。 | |
EnterpriseTrID | 企业客户系统审批单编号 | Y | String | TA0315012116281300028 | ||
HtTrID | 华为云数字化差旅审批单编号 | Y | String | TA0315012116281300028 | 根据EnterpriseTrID,系统将生成对应的HtTrID |
样例
请求:
{
"Version": "3.0",
"MsgID": "13120220929071248283828",
"CorpCode": "13",
"Timestamp": "20220929071248",
"EnterpriseTrID": "TR2022092907124864692",
"TrCreator": {
"LoginName": "10215118",
"TenantUserId": null,
"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"
}
],
"BusinessTravelerList": [
{
"Customer": {
"LoginName": null,
"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",
"TrainCabinLimit": "100",
"HotelPriceLimitInfoList": [
{
"CityInfo": {
"CountryID": "156",
"CountryEnglishName": null,
"CountryChineseName": null,
"CityID": "156320100",
"CityEnglishName": null,
"CityChineseName": null
},
"HotelLimitPrice": "400.00",
"HotelPayCurrency": "CNY"
}
],
"BenefitInfoList": []
}
],
"DeptApprover": null,
"ApproveStatus": "1",
"ApproveTime": null,
"Opnion": null,
"BenefitInfoList": [],
"Remark": null,
"EnterpriseFlag": null,
"ExtInfo": null
}
响应:
{
"ResultCode": "0",
"Description": "成功",
"EnterpriseTrID": "TR2022092907124864692",
"HtTrID": "TA0412066979"
}
企业自有差旅审批单有效性状态同步
接口URL
/syntrvalidstatus
请求参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
CorpCode | 企业账号 | Y | String | 1000 | 系统提供的企业账号 | |
Timestamp | 时间戳 | Y | String | 14 | 20180811113019 | 服务方仅允许20分钟内的时间误差。 |
Version | 版本号 | Y | String | 3.0 | 固定为3.0。 | |
MsgID | 唯一标识 | Y | String | 1000020150511190411000001 | 企业账号+消息方向+YYYYMMDDHHMMSS+NNNNNN | |
EnterpriseTrID | 企业客户系统的审批单编号 | Y | String | TA0315012116281300028 | ||
TrValidStatus | 审批单有效状态 | Y | String | 0:无效1:有效 | ||
ReimburseStatus | 报销状态 | N | String | 1:报销中2:未报销3:已报销 | ||
ApproveStatus | 审批状态 | N | String | 0:待审批,1:审批通过,3:权签驳回,4:自主撤销,5:已关闭,6:已删除 |
响应参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
ResultCode | 返回码 | Y | String | 0 | 0表示成功,其他值为失败。 | |
Description | 描述 | Y | String | Success | 描述信息,出错时为错误信息即错误原因。 |
请求:
{
"Timestamp": "20220929100359",
"MsgID": "E01156791202209291003590802E6",
"Version": "3.0",
"CorpCode": "JSEJ-HAYX01",
"EnterpriseTrID": "TA456438925",
"TrValidStatus": "0",
"ReimburseStatus": null
}
响应:
{
"ResultCode": "0",
"Description": null
}
企业自有差旅审批单修改同步
接口URL
/syntrupdate
请求参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
CorpCode | 企业账号 | Y | String | 1000 | 系统提供的企业账号 | |
Timestamp | 时间戳 | Y | String | 14 | 20180811113019 | 服务方仅允许20分钟内的时间误差。 |
Version | 版本号 | Y | String | 3.0 | 固定为3.0。 | |
MsgID | 唯一标识 | Y | String | 1000020150511190411000001 | 企业账号+消息方向+YYYYMMDDHHMMSS+NNNNNN | |
EnterpriseTrID | 企业客户系统的审批单编号 | Y | String | TA0315012116281300028 | 原始审批单号 | |
ApplyTime | 申请时间 | Y | String | 20110811113019 | yyyyMMddHHmmss变更单的申请时间 | |
ApplyType | 申请类型 | N | String | 1:为本人申请(默认) 2:为他人申请 | 变更单的申请类型如无变更,则不填入 | |
ServiceMask | 服务项 | N | String | 6 | 111111 | 变更只允许增加服务项。格式为MMMMM,第一位标识国内机票第二位标识国际机票第三位标识国内酒店第四位标识国际酒店第五位标识国内火车票第六位标识差旅用车1表示开通,0表示不开通;若与企业开通的服务项冲突,以企业服务项为主,比如企业未开通国内机票服务,即时接口中第一位为1也不会生效。如果ServiceMask为空,则默认以企业服务项为主。 |
ExtInfo | N | String | {"data":"123"} | 扩展参数 | ||
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相同,则视为相同出差人;其他场景都视为不同的出差人。 | ||
DigestAlgorithm | 算法 | N | String | SHA256withRSA/PSS | ||
BenefitInfoList | 差旅受益信息 | N | List<BenefitInfo> | |||
TripList | 差旅行程 | N | List<Trip> | 256 | 不传时,将自动生成行程信息。 | |
ApproveStatus | 审批状态 | N | String | 0:待审批,1:审批通过,3:权签驳回,4:自主撤销,5:已关闭,6:已删除 | ||
BenefitShareType | 受益分摊类型 | N | String | TA | 按审批单:TA,按人:PERSON | |
TripCount | 往返次数 | N | Integer | 2 | 有值时,值为正整数,且>1,此TR需要多次往返;无值时,此TR不需多次往返 |
响应参数定义
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
ResultCode | 返回码 | Y | String | 0 | 0表示成功,其他值为失败。 | |
Description | 描述 | Y | String | Success | 描述信息,出错时为错误信息即错误原因。 |
请求:
{
"ApplyTime": "20220919000000",
"BusinessTravelerList": [
{
"Customer": {
"Cellphone": "18611111111",
"DeptName": "物流中心",
"EmployeeLevel": "2",
"EmployeeNum": "10123459",
"LoginName": "sxz345340259",
"Name": "张三"
}
}
],
"CorpCode": "sxzy001",
"DepartDate": "20220921",
"DestinationList": [
{
"ArriveCityInfo": {
"CityChineseName": "天水市",
"CityID": "156620500",
"CountryChineseName": "中国",
"CountryEnglishName": "Chinese",
"CountryID": "156"
},
"ArriveDate": "20220921",
"LeftDate": "20220923"
}
],
"DigestAlgorithm": "SHA256withRSA/PSS",
"EnterpriseTrID": "Y122342390013",
"MsgID": "s001120220929103152000001",
"Timestamp": "20220929103152",
"Version": "3.0"
}
响应:
{
"ResultCode": "0",
"Description": null
}
数据字典
Trip差旅行程
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
FromCountryId | 出发国ID | Y | String | 156 | ||
FromCityId | 出发城市ID | Y | String | 156310100 | ||
ArriveCountryId | 目的国ID | Y | String | 156 | ||
ArriveCityId | 目的城市ID | Y | String | 156320100 | ||
TakeoffDate | 出发日期,格式yyyyMMdd | Y | String | 20230423 |
BenefitInfo受益部门项目信息
参数名 | 参数说明 | 必填 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
BenefitType | 受益类型 | Y | String | 0:成本中心1:项目2:部门 | ||
CostCenterNum | 成本中心编码 | Y | String | 5678 | ||
CostCenterName | 成本中心名称 | N | String | 企业侧的成本中心名称 | ||
ProjectCode | 项目编码 | N | String | 1234 | 为项目时受益项目编码 | |
ProjectName | 项目名称 | N | String | 为项目时受益项目名称 | ||
DeptNum | 部门编码 | N | String | 1234 | 为部门时受益部门编码 | |
DeptName | 部门名称 | N | String | 为部门时受益部门名称 | ||
Percentage | 分摊比例 | N | String | 50 | 0-100之间的数字。所有受益成本中心和项目的分摊比例相加必须等于100 | |
Approver | 权签人 | N | Employee | HW_000001 | ||
ApproveTime | 审批时间 | N | String | 20130423101011 | yyyyMMddHHmmss | |
CostCenterOne | 一级成本中心或项目编码 | N | String | |||
CostCenterTwo | 二级成本中心或项目编码 | N | String | |||
ExtInfo | N | String | {"data":"123"} | 扩展参数 |
BusinessTraveler差旅出差人
参数名 | 参数说明 | 必填 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
Customer | 客户基本信息 | Y | Employee | |||
FlightCabinLimit | 舱位限定 | 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:不允许乘坐 | 若不传值,以系统的企业配置为准。通过系统企业配置,企业可以自定义火车票舱位限定的顺序。 | |
TrainForbiddenCabinList | 火车禁止预定舱位列表 | N | List<String> | 256 | 0:G/C商务座,10:G/C特等座,20:D商务座,30A:D特等座,30B:D高级动卧,30C:特等软座,35:优选一等座,40:G一等座,50A:一人软包,50B:高级软卧,60A:G/D一等双软,60B:G/D 一等卧,60C:G/D 二等双软,60D:G/D 动卧,70:D 一等座,80A:软卧,80B:一等双软/一等卧,80C:二等双软,80D:二等卧,90A:G软座,90B:软座,90C:软卧代软座,90D:一等软座,95:G/D 二等卧,98:G 多功能座,100:G 二等座,110:硬卧,115:D 多功能座,120:D 二等座,130:硬座。 | 若不传值,则代表不限制坐席,可以与TrainCabinLimit共同使用。 |
HotelPriceLimitInfoList | 酒店限价列表 | N | List<HotelPriceLimitInfo> | 若不传值,以系统的企业配置为准。否则以传入信息为准。 | ||
BenefitInfoList | 差旅受益信息 | N | List<BenefitInfo> |
HotelPriceLimitInfo
参数名 | 参数说明 | 必选 | 参数类型 | 长度 | 值举例 | 备注 |
---|---|---|---|---|---|---|
CityInfo | 目的地信息 | Y | CityInfo | 与差旅审批单行程保持一致 | ||
HotelLimitPrice | 酒店住宿标准 | Y | String | 100 | 若与系统的企业配置冲突,以系统的企业配置为准 | |
HotelPayCurrency | 酒店住宿标准货币 | Y | 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% |