wks 2 лет назад
Родитель
Сommit
eef28614bf

+ 7 - 0
src/main/java/com/ydtech/modules/order/controller/IdentifyController.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.controller;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.BusinessLicense;
 import com.ydtech.modules.order.service.IdentifyService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -36,4 +37,10 @@ public class IdentifyController {
         return identifyService.drivingPermit(image1, image2);
     }
 
+    @PostMapping("/businessLicense")
+    @ApiOperation(value = "营业执照识别")
+    public HttpResult<BusinessLicense> businessLicense(MultipartFile image1) {
+        return identifyService.businessLicense(image1);
+    }
+
 }

+ 61 - 0
src/main/java/com/ydtech/modules/order/entity/BusinessLicense.java

@@ -0,0 +1,61 @@
+package com.ydtech.modules.order.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @description: 营业执照返回实体
+ * @author: wenks
+ * @date: 2024/2/21 9:13
+ **/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BusinessLicense {
+
+    /**
+     * 社会信用代码
+     */
+    private String socialCreditCode;
+    /**
+     * 单位名称
+     */
+    private String company;
+
+    /**
+     * 住址
+     */
+    private String address;
+
+    /**
+     * 法定代表人
+     */
+    private String legalRepresentative;
+
+    /**
+     * 有效日期至
+     */
+    private String effectiveDate;
+
+    /**
+     * 成立日期
+     */
+    private String registerDate;
+
+    /**
+     * 类型
+     */
+    private String types;
+
+    /**
+     * 注册资本
+     */
+    private String registeredCapital;
+
+    /**
+     * 经营范围
+     */
+    private String businessScope;
+
+}

+ 7 - 0
src/main/java/com/ydtech/modules/order/service/IdentifyService.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.order.service;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.BusinessLicense;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.Map;
@@ -26,4 +27,10 @@ public interface IdentifyService {
      */
     HttpResult<Map<String, Object>> drivingPermit(MultipartFile image1, MultipartFile image2);
 
+    /**
+     * 营业执照识别
+     * @param image 正面信息
+     * @return
+     */
+    HttpResult<BusinessLicense> businessLicense(MultipartFile image);
 }

+ 13 - 0
src/main/java/com/ydtech/modules/order/service/impl/IdentifyServiceImpl.java

@@ -4,9 +4,11 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.ins.model.CardUserInfo;
 import com.ydtech.modules.ins.model.CustomerInfoVO;
+import com.ydtech.modules.order.entity.BusinessLicense;
 import com.ydtech.modules.order.service.IdentifyService;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.ImageCompressionUtils;
+import com.ydtech.utils.baidu.BusinessLicenseRecognition;
 import com.ydtech.utils.baidu.Idcard;
 import com.ydtech.utils.baidu.MultiObjectDetect;
 import org.springframework.stereotype.Service;
@@ -60,6 +62,15 @@ public class IdentifyServiceImpl implements IdentifyService {
     }
 
 
+    @Override
+    public HttpResult<BusinessLicense> businessLicense(MultipartFile image) {
+        String s1 = byteToBase64(image);
+        BusinessLicense businessLicense = new BusinessLicense();
+        BusinessLicenseRecognition.gettingData(s1, businessLicense);
+        return HttpResult.ok("success", businessLicense);
+    }
+
+
     private String byteToBase64(MultipartFile file) {
         if (ObjectUtils.isEmpty(file)) {
             return "";
@@ -72,4 +83,6 @@ public class IdentifyServiceImpl implements IdentifyService {
         }
 
     }
+
+
 }

+ 0 - 44
src/main/java/com/ydtech/utils/baidu/BusinessLicense.java

@@ -1,44 +0,0 @@
-package com.ydtech.utils.baidu;
-
-
-import java.net.URLEncoder;
-
-/**
- * 营业执照识别
- */
-public class BusinessLicense {
-
-    /**
-     * 重要提示代码中所需工具类
-     * FileUtil,Base64Util,HttpUtil,GsonUtils请从
-     * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
-     * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
-     * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
-     * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
-     * 下载
-     */
-    public static String businessLicense() {
-        // 请求url
-        String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/business_license";
-        try {
-            String accessToken = AuthService.getAuth();
-            // 本地文件路径
-            String filePath = "C:\\Users\\Administrator\\Desktop\\511E1E48E7354A6BB82BEAA27D3D55EB.png";
-            byte[] imgData = FileUtil.readFileByBytes(filePath);
-            String imgStr = Base64Util.encode(imgData);
-            String imgParam = URLEncoder.encode(imgStr, "UTF-8");
-
-            String param = "image=" + imgParam;
-            String result = HttpUtil.post(url, accessToken, param);
-            System.out.println(result);
-            return result;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    public static void main(String[] args) {
-        BusinessLicense.businessLicense();
-    }
-}

+ 69 - 0
src/main/java/com/ydtech/utils/baidu/BusinessLicenseRecognition.java

@@ -0,0 +1,69 @@
+package com.ydtech.utils.baidu;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.ydtech.modules.order.entity.BusinessLicense;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @description: 营业执照识别
+ * @author: wenks
+ * @date: 2024/2/21 9:46
+ **/
+
+public class BusinessLicenseRecognition {
+
+    private BusinessLicenseRecognition() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    /**
+     * @param imgParam base64影像
+     * @return
+     */
+    public static JSONObject businessLicense(String imgParam) {
+        // 请求url
+        String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/business_license";
+        try {
+            String accessToken = AuthService.getAuth();
+
+            String param = "image=" + imgParam;
+            String result = HttpUtil.post(url, accessToken, param);
+            JSONObject ja = JSON.parseObject(result);
+            String wordsResult = ja.getString("words_result");
+            return JSON.parseObject(wordsResult);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return new JSONObject();
+    }
+
+
+    public static void gettingData(String images, BusinessLicense businessLicense) {
+        if (StringUtils.isEmpty(images)) {
+            return;
+        }
+
+        try {
+            JSONObject s = businessLicense(images);
+            businessLicense.setSocialCreditCode(getWords(s, "社会信用代码"));
+            businessLicense.setCompany(getWords(s, "单位名称"));
+            businessLicense.setAddress(getWords(s, "地址"));
+            businessLicense.setLegalRepresentative(getWords(s, "法人"));
+            businessLicense.setEffectiveDate(getWords(s, "有效期"));
+            businessLicense.setRegisterDate(getWords(s, "成立日期"));
+            businessLicense.setTypes(getWords(s, "类型"));
+            businessLicense.setRegisteredCapital(getWords(s, "注册资本"));
+            businessLicense.setRegisteredCapital(getWords(s, "注册资本"));
+            businessLicense.setBusinessScope(getWords(s, "经营范围"));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static String getWords(JSONObject jsonObject, String name) {
+        return JSON.parseObject(jsonObject.getString(name)).getString("words");
+    }
+
+}