新增费用
接口:/expense/save
Method:POST
数据格式:JSON
请求参数:
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
subsidiaryCode | String | Y | 业务实体编码 |
employeeId | String | Y | 员工工号 |
feeTypeCode | String | Y | 企业费用类型业务编码 |
consumeCcy | String | Y | 消费币种 |
consumeAmount | BigDecimal | Y | 消费金额 |
comments | String | N | 消费事由 |
consumeTime | String | N | 消费时间(yyyy-MM-dd格式字符串) |
consumeLocation | String | N | 消费城市(每刻城市编码) |
costTrackings | CostTracking | N | 辅助核算 |
dynaFields | DynaField | N | 动态字段 |
customFormValues | List<CustomFormValue> | N | 自定义表单内容 (不支持自定义字段-附件) |
children | ChildExpense | N | 子费用信息 |
- ChildExpense 结构
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
feeTypeCode | String | Y | 企业费用类型业务编码 |
consumeCcy | String | Y | 消费币种 |
consumeAmount | BigDecimal | Y | 消费金额 |
comments | String | N | 消费事由 |
consumeTime | String | N | 消费时间(yyyy-MM-dd格式字符串) |
consumeLocation | String | N | 消费城市(每刻城市编码) |
costTrackings | CostTracking | N | 辅助核算 |
dynaFields | DynaField | N | 动态字段 |
- CostTracking 结构
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
costTrackingName | string | Y | 辅助核算名称 | |
costTrackingItemBizCode | string | Y | 辅助核算选项编码 |
- DynaField 结构
参数 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fieldCode | string | Y | 动态字段编码 | |
fieldName | string | Y | 动态字段名称 | |
fieldValue | string | Y | 动态字段值 |
动态字段说明
动态字段编码 | 动态字段名称 | 取值范围 |
---|---|---|
1 | 消费平台 | |
2 | 商家 | |
3 | 入住时间/开始时间 | |
4 | 结束时间/离开时间 | |
5 | 房型 | |
6 | 住宿间·夜 | |
8 | 同行人员 | |
9 | 现金消费原因 | |
10 | 关联单号 | |
14 | 出发地/出发城市 | |
15 | 目的地/目的城市 | |
16 | 出发时间/合同开始时间 | |
17 | 抵达时间/合同结束时间 | |
18 | 航班号 | |
19 | 舱位级别 | FIRST(头等舱),BUSINESS(商务舱),ECONOMY(经济舱) |
20 | 件数 | |
32 | 座位类型 | BUSINESS(商务座),SPECIAL(特等座),FIRST(一等座),SECOND(二等座), SOFT_SLEEPER(软卧),ADVANCED_SOFT_SLEEPER(高级软卧), HARD_SLEEPER(硬卧),SOFT(软座),HARD(硬座) |
45 | 出发地 | |
46 | 目的地 | |
53 | 里程单价 | |
54 | 总里程 | |
71 | 用车方式 | |
73 | 舱位级别 | VIP(贵宾舱),SPECIAL(特等舱),FIRST(一等舱),SECOND_A(二等A), SECOND_B(二等B),THIRD_A(三等A),THIRD_B(三等B),ECONOMY(经济舱) |
74 | 航程类型 | SINGLE(单程),ROUND(往返) |
75 | 航班类型 | DOMESTIC(国内航班),INTERNATIONAL(国际航班) |
CustomFormValue 结构(详细说明请参考-自定义字段参数说明)
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
identifier | string | Y | 字段占位符 |
value | string | 字段内容 | |
detailFieldValues | List<Map<String,String>> | 明细类型字段 |
返回数据:
该接口采用单条失败的处理方式,即整批数据中,如果只有其中的几条因为各种原因失败,那么只有那几条数据不会被保存;其它的数据仍然会被正常处理;错误数据的位置会被放在errorData里面errorData为结构体,包含出错记录位置, 以及与之对应的出错信息; 类似 {"员工号—消费金额-消费时间": "错误原因"}; 具体参见失败实例;
- 请求示例:
{
"data": [{
"subsidiaryCode": "SU1609011JM6O0SG",
"employeeId": "k1",
"feeTypeCode": "0809",
"consumeCcy": "CNY",
"consumeAmount": "20.0",
"comments": "铜山县农村信用社合作联社铜电信用分社",
"consumeTime": "2018-10-10",
"consumeLocation": "domestic-ZH4-ZH4_0-ZH4_0_00",
"dynaFields": [{
"fieldCode": "79",
"filedValue": "2018-10-10",
"filedname": "开始日期"
}],
"children": [{
"feeTypeCode": "0809",
"consumeCcy": "CNY",
"consumeAmount": "15"
},
{
"feeTypeCode": "0809",
"consumeCcy": "CNY",
"consumeAmount": "5"
}
]
}],
"timestamp": 1538288052941
}
返回数据(成功)
{
"code": "ACK",
"message": "",
}
返回数据(失败)
{
"code": "NACK",
"errorData": {"10001-20.0-2018-09-28": "业务实体编码必填"}
}