Преглед на файлове

Merge branch 'master' of http://124.70.58.209:3000/ytrd-project-management/GeoHazardMonitor

wyyay преди 1 година
родител
ревизия
ab1d359ea8

+ 61 - 50
business-service/src/main/java/com/ozs/service/entity/BaseCameraManagement.java

@@ -34,6 +34,61 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 监控相机安装里程位置字符串形式
+     */
+    @TableField(exist = false)
+    @Excel(name = "监控相机安装里程位置(单位KM)")
+    private String installMiles;
+
+
+    /**
+     *线路名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "线路名称")
+    private String railwayName;
+
+
+    /**
+     *所属工务段名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "所属工务段名称")
+    private String deptName;
+
+    /**
+     * 行别(1上行2下行)
+     */
+    @Excel(name = "行别",readConverterExp = "1=上行,2=下行")
+    private Integer lineDir;
+
+    /**
+     * 监控范围开始里程位置字符串形式
+     */
+    @TableField(exist = false)
+    @Excel(name = "监控范围开始里程位置(单位KM)")
+    private String beginMiles;
+
+    /**
+     * 监控范围结束里程位置字符串形式
+     */
+    @TableField(exist = false)
+    @Excel(name = "监控范围结束里程位置(单位KM)")
+    private String endMiles;
+
+    /**
+     * 监视相机经度
+     */
+    @Excel(name = "监视相机经度")
+    private String installLongitude;
+
+    /**
+     * 监视相机纬度
+     */
+    @Excel(name = "监视相机纬度")
+    private String installLatitude;
+    
     /**
      * 主键ID
      */
@@ -57,11 +112,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      */
     private Long deptId;
 
-    /**
-     * 行别(1上行2下行)
-     */
-    @Excel(name = "行别",readConverterExp = "1=上行,2=下行")
-    private Integer lineDir;
+   
 
     /**
      * 监控相机安装里程位置
@@ -77,18 +128,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      * 监控范围结束里程位置
      */
     private Integer endMile;
-
-    /**
-     * 监视相机经度
-     */
-    @Excel(name = "监视相机经度")
-    private String installLongitude;
-
-    /**
-     * 监视相机纬度
-     */
-    @Excel(name = "监视相机纬度")
-    private String installLatitude;
+    
 
     /**
      * 线路编码
@@ -131,19 +171,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      */
     private String lastVersionNum;
 
-    /**
-     * 监控相机安装里程位置字符串形式
-     */
-    @TableField(exist = false)
-    @Excel(name = "监控相机安装里程位置(单位KM)")
-    private String installMiles;
-
-    /**
-     * 监控范围开始里程位置字符串形式
-     */
-    @TableField(exist = false)
-    @Excel(name = "监控范围开始里程位置(单位KM)")
-    private String beginMiles;
+    
 
 
     /**
@@ -158,26 +186,9 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
     @TableField(exist = false)
     private String begins;
 
-    /**
-     * 监控范围结束里程位置字符串形式
-     */
-    @TableField(exist = false)
-    @Excel(name = "监控范围结束里程位置(单位KM)")
-    private String endMiles;
-
-    /**
-     *线路名称
-     */
-    @TableField(exist = false)
-    @Excel(name = "线路名称")
-    private String railwayName;
-
-    /**
-     *所属工务段名称
-     */
-    @TableField(exist = false)
-    @Excel(name = "所属工务段名称")
-    private String deptName;
+    
+    
+    
 
     /**
      *是否显示启用录像按钮(1显示2不显示)

+ 8 - 0
business-service/src/main/java/com/ozs/service/entity/BaseRailwayManagement.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ozs.common.annotation.Excel;
 import com.ozs.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
@@ -65,4 +66,11 @@ public class BaseRailwayManagement extends BaseEntity implements Serializable {
      */
     @Excel(name = "备注")
     private String remark;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
 }

+ 1 - 1
business-service/src/main/java/com/ozs/service/entity/CameraUpdateLog.java

@@ -91,6 +91,6 @@ public class CameraUpdateLog implements Serializable {
      * 创建时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 }

+ 1 - 2
business-service/src/main/java/com/ozs/service/service/impl/BaseCameraVersionServiceImpl.java

@@ -117,8 +117,7 @@ public class BaseCameraVersionServiceImpl extends ServiceImpl<BaseCameraVersionM
             cameraUpdateLog.setCreateTime(new Date());
             int insert = cameraUpdateLogMapper.insert(cameraUpdateLog);
         }
-        // baseCameraVersionVo
-        PublishClient.updateDeviceSn("update_DEVICESN");
+        PublishClient.updateDeviceSn(baseCameraVersionVo);
         new SubscribeClient("update", "update").start();
         return AjaxResult.success();
     }

+ 34 - 0
business-service/src/main/java/com/ozs/service/utils/PublishCallback.java

@@ -3,16 +3,27 @@ package com.ozs.service.utils;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ozs.service.entity.CameraUpdateLog;
+import com.ozs.service.service.CameraUpdateLogService;
 import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
 import org.eclipse.paho.client.mqttv3.MqttCallback;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
 
 /**
  * callback回调:
  *
  * @author Administrator
  */
+@Component
 public class PublishCallback implements MqttCallback {
+    
+    @Autowired
+    CameraUpdateLogService cameraUpdateLogService;
 
     //在断开连接时调用
     @Override
@@ -32,6 +43,7 @@ public class PublishCallback implements MqttCallback {
     public void messageArrived(String topic, MqttMessage message) throws Exception {
         String sign = null;
         String deviceSn=null;
+        String code=null;
         // subscribe后得到的消息会执行到这里面
         System.out.println("接收消息主题 : " + topic);
         System.out.println("接收消息Qos : " + message.getQos());
@@ -46,6 +58,28 @@ public class PublishCallback implements MqttCallback {
             }
             PublishClient.pull(sign,deviceSn);
         }
+        if ("update".equals(topic)) {
+            String s = new String(message.getPayload());
+            s = "[" + s + "]";
+            JSONArray jsonArray = JSONArray.parseArray(s);
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject object = jsonArray.getJSONObject(i);
+                code = (String) object.get("code");
+                deviceSn = (String) object.get("device_sn");
+            }
+            LambdaQueryWrapper<CameraUpdateLog> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(CameraUpdateLog::getCameraCode, deviceSn);
+            wrapper.orderByDesc(CameraUpdateLog::getCreateTime);
+            List<CameraUpdateLog> list = cameraUpdateLogService.list();
+            CameraUpdateLog cameraUpdateLog = list.get(0);
+            if ("200".equals(code)){
+                cameraUpdateLog.setStatus(1);
+                cameraUpdateLogService.updateById(cameraUpdateLog);
+            }else if ("400".equals(code)){
+                cameraUpdateLog.setStatus(3);
+                cameraUpdateLogService.updateById(cameraUpdateLog);
+            }
+        }
         System.out.println("接收消息内容 : " + new String(message.getPayload()));
         
     }

+ 35 - 30
business-service/src/main/java/com/ozs/service/utils/PublishClient.java

@@ -2,6 +2,7 @@ package com.ozs.service.utils;
 
 import com.alibaba.fastjson2.JSON;
 import com.ozs.common.utils.sign.Md5Utils;
+import com.ozs.service.entity.vo.BaseCameraVersionVo;
 import com.ozs.service.entity.vo.Data;
 import com.ozs.service.entity.vo.Heartbeat;
 import com.ozs.service.entity.vo.UpdateDeviceSn;
@@ -15,6 +16,8 @@ import org.eclipse.paho.client.mqttv3.MqttTopic;
 import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
 import org.springframework.beans.factory.annotation.Value;
 
+import java.util.UUID;
+
 
 /**
  * 发布客户端
@@ -131,7 +134,7 @@ public class PublishClient {
         /**
          * 消息保留
          */
-        server.message.setRetained(true);
+//        server.message.setRetained(false);
         /**
          * 消息内容
          */
@@ -142,38 +145,40 @@ public class PublishClient {
         server.publish(server.topic11, server.message);
     }
 
-    public static void updateDeviceSn(String sign){
+    public static void updateDeviceSn(BaseCameraVersionVo baseCameraVersionVo){
         /**
          * 发布客户端
          */
-        try {
-            PublishClient server = new PublishClient(sign,sign);
-            UpdateDeviceSn updateDeviceSn = new UpdateDeviceSn();
-            updateDeviceSn.setName("UpdateRequest");
-            updateDeviceSn.setType(0);
-            updateDeviceSn.setMd5("b867d0e545d9abbf74c2d11b62798250");
-            updateDeviceSn.setSign("b867d0e545d9abbf74c2d11b62798250");
-            updateDeviceSn.setUrl("https://example.com/download/Model_Helmet2_V213_P_c69cbfa9d7de4234f76d6f3811986e3a.bovai");
-            String s = JSON.toJSONString(updateDeviceSn);
-            server.message = new MqttMessage();
-            /**
-             * 保证消息能到达一次
-             */
-            server.message.setQos(1);
-            /**
-             * 消息保留
-             */
-            server.message.setRetained(true);
-            /**
-             * 消息内容
-             */
-            server.message.setPayload(s.getBytes());
-            /**
-             * 发布
-             */
-            server.publish(server.topic11, server.message);
-        } catch (MqttException e) {
-            System.out.println(e.getMessage());
+        for (String code : baseCameraVersionVo.getCameraCodeList()) {
+            try {
+                PublishClient server = new PublishClient("update_" + code, "update_" + code);
+                UpdateDeviceSn updateDeviceSn = new UpdateDeviceSn();
+                updateDeviceSn.setName("UpdateRequest");
+                updateDeviceSn.setType(Integer.valueOf(baseCameraVersionVo.getUpgradeType()));
+                updateDeviceSn.setMd5(baseCameraVersionVo.getMd5());
+                updateDeviceSn.setSign(UUID.randomUUID().toString());
+                updateDeviceSn.setUrl(baseCameraVersionVo.getVersionAddress());
+                String s = JSON.toJSONString(updateDeviceSn);
+                server.message = new MqttMessage();
+                /**
+                 * 保证消息能到达一次
+                 */
+                server.message.setQos(1);
+                /**
+                 * 消息保留
+                 */
+//                server.message.setRetained(false);
+                /**
+                 * 消息内容
+                 */
+                server.message.setPayload(s.getBytes());
+                /**
+                 * 发布
+                 */
+                server.publish(server.topic11, server.message);
+            } catch (MqttException e) {
+                System.out.println(e.getMessage());
+            }
         }
     }
 }

+ 1 - 9
hazard-admin/src/main/java/com/ozs/web/controller/mqtt/MqttController.java

@@ -27,13 +27,5 @@ public class MqttController {
         new SubscribeClient("heart", "heart").start();
         return AjaxResult.success();
     }
-
-    @ApiOperation(value = "更新固件和算法")
-    @GetMapping("/updateDeviceSn")
-    @Log(title = "MQTT", businessType = BusinessType.UPDATE)
-    public AjaxResult updateDeviceSn() {
-        PublishClient.updateDeviceSn("update_DEVICESN");
-        new SubscribeClient("update", "update").start();
-        return AjaxResult.success();
-    }
+    
 }