瀏覽代碼

//增加门禁在线离线监听功能 2023-12-11

donggaosheng 2 年之前
父節點
當前提交
e24d9eca5d

+ 17 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/config/AccessControlConfig.java

@@ -3,7 +3,10 @@ package com.zd.laboratory.config;
 import com.sun.jna.Pointer;
 import com.zd.common.core.redis.RedisService;
 import com.zd.common.core.utils.SpringUtils;
+import com.zd.laboratory.domain.LabHardware;
+import com.zd.laboratory.service.ILabHardwareService;
 import com.zd.laboratory.utils.door.lib.NetSDKLibs;
+import com.zd.model.enums.HardwareOperate;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Bean;
@@ -46,6 +49,8 @@ public class AccessControlConfig {
 
         private final static RedisService redisService = SpringUtils.getBean(RedisService.class);
 
+        private final static ILabHardwareService iLabHardwareService = SpringUtils.getBean(ILabHardwareService.class);
+
         private final static Logger logger = LoggerFactory.getLogger(DisConnectCallback.class);
 
 
@@ -61,7 +66,11 @@ public class AccessControlConfig {
         }
 
         public void invoke(NetSDKLibs.LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) {
-            redisService.setCacheObject("access_control_status",0);
+            LabHardware hardware=new LabHardware();
+            hardware.setOperate(HardwareOperate.OFFLINE);
+            hardware.setIpAddress(pchDVRIP);
+            hardware.setPort(nDVRPort);
+            iLabHardwareService.updateAccessControlStatus(hardware);
             logger.info("Device[{}] Port[{}] Disconnect!\n", pchDVRIP, nDVRPort);
         }
     }
@@ -72,6 +81,8 @@ public class AccessControlConfig {
 
         private final static RedisService redisService = SpringUtils.getBean(RedisService.class);
 
+        private final static ILabHardwareService iLabHardwareService = SpringUtils.getBean(ILabHardwareService.class);
+
         private final Logger logger = LoggerFactory.getLogger(HaveReConnectCallback.class);
 
         private HaveReConnectCallback() {
@@ -86,7 +97,11 @@ public class AccessControlConfig {
         }
 
         public void invoke(NetSDKLibs.LLong loginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) {
-            redisService.setCacheObject("access_control_status",1);
+            LabHardware hardware=new LabHardware();
+            hardware.setOperate(HardwareOperate.ONLINE);
+            hardware.setIpAddress(pchDVRIP);
+            hardware.setPort(nDVRPort);
+            iLabHardwareService.updateAccessControlStatus(hardware);
             logger.info("ReConnect Device[{}[ Port[{}]\n", pchDVRIP, nDVRPort);
         }
     }

+ 7 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabHardwareMapper.java

@@ -187,4 +187,11 @@ public interface LabHardwareMapper {
      * @Return com.zd.laboratory.domain.LabHardware
      **/
     LabHardware findHardwareByType(@Param("subId") Long subId, @Param("type") Integer type, @Param("pcType") Integer pcType, @Param("subType") String subType);
+
+    /***
+     * 更新梦见状态
+     * @param labHardware
+     * @return
+     */
+    int updateAccessControlStatus(LabHardware labHardware);
 }

+ 7 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabHardwareService.java

@@ -134,6 +134,13 @@ public interface ILabHardwareService {
      */
     int updateStatus(EquipmentStatus equipmentStatus);
 
+
+    /**
+     * 更新门禁状态
+     */
+    int updateAccessControlStatus(LabHardware labHardware);
+
+
     /****
      * 根据设备类型查询
      */

+ 5 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabHardwareServiceImpl.java

@@ -587,6 +587,11 @@ public class LabHardwareServiceImpl implements ILabHardwareService {
         return count;
     }
 
+    @Override
+    public int updateAccessControlStatus(LabHardware labHardware) {
+        return labHardwareMapper.updateAccessControlStatus(labHardware);
+    }
+
     /****
      * 根据设备类型查询
      * @param labHardwareVO

+ 7 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/utils/door/lib/LibraryLoad.java

@@ -1,5 +1,8 @@
 package com.zd.laboratory.utils.door.lib;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.*;
 
 /**
@@ -8,6 +11,9 @@ import java.io.*;
  * @description
  **/
 public class LibraryLoad {
+
+  private static final Logger log = LoggerFactory.getLogger(LibraryLoad.class);
+
   private static final String ARCH_WINDOWS = "win";
   private static final String ARCH_LINUX = "linux";
   private static final String ARCH_MAC = "mac";
@@ -69,7 +75,7 @@ public class LibraryLoad {
     if (!(EXTRACT_PATH.endsWith("/") || EXTRACT_PATH.endsWith("\\"))) {
       path = EXTRACT_PATH + "/";
     }
-    System.out.println("load library: " + path + fullName);
+    log.info("load library: " + path + fullName);
     return path + fullName;
   }
 

+ 6 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabHardwareMapper.xml

@@ -576,6 +576,12 @@
             join_cabinet_time = #{joinCabinetTime}
         where id = #{id}
     </update>
+    <update id="updateAccessControlStatus" parameterType="com.zd.laboratory.domain.LabHardware">
+        update lab_hardware
+        set operate = #{operate}
+        where ip_address=#{ipAddress} AND port=#{port}
+        AND type=11
+    </update>
 
 
     <select id="selectLabHardwareCameraBySub" parameterType="java.lang.Long"