异步导入进出场记录接口
使用说明
实现进出场记录上传,需要通过SDK调用如下方法及接口:
1、批量上传附件方法:用于三方上传硬件抓拍的图片
2、进出场记录上传接口:用于三方上传进出场记录信息
3、进出场记录上传验证接口:用于三方验证记录上传是否成功
SDK获取方式:
调用逻辑:
1、首先调用《批量上传附件方法》上传附件(进出场图片),获取返回信息用于组装进出场记录的附件列表
2、其次调用《进出场记录上传接口》进行记录上传,获取该批次上传记录的批次id
3、最后可以通过批次id调用《进出场记录上传验证接口》查询记录上传的结果
注意事项:
1、为避免调用超时,请分批次传递数据,每次调用《进出场记录上传接口》不要超过20条
2、为避免调用超时,请分批次传递数据,每次调用《进出场记录上传验证接口》不要超过100条
3、为避免后期获取图片出错,上传图片时的key必须保证全局唯一
4、记录上传时的项目同步编码,为项目管理平台中的同步编码
5、上传进出场记录时,如果记录类型为进场,则不赋值关联id,类型为出场,关联id为对应进场记录的id
1. 进出场记录上传接口
接口说明
使用项目管理平台授权文件
+SDK
进行接口请求,该接口用于上传大门口进出场记录。
注:
1.每次请求限制20条
接口地址:/gys/gate/entry-exit/upload
请求方式:POST
请求参数
参数 | 参数类型 | 必填 | 说明 |
---|---|---|---|
jsonStr | 字符串 | 是 | json对象 详细格式见下 |
记录表属性:
参数名 | 参数类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
id |
String | 是 | 无 | 进出场记录唯一标识 |
projectCode |
String | 是 | 无 | 项目同步编码,在项目管理平台中维护项目的同步编码,用于映射广联达系统与三方系统间的项目映射关系 |
type |
String | 是 | 无 | 枚举值,进场:entry ,出场:exit |
recCarNum |
String | 是 | 无 | 进出场车牌号 |
checkCarNum |
String | 是 | 无 | 校验车牌号,没有校验车牌号时,该值取recCarNum的值即可 |
createTime |
String | 是 | 无 | 进出场记录创建时间,时间格式:“yyyy-MM-dd HH:mm:ss” |
uploadTime |
String | 是 | 无 | 进出场记录上传时间,时间格式:“yyyy-MM-dd HH:mm:ss” |
manufacturer |
String | 是 | 无 | 厂商 |
attachments |
Array | 是 | 无 | 附件列表,车辆的图片信息 |
relatedId |
String | 否 | 无 | 进出场记录关联id,用于关联同一车辆该次运输产生的进出场记录,类型为进场时为空,类型为出场时值为对应进场记录id |
附件表属性
参数名 | 参数类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
type |
String | 是 | 无 | 枚举值,附件类型:platNo :车牌图片,head :车头图片,tail :车尾图片,top :车顶图片 |
captureTime |
String | 是 | 无 | 图片抓拍时间 ,时间格式:“yyyy-MM-dd HH:mm:ss” |
key |
String | 是 | 无 | 通过批量上传附件接口 动态获得,该值为图片全局唯一标识 |
savedkey |
String | 是 | 无 | 通过批量上传附件接口 动态获得,该值用于定位与附件类型对应的图片 |
请求参数示例:
[
{
"id":"99BA5433-DF5F-A898-C8E0-78B8BA55F251",
"projectCode":"dmkcslt",
"type":"entry",
"recCarNum":"冀C67833",
"checkCarNum":"冀C67833",
"createTime":"2022-03-15 09:10:20",
"uploadTime":"2022-03-15 09:10:30",
"manufacturer":"dmk",
"relatedId":"xxxx",
"attachments":[
{
"type":"platNo",
"captureTime":"2022-03-15 09:10:20",
"key":"6bba8838d195e98359881fb0b1efd3f9.jpg",
"savedKey":"gate/6bba8838d195e98359881fb0b1efd3f9.jpg"
},
{
"type":"head",
"captureTime":"2022-03-15 09:10:20",
"key":"b0e351839c0b96dd20d45868e1eb1828.jpg",
"savedKey":"gate/b0e351839c0b96dd20d45868e1eb1828.jpg"
},
{
"type":"tail",
"captureTime":"2022-03-15 09:10:20",
"key":"6d8013bc16fd7807e9f29ec719323aaa.jpg",
"savedKey":"gate/6d8013bc16fd7807e9f29ec719323aaa.jpg"
},
{
"type":"top",
"captureTime":"2022-03-15 09:10:20",
"key":"5d2ef37f24f6c890e150bd04fe98ecd7.jpg",
"savedKey":"gate/5d2ef37f24f6c890e150bd04fe98ecd7.jpg"
}
]
}
]
响应结果说明:
字段名 | 字段类型 | 默认值 | 说明 |
---|---|---|---|
code |
Number | 无 | 响应码 |
success |
Boolean | false | 上传记录操作是否成功,只有成功和失败两种 |
data |
Object | 无 | 响应内容对象,响应成功时,返回的是该上传批次的唯一标识,用于验证记录上传结果 |
成功响应体示例
{
"code":200,
"data":632853307879424,
"success":true
}
失败响应体示例:
{
"code": 200,
"data": [
{
"errorCode": "4016",
"errorMessage": "没有查询到项目信息",
"id": "18eb0eb5-424c-412c-9236-1670fa5ed77e"
},
{
"errorCode": "4016",
"errorMessage": "没有查询到项目信息",
"id": "fbfafd3f-d92a-4118-84f9-ddb412efdcb8"
},
{
"errorCode": "4016",
"errorMessage": "没有查询到项目信息",
"id": "db4d9fe4-60d9-457c-b97a-40c3b1f7ca33"
},
{
"errorCode": "4016",
"errorMessage": "没有查询到项目信息",
"id": "5eba9314-05b3-46d8-91fc-6007ac16e32e"
}
],
"success": false
}
代码示例
public void uploadRecords() throws AuthenticateException,InvalidUriException,NoAuthenticateException{
GysRestClient gysRestClient = GysRestClient.getInstance("C:\\Users\\qizh\\Desktop\\fffffffffffff\\auth.lic");
//设置请求接口的URI地址apiURI
String apiURI = "/gys/gate/entry-exit/upload";
//请求数据准备
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<Records> recordsList = new ArrayList<>();
List<Attachment> attachmentList = new ArrayList<>();
Attachment attachment = new Attachment("platNo","2022-03-15 09:10:20","963f4fb9-bee5-47cc-a5ff-37fed03bba76.jpg","gate/963f4fb9-bee5-47cc-a5ff-37fed03bba76.jpg");
Attachment attachment1 = new Attachment("head","2022-03-15 09:10:20","43b1c710-6bd1-4ded-be04-281d855e9f6d.jpg","gate/43b1c710-6bd1-4ded-be04-281d855e9f6d.jpg");
Attachment attachment2 = new Attachment("tail","2022-03-15 09:10:20","b1f85364-38e5-4a78-ad20-065ecdff7cb1.jpg","gate/b1f85364-38e5-4a78-ad20-065ecdff7cb1.jpg");
Attachment attachment3 = new Attachment("top","2022-03-15 09:10:20","e15f312a-1583-4b87-92f3-5b995aafd8c4.jpg","gate/e15f312a-1583-4b87-92f3-5b995aafd8c4.jpg");
attachmentList.add(attachment);
attachmentList.add(attachment1);
attachmentList.add(attachment2);
attachmentList.add(attachment3);
Records records = new Records();
records.setId("99BA5433-DF5F-A898-C8E0-78B8BA55F251");
records.setProjectCode("dmkcslt");
records.setType("entry");
records.setRecCarNum("冀C67833");
records.setCheckCarNum("冀C67833");
records.setCreateTime("2022-03-15 09:10:20");
records.setUploadTime(sdf.format(new Date()));
records.setManufacturerOrigin("dmk");
records.setRefId("xxxxxxx");
records.setAttachments(attachmentList);
recordsList.add(records);
//发送请求,用来推送数据 url,data
Result restResponseInfo = gysRestClient.post(apiURI, JSONObject.toJSONString(recordsList));
/** ------------ 处理请求返回结果 --------------*/
if (restResponseInfo.isSuccess()) {
//成功
}else{
//失败,获取失败信息
System.out.println(restResponseInfo.getData());
}
}
2.进出场记录上传验证接口
接口说明
使用项目管理平台授权文件
+SDK
进行接口请求,该接口用于上传大门口进出场记录结果验证。
注:
1.每次请求限制100条
接口地址:/gys/gate/entry-exit/verify
请求方式:POST
请求参数
参数 | 参数类型 | 必填 | 说明 |
---|---|---|---|
jsonStr | String | 是 | json对象 详细格式见下 |
请求体属性:
参数名 | 参数类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
source |
String | 否 | 无 | 进出场记录来源,非必填 |
taskIds |
Array | 是 | 无 | 任务id集合,取值为上传进出场记录后的返回值 |
请求参数示例:
{
"source":"",
"taskIds":[632838761361408,632828278284288]
}
响应结果说明:
字段名 | 字段类型 | 默认值 | 说明 |
---|---|---|---|
code |
Number | 无 | 响应码 |
success |
Boolean | false | 记录上传是否成功,查询多条任务时,全部成功时为true,部分失败或全部失败,都为false |
data |
Object | 无 | 响应内容对象 |
message |
String | 无 | 该批次上传的结果信息 |
status |
Number | 无 | 1:正在处理 2:上传成功 3:上传失败 |
taskId |
Number | 无 | 任务id,取值为上传进出场记录后的返回值 |
ids |
String | 无 | 唯一标识集合,构建上传记录时记录的id |
成功响应体示例
{
"code": 200,
"data": [
{
"ids": [],
"message": "上传成功",
"status": 2,
"taskId": 632838761361408
},
{
"ids": [],
"message": "上传成功",
"status": 2,
"taskId": 632828278284288
}
],
"success": true
}
失败响应体示例:
校验失败响应体示例:
{
"code": 200,
"message": "请求的进出场确认数据不能大于100",
"success": false
}
上传失败响应体示例:
{
"code": 200,
"data": [
{
"ids": [
"18eb0eb5-424c-412c-9236-1670fa5ed77e",
"fbfafd3f-d92a-4118-84f9-ddb412efdcb8",
"db4d9fe4-60d9-457c-b97a-40c3b1f7ca33",
"5eba9314-05b3-46d8-91fc-6007ac16e32e"
],
"message": "上传失败",
"status": 3,
"taskId": 632828278284288
},
{
"ids": [],
"message": "上传成功",
"status": 2,
"taskId": 632838761361408
}
],
"success": false
}