فهرست منبع

相机树开发

gao.qiang 6 ماه پیش
والد
کامیت
90900eeeb9

+ 0 - 3
business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraVO.java

@@ -1,14 +1,11 @@
 package com.ozs.service.entity.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.ozs.common.annotation.Excel;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * @author wyy

+ 7 - 0
business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmResp.java

@@ -1,8 +1,15 @@
 package com.ozs.service.entity.vo;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;

+ 2 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java

@@ -181,10 +181,12 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
             });
             log.info("-----------cameraCodeSet------" + cameraCodeSet);
             QueryWrapper<BaseCameraManagement> queryWrapper = new QueryWrapper<>();
+            log.info("-----------Constants.ALARM_SET------" + Constants.ALARM_SET);
             if (Constants.ALARM_SET.equals(setType)) {
                 // 使用QueryWrapper和notin方法根据cameraCode列表查询BaseCameraManagement数据
                 queryWrapper.notIn("camera_code", cameraCodeSet);
                 Set<BaseCameraManagement> set = baseCameraManagementMapper.selectList(queryWrapper).stream().collect(Collectors.toSet());
+                log.info("-----------set------" + set);
                 set.forEach(item -> {
                     BaseCameraVO baseCameraVO = new BaseCameraVO();
                     baseCameraVO.setCameraCode(item.getCameraCode());

+ 12 - 5
business-service/src/main/java/com/ozs/service/utils/PublishCallback.java

@@ -15,6 +15,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -25,18 +26,26 @@ import java.util.List;
 public class PublishCallback implements MqttCallback {
 
     public static final Logger logger = LoggerFactory.getLogger(PublishCallback.class);
+    @Resource
+    private PublishClient publishClient;
 
     //在断开连接时调用
     @Override
     public void connectionLost(Throwable cause) {
         // 连接丢失后,一般在这里面进行重连
-        System.out.println("连接断开,可以做重连" + cause);
+        logger.error("连接断开,原因:" + cause);
+        try {
+            logger.error("------connectionLost-------");
+            PublishClient.reconnect();
+        } catch (Exception e) {
+            logger.error("重连失败:" + e);
+        }
     }
 
     //接收到已经发布的 QoS 1 或 QoS 2 消息的传递令牌时调用
     @Override
     public void deliveryComplete(IMqttDeliveryToken token) {
-        System.out.println("deliveryComplete---------" + token.isComplete());
+        logger.error("deliveryComplete---------" + token.isComplete());
     }
 
     //接收已经预订的发布
@@ -48,8 +57,6 @@ public class PublishCallback implements MqttCallback {
         // subscribe后得到的消息会执行到这里面
         logger.info("接收消息主题 : {}", topic);
         logger.info("接收消息内容 : {}", new String(message.getPayload()));
-        System.out.println("接收消息主题 : " + topic);
-        System.out.println("接收消息Qos : " + message.getQos());
         if ("heart".equals(topic)) {
             try {
                 String s = new String(message.getPayload());
@@ -100,7 +107,7 @@ public class PublishCallback implements MqttCallback {
                 logger.error(e.getMessage());
             }
         }
-        System.out.println("接收消息内容 : " + new String(message.getPayload()));
+        logger.info("接收消息内容 : " + new String(message.getPayload()));
 
     }
 }

+ 42 - 7
business-service/src/main/java/com/ozs/service/utils/PublishClient.java

@@ -71,7 +71,7 @@ public class PublishClient {
             MqttException {
         MqttDeliveryToken token = topic.publish(message);
         token.waitForCompletion();
-        System.out.println("message is published completely! " + token.isComplete());
+        log.info("message is published completely! " + token.isComplete());
     }
 
     public static void pull(String sign, String deviceSn) throws MqttException {
@@ -122,7 +122,7 @@ public class PublishClient {
         res.put("data", map);
         String s = JSONObject.toJSONString(res);
 
-        System.out.println(s);
+        log.info(s);
 
     }
 
@@ -160,7 +160,7 @@ public class PublishClient {
                 publish(getMqttTopic("update_" + code), message);
                 log.info("updateDeviceSn---end");
             } catch (MqttException e) {
-                System.out.println("updateDeviceSn-------" + e.getMessage());
+                log.error("updateDeviceSn-------" + e.getMessage());
             }
         }
     }
@@ -203,7 +203,7 @@ public class PublishClient {
                  */
                 publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
             } catch (MqttException e) {
-                System.out.println(e.getMessage());
+                log.error(e.getMessage());
             }
     }
 
@@ -242,7 +242,7 @@ public class PublishClient {
                  */
                 publish(getMqttTopic("config_" + baseCameraManagement.getCameraCode()), message);
             } catch (MqttException e) {
-                System.out.println(e.getMessage());
+                log.error(e.getMessage());
             }
     }
 
@@ -265,11 +265,11 @@ public class PublishClient {
         /**
          * 设置超时时间
          */
-        options.setConnectionTimeout(10);
+        options.setConnectionTimeout(60);
         /**
          * 设置会话心跳时间
          */
-        options.setKeepAliveInterval(20);
+        options.setKeepAliveInterval(40);
         try {
             /**
              * 设置发布回调
@@ -282,7 +282,42 @@ public class PublishClient {
             String[] topic1 = {"config", "update", "heart", "test"};
             client.subscribe(topic1);
         } catch (Exception e) {
+            log.error(e.getMessage());
             e.printStackTrace();
         }
     }
+
+    public static void reconnect() throws MqttException {
+        log.error("尝试重连...");
+        if (client != null) {
+            try {
+                client.close();
+            } catch (MqttException e) {
+                log.error("关闭现有连接时出错:" + e);
+            }
+        }
+
+        MqttConnectOptions options = new MqttConnectOptions();
+        options.setCleanSession(true);
+        options.setUserName("camera-update");
+        options.setPassword("05J5+mtYzx.Ry".toCharArray());
+        options.setConnectionTimeout(60);
+        options.setKeepAliveInterval(40);
+
+        try {
+            /**
+             * 设置发布回调
+             */
+            client = new MqttClient("tcp://10.161.12.60:1883", "HAZARD-CAMERA-CLIENTID-123", new MemoryPersistence());
+
+            client.setCallback(new PublishCallback());
+            client.connect(options);
+            String[] topic1 = {"config", "update", "heart", "test"};
+            client.subscribe(topic1);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            e.printStackTrace();
+        }
+        log.error("重连成功!");
+    }
 }

+ 5 - 5
business-service/src/main/resources/mapper/service/BaseCameraManagementMapper.xml

@@ -201,7 +201,7 @@
         FROM msg_alarm  m JOIN base_camera_management  c ON m.camera_code=c.camera_code
         <where>
             <if test="ids != null and ids.size>0">
-                and a.id in
+                and c.id in
                 <foreach item="items" collection="ids" separator="," open="(" close=")" index="">
                     #{items}
                 </foreach>
@@ -210,13 +210,13 @@
                 and
                 <trim prefix="(" prefixOverrides="or" suffix=")">
                     <if test="dsUserId != null and dsUserId != ''">
-                        or a.create_by=#{dsUserId}
+                        or c.create_by=#{dsUserId}
                     </if>
                     <if test="dsDeptId != null and dsDeptId != 0">
-                        or b.dept_id=#{dsDeptId}
+                        or c.dept_id=#{dsDeptId}
                     </if>
                     <if test="dsDeptIds != null">
-                        or b.dept_id in
+                        or c.dept_id in
                         <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
                             #{item}
                         </foreach>
@@ -311,6 +311,6 @@
             </if>
         </where>
         ORDER BY
-        a.install_longitude,msg.is_lock desc,man.is_disable desc
+        a.install_longitude,man.is_disable,msg.is_lock
     </select>
 </mapper>

+ 1 - 1
business-service/src/main/resources/mapper/service/BaseDeptMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ozs.service.mapper.BaseDeptMapper">
     <select id="selectDeptByDeptName" parameterType="string"  resultType="java.lang.Long">
-		select dept_id from sys_dept where dept_name = #{deptName}
+		select dept_id from sys_dept where dept_name = #{deptName} and del_flag = 1
 	</select>
 </mapper>

+ 4 - 4
business-service/src/main/resources/mapper/service/BaseRailwayManagementMapper.xml

@@ -28,7 +28,7 @@
         base_device_dynamic_management b ON c.camera_code = b.camera_code
         <where>
             <if test="ids != null and ids.size>0">
-                and a.id in
+                and c.id in
                 <foreach item="items" collection="ids" separator="," open="(" close=")" index="">
                     #{items}
                 </foreach>
@@ -37,13 +37,13 @@
                 and
                 <trim prefix="(" prefixOverrides="or" suffix=")">
                     <if test="dsUserId != null and dsUserId != ''">
-                        or a.create_by=#{dsUserId}
+                        or c.create_by=#{dsUserId}
                     </if>
                     <if test="dsDeptId != null and dsDeptId != 0">
-                        or a.dept_id=#{dsDeptId}
+                        or c.dept_id=#{dsDeptId}
                     </if>
                     <if test="dsDeptIds != null">
-                        or a.dept_id in
+                        or c.dept_id in
                         <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
                             #{item}
                         </foreach>

+ 1 - 1
business-service/src/main/resources/mapper/service/MsgWebPushMapper.xml

@@ -55,7 +55,7 @@
         </where>
     </select>
 
-    <select id="messageMoreNum" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.util.Map">
+    <select id="messageMoreNum" parameterType="java.lang.String" resultType="java.util.Map">
         select count(1) count, SUM(CASE status WHEN '1' THEN 1 ELSE 0 end) AS 'noCount' from msg_web_push
         <where>
             <if test="userId != null and userId != ''">

+ 1 - 1
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -145,7 +145,7 @@ public class BaseCameraManagementController extends BaseController {
             baseCameraManagement.setIsDisable(deviceDynamicManagement.getIsDisable());
             baseCameraManagement.setElectricity(deviceDynamicManagement.getElectricity() + "%");
             List<MqLog> list = mqLogService.list(new LambdaQueryWrapper<MqLog>()
-                    .eq(MqLog::getCameraCode, cameraCode));
+                    .eq(MqLog::getCameraCode, cameraCode).orderByDesc(MqLog::getCreateTime));
             if (!ObjectUtils.isEmpty(list)) {
                 baseCameraManagement.setHeartTime(list.get(0).getCreateTime());
             }

+ 1 - 0
hazard-admin/src/main/java/com/ozs/web/controller/system/SysDictDataController.java

@@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.common.core.domain.entity.SysDictType;
 import com.ozs.common.core.domain.vo.SysDictDataVo;
 import com.ozs.common.core.redis.RedisCache;
 import com.ozs.common.utils.DictUtils;

+ 5 - 0
hazard-admin/src/main/java/com/ozs/web/controller/system/SysDictTypeController.java

@@ -1,12 +1,17 @@
 package com.ozs.web.controller.system;
 
 import java.util.List;
+import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.common.core.domain.entity.SysDept;
+import com.ozs.common.core.domain.entity.SysRole;
+import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.core.domain.vo.SysDictTypeVo;
+import com.ozs.common.core.domain.vo.SysUserVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.ObjectUtils;

+ 2 - 1
hazard-admin/src/main/java/com/ozs/web/controller/system/SysMenuController.java

@@ -2,6 +2,7 @@ package com.ozs.web.controller.system;
 
 import java.util.List;
 
+import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.utils.poi.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -106,7 +107,7 @@ public class SysMenuController extends BaseController {
     public AjaxResult edit(@Validated @RequestBody SysMenu menu) {
         if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
             return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
-        } else if (menu.getMenuId().equals(menu.getParentId())) {
+        }else if (menu.getMenuId().equals(menu.getParentId())) {
             return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
         }
         menu.setUpdateBy(getUsername());

+ 4 - 0
hazard-admin/src/main/java/com/ozs/web/controller/system/SysRoleController.java

@@ -15,8 +15,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.common.core.domain.entity.SysMenu;
 import com.ozs.common.core.domain.vo.SysDeptVo;
 import com.ozs.common.core.domain.vo.SysRoleRequestVo;
+import com.ozs.common.core.domain.vo.SysUserVo;
 import com.ozs.common.exception.ServiceException;
+import com.ozs.service.entity.BaseRailwayManagement;
+import com.ozs.service.entity.BaseUser;
 import com.ozs.service.service.BaseUserService;
+import com.ozs.system.domain.SysRoleMenu;
 import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysMenuService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 8 - 23
hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -183,20 +183,6 @@ public class GeoHazardMonitorTokenController {
                 jsonObject.put("data", "你填写的相机编码不存在!!!");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             }
-            if (reqMsgAlarmVo.getImageUrls() == null || reqMsgAlarmVo.getImageUrls().length == 0){
-                jsonObject.put("resultCode", 0);
-                jsonObject.put("message", "失败");
-                jsonObject.put("data", "报警图片为空!!!");
-                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
-            }
-            for (String str : reqMsgAlarmVo.getImageUrls()) {
-                if (str == null || str.isEmpty()) {
-                    jsonObject.put("resultCode", 0);
-                    jsonObject.put("message", "失败");
-                    jsonObject.put("data", "报警图片为空!!!");
-                    return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
-                }
-            }
             if (ObjectUtils.isEmpty(reqMsgAlarmVo.getLineDir())) {
                 reqMsgAlarmVo.setLineDir(baseCameraManagement.getLineDir());
             }
@@ -229,10 +215,10 @@ public class GeoHazardMonitorTokenController {
                 msgAlarm.setAlarmTime(new Date(reqMsgAlarmVo.getAlarmTime()));
                 log.info("时间++++get" + msgAlarm.getAlarmTime());
                 BaseCameraManagement bcm = msgAlarmService.getBaseCameraManagementByCamereCode(msgAlarm.getCameraCode());
-                BaseCameraVO baseCameraVO=new BaseCameraVO();
+                BaseCameraVO baseCameraVO = new BaseCameraVO();
                 baseCameraVO.setCameraCode(bcm.getCameraCode());
                 baseCameraVO.setChannel(bcm.getChannel());
-                redisService.addToSet(Constants.ALARM_SET,baseCameraVO);
+                redisService.addToSet(Constants.ALARM_SET, baseCameraVO);
                 msgAlarmService.getNormalBaseCameraManagementsCache(Constants.ALARM_SET);
                 msgAlarmService.save(msgAlarm);
                 msgAlarmVice.setImageUrl(url.substring(0, url.length() - 1));
@@ -361,11 +347,12 @@ public class GeoHazardMonitorTokenController {
 
     /**
      * 报警视频回放新
+     *
      * @param channel
      * @param cameraCode
      * @return
      */
-    public  String alarmHistoryPlay(String channel,String cameraCode,Date alarmDate) {
+    public String alarmHistoryPlay(String channel, String cameraCode, Date alarmDate) {
         // 获取当前时间
         // 将Date对象转换为Instant对象
         Instant instant = alarmDate.toInstant();
@@ -421,7 +408,7 @@ public class GeoHazardMonitorTokenController {
      *
      * @return
      */
-    public  String apiSummary(String path) {
+    public String apiSummary(String path) {
         int maxRetries = 5;
         int retryCount = 0;
         boolean success = false;
@@ -461,7 +448,6 @@ public class GeoHazardMonitorTokenController {
      * 开启录制功能
      *
      * @param cameraCode 相机编码
-     * @param channel    相机通道
      * @return
      */
     public  String startRecording(String cameraCode, String channel) {
@@ -479,7 +465,7 @@ public class GeoHazardMonitorTokenController {
         log.info("-----getQueryRecords-------date----" + date);
         log.info("-----getQueryRecords-------type----" + type);
         try {
-            TimeUnit.SECONDS.sleep(60 * 10);
+            TimeUnit.SECONDS.sleep(90 * 10);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }
@@ -507,8 +493,7 @@ public class GeoHazardMonitorTokenController {
                 log.info("size------------------>" + size);
                 log.info("path------------------>" + path);
                 log.info("created------------------>" + created);
-                //判断主码流是否订阅者是2
-                if (Integer.valueOf(size) > 1000) {
+                if (Integer.valueOf(size) > 11000000) {
                     list.add(created + "=" + path);
                 }
             }
@@ -522,7 +507,7 @@ public class GeoHazardMonitorTokenController {
 
     public String records(List<String> objects) {
 
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSSXXX");
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
         OffsetDateTime maxTime = null;
 
         for (String timeString : objects) {