提交修改

This commit is contained in:
quyixiao 2025-03-28 00:44:54 +08:00
parent e1c86fe309
commit 5c1c99d0f5
6 changed files with 366 additions and 0 deletions

View File

@ -0,0 +1,79 @@
package com.heyu.api.controller.traffic;
import com.heyu.api.baidu.handle.traffic.BUsedVehicleInvoiceHandle;
import com.heyu.api.baidu.request.traffic.BUsedVehicleInvoiceRequest;
import com.heyu.api.baidu.response.traffic.BUsedVehicleInvoiceResp;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.resp.traffic.UsedVehicleInvoiceResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* https://console.bce.baidu.com/support/?_=1740411162437&timestamp=1740411735793#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E4%BA%A4%E9%80%9A%E5%9C%BA%E6%99%AFOCR&api=rest%2F2.0%2Focr%2Fv1%2Fused_vehicle_invoice&method=post
* 二手车销售发票识别
*
*接口描述
* 支持对二手车销售发票的25个关键字段进行结构化识别包括发票代码发票号码开票日期买方卖方车牌号车辆类型二手车市场等
*
*
*/
@Slf4j
@RestController
@RequestMapping("/used/vehicle/invoice")
@NotIntercept
public class UsedVehicleInvoiceController extends BaseController {
@Autowired
private BUsedVehicleInvoiceHandle bUsedVehicleInvoiceHandle;
@RequestMapping("/recognize")
@CacheResult
public R recognize(BUsedVehicleInvoiceRequest request) {
UsedVehicleInvoiceResp resp = new UsedVehicleInvoiceResp();
ApiR<BUsedVehicleInvoiceResp> bR = bUsedVehicleInvoiceHandle.handle(request);
if (bR.isSuccess()) {
BUsedVehicleInvoiceResp bUsedVehicleInvoiceResp = bR.getData();
BUsedVehicleInvoiceResp.WordResultDTO wordResultDTO = bUsedVehicleInvoiceResp.getWordResult();
if (wordResultDTO != null) {
resp.setTransferVehicleManagementOffice(wordResultDTO.getTransferVehicleManagementOffice().getWord()); // 转入地车管所名称
resp.setManuModel(wordResultDTO.getManuModel().getWord()); // 厂牌型号
resp.setRegistrationCode(wordResultDTO.getRegistrationCode().getWord()); //登记证号
resp.setTotalCarPriceLow(wordResultDTO.getTotalCarPriceLow().getWord()); //车价合计小写
resp.setTaxAddress(wordResultDTO.getTaxAddress().getWord()); //纳税人地址
resp.setPurchaserCode(wordResultDTO.getPurchaserCode().getWord()); // 买方身份证号
resp.setSaler(wordResultDTO.getSaler().getWord()); // 卖方
resp.setTaxCode(wordResultDTO.getTaxCode().getWord()); // 税控码
resp.setPurchaser(wordResultDTO.getPurchaser().getWord()); //买方
resp.setInvoiceCode(wordResultDTO.getInvoiceCode().getWord()); //发票代码
resp.setInvoiceDate(wordResultDTO.getInvoiceDate().getWord()); //开票日期
resp.setSalerAddress(wordResultDTO.getSalerAddress().getWord()); //卖方地址
resp.setSalerCode(wordResultDTO.getSalerCode().getWord()); //卖方身份证号
resp.setTaxPhone(wordResultDTO.getTaxPhone().getWord()); //纳税人电话
resp.setTaxNum(wordResultDTO.getTaxPhone().getWord()); //纳税人识别号
resp.setPurchaserPhone(wordResultDTO.getPurchaserPhone().getWord()); //买方电话
resp.setVehicleType(wordResultDTO.getVehicleType().getWord()); // 车辆类型
resp.setLicensePlateNum(wordResultDTO.getLicensePlateNum().getWord()); //车牌号
resp.setSheetNum(wordResultDTO.getSheetNum().getWord());//联次
resp.setVinNum(wordResultDTO.getVinNum().getWord()); //车架号
resp.setTotalCarPrice(wordResultDTO.getTotalCarPrice().getWord()); //车价合计大写
resp.setPurchaserAddress(wordResultDTO.getPurchaserAddress().getWord());
resp.setSalerPhone(wordResultDTO.getSalerPhone().getWord()); //卖方电话
resp.setUsedCarMarket(wordResultDTO.getUsedCarMarket().getWord()); //二手车市场
resp.setInvoiceNum(wordResultDTO.getInvoiceNum().getWord()); //发票号码
return R.ok().setData(resp);
}
}
return R.error(bR.getErrorMsg());
}
}

View File

@ -0,0 +1,90 @@
package com.heyu.api.controller.traffic;
import com.heyu.api.baidu.handle.traffic.BVehicleCertificateHandle;
import com.heyu.api.baidu.request.traffic.BVehicleCertificateRequest;
import com.heyu.api.baidu.response.traffic.BVehicleCertificateResp;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.resp.traffic.VehicleCertificateResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* https://console.bce.baidu.com/support/?_=1740411162437&timestamp=1740411968974#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E4%BA%A4%E9%80%9A%E5%9C%BA%E6%99%AFOCR&api=rest%2F2.0%2Focr%2Fv1%2Fvehicle_certificate&method=post
* <p>
* 车辆合格证识别
*
*
* 接口描述
* 支持对车辆合格证的28个关键字段进行结构化识别包括合格证编号发证日期车辆制造企业名车辆品牌车辆名称车辆型号车架号车身颜色发动
* 机型号发动机号燃料种类排量功率排放标准轮胎数轴距轴数转向形式总质量整备质量驾驶室准乘人数最高设计车速车辆制造日期等
*
*/
@Slf4j
@RestController
@RequestMapping("/vehicle/certificate")
@NotIntercept
public class VehicleCertificateController extends BaseController {
@Autowired
private BVehicleCertificateHandle bVehicleCertificateHandle;
@RequestMapping("/recognize")
@CacheResult
public R recognize(BVehicleCertificateRequest request) {
VehicleCertificateResp resp = new VehicleCertificateResp();
ApiR<BVehicleCertificateResp> bR = bVehicleCertificateHandle.handle(request);
if (bR.isSuccess()) {
BVehicleCertificateResp bVehicleCertificateResp = bR.getData();
BVehicleCertificateResp.WordsResultDTO wordsResultDTO = bVehicleCertificateResp.getWordsResult();
resp.setManufactureDate(wordsResultDTO.getManufactureDate()); //车辆制造日期
resp.setCarColor(wordsResultDTO.getCarColor()); // 车身颜色
resp.setLimitPassenger(wordsResultDTO.getLimitPassenger()); //驾驶室准乘人数
resp.setEngineType(wordsResultDTO.getEngineType()); //发动机型号
resp.setTotalWeight(wordsResultDTO.getTotalWeight()); //总质量
resp.setPower(wordsResultDTO.getPower()); //功率
resp.setCertificationNo(wordsResultDTO.getCertificationNo()); //合格证编号
resp.setFuelType(wordsResultDTO.getFuelType()); //燃料种类
resp.setManufacturer(wordsResultDTO.getManufacturer()); // 车辆制造企业名
resp.setSteeringType(wordsResultDTO.getSteeringType()); //转向形式
resp.setWheelbase(wordsResultDTO.getWheelbase()); // 轴距
resp.setSpeedLimit(wordsResultDTO.getSpeedLimit()); //最高设计车速
resp.setEngineNo(wordsResultDTO.getEngineNo()); //发动机号
resp.setSaddleMass(wordsResultDTO.getSaddleMass()); // 轴数
resp.setAxleNum(wordsResultDTO.getAxleNum()); // 轴数
resp.setCarModel(wordsResultDTO.getCarModel()); //车辆型号
resp.setVinNo(wordsResultDTO.getVinNo()); // 车架号
resp.setCarBrand(wordsResultDTO.getCarBrand()); //车辆品牌
resp.setEmissionStandard(wordsResultDTO.getEmissionStandard()); //排放标准
resp.setDisplacement(wordsResultDTO.getDisplacement()); //排量n
resp.setCertificateDate(wordsResultDTO.getCertificateDate()); //发证日期
resp.setCarName(wordsResultDTO.getCarName()); // 车辆名称
resp.setTyreNum(wordsResultDTO.getTyreNum()); //轮胎数
resp.setChassisID(wordsResultDTO.getChassisID()); // 底盘ID
resp.setChassisModel(wordsResultDTO.getChassisModel()); //底盘型号
resp.setSeatingCapacity(wordsResultDTO.getSeatingCapacity()); //额定载客人数
resp.setQualifySeal(wordsResultDTO.getQualifySeal()); //合格印章1表示有0表示无
resp.setCGSSeal(wordsResultDTO.getCGSSeal()); //CGS印章1表示有0表示无
return R.ok().setData(resp);
}
return R.error();
}
}

View File

@ -0,0 +1,89 @@
package com.heyu.api.controller.traffic;
import com.heyu.api.baidu.handle.traffic.BVehicleInvoiceHandle;
import com.heyu.api.baidu.request.traffic.BVehicleInvoiceRequest;
import com.heyu.api.baidu.response.traffic.BVehicleInvoiceResp;
import com.heyu.api.controller.BaseController;
import com.heyu.api.data.annotation.CacheResult;
import com.heyu.api.data.annotation.NotIntercept;
import com.heyu.api.data.utils.ApiR;
import com.heyu.api.data.utils.R;
import com.heyu.api.resp.traffic.VehicleInvoiceResp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* <p>
* <p>
* https://console.bce.baidu.com/support/?_=1740411162437&timestamp=1740411519148#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E4%BA%A4%E9%80%9A%E5%9C%BA%E6%99%AFOCR&api=rest%2F2.0%2Focr%2Fv1%2Fvehicle_invoice&method=post
* <p>
* 机动车销售发票识别
*
*
* 接口描述
* 支持对机动车销售发票的26个关键字段进行结构化识别包括发票代码发票号码开票日期机器编号购买方名称购买方身份证号码/组织机构代码车辆类型
* 厂牌型号产地合格证号发动机号码车架号码价税合计价税合计小写销货单位名称电话纳税人识别号账号地址开户银行税率税额
* 主管税务机关及代码不含税价格限乘人数
*
*
*
*/
@Slf4j
@RestController
@RequestMapping("/vehicle/invoice")
@NotIntercept
public class VehicleInvoiceController extends BaseController {
@Autowired
private BVehicleInvoiceHandle bVehicleInvoiceHandle;
@RequestMapping("/recognize")
@CacheResult
public R recognize(BVehicleInvoiceRequest request) {
VehicleInvoiceResp resp = new VehicleInvoiceResp();
ApiR<BVehicleInvoiceResp> bR = bVehicleInvoiceHandle.handle(request);
if (bR.isSuccess()) {
BVehicleInvoiceResp bVehicleInvoiceResp = bR.getData();
BVehicleInvoiceResp.WordsResultDTO wordsResultDTO = bVehicleInvoiceResp.getWordsResult();
resp.setInvoiceNum(wordsResultDTO.getInvoiceNum()); //发票号码/机打号码
resp.setSaler(wordsResultDTO.getSaler()); // 销货单位名称
resp.setLimitPassenger(wordsResultDTO.getLimitPassenger()); //限乘人数
resp.setMachineCode(wordsResultDTO.getMachineCode()); // 机器编号
resp.setVinNum(wordsResultDTO.getVinNum()); // 车架号码
resp.setTaxRate(wordsResultDTO.getTaxRate()); //税率
resp.setPriceTaxLow(wordsResultDTO.getPriceTaxLow()); //价税合计小写
resp.setInvoiceDate(wordsResultDTO.getInvoiceDate()); //开票日期
resp.setPrice(wordsResultDTO.getPrice()); //不含税价格
resp.setSalerBank(wordsResultDTO.getSalerBank()); //销货单位开户银行
resp.setTaxAuthor(wordsResultDTO.getTaxAuthor()); //主管税务机关
resp.setManuModel(wordsResultDTO.getManuModel()); //厂牌型号
resp.setCertificateNum(wordsResultDTO.getCertificateNum()); //合格证号
resp.setPurchaser(wordsResultDTO.getPurchaser()); //购买方名称
resp.setVehicleType(wordsResultDTO.getVehicleType()); // 车辆类型
resp.setInvoiceCode(wordsResultDTO.getInvoiceCode()); //发票代码/机打代码
resp.setPriceTax(wordsResultDTO.getPriceTax()); // 价税合计
resp.setSalerPhone(wordsResultDTO.getSalerPhone()); //销货单位电话
resp.setSalerAddress(wordsResultDTO.getSalerAddress()); // 销货单位地址
resp.setOrigin(wordsResultDTO.getOrigin()); //产地
resp.setEngineNum(wordsResultDTO.getEngineNum()); //发动机号码
resp.setTax(wordsResultDTO.getTax()); //税额
resp.setPurchaserCode(wordsResultDTO.getPurchaserCode()); //购买方身份证号码/组织机构代码
resp.setTaxAuthorCode(wordsResultDTO.getTaxAuthorCode()); // 主管税务机关代码
resp.setSalerAccountNum(wordsResultDTO.getSalerAccountNum()); //销货单位账号
resp.setSalerCode(wordsResultDTO.getSalerCode()); //销货单位纳税人识别号
return R.ok().setData(resp);
}
return R.error(bR.getErrorMsg());
}
}

View File

@ -0,0 +1,35 @@
package com.heyu.api.resp.traffic;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class UsedVehicleInvoiceResp extends BaseResp {
private String transferVehicleManagementOffice; // 转入地车管所名称
private String manuModel; // 厂牌型号
private String registrationCode; //登记证号
private String totalCarPriceLow; //车价合计小写
private String taxAddress; //纳税人地址
private String purchaserCode; // 买方身份证号
private String saler; // 卖方
private String taxCode; // 税控码
private String purchaser; //买方
private String invoiceCode; //发票代码
private String invoiceDate; //开票日期
private String salerAddress; //卖方地址
private String salerCode; //卖方身份证号
private String taxPhone; //纳税人电话
private String taxNum; //纳税人识别号
private String purchaserPhone; //买方电话
private String vehicleType; // 车辆类型
private String licensePlateNum; //车牌号
private String sheetNum;//联次
private String vinNum; //车架号
private String totalCarPrice; //车价合计大写
private String purchaserAddress;
private String salerPhone; //卖方电话
private String usedCarMarket; //二手车市场
private String invoiceNum; //发票号码
}

View File

@ -0,0 +1,38 @@
package com.heyu.api.resp.traffic;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class VehicleCertificateResp extends BaseResp {
private String manufactureDate; //车辆制造日期
private String carColor; // 车身颜色
private String limitPassenger; //驾驶室准乘人数
private String engineType; //发动机型号
private String totalWeight; //总质量
private String power; //功率
private String certificationNo; //合格证编号
private String fuelType; //燃料种类
private String manufacturer; // 车辆制造企业名
private String steeringType; //转向形式
private String wheelbase; // 轴距
private String speedLimit; //最高设计车速
private String engineNo; //发动机号
private String saddleMass; // 轴数
private String axleNum; // 轴数
private String carModel; //车辆型号
private String vinNo; // 车架号
private String carBrand; //车辆品牌
private String emissionStandard; //排放标准
private String displacement; //排量n
private String certificateDate; //发证日期
private String carName; // 车辆名称
private String tyreNum; //轮胎数
private String chassisID; // 底盘ID
private String chassisModel; //底盘型号
private String seatingCapacity; //额定载客人数
private String qualifySeal; //合格印章1表示有0表示无
private String cGSSeal; //CGS印章1表示有0表示无
}

View File

@ -0,0 +1,35 @@
package com.heyu.api.resp.traffic;
import com.heyu.api.data.dto.BaseResp;
import lombok.Data;
@Data
public class VehicleInvoiceResp extends BaseResp {
private String invoiceNum; //发票号码/机打号码
private String saler; // 销货单位名称
private String limitPassenger; //限乘人数
private String machineCode; // 机器编号
private String vinNum; // 车架号码
private String taxRate; //税率
private String priceTaxLow; //价税合计小写
private String invoiceDate; //开票日期
private String price; //不含税价格
private String salerBank; //销货单位开户银行
private String taxAuthor; //主管税务机关
private String manuModel; //厂牌型号
private String certificateNum; //合格证号
private String purchaser; //购买方名称
private String vehicleType; // 车辆类型
private String invoiceCode; //发票代码/机打代码
private String priceTax; // 价税合计
private String salerPhone; //销货单位电话
private String salerAddress; // 销货单位地址
private String origin; //产地
private String engineNum; //发动机号码
private String tax; //税额
private String purchaserCode; //购买方身份证号码/组织机构代码
private String taxAuthorCode; // 主管税务机关代码
private String salerAccountNum; //销货单位账号
private String salerCode; //销货单位纳税人识别号
}