ard-work/src/main/java/com/ruoyi/cmd/startup.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/syncDeviceStateTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ard-work/src/main/java/com/ruoyi/cmd/startup.java
@@ -73,7 +73,7 @@ @PostConstruct public void init() { if (minioEnabled) { log.debug("åå§åå¯å¨minio"); log.info("åå§åå¯å¨minio"); if (Platform.isWindows()) { String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "minio" + File.separator + minioName; Map<String, String> env = new HashMap<>(); @@ -97,7 +97,7 @@ } } if (mediamtxEnabled) { log.debug("åå§åå¯å¨mediaMTX"); log.info("åå§åå¯å¨mediaMTX"); if (Platform.isWindows()) { String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + mediamtxName; String ymlPath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + "mediamtx.yml"; @@ -117,6 +117,7 @@ } } if (webrtcEnabled) { log.info("åå§åå¯å¨webrtc-streamer"); if (Platform.isWindows()) { String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + webrtcName; List<String> cmd = new ArrayList<>(); ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java
@@ -171,6 +171,10 @@ * ç»å½ID */ private Integer loginId; /** * å¨çº¿ç¶æ 0-离线 1-å¨çº¿ */ private String state; private String operatorId; private Date operatorExpired; /** ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java
@@ -10,6 +10,11 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; import java.sql.*; @@ -18,18 +23,21 @@ public class ReadAccessDatabase { public static void main(String[] args) { Boolean aBoolean = IsConnectTcpServer("127.0.0.1", 1200, 100); String message = aBoolean ? "success" : "fail"; log.info(message); // å¤ä¸ªæ°æ®åºæä»¶è·¯å¾ String[] dbPaths = { "D:\\Workspaces\\ard\\å®ç达工ä½èµæ\\mdb\\éè·¯ä¸å¿çº¿.mdb" // "D:\\Workspaces\\ard\\å®ç达工ä½èµæ\\mdb\\é²é£æ-çæ¨.mdb", // æ·»å æ´å¤çæ°æ®åºæä»¶è·¯å¾ }; // éåæ¯ä¸ªæ°æ®åºæä»¶ for (String dbPath : dbPaths) { readDataFromAccessDatabase(dbPath); } // String[] dbPaths = { // "D:\\Workspaces\\ard\\å®ç达工ä½èµæ\\mdb\\éè·¯ä¸å¿çº¿.mdb" //// "D:\\Workspaces\\ard\\å®ç达工ä½èµæ\\mdb\\é²é£æ-çæ¨.mdb", // // æ·»å æ´å¤çæ°æ®åºæä»¶è·¯å¾ // }; // // // éåæ¯ä¸ªæ°æ®åºæä»¶ // for (String dbPath : dbPaths) { // readDataFromAccessDatabase(dbPath); // } } public static void readDataFromAccessDatabase(String dbPath) { @@ -73,7 +81,7 @@ // å¯ä»¥æ ¹æ®å ·ä½çè¡¨ç»æç»§ç»è·åå ¶ä»åæ®µçæ°æ® // å¨è¿éå¤çè·åå°çæ°æ®ï¼ä¾å¦è¾åºå°æ§å¶å°æä¿åå°éåä¸ log.info("ID: " + id + ", No: " + no+ ", Name: " + name); log.info("ID: " + id + ", No: " + no + ", Name: " + name); } // å ³éè¿æ¥ resultSet.close(); @@ -86,6 +94,17 @@ } } public static Boolean IsConnectTcpServer(String ip,Integer port,Integer timeOut) { try { Socket socket = new Socket(); socket.connect(new InetSocketAddress(ip, port), timeOut); socket.close(); return true; } catch (IOException e) { // log.error(e.getMessage()); return false; } } } ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
@@ -32,6 +32,7 @@ <result property="operatorExpired" column="operator_expired"/> <result property="camMaxVisibleDistance" column="cam_max_visible_distance"/> <result property="camAlarmGuideEnable" column="cam_alarm_guide_enable"/> <result property="state" column="state"/> </resultMap> <sql id="selectArdCamerasVo"> @@ -61,7 +62,8 @@ c.operator_id, c.operator_expired, c.cam_max_visible_distance, c.cam_alarm_guide_enable c.cam_alarm_guide_enable, c.state from ard_cameras c left join sys_dept d on d.dept_id = c.dept_id left join sys_user u on u.user_id = c.user_id @@ -236,6 +238,7 @@ <if test="updateTime != null">update_time = #{updateTime},</if> <if test="operatorId != null">operator_id = #{operatorId},</if> <if test="operatorExpired != null">operator_expired = #{operatorExpired},</if> <if test="state != null">state = #{state},</if> </trim> where id = #{id} </update> ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/syncDeviceStateTask.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.ruoyi.quartz.task; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.service.IArdCamerasService; import com.ruoyi.device.hiksdk.service.IHikClientService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; /** * @Description: åæ¥è®¾å¤ç¶æä»»å¡ * @ClassName: syncDeviceStateTask * @Author: åèä¹ * @Date: 2023å¹´10æ08æ¥11:06:42 **/ @Component("syncTask") public class syncDeviceStateTask { @Resource IArdCamerasService iArdCamerasService; @Resource IHikClientService iHikClientService; public void cameraState() { List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras()); for (ArdCameras camera : ardCameras) { CameraCmd cmd = new CameraCmd(); cmd.setCameraId(camera.getId()); boolean onLineNew = iHikClientService.isOnLine(cmd);//ç¸æºå®æ¶ç¶æ boolean onLineOld = "1".equals(camera.getState());//ç¸æºåå²ç¶æ //å½ç¶æåçååæ¶ï¼æ´æ°å®æ¶ç¶æ if (onLineNew != onLineOld) { if (onLineNew) { camera.setState("1"); } else { camera.setState("0"); } iArdCamerasService.updateArdCameras(camera); } } } }