From 3467c4547b9be5c147810c1678bd1c6cc37eb368 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Fri, 21 Mar 2025 20:08:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../certificate/BBouseholdRegisterResp.java | 210 ++++++++++++++++++ .../BirthCertificateController.java | 84 +++++++ .../BouseholdRegisterController.java | 87 ++++++++ .../certificate/BirthCertificateReq.java | 9 + .../certificate/BouseholdRegisterReq.java | 19 ++ .../certificate/BirthCertificateResp.java | 105 +++++++++ .../certificate/BouseholdRegisterResp.java | 101 +++++++++ 7 files changed, 615 insertions(+) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/BirthCertificateController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/BouseholdRegisterController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/certificate/BirthCertificateReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/certificate/BouseholdRegisterReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/BirthCertificateResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/certificate/BouseholdRegisterResp.java diff --git a/api-third/src/main/java/com/heyu/api/baidu/response/certificate/BBouseholdRegisterResp.java b/api-third/src/main/java/com/heyu/api/baidu/response/certificate/BBouseholdRegisterResp.java index a63083b..8dc8bd0 100644 --- a/api-third/src/main/java/com/heyu/api/baidu/response/certificate/BBouseholdRegisterResp.java +++ b/api-third/src/main/java/com/heyu/api/baidu/response/certificate/BBouseholdRegisterResp.java @@ -1,8 +1,10 @@ package com.heyu.api.baidu.response.certificate; +import com.fasterxml.jackson.annotation.JsonProperty; import com.heyu.api.baidu.response.BBaseResp; import lombok.Data; +import lombok.NoArgsConstructor; /** @@ -83,10 +85,218 @@ import lombok.Data; * "words_result_num": 22 * } */ +@NoArgsConstructor @Data public class BBouseholdRegisterResp extends BBaseResp { + @JsonProperty("words_result") + private WordsResultDTO wordsResult; + @JsonProperty("log_id") + private String logId; + @JsonProperty("words_result_num") + private Integer wordsResultNum; + @NoArgsConstructor + @Data + public static class WordsResultDTO { + @JsonProperty("Nation") + private NationDTO nation; + @JsonProperty("Sex") + private SexDTO sex; + @JsonProperty("Birthday") + private BirthdayDTO birthday; + @JsonProperty("Date") + private DateDTO date; + @JsonProperty("BirthAddress") + private BirthAddressDTO birthAddress; + @JsonProperty("Name") + private NameDTO name; + @JsonProperty("FormerName") + private FormerNameDTO formerName; + @JsonProperty("HouseholdNum") + private HouseholdNumDTO householdNum; + @JsonProperty("WWToCity") + private WWToCityDTO wWToCity; + @JsonProperty("WWHere") + private WWHereDTO wWHere; + @JsonProperty("CardNo") + private CardNoDTO cardNo; + @JsonProperty("Education") + private EducationDTO education; + @JsonProperty("Relationship") + private RelationshipDTO relationship; + @JsonProperty("Height") + private HeightDTO height; + @JsonProperty("Career") + private CareerDTO career; + @JsonProperty("WorkAddress") + private WorkAddressDTO workAddress; + @JsonProperty("Hometown") + private HometownDTO hometown; + @JsonProperty("OtherAddress") + private OtherAddressDTO otherAddress; + @JsonProperty("Belief") + private BeliefDTO belief; + @JsonProperty("BloodType") + private BloodTypeDTO bloodType; + @JsonProperty("MaritalStatus") + private MaritalStatusDTO maritalStatus; + @JsonProperty("VeteranStatus") + private VeteranStatusDTO veteranStatus; + @NoArgsConstructor + @Data + public static class NationDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class SexDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class BirthdayDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class DateDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class BirthAddressDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class NameDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class FormerNameDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class HouseholdNumDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class WWToCityDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class WWHereDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class CardNoDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class EducationDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class RelationshipDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class HeightDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class CareerDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class WorkAddressDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class HometownDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class OtherAddressDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class BeliefDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class BloodTypeDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class MaritalStatusDTO { + @JsonProperty("words") + private String words; + } + + @NoArgsConstructor + @Data + public static class VeteranStatusDTO { + @JsonProperty("words") + private String words; + } + } } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/BirthCertificateController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/BirthCertificateController.java new file mode 100644 index 0000000..265d633 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/certificate/BirthCertificateController.java @@ -0,0 +1,84 @@ +package com.heyu.api.controller.certificate; + + +import com.heyu.api.baidu.handle.certificate.BBirthCertificateHandle; +import com.heyu.api.baidu.request.certificate.BBirthCertificateRequest; +import com.heyu.api.baidu.response.certificate.BBirthCertificateResp; +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.request.certificate.BirthCertificateReq; +import com.heyu.api.resp.certificate.BirthCertificateResp; +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/?_=1740219852952×tamp=1740309618781#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E5%8D%A1%E8%AF%81OCR&api=rest%2F2.0%2Focr%2Fv1%2Fbirth_certificate&method=post + *
+ *
+ * 出生医学证明识别
+ *
+ *接口描述
+ * 支持对出生医学证明的23个关键字段进行结构化识别,包括新生儿姓名、性别、出生时间、父亲姓名、母亲姓名、出生证编号等。
+ *
+ */
+@Slf4j
+@RestController
+@RequestMapping("/birth")
+@NotIntercept
+public class BirthCertificateController extends BaseController {
+
+
+
+
+ @Autowired
+ private BBirthCertificateHandle birthCertificateHandle;
+
+ @RequestMapping("/certificate")
+ @CacheResult
+ public R recognize(BirthCertificateReq request) {
+ BirthCertificateResp resp = new BirthCertificateResp();
+
+ BBirthCertificateRequest birthCertificateRequest = new BBirthCertificateRequest();
+ birthCertificateRequest.setImageBase64(request.getImageBase64());
+ birthCertificateRequest.setImageUrl(request.getImageUrl());
+
+ ApiR
+ *
+ * 户口本识别
+ *
+ * 接口描述
+ * 支持对户口本内常住人口登记卡的全部 22 个字段,包括户号、姓名、与户主关系、性别、出生地、民族、出生日期、身份证号、本市县其他住址、曾用名、籍贯、宗教信仰、身高、血型、文化程度、婚姻状况、兵役状况、服务处所、职业、何时由何地迁往本市、何时由何地迁往本址、登记日期。
+ *
+ * 支持对户口本内户主页的5个字段进行结构化识别,包括户别、户主姓名、户号、住址、户主页时间。
+ */
+@Slf4j
+@RestController
+@RequestMapping("/bousehold")
+@NotIntercept
+public class BouseholdRegisterController {
+
+
+ @Autowired
+ private BBouseholdRegisterHandle bBouseholdRegisterHandle;
+
+
+ @RequestMapping("/recognize")
+ @CacheResult
+ public R recognize(BouseholdRegisterReq request) {
+
+ BouseholdRegisterResp resp = new BouseholdRegisterResp();
+ BBouseholdRegisterRequest bBouseholdRegisterRequest = new BBouseholdRegisterRequest();
+ bBouseholdRegisterRequest.setHouseholdRegisterSide(request.getHouseholdRegisterSide());
+ bBouseholdRegisterRequest.setImageBase64(request.getImageBase64());
+ bBouseholdRegisterRequest.setImageUrl(request.getImageUrl());
+
+ ApiR