From 915dcb3800c0cbd63f53e33f9638715b93c9ea6f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 06 十二月 2023 18:18:33 +0800
Subject: [PATCH] 海康接口对接开发

---
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                          |  124 ++++++++++++++----------
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                                    |    1 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java    |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                          |   58 +++++++++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java      |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EventSubRequest.java        |   14 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEventServiceImpl.java     |   65 +++++++++++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java |    6 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                              |   10 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java      |    7 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java                 |    2 
 11 files changed, 225 insertions(+), 66 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index d0145f5..9187b3c 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -20,7 +20,9 @@
      * 鎺ュ彛鍦板潃闆嗗悎
      */
     public interface InterfacePath{
-        String doorEvents = "/api/acs/v2/door/events";//闂ㄧ浜嬩欢鏌ヨ
+//        String doorEvents = "/api/acs/v2/door/events";//闂ㄧ浜嬩欢鏌ヨ
+//        String visitEvents = "/api/visitor/v1/event/turnover/search";//璁垮浜嬩欢鏌ヨ
+//        String parkEvents = "/api/pms/v1/crossRecords/page";//鍋滆溅鍦轰簨浠舵煡璇�
         String rootOrg = "/api/resource/v1/org/rootOrg";//鑾峰彇璺熺粍缁�
         String addBatchOrg = "/api/resource/v1/org/batch/add";//鎵归噺鏂板缁勭粐
         String delBatchOrg = "/api/resource/v1/org/batch/delete";//鎵归噺鍒犻櫎缁勭粐
@@ -45,11 +47,65 @@
         String visitCancel= "/api/visitor/v1/appointment/cancel";//鍙栨秷璁垮棰勭害
         String facePicture= "/api/resource/v1/person/picture";//鎻愬彇鐢ㄦ埛浜鸿劯鐓х墖
         String privilegeGroup= "/api/visitor/v1/privilege/group";//鏌ヨ璁垮鏉冮檺缁�
+        String eventSub= "/api/eventService/v1/eventSubscriptionByEventTypes";//浜嬩欢璁㈤槄
     }
 
     /**
      * 椤旇壊鏋氫妇
      */
+    public  enum EventTypes {
+
+        PARK_LINE_IN(771760130, "鍏ュ満鍘嬬嚎浜嬩欢"  ),
+        PARK_PASS_IN(771760131, "鍏ュ満鏀捐浜嬩欢"  ),
+        PARK_LINE_OUT(771760133, "鍑哄満鍘嬬嚎浜嬩欢"  ),
+        PARK_PASS_OUT(771760134, "鍑哄満鏀捐浜嬩欢"  ),
+        VISIT_SIGN_IN(1392513025, "璁垮鐧昏"  ),
+        VISIT_SIGN_OUT(1392513026, "璁垮绛剧"  ),
+        DOOR_FACE_AUTH_FAIL(197163, "浜鸿劯璁よ瘉澶辫触"  ),
+        DOOR_FACE_AUTH_SUCCESS(196893, "浜鸿劯璁よ瘉閫氳繃"  )
+        ;
+        // 鎴愬憳鍙橀噺
+        private String name;
+        private int key;
+
+        // 鏋勯�犳柟娉�
+        EventTypes(int key, String name ) {
+            this.name = name;
+            this.key = key;
+        }
+
+        // 鏅�氭柟娉�
+        public static String getName(int index) {
+            for (Constants.UserType c : Constants.UserType.values()) {
+                if (c.getKey() == index) {
+                    return c.getName();
+                }
+            }
+            return null;
+        }
+
+
+        // get set 鏂规硶
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+    }
+    /**
+     * 椤旇壊鏋氫妇
+     */
     public  enum Colors {
 
         SYSTEM(0, "绯荤粺鐢ㄦ埛"  )
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 49aa419..3ed969a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -290,6 +290,16 @@
 		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
 		return  result;
 	}
+	/**
+	 *	浜嬩欢璁㈤槄
+	 * @param body
+	 * @return
+	 */
+	public static String eventSub(String body) {
+		Map<String, String> path = getPath(HKConstants.InterfacePath.eventSub);
+		String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+		return  result;
+	}
 
 
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EventSubRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EventSubRequest.java
new file mode 100644
index 0000000..152ed4e
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EventSubRequest.java
@@ -0,0 +1,14 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class EventSubRequest {
+
+ private String   name	;//string	False	鍚嶇О锛屾ā绯婃悳绱紝鏈�澶ч暱搴�32锛岃嫢鍖呭惈涓枃锛屾渶澶ч暱搴︽寚涓嶈秴杩囨寜鐓ф寚瀹氱紪鐮佺殑瀛楄妭闀垮害锛屽嵆getBytes(鈥渦tf-8鈥�).length
+   private Integer[]    eventTypes;//	number[]	True	浜嬩欢绫诲瀷,璇﹁闄勫綍D
+   private String    eventDest;//	string	True	鎸囧畾浜嬩欢鎺ユ敹鐨勫湴鍧�锛岄噰鐢╮estful鍥炶皟妯″紡锛屾敮鎸乭ttp鍜宧ttps锛屾牱寮忓涓嬶細http://ip:port/eventRcv鎴栬�卙ttps://ip:port/eventRcv涓嶈秴杩�1024涓瓧绗︿簨浠舵帴鏀跺湴鍧�鐢卞簲鐢ㄦ柟璐熻矗鎸夋寚瀹氱殑瑙勮寖鎻愪緵锛屼簨浠舵帴鏀舵帴鍙d笉闇�瑕佽璇佷笁鏂瑰鎴锋敹鍒版秷鎭紝璇锋敞鎰忕珛鍗宠繑鍥濰TTP/1.1 200 OK锛� 鍚﹀垯鍥犱负鎺ユ敹澶參锛屽鑷翠簨浠剁Н鍘�
+   private Integer[]     subType;//	number	False	璁㈤槄绫诲瀷锛�0-璁㈤槄鍘熷浜嬩欢锛�1-鑱斿姩浜嬩欢锛�2-鍘熷浜嬩欢鍜岃仈鍔ㄤ簨浠讹紝涓嶅~浣跨敤榛樿鍊�0
+   private Integer[]     eventLvl;//	number[]	False	浜嬩欢绛夌骇锛�0-鏈厤缃紝1-浣庯紝2-涓紝3-楂� 姝ゅ浜嬩欢绛夌骇鏄寚鍦ㄤ簨浠惰仈鍔ㄤ腑閰嶇疆鐨勭瓑绾ц闃呯被鍨嬩负0鏃讹紝姝ゅ弬鏁版棤鏁堬紝浣跨敤榛樿鍊�0鍦ㄨ闃呯被鍨嬩负1鏃讹紝涓嶅~浣跨敤榛樿鍊糩1,2,3]   鍦ㄨ闃呯被鍨嬩负2鏃讹紝涓嶅~浣跨敤榛樿鍊糩0,1,2,3]鏁扮粍澶у皬涓嶈秴杩�32锛屼簨浠剁瓑绾уぇ灏忎笉瓒呰繃31
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 79f3e8a..0ccc401 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -11,6 +11,7 @@
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.hikvision.artemis.sdk.config.ArtemisConfig;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,33 +23,22 @@
 import java.io.InputStream;
 import java.util.List;
 
-@Service
+//@Service
 @Slf4j
 public class HKService {
     private Logger logger = LoggerFactory.getLogger(HKService.class);
-    @Autowired
-    private SystemDictDataBiz  systemDictDataBiz;
-
-    @PostConstruct
-    public  int  initHkConfig(){
-        ArtemisConfig.host = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HOST).getCode();
-        ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode();
-        ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode();
-        HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode();
-        return  0;
-    }
     /**
      * 鑾峰彇鏍圭粍缁囨暟鎹�
      * @return
      */
-    public  BaseResponse<OrgListResponse>  getRootOrg(BaseRequst param){
+    public  static  BaseResponse<OrgListResponse>  getRootOrg(BaseRequst param){
         log.error("銆愭捣搴疯幏鍙栨牴缁勭粐銆�================寮�濮�====");
         try {
             String res = HKTools.getRootOrg ();
             TypeReference typeReference =
                     new TypeReference< BaseResponse<OrgListResponse>>(){};
             BaseResponse<OrgListResponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯幏鍙栨牴缁勭粐銆�================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鑾峰彇鏍圭粍缁�");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯幏鍙栨牴缁勭粐銆�================澶辫触====锛歕n"+ e.getMessage());
@@ -60,7 +50,7 @@
      * 淇敼缁勭粐鏁版嵁
      * @return
      */
-    public  BaseResponse editOrg(OrgEditRequest param){
+    public  static  BaseResponse editOrg(OrgEditRequest param){
         log.error("銆愭捣搴蜂慨鏀圭粍缁囥��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
 
@@ -68,7 +58,7 @@
             TypeReference typeReference =
                     new TypeReference< BaseResponse>(){};
             BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴蜂慨鏀圭粍缁囥��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍淇敼缁勭粐");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴蜂慨鏀圭粍缁囥��================澶辫触====锛歕n"+ e.getMessage());
@@ -79,7 +69,7 @@
      *鎵归噺鏂板缁勭粐鏁版嵁
      * @return
      */
-    public  BaseResponse<OrgOrUserAddResponse>  addBatchOrg(List<OrgAddRequest> param){
+    public  static  BaseResponse<OrgOrUserAddResponse>  addBatchOrg(List<OrgAddRequest> param){
         log.error("銆愭捣搴锋柊澧炵粍缁囥��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
 
@@ -87,7 +77,7 @@
             TypeReference typeReference =
                     new TypeReference< BaseResponse<OrgOrUserAddResponse>>(){};
             BaseResponse<OrgOrUserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴锋柊澧炵粍缁囥��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鏂板缁勭粐");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴锋柊澧炵粍缁囥��================澶辫触====锛歕n"+ e.getMessage());
@@ -98,7 +88,7 @@
      *鎵归噺鍒犻櫎缁勭粐鏁版嵁
      * @return
      */
-    public  BaseResponse   delBatchOrg(OrgDelRequest param){
+    public  static  BaseResponse   delBatchOrg(OrgDelRequest param){
         log.error("銆愭捣搴峰垹闄ょ粍缁囥��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
 
@@ -106,7 +96,7 @@
             TypeReference typeReference =
                     new TypeReference< BaseResponse >(){};
             BaseResponse result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴峰垹闄ょ粍缁囥��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鍒犻櫎缁勭粐");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴峰垹闄ょ粍缁囥��================澶辫触====锛歕n"+ e.getMessage());
@@ -117,14 +107,14 @@
      *鏂板浜哄憳淇℃伅锛堟敮鎸佷汉鑴告暟鎹級
      * @return
      */
-    public  BaseResponse<UserAddResponse>  addUser(UserAddRequest param){
+    public  static  BaseResponse<UserAddResponse>  addUser(UserAddRequest param){
         log.error("銆愭捣搴锋柊澧炰汉鍛樸��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.addUser(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<UserAddResponse>>(){};
             BaseResponse<UserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴锋柊澧炰汉鍛樸��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鏂板浜哄憳");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴锋柊澧炰汉鍛樸��================澶辫触====锛歕n"+ e.getMessage());
@@ -135,14 +125,14 @@
      *淇敼浜哄憳淇℃伅锛堜笉鏀寔浜鸿劯鏁版嵁锛�
      * @return
      */
-    public  BaseResponse editUser(UserAddRequest param){
+    public  static  BaseResponse editUser(UserAddRequest param){
         log.error("銆愭捣搴蜂慨鏀逛汉鍛樸��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.editUser(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<UserAddResponse>>(){};
             BaseResponse<UserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴蜂慨鏀逛汉鍛樸��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍淇敼浜哄憳");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴蜂慨鏀逛汉鍛樸��================澶辫触====锛歕n"+ e.getMessage());
@@ -153,14 +143,14 @@
      *鎵归噺鏂板浜哄憳淇℃伅(鏃犱汉鑴革級
      * @return
      */
-    public  BaseResponse<OrgOrUserAddResponse>  addBatchUser(List<UserAddRequest> param){
+    public  static  BaseResponse<OrgOrUserAddResponse>  addBatchUser(List<UserAddRequest> param){
         log.error("銆愭捣搴锋壒閲忔柊澧炰汉鍛樸��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.addBatchUser(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<OrgOrUserAddResponse>>(){};
             BaseResponse<OrgOrUserAddResponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴锋壒閲忔柊澧炰汉鍛樸��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鎵归噺鏂板浜哄憳");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴锋壒閲忔柊澧炰汉鍛樸��================澶辫触====锛歕n"+ e.getMessage());
@@ -171,14 +161,14 @@
      *鎵归噺鍒犻櫎浜哄憳淇℃伅
      * @return
      */
-    public  BaseResponse<OrgOrUserAddFailureResponse>  delBatchUser(List<UserAddRequest> param){
+    public  static  BaseResponse<OrgOrUserAddFailureResponse>  delBatchUser(List<UserAddRequest> param){
         log.error("銆愭捣搴锋壒閲忔柊澧炰汉鍛樸��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.delBatchUser(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<OrgOrUserAddFailureResponse>>(){};
             BaseResponse<OrgOrUserAddFailureResponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴锋壒閲忔柊澧炰汉鍛樸��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鎵归噺鏂板浜哄憳");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴锋壒閲忔柊澧炰汉鍛樸��================澶辫触====锛歕n"+ e.getMessage());
@@ -189,14 +179,14 @@
      *娣诲姞浜鸿劯淇℃伅
      * @return
      */
-    public  BaseResponse<FaceAddOrEditesponse>  addFace(List<FaceAddRequest> param){
+    public  static  BaseResponse<FaceAddOrEditesponse>  addFace(List<FaceAddRequest> param){
         log.error("銆愭捣搴锋坊鍔犱汉鑴镐俊鎭��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.addFace(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<FaceAddOrEditesponse>>(){};
             BaseResponse<FaceAddOrEditesponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴锋坊鍔犱汉鑴镐俊鎭��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍娣诲姞浜鸿劯淇℃伅");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴锋坊鍔犱汉鑴镐俊鎭��================澶辫触====锛歕n"+ e.getMessage());
@@ -207,14 +197,14 @@
      *缂栬緫浜鸿劯淇℃伅
      * @return
      */
-    public  BaseResponse<FaceAddOrEditesponse>  editFace(List<FaceEditRequest> param){
+    public  static  BaseResponse<FaceAddOrEditesponse>  editFace(List<FaceEditRequest> param){
         log.error("銆愭捣搴风紪杈戜汉鑴镐俊鎭��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.editFace(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<FaceAddOrEditesponse>>(){};
             BaseResponse<FaceAddOrEditesponse> result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴风紪杈戜汉鑴镐俊鎭��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍缂栬緫浜鸿劯淇℃伅");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴风紪杈戜汉鑴镐俊鎭��================澶辫触====锛歕n"+ e.getMessage());
@@ -225,14 +215,14 @@
      *鍒犻櫎浜鸿劯淇℃伅
      * @return
      */
-    public  BaseResponse   delFace(List<FaceEditRequest> param){
+    public  static  BaseResponse   delFace(List<FaceEditRequest> param){
         log.error("銆愭捣搴峰垹闄や汉鑴镐俊鎭��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.editFace(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse>(){};
             BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴峰垹闄や汉鑴镐俊鎭��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鍒犻櫎浜鸿劯淇℃伅");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴峰垹闄や汉鑴镐俊鎭��================澶辫触====锛歕n"+ e.getMessage());
@@ -259,14 +249,14 @@
      *鑾峰彇杞﹀簱鍒楄〃鏁版嵁锛堝叏閲忥級
      * @return
      */
-    public  BaseResponse<List<ParkListResponse>>   parkList(ParkListRequest param){
+    public  static  BaseResponse<List<ParkListResponse>>   parkList(ParkListRequest param){
         log.error("銆愭捣鑾峰彇杞﹀簱鍒楄〃鏁版嵁銆�================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.parkList(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<List<ParkListResponse>>>(){};
             BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯幏鍙栬溅搴撳垪琛ㄦ暟鎹��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鑾峰彇杞﹀簱鍒楄〃鏁版嵁");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯幏鍙栬溅搴撳垪琛ㄦ暟鎹��================澶辫触====锛歕n"+ e.getMessage());
@@ -277,14 +267,14 @@
      *鑾峰彇杞﹀簱鍒楄〃鏁版嵁锛堝叏閲忥級
      * @return
      */
-    public  BaseResponse<List<EntranceListResponse>>   entranceList(EntranceListRequest param){
+    public  static  BaseResponse<List<EntranceListResponse>>   entranceList(EntranceListRequest param){
         log.error("銆愭捣鑾峰彇杞﹀簱鍒楄〃鏁版嵁銆�================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.entranceList(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<List<EntranceListResponse>>>(){};
             BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯幏鍙栬溅搴撳垪琛ㄦ暟鎹��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鑾峰彇杞﹀簱鍒楄〃鏁版嵁");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯幏鍙栬溅搴撳垪琛ㄦ暟鎹��================澶辫触====锛歕n"+ e.getMessage());
@@ -295,14 +285,14 @@
      *鍥哄畾杞﹁締鍏呭�硷紙鍖呮湡锛�
      * @return
      */
-    public  BaseResponse   carChargeAddtion(CarChargeAddRequest param){
+    public  static  BaseResponse   carChargeAddtion(CarChargeAddRequest param){
         log.error("銆愭捣搴峰浐瀹氳溅杈嗗厖鍊笺��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.carChargeAddtion(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse>(){};
             BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴峰浐瀹氳溅杈嗗厖鍊笺��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鍥哄畾杞﹁締鍏呭��");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴峰浐瀹氳溅杈嗗厖鍊笺��================澶辫触====锛歕n"+ e.getMessage());
@@ -313,14 +303,14 @@
      *鍥哄畾杞﹁締鍙栨秷鍖呮湡
      * @return
      */
-    public  BaseResponse   carChargeDeletion(CarChargeDelRequest param){
+    public  static  BaseResponse   carChargeDeletion(CarChargeDelRequest param){
         log.error("銆愭捣搴峰浐瀹氳溅杈嗗彇娑堝寘鏈熴��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse>(){};
             BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴峰浐瀹氳溅杈嗗彇娑堝寘鏈熴��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍鍥哄畾杞﹁締鍙栨秷鍖呮湡");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴峰浐瀹氳溅杈嗗彇娑堝寘鏈熴��================澶辫触====锛歕n"+ e.getMessage());
@@ -331,14 +321,14 @@
      *杞︿綅棰勭害
      * @return
      */
-    public  BaseResponse<ParkReservationAddResponse>   parkReservationAddition(ParkReservationAddRequest param){
+    public  static  BaseResponse<ParkReservationAddResponse>   parkReservationAddition(ParkReservationAddRequest param){
         log.error("銆愭捣搴疯溅浣嶉绾︺��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.parkAddition(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<ParkReservationAddResponse>>(){};
             BaseResponse<ParkReservationAddResponse>  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯溅浣嶉绾︺��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍杞︿綅棰勭害");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯溅浣嶉绾︺��================澶辫触====锛歕n"+ e.getMessage());
@@ -349,14 +339,14 @@
      *杞︿綅鍙栨秷棰勭害
      * @return
      */
-    public  BaseResponse   parkReservationDeletion(ParkReservationDelRequest param){
+    public  static  BaseResponse   parkReservationDeletion(ParkReservationDelRequest param){
         log.error("銆愭捣搴疯溅浣嶅彇娑堥绾︺��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.carChargeDeletion(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse>(){};
             BaseResponse  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯溅浣嶅彇娑堥绾︺��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍杞︿綅鍙栨秷棰勭害");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯溅浣嶅彇娑堥绾︺��================澶辫触====锛歕n"+ e.getMessage());
@@ -367,14 +357,14 @@
      *璁垮棰勭害
      * @return
      */
-    public  BaseResponse<VisitAppointmentResponse>   visitAppiontment(VisitAppointmentRequest param){
+    public  static  BaseResponse<VisitAppointmentResponse>   visitAppiontment(VisitAppointmentRequest param){
         log.error("銆愭捣搴疯瀹㈤绾︺��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.visitAppiontment(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<VisitAppointmentResponse>>(){};
             BaseResponse<VisitAppointmentResponse>  result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯瀹㈤绾︺��================鎴愬姛====\n"+res);
+           logResult(result,"娴峰悍璁垮棰勭害");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯瀹㈤绾︺��================澶辫触====锛歕n"+ e.getMessage());
@@ -385,14 +375,14 @@
      *璁垮鍏嶇櫥璁伴绾�
      * @return
      */
-    public  BaseResponse<VisitAppointmentVistorResponse>   visitAppiontmentMDJ(VisitAppointmentMDJRequest param){
+    public  static  BaseResponse<VisitAppointmentVistorResponse>   visitAppiontmentMDJ(VisitAppointmentMDJRequest param){
         log.error("銆愭捣搴疯瀹㈠厤鐧昏棰勭害銆�================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.visitAppiontmentMDJ(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<VisitAppointmentVistorResponse> >(){};
             BaseResponse<VisitAppointmentVistorResponse>   result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯瀹㈠厤鐧昏棰勭害銆�================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍璁垮鍏嶇櫥璁伴绾�");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯瀹㈠厤鐧昏棰勭害銆�================澶辫触====锛歕n"+ e.getMessage());
@@ -403,14 +393,14 @@
      *璁垮鏉冮檺缁勫垪琛ㄦ煡璇紙鍒嗛〉锛�
      * @return
      */
-    public  BaseResponse<PrivilegeGroupListResponse>   privilegeGroup(PrivilegeGroupRequest param){
+    public  static  BaseResponse<PrivilegeGroupListResponse>   privilegeGroup(PrivilegeGroupRequest param){
         log.error("銆愭捣搴疯瀹㈡潈闄愮粍鍒楄〃鏌ヨ銆�================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.privilegeGroup(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<PrivilegeGroupListResponse> >(){};
             BaseResponse<PrivilegeGroupListResponse>   result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴疯瀹㈡潈闄愮粍鍒楄〃鏌ヨ銆�================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍璁垮鏉冮檺缁勫垪琛ㄦ煡璇�");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴疯瀹㈡潈闄愮粍鍒楄〃鏌ヨ銆�================澶辫触====锛歕n"+ e.getMessage());
@@ -421,20 +411,46 @@
      *闂ㄧ璁惧鏌ヨ锛堝垎椤碉級
      * @return
      */
-    public  BaseResponse<AcsDeviceListResponse>   acsDeviceList(AcsDeviceListRequest param){
+    public  static  BaseResponse<AcsDeviceListResponse>   acsDeviceList(AcsDeviceListRequest param){
         log.error("銆愭捣搴烽棬绂佽澶囨煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.acsDeviceList(JSONObject.toJSONString(param));
             TypeReference typeReference =
                     new TypeReference< BaseResponse<AcsDeviceListResponse> >(){};
             BaseResponse<AcsDeviceListResponse>   result = JSONObject.parseObject(res, typeReference.getType());
-            log.error("銆愭捣搴烽棬绂佽澶囨煡璇€��================鎴愬姛====\n"+res);
+            logResult(result,"娴峰悍闂ㄧ璁惧鏌ヨ");
             return  result;
         }catch (Exception e){
             log.error("銆愭捣搴烽棬绂佽澶囨煡璇€��================澶辫触====锛歕n"+ e.getMessage());
         }
         return  null;
     }
+    /**
+     *浜嬩欢璁㈤槄
+     * @return
+     */
+    public  static  BaseResponse   eventSub(EventSubRequest param){
+        log.error("銆愭捣搴蜂簨浠惰闃呫��================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.eventSub(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse >(){};
+            BaseResponse   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍浜嬩欢璁㈤槄");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴蜂簨浠惰闃呫��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+
+    private static void logResult(BaseResponse res,String name) {
+        if(StringUtils.equals(res.getCode(),HKConstants.RESPONSE_SUCCEE)){
+            log.info("銆�"+name+"銆�================鎴愬姛====\n"+res);
+        }else{
+            log.error("銆�"+name+"銆�================澶辫触====锛歕n"+ res);
+        }
+    }
 
 }
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index fbd8b5f..697fc13 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -19,6 +19,7 @@
     public static final String HK_APPKEY ="HK_APPKEY" ;
     public static final String HK_APPSECRET ="HK_APPSECRET" ;
     public static final String HK_HTTPS ="HK_HTTPS" ;
+    public static final String HK_PUSH_URL = "HK_PUSH_URL";
 
     /**
      * mq tag
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index f2e9eb6..c90c76f 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -40,8 +40,6 @@
     @Autowired
     private DeviceMapper deviceMapper;
 
-    @Autowired
-    private HKService hkService;
 
     @Override
     public Integer create(Device device) {
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 35fed63..0d22547 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -1,10 +1,12 @@
 package com.doumee.service.business.impl.hksync;
 
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.EventSubRequest;
 import com.doumee.core.haikang.model.param.request.ParkListRequest;
 import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
 import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
@@ -18,10 +20,12 @@
 import com.doumee.dao.business.model.Device;
 import com.doumee.dao.business.model.Parks;
 import com.doumee.service.business.HkSyncService;
+import com.hikvision.artemis.sdk.config.ArtemisConfig;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -33,9 +37,6 @@
  */
 @Service
 public class HkSyncBaseServiceImpl implements HkSyncService {
-
-    @Autowired
-    public HKService hkService;
 
     /**
      * 鍚屾娴峰悍鍋滆溅搴撴暟鎹�
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
index 1c99ba1..832bc36 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -58,7 +58,7 @@
             param = new AcsDeviceListRequest();
             param.setPageNo(curPage);
             param.setPageSize(10000);
-            BaseResponse<AcsDeviceListResponse> response = hkService.acsDeviceList(param);
+            BaseResponse<AcsDeviceListResponse> response = HKService.acsDeviceList(param);
             if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                 throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
             }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEventServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEventServiceImpl.java
new file mode 100644
index 0000000..9d7aed7
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEventServiceImpl.java
@@ -0,0 +1,65 @@
+package com.doumee.service.business.impl.hksync;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.EventSubRequest;
+import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
+import com.doumee.core.haikang.model.param.respose.PrivilegeGroupInfoResponse;
+import com.doumee.core.haikang.model.param.respose.PrivilegeGroupListResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.DeviceRoleMapper;
+import com.doumee.dao.business.model.DeviceRole;
+import com.hikvision.artemis.sdk.config.ArtemisConfig;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 娴峰悍浜嬩欢璁㈤槄琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+public class HkSyncEventServiceImpl extends HkSyncBaseServiceImpl {
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @PostConstruct
+    public  int  initHkConfig(){
+        ArtemisConfig.host = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HOST).getCode();
+        ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode();
+        ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode();
+        HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode();
+        //寮�濮嬭闃呴棬绂佷簨浠躲�佽瀹簨浠躲�佸拰鍋滆溅鍦轰簨浠�
+        startHkEventSub();
+        return  0;
+    }
+
+    /**
+     * 璁㈤槄闂ㄧ浜嬩欢銆佽瀹簨浠躲�佸拰鍋滆溅鍦轰簨浠�
+     */
+    public void startHkEventSub(){
+        EventSubRequest param = new EventSubRequest();
+        param.setEventDest(systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_PUSH_URL).getCode());
+        param.setEventTypes(new Integer[]{HKConstants.EventTypes.PARK_LINE_IN.getKey()
+                ,HKConstants.EventTypes.PARK_LINE_OUT.getKey()
+                ,HKConstants.EventTypes.PARK_PASS_IN.getKey()
+                ,HKConstants.EventTypes.PARK_PASS_OUT.getKey()
+                ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()
+                ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()
+                ,HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()});
+        HKService.eventSub(param);
+
+    }
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
index ee02471..2ec7d53 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -51,7 +51,7 @@
         List<Parks> allList = parksMapper.selectList(null);
             //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
         param = new ParkListRequest();
-        BaseResponse<List<ParkListResponse>> response = hkService.parkList(param);
+        BaseResponse<List<ParkListResponse>> response = HKService.parkList(param);
         if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
         }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
index 40b3f34..0ff9722 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPrivilegeServiceImpl.java
@@ -6,13 +6,11 @@
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
-import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
 import com.doumee.core.haikang.model.param.respose.PrivilegeGroupInfoResponse;
 import com.doumee.core.haikang.model.param.respose.PrivilegeGroupListResponse;
+import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.DateUtil;
 import com.doumee.dao.business.DeviceRoleMapper;
-import com.doumee.dao.business.model.Device;
 import com.doumee.dao.business.model.DeviceRole;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,7 +56,7 @@
             param = new PrivilegeGroupRequest();
             param.setPageNo(curPage);
             param.setPageSize(10000);
-            BaseResponse<PrivilegeGroupListResponse> response = hkService.privilegeGroup(param);
+            BaseResponse<PrivilegeGroupListResponse> response = HKService.privilegeGroup(param);
             if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
                 throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
             }

--
Gitblit v1.9.3