外部行程导入
业务场景
进入每刻报销->新建/编辑报销单->行程组件->从外部系统查询并导入行程。每刻会调用前端传入的外部系统地址,外部系统返回可导入的行程候选数据,员工选择后由每刻生成报销单行程。
该能力常用于客户的考勤、出差、OA、泛微、钉钉等系统已经存在行程或打卡数据,需要员工在每刻报销单中选择并生成行程的场景。
查询外部系统行程接口说明
请求类型
POST
请求参数说明
注意:本节描述的是每刻请求外部系统时的请求体。接口地址由每刻前端传入,每刻服务端会使用企业密钥、签名、entCode、lang 等外部系统调用规则发起请求。
| 字段名称 |
字段类型 |
必有 |
字段说明 |
| entCode |
String |
是 |
每刻企业编码 |
| userCode |
String |
是 |
当前操作人的每刻用户编码 |
| pageNum |
int |
是 |
当前页码,默认 1 |
| pageSize |
int |
是 |
每页条数,默认 20 |
| keyWord |
String |
否 |
搜索关键字,由用户在界面上输入;为空时每刻不传该字段 |
| formData |
Json |
是 |
当前报销单数据,格式参考每刻推送的表单数据格式 |
| employeeId |
String |
否 |
当前操作员工工号,由每刻根据登录用户补充 |
| employeeName |
String |
否 |
当前操作员工姓名,由每刻根据登录用户补充 |
请求参数示例
{
"entCode": "ENT001",
"userCode": "U001",
"pageNum": 1,
"pageSize": 20,
"keyWord": "上海",
"employeeId": "190001",
"employeeName": "张三",
"formData": {
}
}
响应参数说明
| 字段名称 |
字段类型 |
必有 |
字段说明 |
| success |
boolean |
是 |
响应是否成功。true:业务成功;false:业务失败 |
| errorMsg |
String |
是 |
错误信息,当 success=false 时每刻会将该信息回显 |
| data |
ExternalTravelRouteCandidatePageDto |
是 |
外部行程候选分页数据 |
ExternalTravelRouteCandidatePageDto
| 字段名称 |
字段类型 |
必有 |
字段说明 |
| recordsTotal |
int |
是 |
总条数 |
| recordsFiltered |
int |
否 |
筛选后的条数 |
| hasNextPage |
boolean |
否 |
是否还有下一页 |
| list |
List<ExternalTravelRouteCandidateDto> |
是 |
外部行程候选列表 |
ExternalTravelRouteCandidateDto
| 字段名称 |
字段类型 |
必有 |
字段说明 |
| externalSource |
String |
是 |
外部系统来源标识,例如 WEAVER、DINGTALK。同一企业内建议保持稳定 |
| externalId |
String |
是 |
外部系统行程唯一ID |
| employeeId |
String |
是 |
行程所属员工工号 |
| employeeName |
String |
否 |
行程所属员工姓名 |
| startTime |
Date |
是 |
行程开始时间。建议返回13位毫秒时间戳,或可被 JSON 解析的日期字符串 |
| endTime |
Date |
是 |
行程结束时间。建议返回13位毫秒时间戳,或可被 JSON 解析的日期字符串 |
| departureCity |
String |
是 |
出发城市名称。每刻会按城市名称模糊匹配地址编码 |
| destinationCities |
List<String> |
是 |
目的城市名称列表。每刻会按城市名称模糊匹配地址编码 |
| tripWay |
String |
否 |
行程方式。仅支持中文:单程、往返 |
| travelDays |
Double |
否 |
出差天数;不传时每刻根据开始和结束日期计算 |
| travelPartnerInfo |
TravelPartner |
否 |
行程参与人,支持内部参与人 internalTravelPartner 和外部参与人 externalTravelPartner |
字段校验和转换规则
externalSource、externalId、startTime、endTime、departureCity、destinationCities 必须返回。
departureCity、destinationCities 当前按城市名称解析,每刻会进行模糊匹配;若无法匹配城市,会导入失败。
tripWay 只接受 单程 或 往返。导入后每刻内部分别保存为 SINGLE 或 ROUND_TRIP。
travelDays 为空时,每刻按起止日期自然日计算。
travelPartnerInfo 格式参考参与人类型,支持内部参与人和外部参与人。
- 当行程表单未配置参与人组件时,每刻会忽略外部系统返回的参与人数据,正常导入行程。
- 当返回的参与人数据不满足当前行程表单必填性或格式要求时,员工保存或提交单据时按现有表单校验规则补全。
- 导入时每刻会生成外部行程快照,用于后续判断该行程是否被用户修改。
响应参数示例
{
"data": {
"recordsTotal": 2,
"recordsFiltered": 2,
"hasNextPage": false,
"list": [
{
"externalSource": "WEAVER",
"externalId": "OA_TRIP_202606210001",
"employeeId": "190001",
"employeeName": "张三",
"startTime": 1767196800000,
"endTime": 1767283200000,
"departureCity": "杭州",
"destinationCities": [
"上海"
],
"tripWay": "单程",
"travelDays": 1,
"travelPartnerInfo": {
"internalTravelPartner": [
{
"employeeId": "mk001",
"classPositionBizCode": "pos001",
"legalEntityBizCode": "ELC21122821DI31J4"
}
],
"externalTravelPartner": [
{
"name": "外部参与人",
"gender": "MAN",
"peopleNum": 1,
"phoneNumber": "13807773219"
}
]
}
},
{
"externalSource": "WEAVER",
"externalId": "OA_TRIP_202606210002",
"employeeId": "190001",
"employeeName": "张三",
"startTime": 1767369600000,
"endTime": 1767542400000,
"departureCity": "北京",
"destinationCities": [
"深圳"
],
"tripWay": "往返",
"travelDays": 2
}
]
},
"errorMsg": "success",
"success": true
}
更新记录
- 2026-06-30 外部行程导入响应数据新增行程参与人
travelPartnerInfo
- 2026-06-21 新增外部行程导入接口说明