提交修改
This commit is contained in:
parent
816362ad56
commit
a44f593a59
@ -1,15 +1,165 @@
|
||||
package com.heyu.api.baidu.response.traffic;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.heyu.api.baidu.response.BBaseResp;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* https://console.bce.baidu.com/support/?_=1740411162437×tamp=1740412165257#/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_registration_certificate&method=post
|
||||
* 机动车登记证书识别
|
||||
*
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public class BVehicleRegistrationCertificateResp extends BBaseResp {
|
||||
|
||||
|
||||
@JsonProperty("words_result")
|
||||
private WordsResultDTO wordsResult;
|
||||
@JsonProperty("log_id")
|
||||
private Long logId;
|
||||
@JsonProperty("direction")
|
||||
private String direction;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class WordsResultDTO {
|
||||
@JsonProperty("registration_authority")
|
||||
private RegistrationAuthorityDTO registrationAuthority;
|
||||
@JsonProperty("vehicle_model")
|
||||
private VehicleModelDTO vehicleModel;
|
||||
@JsonProperty("vehicle_type")
|
||||
private VehicleTypeDTO vehicleType;
|
||||
@JsonProperty("registration_num")
|
||||
private RegistrationNumDTO registrationNum;
|
||||
@JsonProperty("engine_num")
|
||||
private EngineNumDTO engineNum;
|
||||
@JsonProperty("number")
|
||||
private NumberDTO number;
|
||||
@JsonProperty("body_color")
|
||||
private BodyColorDTO bodyColor;
|
||||
@JsonProperty("registration_date")
|
||||
private RegistrationDateDTO registrationDate;
|
||||
@JsonProperty("date_of_production")
|
||||
private DateOfProductionDTO dateOfProduction;
|
||||
@JsonProperty("seating_capacity")
|
||||
private SeatingCapacityDTO seatingCapacity;
|
||||
@JsonProperty("date_of_issue")
|
||||
private DateOfIssueDTO dateOfIssue;
|
||||
@JsonProperty("nature_of_use")
|
||||
private NatureOfUseDTO natureOfUse;
|
||||
@JsonProperty("vin")
|
||||
private VinDTO vin;
|
||||
@JsonProperty("seal_of_issue_authority")
|
||||
private SealOfIssueAuthorityDTO sealOfIssueAuthority;
|
||||
@JsonProperty("name_idcard_no")
|
||||
private NameIdcardNoDTO nameIdcardNo;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class RegistrationAuthorityDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class VehicleModelDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class VehicleTypeDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class RegistrationNumDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class EngineNumDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class NumberDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class BodyColorDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class RegistrationDateDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class DateOfProductionDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class SeatingCapacityDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class DateOfIssueDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class NatureOfUseDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class VinDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class SealOfIssueAuthorityDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class NameIdcardNoDTO {
|
||||
@JsonProperty("words")
|
||||
private String words;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,9 @@ import com.aliyun.ocr20191230.models.RecognizeVINCodeResponse;
|
||||
import com.aliyun.ocr20191230.models.RecognizeVINCodeResponseBody;
|
||||
import com.heyu.api.alibaba.handle.common.text.ARecognizeVINCodeHandle;
|
||||
import com.heyu.api.alibaba.request.common.text.ARecognizeVINCodeRequest;
|
||||
import com.heyu.api.baidu.handle.traffic.BVinCodeHandle;
|
||||
import com.heyu.api.baidu.request.traffic.BVinCodeRequest;
|
||||
import com.heyu.api.baidu.response.traffic.BVinCodeResp;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.request.tax.ARecognizeVATInvoiceReq;
|
||||
import com.heyu.api.resp.tax.RecognizeVINCodeResp;
|
||||
@ -13,10 +16,14 @@ import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/***
|
||||
*https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeVINCode?tab=DEMO&lang=JAVA
|
||||
*
|
||||
@ -29,6 +36,14 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
*
|
||||
*
|
||||
* VIN 码识别能力可以识别车辆 VIN 码,输出车辆 VIN 码数值。
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*https://console.bce.baidu.com/support/?_=1740411162437×tamp=1740411253251#/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%2Fvin_code&method=post
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@ -41,10 +56,32 @@ public class RecognizeVINCodeController extends BaseController {
|
||||
private ARecognizeVINCodeHandle arecognizeVINCodeHandle;
|
||||
|
||||
|
||||
@Autowired
|
||||
private BVinCodeHandle bVinCodeHandle;
|
||||
|
||||
|
||||
@RequestMapping("/recognize")
|
||||
@CacheResult
|
||||
public R recognize(ARecognizeVATInvoiceReq request) {
|
||||
RecognizeVINCodeResp resp = new RecognizeVINCodeResp();
|
||||
List<RecognizeVINCodeResp> respList = new ArrayList<>();
|
||||
|
||||
BVinCodeRequest bVinCodeRequest = new BVinCodeRequest();
|
||||
bVinCodeRequest.setImageBase64(request.getImageBase64());
|
||||
bVinCodeRequest.setImageUrl(request.getImageUrl());
|
||||
|
||||
ApiR<BVinCodeResp> bR = bVinCodeHandle.handle(bVinCodeRequest);
|
||||
if (bR.isSuccess()) {
|
||||
BVinCodeResp bVinCodeResp = bR.getData();
|
||||
List<BVinCodeResp.WordsResultDTO> wordsResultDTOS = bVinCodeResp.getWordsResult();
|
||||
if (CollectionUtils.isNotEmpty(wordsResultDTOS)) {
|
||||
for (BVinCodeResp.WordsResultDTO wordsResultDTO : wordsResultDTOS) {
|
||||
RecognizeVINCodeResp response = new RecognizeVINCodeResp();
|
||||
response.setVinCode(wordsResultDTO.getWords());
|
||||
respList.add(response);
|
||||
}
|
||||
}
|
||||
return R.ok().setData(respList);
|
||||
}
|
||||
|
||||
ARecognizeVINCodeRequest aRecognizeVINCodeRequest = new ARecognizeVINCodeRequest();
|
||||
aRecognizeVINCodeRequest.setImageUrl(request.getImageUrl());
|
||||
@ -54,8 +91,14 @@ public class RecognizeVINCodeController extends BaseController {
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
RecognizeVINCodeResponseBody responseBody = aR.getData().getBody();
|
||||
RecognizeVINCodeResponseBody.RecognizeVINCodeResponseBodyData responseBodyData = responseBody.getData();
|
||||
RecognizeVINCodeResp resp = new RecognizeVINCodeResp();
|
||||
|
||||
resp.setVinCode(responseBodyData.getVinCode());
|
||||
return R.ok().setData(resp);
|
||||
|
||||
respList.add(resp);
|
||||
|
||||
|
||||
return R.ok().setData(respList);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@ -0,0 +1,69 @@
|
||||
package com.heyu.api.controller.traffic;
|
||||
|
||||
|
||||
import com.heyu.api.baidu.handle.traffic.BVehicleRegistrationCertificateHandle;
|
||||
import com.heyu.api.baidu.request.traffic.BVehicleRegistrationCertificateRequest;
|
||||
import com.heyu.api.baidu.response.traffic.BVehicleRegistrationCertificateResp;
|
||||
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.VehicleRegistrationCertificateResp;
|
||||
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×tamp=1740412165257#/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_registration_certificate&method=post
|
||||
* <p>
|
||||
* <p>
|
||||
* 机动车登记证书识别
|
||||
* <p>
|
||||
* 接口描述
|
||||
* 支持对机动车登记证书的15个关键字段进行结构化识别,包括编号、机动车所有人、登记机关、登记日期、登记编号、车辆类型等,同时支持检测发证机关章
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/vehicle/registration/certificate")
|
||||
@NotIntercept
|
||||
public class VehicleRegistrationCertificateController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private BVehicleRegistrationCertificateHandle bVehicleRegistrationCertificateHandle;
|
||||
|
||||
|
||||
@RequestMapping("/recognize")
|
||||
@CacheResult
|
||||
public R recognize(BVehicleRegistrationCertificateRequest request) {
|
||||
VehicleRegistrationCertificateResp resp = new VehicleRegistrationCertificateResp();
|
||||
ApiR<BVehicleRegistrationCertificateResp> bR = bVehicleRegistrationCertificateHandle.handle(request);
|
||||
|
||||
if (bR.isSuccess()) {
|
||||
BVehicleRegistrationCertificateResp bVehicleRegistrationCertificateResp = bR.getData();
|
||||
BVehicleRegistrationCertificateResp.WordsResultDTO wordsResultDTO = bVehicleRegistrationCertificateResp.getWordsResult();
|
||||
|
||||
resp.setRegistrationAuthority(wordsResultDTO.getRegistrationAuthority().getWords()); //登记机关
|
||||
resp.setVehicleModel(wordsResultDTO.getVehicleModel().getWords()); //车辆型号
|
||||
resp.setVehicleType(wordsResultDTO.getVehicleType().getWords()); //车辆类型
|
||||
resp.setRegistrationNum(wordsResultDTO.getRegistrationNum().getWords()); // 机动车登记编号
|
||||
resp.setEngineNum(wordsResultDTO.getEngineNum().getWords()); //发动机号
|
||||
resp.setNumber(wordsResultDTO.getNumber().getWords()); //编号
|
||||
resp.setBodyColor(wordsResultDTO.getBodyColor().getWords()); // 车身颜色
|
||||
resp.setRegistrationDate(wordsResultDTO.getRegistrationDate().getWords()); // 登记日期
|
||||
resp.setDateOfProduction(wordsResultDTO.getDateOfProduction().getWords()); // 出厂日期
|
||||
resp.setSeatingCapacity(wordsResultDTO.getSeatingCapacity().getWords()); // 核定载客
|
||||
resp.setDateOfIssue(wordsResultDTO.getDateOfIssue().getWords()); // 发证日期
|
||||
resp.setNatureOfUse(wordsResultDTO.getNatureOfUse().getWords()); // 使用性质
|
||||
resp.setVin(wordsResultDTO.getVin().getWords()); // 车架号
|
||||
resp.setSealOfIssueAuthority(wordsResultDTO.getSealOfIssueAuthority().getWords()); // 发证机关章,1表示有,0表示无
|
||||
resp.setNameIdcardNo(wordsResultDTO.getNameIdcardNo().getWords()); // 机动车所有人/身份证明名称/号码
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
|
||||
return R.error(bR.getErrorMsg());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.heyu.api.resp.traffic;
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class VehicleRegistrationCertificateResp extends BaseResp {
|
||||
|
||||
|
||||
private String registrationAuthority; //登记机关
|
||||
private String vehicleModel; //车辆型号
|
||||
private String vehicleType; //车辆类型
|
||||
private String registrationNum; // 机动车登记编号
|
||||
private String engineNum; //发动机号
|
||||
private String number; //编号
|
||||
private String bodyColor; // 车身颜色
|
||||
private String registrationDate; // 登记日期
|
||||
private String dateOfProduction; // 出厂日期
|
||||
private String seatingCapacity; // 核定载客
|
||||
private String dateOfIssue; // 发证日期
|
||||
private String natureOfUse; // 使用性质
|
||||
private String vin; // 车架号
|
||||
private String sealOfIssueAuthority; // 发证机关章,1表示有,0表示无
|
||||
private String nameIdcardNo; // 机动车所有人/身份证明名称/号码
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user