Browse Source

百度Util

yanyuan
lucky 4 years ago
parent
commit
cac9b14807
  1. 32
      util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java
  2. 20
      util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java

32
util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java

@ -31,6 +31,7 @@ public class BaiDuUtil {
private static final String GENERAL_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={}"; private static final String GENERAL_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={}";
/**通用文字识别(高精度版)*/ /**通用文字识别(高精度版)*/
private static final String ACCURATE_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token={}"; private static final String ACCURATE_BASIC_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token={}";
private static final String VAT_INVOICE = "https://aip.baidubce.com/rest/2.0/ocr/v1/vat_invoice?access_token={}";
@PostConstruct @PostConstruct
public void init(){ public void init(){
@ -112,6 +113,37 @@ public class BaiDuUtil {
return getGeneralBasic(appKey, secretKey, basic, GENERAL_BASIC_URL); return getGeneralBasic(appKey, secretKey, basic, GENERAL_BASIC_URL);
} }
/**
* 调用百度增值税发票识别
* @param appKey appKey
* @param secretKey secretKey
* @param basic 图像
* @return 识别结果
*/
public static BaiDuVo.BillBasic billBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic) {
return getBillBasic(appKey, secretKey, basic, VAT_INVOICE);
}
/**
* 增值税发票识别
* @param appKey appKey
* @param secretKey secretKey
* @param basic 图像
* @param accurateBasicUrl 路径
* @return 识别结果
*/
private static BaiDuVo.BillBasic getBillBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic, String accurateBasicUrl) {
String token = getToken(appKey, secretKey);
String url = StrUtil.format(accurateBasicUrl, token);
String result = RestTemplateUtil.postUrlEncode(url, basic);
log.info("百度orc调用{}的结果是:{}", url, result);
if (result.contains(Code.GENERAL_BASIC_ERROR)) {
CodeEnum thirdError = CodeEnum.THIRD_ERROR;
thirdError.setMsg(result);
throw new BaseException(thirdError);
}
return JSONObject.parseObject(result, BaiDuVo.BillBasic.class);
}
private static class Code{ private static class Code{
private final static String ERROR = "error"; private final static String ERROR = "error";
private final static String GENERAL_BASIC_ERROR = "error_code"; private final static String GENERAL_BASIC_ERROR = "error_code";

20
util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java

@ -30,4 +30,24 @@ public class BaiDuVo {
public static class GeneralWord{ public static class GeneralWord{
private String words; private String words;
} }
@ApiModel("增值税发票识别(标准版)")
@Data
public static class BillBasic{
@JSONField(name="log_id")
private String logId;
@JSONField(name="words_result")
private List<BillInfo> wordsResult;
@JSONField(name="words_result_num")
private int wordsResultNum;
}
@Data
@ApiModel("发票识别-结果")
public static class BillInfo{
private String invoiceCode;
private String invoiceNum;
private String totalAmount;
private String totalTax;
private String invoiceDate;
}
} }

Loading…
Cancel
Save