|
|
@ -4,12 +4,15 @@ import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.alibaba.druid.sql.visitor.functions.If; |
|
|
|
import com.ccsens.ptccsens.bean.po.Constant; |
|
|
|
import com.ccsens.ptccsens.bean.vo.OcrVo; |
|
|
|
import com.ccsens.ptccsens.util.BasicsCodeError; |
|
|
|
import com.ccsens.ptccsens.util.BasicsConstant; |
|
|
|
import com.ccsens.util.RestTemplateUtil; |
|
|
|
import com.ccsens.util.baidu.BaiDuDto; |
|
|
|
import com.ccsens.util.baidu.BaiDuUtil; |
|
|
|
import com.ccsens.util.baidu.BaiDuVo; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
@ -31,6 +34,9 @@ public class OcrService implements IOcrService{ |
|
|
|
basic.setImage(img); |
|
|
|
BaiDuVo.BillBasic words = BaiDuUtil.billBasic(BasicsConstant.BaiDu.INVOICE_APP_KEY, BasicsConstant.BaiDu.INVOICE_SECRET_KEY, basic); |
|
|
|
log.info("识别结果:{}",words); |
|
|
|
if ("1486278397695872724".equals(words.getLogId())) { |
|
|
|
throw new BaseException(BasicsCodeError.IMG_ERROR); |
|
|
|
} |
|
|
|
// String token = BaiDuUtil.getToken(BasicsConstant.BaiDu.INVOICE_APP_KEY, BasicsConstant.BaiDu.INVOICE_SECRET_KEY);
|
|
|
|
// String invoiceUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/vat_invoice?access_token={}";
|
|
|
|
// String url = StrUtil.format(invoiceUrl, token);
|
|
|
@ -41,9 +47,9 @@ public class OcrService implements IOcrService{ |
|
|
|
if (CollectionUtil.isNotEmpty(words.getWordsResult())) { |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd"); |
|
|
|
BeanUtil.copyProperties(words.getWordsResult().get(0),billInfo); |
|
|
|
billInfo.setTotalAmount(new BigDecimal(words.getWordsResult().get(0).getTotalAmount()).multiply(BigDecimal.valueOf(100)).longValue()); |
|
|
|
billInfo.setTotalTax(new BigDecimal(words.getWordsResult().get(0).getTotalTax()).multiply(BigDecimal.valueOf(100)).longValue()); |
|
|
|
billInfo.setInvoiceDate(sdf.parse(words.getWordsResult().get(0).getInvoiceDate()).getTime()); |
|
|
|
billInfo.setMoney(new BigDecimal(words.getWordsResult().get(0).getTotalAmount()).multiply(BigDecimal.valueOf(100)).longValue()); |
|
|
|
billInfo.setTaxMoney(new BigDecimal(words.getWordsResult().get(0).getTotalTax()).multiply(BigDecimal.valueOf(100)).longValue()); |
|
|
|
billInfo.setInvoiceTime(sdf.parse(words.getWordsResult().get(0).getInvoiceDate()).getTime()); |
|
|
|
billInfo.setUrl(realPath); |
|
|
|
} |
|
|
|
// personMsg.toMsg(words.getWordsResult());
|
|
|
|