Quellcode durchsuchen

人脸信息发送逻辑修改

M墨鱼—_mo vor 5 Jahren
Ursprung
Commit
29bcca9a4d

+ 2 - 2
common/src/main/java/com/jpsoft/smart/modules/base/service/impl/PersonDeviceLogServiceImpl.java

@@ -11,7 +11,7 @@ import com.jpsoft.smart.modules.base.service.PersonDeviceLogService;
 import com.jpsoft.smart.modules.common.dto.Sort;
 import com.jpsoft.smart.modules.common.utils.BASE64DecodedMultipartFile;
 import com.jpsoft.smart.modules.common.utils.Base64;
-import com.jpsoft.smart.modules.common.utils.IApiUtil;
+import com.jpsoft.smart.modules.common.utils.LApiUtil;
 import com.jpsoft.smart.modules.common.utils.OSSUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -98,7 +98,7 @@ public class PersonDeviceLogServiceImpl implements PersonDeviceLogService {
         if (StringUtils.isNotBlank(libMatInfoListJson.getStr("MatchStatus"))){
             System.out.println();
             personDeviceLog.setMatchStatus(libMatInfoListJson.getInt("MatchStatus"));
-            personDeviceLog.setMatchMsg(IApiUtil.getMatchMsg(libMatInfoListJson.getInt("MatchStatus")));
+            personDeviceLog.setMatchMsg(LApiUtil.getMatchMsg(libMatInfoListJson.getInt("MatchStatus")));
             personDeviceLog.setMatchFaceId(libMatInfoListJson.getInt("MatchFaceID"));
         }else {
             personDeviceLog.setMatchStatus(0);

+ 9 - 1
common/src/main/java/com/jpsoft/smart/modules/constant/LApiConstant.java

@@ -17,6 +17,14 @@ public class LApiConstant {
     public static final String KEEPALIVE = "/LAPI/V1.0/System/KeepAlive";
 
 
-    public static final String ADDPERSON = "/LAPI/V1.0/PeopleLibraries/1584252414/People";
+    /**
+     * 上传人脸接口url
+     */
+    public static final String ADDPERSON = "/LAPI/V1.0/PeopleLibraries/";
+
+    /**
+     * 获取人脸库url
+     */
+    public static final String GETFACEDB = "/LAPI/V1.0/PeopleLibraries/BasicInfo";
 
 }

+ 13 - 0
common/src/main/java/com/jpsoft/smart/modules/lapi/service/ILapiService.java

@@ -29,5 +29,18 @@ public interface ILapiService {
      Boolean keepAlive(String id) throws Exception;
 
 
+    /**
+     * 平台上传设备人脸信息
+     * @param id
+     * @return
+     * @throws Exception
+     */
      List<LapiMsgResult> addPerson(Long id) throws Exception;
+
+    /**
+     * 根据公司名称获取人脸库
+     * @param companyName
+     * @return
+     */
+     String getFaceDbId(DeviceInfo deviceInfo, String companyName) throws Exception;
 }

+ 28 - 1
common/src/main/java/com/jpsoft/smart/modules/lapi/service/impl/LapiServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jpsoft.smart.modules.lapi.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.jpsoft.smart.modules.base.entity.CompanyInfo;
 import com.jpsoft.smart.modules.base.entity.DeviceInfo;
@@ -18,6 +19,7 @@ import com.jpsoft.smart.modules.lapi.vo.IdentificationVo;
 import com.jpsoft.smart.modules.lapi.vo.ImageVo;
 import com.jpsoft.smart.modules.lapi.vo.LapiMsgResult;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -129,7 +131,9 @@ public class LapiServiceImpl implements ILapiService {
 
 
             try{
-                JSONObject jsonObject = LApiUtil.PostRequest(deviceInfo.getIpAddress()+":"+deviceInfo.getPort()+LApiConstant.ADDPERSON,map);
+                //获取人员人脸库id
+                String faceDbId = getFaceDbId(deviceInfo,companyInfo.getName());
+                JSONObject jsonObject = LApiUtil.PostRequest(deviceInfo.getIpAddress()+":"+deviceInfo.getPort()+LApiConstant.ADDPERSON+faceDbId+"/People",map);
                 JSONObject dataJson = jsonObject.getJSONObject("Response");
                 if (dataJson.getInteger("ResponseCode") ==0 && dataJson.getInteger("StatusCode") == 0){
                     LapiMsgResult lapiMsgResult = new LapiMsgResult();
@@ -154,4 +158,27 @@ public class LapiServiceImpl implements ILapiService {
 
         return lapiMsgResults;
     }
+
+    @Override
+    public String getFaceDbId(DeviceInfo deviceInfo, String companyName) throws Exception{
+        if (StringUtils.isBlank(companyName)){
+            throw new Exception("公司名称为空");
+        }
+        String faceDbId = "";
+        JSONObject jsonObject = LApiUtil.GetRequest(deviceInfo.getIpAddress()+":" + deviceInfo.getPort()+LApiConstant.GETFACEDB);
+        JSONObject dataJson = jsonObject.getJSONObject("Response");
+        JSONObject response = LApiUtil.getResponse(dataJson);
+        List listData = response.getJSONArray("LibList");
+        if (listData.size()<=0){
+            throw new Exception("设备没有配置人脸库");
+        }
+        for (int i =0;i<listData.size();i++){
+            JSONObject jsonObject1 = (JSONObject) JSONArray.toJSON(listData.get(i));
+            String name = jsonObject1.getString("Name");
+            if (StringUtils.isNotBlank(name) && companyName.equals(name)){
+                faceDbId = jsonObject1.getString("ID");
+            }
+        }
+        return faceDbId;
+    }
 }

+ 18 - 0
web/src/test/java/com/jpsoft/smart/LApiTest.java

@@ -1,5 +1,6 @@
 package com.jpsoft.smart;
 
+import com.jpsoft.smart.modules.base.entity.DeviceInfo;
 import com.jpsoft.smart.modules.lapi.service.ILapiService;
 import com.jpsoft.smart.modules.lapi.vo.LapiMsgResult;
 import org.junit.Test;
@@ -45,4 +46,21 @@ public class LApiTest {
         }
 
     }
+
+    @Test
+    public void testGetFaceDB(){
+        try {
+
+            DeviceInfo deviceInfo = new DeviceInfo();
+            deviceInfo.setIpAddress("192.168.11.13");
+            deviceInfo.setPort("80");
+            lapiService.getFaceDbId(deviceInfo,"荆鹏软件");
+            System.out.println();
+        } catch (Exception e) {
+            e.printStackTrace();
+            String message = e.getMessage();
+        }
+
+    }
+
 }