推送火车票申请单
- 接口(建议后缀):/approval/train/save
- Method:POST
- 数据格式:Json
- 调用方:每刻
- 接口说明:员工提交火车申请单,经过每刻转换成申请单推送给第三方
请求参数
| 字段 |
类型 |
必填 |
描述 |
| approvalNo |
String |
Y |
申请单号 |
| prevApprovalNo |
String |
N |
变更上一个申请单号(只有变更后的申请单有) |
| originalApprovalNo |
String |
N |
原始申请单号(只有变更后的申请单有) |
| formCode |
String |
Y |
单据编码(由多个申请单组成的大单据的编码) |
| prevFormCode |
String |
N |
变更上一个单据编码(只有变更后的申请单有) |
| originalFormCode |
String |
N |
原始单据编码(只有变更后的申请单有) |
| formBizCode |
String |
Y |
单据业务编码(通常为大单据在客户系统的编码) |
| prevFormBizCode |
String |
N |
变更上一个单据业务编码(只有变更后的申请单有) |
| externalCorpCode |
String |
Y |
企业在第三方中唯一编码 |
| externalEmployeeCode |
String |
Y |
下单人在第三方中唯一编码 |
| purpose |
String |
N |
出差事由 |
| departureCityList |
List<City> |
N |
出发城市列表 |
| arrivalCityList |
List<City> |
N |
目的城市列表 |
| cityCtrlLv |
int |
N |
城市管控级别 |
| clientList |
List<Client> |
Y |
乘车人列表 [1] |
| subsidiary |
Subsidiary |
N |
申请单所属子公司 |
| dept |
Department |
N |
申请单所属部门 |
| invTitle |
InvoiceTitle |
N |
申请单开票抬头 |
| minDepartureDate |
String |
N |
最小去程日期 (yyyy-MM-dd) |
| maxDepartureDate |
String |
N |
最大去程日期 (yyyy-MM-dd) |
| minReturnDate |
String |
N |
最小返程日期 (yyyy-MM-dd) |
| maxReturnDate |
String |
N |
最大返程日期 (yyyy-MM-dd) |
| dateCtrlLv |
int |
N |
日期管控级别 |
| tripType |
String |
N |
行程类型 |
| approvalAmount |
BigDecimal |
N |
申请单总额度 |
| pricePerTicket |
BigDecimal |
N |
申请单火车票单价 |
| approvalCurrency |
String |
N |
币种,默认 CNY |
| amountCtrlLv |
int |
N |
金额管控级别 |
| amountCtrlType |
int |
[2] |
金额管控类型 |
| seatType |
String |
N |
座位类型 |
| compatibleSeatTypes |
List<String> |
N |
座位类型 可预定的兼容座席列表 |
| seatCtrlLv |
int |
N |
座位管控级别 |
| orderIADays |
int |
N |
提前预定天数 [3] |
| orderIADaysCtrlLv |
int |
N |
提前预订天数管控级别 |
| approvers |
List<Approver> |
N |
超标审批人列表 |
| costCenterList |
List<CostCenter> |
N |
成本中心列表 |
| custField1 |
String |
[4] |
自定义字段1 |
| custField2 |
String |
[4] |
自定义字段2 |
| custField3 |
String |
[4] |
自定义字段3 |
| custField4 |
String |
[4] |
自定义字段4 |
| custField5 |
String |
[4] |
自定义字段5 |
| custField6 |
String |
[4] |
自定义字段6 |
| custField7 |
String |
[4] |
自定义字段7 |
| custField8 |
String |
[4] |
自定义字段8 |
[info] 说明:
[1] 如果该列表为空时,只允许为自己预订。
[2] 当金额管控明确表示管控(强管控或弱管控),该字段为必填。
[3] 该字段表示,员工预订机票需要在这个表示的天数前预订。
[4] 企业可能会有多个自定义字段,最多有8个。该字段需要提前固定含义,若要使用该字段,请先和每刻沟通。
行程类型
金额管控类型
| code |
定义 |
描述 |
| 1 |
单价管控 |
火车票折后价格不大于 pricePerTicket |
| 2 |
总价管控 |
该申请单的所有订单金额之和不能超过 approvalAmount |
座位类型
| code |
定义 |
| SECOND_CLASS |
二等座 |
| FIRST_CLASS |
一等座 |
| BUSINESS_CLASS |
商务座 |
| PREMIER_CLASS |
特等座 |
| SLEEPER |
动卧 |
| DELUXE_SLEEPER |
高级软卧 |
| SOFT_SLEEPER |
软卧 |
| HARD_SLEEPER |
硬卧 |
| FIRST_SLEEPER |
一等卧 |
| SECOND_SLEEPER |
二等卧 |
| SOFT_BOX |
一人软包 |
| SOFT_SEAT |
软座 |
| HARD_SEAT |
硬座 |
| NO_SEAT |
无座 |
响应结构
| 字段 |
类型 |
必填 |
描述 |
| success |
bool |
Y |
请求是否成功 |
| errorMessage |
String |
N |
失败信息(当 success 为 false 时,失败信息为必填) |
| data |
ExternalApproval |
N |
关联申请单 |
ExternalApproval
目的是关联第三方系统中的申请单号,接下来所有使用到申请单号的地方,都将使用第三方提供的申请单号。
| 字段 |
类型 |
必填 |
描述 |
| approvalNo |
String |
Y |
每刻的申请单号 |
| externalApprovalNo |
String |
Y |
第三方系统中申请单的唯一标识 [6] |
[info] 说明:
[6] 如果第三方不生成新的申请单号,使用每刻提供的 approvalNo,则按照 externalApprovalNo == approvalNo
返回。
示例
[warning] 重要:
示例维护并非和文档字段维护一样频繁,如果遇到示例和文档不一致,请以文档为准
请求头:
{
"tokenId": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJtYXljdXJfand0X2Rldl9pZCIsInN1YiI6IlBGMjAwNjIwMTI1NU5GTk8iLCJpYXQiOjE2MDQ2MzA5NjYsImF1ZCI6IlBMQVRGT1JNIiwiZXhwIjoxNjA0NjM0NTY2LCJwcm9kdWN0TGluZSI6IkRBVEFfSFVCIn0.AyNIwPtGUXxFMuHO8Bx-4XeXNyWYRcot40MfsL1swr4"
}
请求示例:
{
"approvalNo": "AE2007091BAZ2FWG",
"formCode": "PC96136422941",
"formBizCode": "ABC2406B01",
"originalApprovalNo": null,
"externalCorpCode": "0123456",
"externalEmployeeCode": "f715c1xxx",
"purpose": "青岛歌剧院探访 & 沟通",
"cityCtrlLv": 2,
"clientList": [
{
"name": "xxx",
"externalEmployeeCode": "f715c1xxx",
"phone": "139xxxxxxxx"
}
],
"dateCtrlLv": 2,
"approvalAmount": 0.0000,
"approvalCurrency": "CNY",
"amountCtrlLv": 0,
"amountCtrlType": 2,
"orderIADays": 0,
"orderIADaysCtrlLv": 0,
"costCenterList": [
{
"costCenterName": "天津总部-芭蕾舞部",
"sequence": 1
}
],
"plusDaysAhead": 2,
"plusDaysLater": 2,
"subsidiary": {
"subsidiaryCode": "SIxxxxxxxxxxxxxxx",
"subsidiaryName": "天津歌剧营销有限公司",
"isDefault": false
},
"dept": {
"departmentCode": "DHDI42803480284",
"departmentName": "芭蕾编舞推广事业组",
"departmentHeirCode": "DHDI12341433214.DHDI123132154234152.DHDI12342143245432.DHDI7890452797592.DHDI42803480284",
"departmentHeirName": "天津歌剧有限公司/天津歌剧营销有限公司/芭蕾舞部/芭蕾编舞事业部/芭蕾编舞推广事业组"
},
"invTitle": {
"invoiceTitleCode": "SIyyyyyyyyyyyyyyyy",
"invoiceTitleName": "天津歌剧营销有限公司",
"taxNo": "913112334234236867687686674423N",
"isDefault": true
},
"minDepartureDate": "2024-06-26",
"maxDepartureDate": "2024-07-02",
"minReturnDate": "2024-06-26",
"maxReturnDate": "2024-07-02",
"tripType": "R",
"departureCityList": [
{
"code": "CT320200",
"name": "无锡",
"adminDivCode": "320200",
"heirCode": "CHN001/P320000/CT320200",
"heirName": "中国/江苏/无锡"
}
],
"arrivalCityList": [
{
"code": "CT510100",
"name": "成都",
"adminDivCode": "510100",
"heirCode": "CHN001/P510000/CT510100",
"heirName": "中国/四川/成都"
}
],
"seatType": "SECOND_CLASS",
"compatibleSeatTypes": [
"HARD_SEAT",
"NO_SEAT",
"SECOND_CLASS"
],
"seatCtrlLv": 0
}
响应示例:
{
"success": true,
"errorMessage": null,
"data": {
"approvalNo": "AE2007091BAZ2FWG",
"externalApprovalNo": "xxxx"
}
}