异步导入进出场记录接口

使用说明

实现进出场记录上传,需要通过SDK调用如下方法及接口:

1、批量上传附件方法:用于三方上传硬件抓拍的图片

2、进出场记录上传接口:用于三方上传进出场记录信息

3、进出场记录上传验证接口:用于三方验证记录上传是否成功

SDK获取方式:

Java8版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
}

results matching ""

    No results matching ""