功能说明:传入发票附件相对路径,识别出发票数据(发票id,发票类型,发票日期,发票金额,发票验真状态),与推送数据和修改表单数据结合使用,达到API支持智能识别字段
请求方式:POST(HTTPS)multipart/form-data
请求地址:https://qwif.do1.com.cn/qwcgi/api/apiForm/ocrInvoiceByFiles.do?token=token&corpId=corpId&upFile=upFile&definitionId=definitionId&&formFieldId=formFieldId&workOrderId=workOrderId¤tNodeId=currentNodeId
参数名 | 释义 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
token |
用于验证 |
String |
是 |
|
corpId |
公司唯一标识 |
String |
是 |
|
id |
表单id |
String |
是 |
|
upFile |
上传后的发票文件相对路径 |
String |
是 |
|
definitionId |
defn表单版本id |
String |
是 |
|
formFieldId |
智能识别字段id |
String |
是 |
|
workOrderId |
work工单明细id |
String |
否 | 编辑时必填 |
currentNodeId |
当前节点id |
String |
否 | 处于审批过程中时必填 |
FormApi api = QwSdkUtil.getInter(FormApi.class); // 调用接口 UploadApi uploadApi = QwSdkUtil.getInter(UploadApi.class); UploadResultVO uploadResultVO = uploadApi.upload(QwSdkUtil.getCacheToken(),new File("pic/发票样本.png"),"账号","form",false); OcrInvoiceByFilesResultVO resultVO = api.ocrInvoiceByFiles(QwSdkUtil.getCacheToken(),uploadResultVO.getUri(), "defn表单版本id", "fo智能识别字段id", "work工单明细id", null); System.out.println(JSONUtil.stringify(resultVO)); // 使用返回的数据推送或修改表单 FormDataPushVO vo = new FormDataPushVO(); // 发起时返回的工单id vo.setId("work工单明细id"); // 修改数据字段数据 Map<String,Object> fieldMap = new HashMap<String,Object>(); fieldMap.put("fo智能识别字段id",resultVO.getItemMap()); // 字段数据 vo.setFieldMap(fieldMap); System.out.println(JSONUtil.objectToString(vo)); // 调用接口 ApiFormPushResult re = api.updateFormData(QwSdkUtil.getCacheToken(), "form表单id", new FormDataPushVO[]{vo}); System.out.println(JSONUtil.objectToString(re));
{ "code":"0", "data": { "itemMap": [ { "fo发票id子字段":"发票id", "fo发票原件子字段id": [ "66159edd8b8e4745a808f7375b9ab7b3:/upload/img/b17efb43292e4cc9ac5d0b46bce059c4/20220607/66159edd8b8e4745a808f7375b9ab7b3.png:发票样本.png:PNG:90.33 K" ], "fo发票日期子字段id":"2019-12-19", "fo发票类型子字段id":"10500", "fo发票金额子字段id":43, "fo发票验真状态子字段id":"3" } ] }, "desc":"成功" }
参数 |
说明 |
---|---|
itemMap |
返回包含识别的发票id,发票类型,发票日期,发票金额,发票验真状态等子字段,可结合使用推送数据和修改表单数据使用 |