申请单申请明细导入接口
说明
该接口用于进行申请单费用明细导入,用于在导入申请单前,先将申请单明细信息导入系统,再在接口中进行关联。关联申请单的部分可以查看申请单导入接口。
接口限制
10次/秒/企业
注意事项
- 该接口为部分失败。例如一次导入5条费用,其中一条失败,不会影响其他四条数据的正常导入。
- 每次导入最大值为10条费用,超出数据将不做处理。
- 支持导入分摊数据,分摊和费用一起作为整体,一起成功或一起失败。如果导入多笔费用下有多条分摊数据,其中一笔费用下的一条分摊字段有问题,导入失败的原因只能定位到第x条费用有问题。
- 每条费用下导入最大值为100条分摊数据。
- 若申请单表单的申请明细设置为“需要在行程下填写申请明细”,则此导入明细不生效(即在系统内不会显示在对应行程下)。
- 根据返回的integrity可以识别该费用是否必填项传入完整:
- true:所有必填项均传入成功
- false
- 接口可导入的必填项未导入完整
- 不支持接口导入,但表单设置必填(此情况需要设置单据导入为草稿或者去除费用上对应组件的必填设置)
接口地址
/api/openapi/receive/application/expense
请求类型
POST
请求参数
请求参数说明
字段名 | 类型 | 说明 | 必填性 |
---|---|---|---|
employeeId | String | 需要导入的对应员工的工号 | 是 |
applicationTemps | List<applicationTempsDto> | 明细表单 | 是 |
applicationTempsDto明细表单
字段名 | 类型 | 说明 | 必填性 |
---|---|---|---|
consumeAmount | AmountInput | 费用金额 | 是 |
expenseTypeBizCode | String | 费用类型业务编码 | 是 |
consumeTime | DateInput | 消费时间 | 遵循表单配置 |
consumeLocation | CityInput | 消费地点 | 遵循表单配置 |
customObject | Map |
自定义普通字段 | 遵循表单配置 |
headcount | int | 总人数 | 遵循表单配置 |
hotel | String | 酒店名称 | 遵循表单配置 |
trainSeat | String | 火车席位: BUSINESS-商务座 SPECIAL-特等座 FIRST-一等座 SECOND-二等座 SOFT_SLEEPER-软卧 ADVANCED_SOFT_SLEEPER-高级软卧 HARD_SLEEPER-硬卧 SOFT-软座 HARD-硬座 STANDING-无座 |
遵循表单配置 |
airClass | String | 飞机舱位: FIRST-头等舱 BUSINESS-商务舱 ECONOMY-经济舱 |
遵循表单配置 |
shipClass | String | 轮船舱位: VIP-贵宾舱 SPECIAL-特等舱 FIRST-一等舱 SECOND_A-二等A SECOND_B-二等B THIRD_A-三等A THIRD_B-三等B ECONOMY-经济舱 |
遵循表单配置 |
allocationList | List<ApplicationExpenseAllocation> | 分摊列表 | 否 |
allocationRuleCode | String | 分摊规则编码,分摊列表不为空则必填 | 否 |
noTaxSuiteTemp | NoTaxInput | 否 | 不含税组件 |
ApplicationExpenseAllocation分摊表单
字段名 | 类型 | 说明 | 必填性 |
---|---|---|---|
allocatedAmount | number | 分摊金额 | 金额和比例必填一个 |
allocatedRatio | number | 分摊比例 | 金额和比例必填一个 |
legalEntityBizCode | String | 公司抬头业务编码 | 遵循表单配置 |
coverUserNo | String | 承担人工号 | 遵循表单配置 |
coverDepartmentBizCode | String | 承担部门编码 | 遵循表单配置 |
customObject | CustomObject | 自定义普通字段 | 遵循表单配置 |
请求参数样例
{
"employeeId": "USER001",
"applicationTemps": [
{
"consumeAmount": {
"amount": 100,
"currency": "CNY"
},
"consumeTime": {
"currentTime": 1594197456845
},
"consumeTime": {
"timeRange":{
"startDate":1566305347895,
"endDate":1566305356934
}
},
"consumeLocation": {
"cityPair": {
"departure":"110001",
"destination":"310100"
},
"location": null
},
"headcount": 1,
"expenseTypeBizCode": "X001",
"hotel": "每刻酒店",
"trainSeat": "SECOND",
"airClass": "FIRST",
"shipClass": "FIRST",
"customObject": {},
"allocationList": [{
"allocatedRatio":"100",
"allocatedAmount":"100",
"legalEntityBizCode":"E11",
"coverUserNo":"E11",
"coverDepartmentBizCode":"E11"
}],
"allocationRuleCode":"ALR211",
"noTaxSuiteTemp": {
"taxRate": "1",
"taxAmount": "10",
"nonTaxAmount": "90"
}
}
]
}
响应参数
响应参数说明
字段 | 字段类型 | 字段说明 |
---|---|---|
code | String | 返回结果 |
message | String | 返回提示 |
data | Json | 返回结果 |
success | boolean | 是否成功 |
参数样例
- 正常响应参数示例 ```json { "code": "ACK", "message": "操作成功", "data": { "errorData": null, "successData": [{ //成功的信息 "idx": 0, //第几个费用导入成功了 "expenseCode": "EXPCODE001", //费用CODE "integrity": false }] }, "success": true }
2. 每刻校验异常响应参数示例<br/>
```json
{
"code": "NACK",
"message": "操作失败!",
"data": {
"errorData": [{ //失败的信息
"idx": 1, //第几个费用导入失败了
"errorCode": "10000",
"errorMessage": "费用类型不存在" //目前接口内异常信息正在完善
}],
"successData": [{ //成功的信息
"idx": 0, //第几个费用导入成功了
"expenseCode": "EXPCODE001", //费用CODE
"integrity": false
}]
},
"success": false
}
修改记录
2023-07-28 新增申请单明细导入文档