From 5aa4ed49606f029f86c6ded72c3056e8d13bf219 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <13281114856@qq.com>
Date: Sat, 15 Apr 2023 14:31:44 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A2=84=E8=AD=A6=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...\347\220\206\347\263\273\347\273\237.docx" | Bin 93211 -> 98228 bytes
 .../com/mortals/xhx/common/code/ReadEnum.java |  64 ------------------
 .../SubEventStartedService.java               |  14 +++-
 .../daemon/task/SyncUserToHikTaskImpl.java    |  31 +++++++++
 .../httpclient/device/DeviceController.http   |   1 -
 .../monitor/MonitorAlarmController.http       |   1 -
 6 files changed, 43 insertions(+), 68 deletions(-)
 delete mode 100644 refined-manager/src/main/java/com/mortals/xhx/common/code/ReadEnum.java

diff --git "a/doc/\347\262\276\347\273\206\345\214\226\347\256\241\347\220\206\347\263\273\347\273\237.docx" "b/doc/\347\262\276\347\273\206\345\214\226\347\256\241\347\220\206\347\263\273\347\273\237.docx"
index 37e652a20af6a3c16ca476147ba3c835e4f7246f..1683e1ebd05a3eadcd78d5230af3fe1c3d6066e4 100644
GIT binary patch
delta 12413
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

delta 7424
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

diff --git a/refined-manager/src/main/java/com/mortals/xhx/common/code/ReadEnum.java b/refined-manager/src/main/java/com/mortals/xhx/common/code/ReadEnum.java
deleted file mode 100644
index 6dcdffb..0000000
--- a/refined-manager/src/main/java/com/mortals/xhx/common/code/ReadEnum.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.mortals.xhx.common.code;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
-* 是否已读 (0.否,1.是)枚举类
-*
-* @author zxfei
-*/
-public enum ReadEnum {
-;
-    private Date value;
-    private String desc;
-
-    ReadEnum(Date value, String desc) {
-        this.value = value;
-        this.desc = desc;
-    }
-
-    public Date getValue() {
-        return this.value;
-    }
-
-    public String getDesc() {
-        return this.desc;
-    }
-
-    public static ReadEnum getByValue(Date value) {
-        for (ReadEnum readEnum : ReadEnum.values()) {
-            if (readEnum.getValue() == value) {
-                return readEnum;
-            }
-        }
-        return null;
-    }
-
-    /**
-    * 获取Map集合
-    *
-    * @param eItem 不包含项
-    * @return
-    */
-    public static Map<String, String> getEnumMap(Date... eItem) {
-        Map<String, String> resultMap = new LinkedHashMap<>();
-        for (ReadEnum item : ReadEnum.values()) {
-            try {
-                boolean hasE = false;
-                for (Date e : eItem) {
-                    if (item.getValue() == e) {
-                        hasE = true;
-                        break;
-                    }
-                }
-                if (!hasE) {
-                    resultMap.put(item.getValue() + "", item.getDesc());
-                }
-            } catch (Exception ex) {
-
-            }
-        }
-        return resultMap;
-    }
-}
\ No newline at end of file
diff --git a/refined-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/SubEventStartedService.java b/refined-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/SubEventStartedService.java
index 4516225..511d436 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/SubEventStartedService.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/SubEventStartedService.java
@@ -10,6 +10,9 @@ import com.mortals.xhx.common.key.Constant;
 import com.mortals.xhx.module.hik.event.model.req.EventSubReq;
 import com.mortals.xhx.module.hik.event.model.rsp.EventInfo;
 import com.mortals.xhx.module.hik.event.service.IHikEventService;
+import com.mortals.xhx.module.hik.face.model.req.group.FaceGroupReq;
+import com.mortals.xhx.module.hik.face.model.rsp.group.FaceGroupDataInfo;
+import com.mortals.xhx.module.hik.face.service.IHikFaceService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -27,11 +30,13 @@ public class SubEventStartedService implements IApplicationStartedService {
 
     @Autowired
     private IHikEventService hikEventService;
+    @Autowired
+    private IHikFaceService hikFaceService;
 
     @Override
     public void start() {
-        log.info("开始服务..[事件订阅服务]");
         ThreadPool.getInstance().init(20);
+        log.info("开始服务..[事件订阅服务]");
         String eventtypes = GlobalSysInfo.getParamValue(Constant.PARAM_EVENTTYPES, "1644175361");
         List<Integer> eventTypes = StrUtil.split(eventtypes, ",".charAt(0), -1, false, Integer::parseInt);
 
@@ -40,10 +45,15 @@ public class SubEventStartedService implements IApplicationStartedService {
         eventSubReq.setEventDest(callback);
         Rest<String> rest = hikEventService.subEvent(eventSubReq);
         log.info("sub events resp==>{}", JSON.toJSONString(rest));
-
         Rest<List<EventInfo>> events = hikEventService.getEvents();
         log.info("get events resp==>{}", JSON.toJSONString(events));
 
+        log.info("创建人脸分组...");
+        FaceGroupReq faceGroupReq = new FaceGroupReq();
+//        faceGroupReq.setName();
+//        faceGroupReq.setDescription();
+        Rest<FaceGroupDataInfo> faceGroupDataInfoRest = hikFaceService.faceGroupSingleAdd(faceGroupReq);
+
     }
 
     @Override
diff --git a/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserToHikTaskImpl.java b/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserToHikTaskImpl.java
index 69dfa0f..6cce533 100644
--- a/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserToHikTaskImpl.java
+++ b/refined-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserToHikTaskImpl.java
@@ -11,10 +11,15 @@ import com.mortals.xhx.base.system.upload.service.UploadService;
 import com.mortals.xhx.base.system.user.model.UserEntity;
 import com.mortals.xhx.base.system.user.model.UserQuery;
 import com.mortals.xhx.base.system.user.service.UserService;
+import com.mortals.xhx.common.code.GenderEnum;
 import com.mortals.xhx.common.code.YesNoEnum;
 import com.mortals.xhx.common.pdu.RespData;
 import com.mortals.xhx.common.pdu.user.UserPdu;
 import com.mortals.xhx.feign.user.IUserFeign;
+import com.mortals.xhx.module.hik.face.model.req.face.FaceInfo;
+import com.mortals.xhx.module.hik.face.model.req.face.FacePic;
+import com.mortals.xhx.module.hik.face.model.req.face.FaceReq;
+import com.mortals.xhx.module.hik.face.model.rsp.face.FaceDataInfo;
 import com.mortals.xhx.module.hik.face.service.IHikFaceService;
 import com.mortals.xhx.module.person.model.PersonEntity;
 import com.mortals.xhx.module.person.model.PersonQuery;
@@ -26,6 +31,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -54,6 +60,31 @@ public class SyncUserToHikTaskImpl implements ITaskExcuteService {
                     byte[] bytes = FileUtil.readBytes(filePath);
                     if (bytes.length > 0) {
                         String picBase64Data = Base64.encode(bytes);
+                        FaceReq faceReq = new FaceReq();
+                        FaceInfo faceInfo = new FaceInfo();
+                        faceInfo.setName(personEntity.getName());
+                        faceInfo.setSex(personEntity.getGender() == GenderEnum.ç”·.getValue() ? "1" : "2");
+                        faceInfo.setCertificateType("111");
+                        faceInfo.setCertificateNum(personEntity.getIdCard());
+                        faceReq.setFaceInfo(faceInfo);
+                        FacePic facePic = new FacePic();
+                        facePic.setFaceBinaryData(picBase64Data);
+                        faceReq.setFacePic(facePic);
+
+
+                        Rest<FaceDataInfo> faceDataInfoRest = hikFaceService.faceSingleAdd(faceReq);
+
+                        if(faceDataInfoRest.getCode()==YesNoEnum.YES.getValue()){
+                            personEntity.setIndexCode(faceDataInfoRest.getData().getIndexCode());
+                            personEntity.setIfaceGroupIndexCode(faceDataInfoRest.getData().getFaceGroupIndexCode());
+                            personEntity.setUpdateTime(new Date());
+                            personEntity.setUpdateUser("admin");
+                            personEntity.setUpdateUserId(1L);
+                            personService.update(personEntity);
+
+                        }
+
+
 
                         //log.info("picBase64Data=>{}", picBase64Data);
 
diff --git a/refined-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http b/refined-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http
index 02cb1a8..2865616 100644
--- a/refined-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http
+++ b/refined-manager/src/test/java/com/mortals/httpclient/device/DeviceController.http
@@ -15,7 +15,6 @@ client.global.set("authToken", JSON.parse(response.body).data.token);
 
 ###设备业务列表
 POST {{baseUrl}}/device/list
-Authorization: {{authToken}}
 Content-Type: application/json
 
 {
diff --git a/refined-manager/src/test/java/com/mortals/httpclient/monitor/MonitorAlarmController.http b/refined-manager/src/test/java/com/mortals/httpclient/monitor/MonitorAlarmController.http
index eeeb6d7..f1eacab 100644
--- a/refined-manager/src/test/java/com/mortals/httpclient/monitor/MonitorAlarmController.http
+++ b/refined-manager/src/test/java/com/mortals/httpclient/monitor/MonitorAlarmController.http
@@ -15,7 +15,6 @@ client.global.set("authToken", JSON.parse(response.body).data.token);
 
 ###监测预警记录列表
 POST {{baseUrl}}/monitor/alarm/list
-Authorization: {{authToken}}
 Content-Type: application/json
 
 {
-- 
2.24.3