浏览代码

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

hexiao 2 年之前
父节点
当前提交
c4c3036c40
共有 42 个文件被更改,包括 512 次插入218 次删除
  1. 32 5
      business-service/src/main/java/com/ozs/service/entity/BaseCameraManagement.java
  2. 29 3
      business-service/src/main/java/com/ozs/service/entity/BaseDeviceDynamicManagement.java
  3. 29 3
      business-service/src/main/java/com/ozs/service/entity/BaseRailwayManagement.java
  4. 1 1
      business-service/src/main/java/com/ozs/service/entity/CameraTree.java
  5. 37 15
      business-service/src/main/java/com/ozs/service/entity/MsgAlarm.java
  6. 31 7
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmFrequency.java
  7. 2 2
      business-service/src/main/java/com/ozs/service/entity/SvcAddress.java
  8. 2 10
      business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraManagementDto.java
  9. 1 9
      business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraManagementVo.java
  10. 1 1
      business-service/src/main/java/com/ozs/service/entity/vo/BaseRailwayManagementVo.java
  11. 0 2
      business-service/src/main/java/com/ozs/service/entity/vo/HistoricalAlarmVo.java
  12. 4 4
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmVo.java
  13. 1 1
      business-service/src/main/java/com/ozs/service/mapper/BaseCameraManagementMapper.java
  14. 1 1
      business-service/src/main/java/com/ozs/service/mapper/BaseDeviceDynamicManagementMapper.java
  15. 1 1
      business-service/src/main/java/com/ozs/service/mapper/BaseRailwayManagementMapper.java
  16. 1 1
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmFrequencyMapper.java
  17. 1 1
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMapper.java
  18. 1 1
      business-service/src/main/java/com/ozs/service/mapper/SvcAddressMapper.java
  19. 2 2
      business-service/src/main/java/com/ozs/service/service/BaseCameraManagementService.java
  20. 1 1
      business-service/src/main/java/com/ozs/service/service/BaseDeviceDynamicManagementService.java
  21. 2 2
      business-service/src/main/java/com/ozs/service/service/BaseRailwayManagementService.java
  22. 1 1
      business-service/src/main/java/com/ozs/service/service/MsgAlarmFrequencyService.java
  23. 1 1
      business-service/src/main/java/com/ozs/service/service/MsgAlarmService.java
  24. 1 1
      business-service/src/main/java/com/ozs/service/service/SvcAddressService.java
  25. 4 4
      business-service/src/main/java/com/ozs/service/service/impl/BaseCameraManagementServiceImpl.java
  26. 1 1
      business-service/src/main/java/com/ozs/service/service/impl/BaseDeviceDynamicManagementServiceImpl.java
  27. 4 4
      business-service/src/main/java/com/ozs/service/service/impl/BaseRailwayManagementServiceImpl.java
  28. 1 1
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmFrequencyServiceImpl.java
  29. 1 1
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java
  30. 1 1
      business-service/src/main/java/com/ozs/service/service/impl/SvcAddressServiceImpl.java
  31. 5 0
      hazard-admin/pom.xml
  32. 21 23
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
  33. 19 19
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseRailwayManagementController.java
  34. 33 12
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  35. 2 2
      hazard-admin/src/main/java/com/ozs/web/controller/upload/UploadController.java
  36. 113 0
      hazard-admin/src/main/java/com/ozs/web/core/config/Server4WebSocket.java
  37. 21 0
      hazard-admin/src/main/java/com/ozs/web/core/config/WebSocketService.java
  38. 18 0
      hazard-admin/src/main/java/com/ozs/web/core/config/WebsocketConfig.java
  39. 51 51
      hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java
  40. 26 20
      hazard-sdk/src/main/java/com/ozs/controller/upload/UploadController.java
  41. 6 1
      hazard-sdk/src/main/java/com/ozs/vo/ReqDeviceVo.java
  42. 2 2
      hazard-sdk/src/main/java/com/ozs/vo/ReqMsgAlarmVo.java

+ 32 - 5
business-service/src/main/java/com/ozs/service/entity/BaseCameraManagement.java

@@ -1,6 +1,7 @@
 package com.ozs.service.entity;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@ import lombok.NoArgsConstructor;
 
 /**
  * <p>
- * 台账管理表
+ * 相机台账管理表
  * </p>
  *
  * @author ozs
@@ -28,7 +29,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-@ApiModel("台账管理表")
+@ApiModel("相机台账管理表")
 public class BaseCameraManagement extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -43,13 +44,13 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      * 相机编码
      */
     @Excel(name = "相机编码")
-    private Long cameraCode;
+    private String cameraCode;
     
     /**
      * 通道编号
      */
     @Excel(name = "通道编号")
-    private Long channel;
+    private String channel;
 
     /**
      * 所属工务段
@@ -58,7 +59,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
     private String publicWorksSection;
 
     /**
-     * 行别
+     * 行别(1上行2下行)
      */
     @Excel(name = "行别")
     private Integer lineDir;
@@ -92,6 +93,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      */
     @Excel(name = "监视相机纬度")
     private String installLatitude;
+
     /**
      * 线路编码
      */
@@ -109,4 +111,29 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      */
     @Excel(name = "物联网卡号")
     private String cardNo;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
 }

+ 29 - 3
business-service/src/main/java/com/ozs/service/entity/BaseDeviceDynamicManagement.java

@@ -3,6 +3,7 @@ package com.ozs.service.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+import java.util.Date;
 
 import com.ozs.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
@@ -14,7 +15,7 @@ import lombok.NoArgsConstructor;
 
 /**
  * <p>
- * 台账管理表
+ * 设备动态管理表
  * </p>
  *
  * @author ozs
@@ -24,7 +25,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-@ApiModel("台账管理表")
+@ApiModel("设备动态管理表")
 public class BaseDeviceDynamicManagement extends BaseEntity implements Serializable{
 
     private static final long serialVersionUID = 1L;
@@ -38,7 +39,7 @@ public class BaseDeviceDynamicManagement extends BaseEntity implements Serializa
     /**
      * 相机编码
      */
-    private Long cameraCode;
+    private String cameraCode;
 
     /**
      * 剩余电量
@@ -49,4 +50,29 @@ public class BaseDeviceDynamicManagement extends BaseEntity implements Serializa
      * 相机状态 1正常 2离线
      */
     private Integer cameraState;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
 }

+ 29 - 3
business-service/src/main/java/com/ozs/service/entity/BaseRailwayManagement.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 
 import java.io.Serializable;
+import java.util.Date;
 
 import com.ozs.common.annotation.Excel;
 import com.ozs.common.core.domain.BaseEntity;
@@ -15,7 +16,7 @@ import lombok.NoArgsConstructor;
 
 /**
  * <p>
- * 线路台账管理表
+ * 线路管理表
  * </p>
  *
  * @author ozs
@@ -25,7 +26,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-@ApiModel("线路台账管理表")
+@ApiModel("线路管理表")
 public class BaseRailwayManagement extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -40,7 +41,7 @@ public class BaseRailwayManagement extends BaseEntity implements Serializable {
      * 线路编码(四位数字)
      */
     @Excel(name = "编码")
-    private Long railwayCode;
+    private String railwayCode;
 
     /**
      * 线路类型(普铁/高铁 )
@@ -53,4 +54,29 @@ public class BaseRailwayManagement extends BaseEntity implements Serializable {
      */
     @Excel(name = "线路名称")
     private String railwayName;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
 }

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

@@ -8,7 +8,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * @author Administrator
+ * 视频服务树形结构表 @author Administrator
  */
 @Data
 @Builder

+ 37 - 15
business-service/src/main/java/com/ozs/service/entity/MsgAlarm.java

@@ -16,7 +16,7 @@ import lombok.NoArgsConstructor;
 
 /**
  * <p>
- * 报警信息管理
+ * 报警信息表
  * </p>
  *
  * @author ozs
@@ -26,7 +26,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-@ApiModel("报警信息管理表")
+@ApiModel("报警信息表")
 public class MsgAlarm extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -40,23 +40,28 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 报警唯一标识
      */
-    private Long alarmId;
+    private String alarmId;
 
     /**
      * 相机编码
      */
-    private Integer cameraCode;
+    private String alarmCamera;
 
     /**
      * 报警时间
      */
-    private Long alarmTime;
+    private Date alarmTime;
 
     /**
      * 报警里程位置
      */
     private String alarmMile;
 
+    /**
+     * 报警线路
+     */
+    private String alarmLine;
+
     /**
      * 报警内容
      */
@@ -68,7 +73,7 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     private Integer alarmConfidence;
 
     /**
-     * 报警行别
+     * 报警行别(1上行2下行)
      */
     private Integer lineDir;
 
@@ -80,33 +85,50 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 报警病害属性(可以给出泥石流的框定范围)
      */
-    private String alarmArrr;
+    private String alarmAttr;
+
     /**
      * 报警图片地址
      */
     private String imageUrl;
 
+    /**
+     * 解除人
+     */
+    private String releasedBy;
+
+    /**
+     * 解除时间
+     */
+    private Date releasedTime;
+
     /**
      * 报警是否解除 1已解除2未解除
      */
     private Integer isLock;
 
     /**
-     * 解除人
+     * 创建
      */
-    private String releasedBy;
+    private String createBy;
 
     /**
-     * 解除时间
+     * 创建时间
      */
-    private Long releasedTime;
+    private Date createTime;
+
     /**
-     * 报警线路
+     * 修改人
      */
-    private String alarmLine;
+    private String updateBy;
+
     /**
-     * 剩余电量(必填)
+     * 修改时间
      */
-    private Integer electricity;
+    private Date updateTime;
 
+    /**
+     * 备注
+     */
+    private String remark;
 }

+ 31 - 7
business-service/src/main/java/com/ozs/service/entity/MsgAlarmFrequency.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
 
 import com.ozs.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
@@ -16,7 +17,7 @@ import lombok.NoArgsConstructor;
 
 /**
  * <p>
- * 预报警信息管理记录
+ * 预报警频次
  * </p>
  *
  * @author ozs
@@ -26,7 +27,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-@ApiModel("预报警信息管理记录表")
+@ApiModel("预报警频次表")
 public class MsgAlarmFrequency extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -40,12 +41,12 @@ public class MsgAlarmFrequency extends BaseEntity implements Serializable {
     /**
      * 报警唯一标识
      */
-    private Long alarmId;
+    private String alarmId;
 
     /**
      * 报警时间
      */
-    private Long alarmTime;
+    private Date alarmTime;
 
     /**
      * 报警内容
@@ -65,12 +66,35 @@ public class MsgAlarmFrequency extends BaseEntity implements Serializable {
     /**
      * 报警病害属性(可以给出泥石流的框定范围)
      */
-    private String alarmArrr;
-
-    private String files;
+    private String alarmAttr;
 
     /**
      * 报警图片地址
      */
     private String imageUrl;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
 }

+ 2 - 2
business-service/src/main/java/com/ozs/service/entity/SvcAddress.java

@@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
 
 /**
  * <p>
- *
+ *报警消息访问令牌参数验证表
  * </p>
  *
  * @author ozs
@@ -24,7 +24,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-@ApiModel("登录字段表")
+@ApiModel("报警消息访问令牌参数验证表")
 public class SvcAddress implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 2 - 10
business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraManagementDto.java

@@ -1,22 +1,14 @@
 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.ozs.common.annotation.Excel;
 import com.ozs.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
-import lombok.NoArgsConstructor;
-
 import java.io.Serializable;
-import java.util.List;
 
 /**
  * <p>
- * 台账管理
+ * 线路和相机台账联合
  * </p>
  *
  * @author ozs

+ 1 - 9
business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraManagementVo.java

@@ -1,20 +1,12 @@
 package com.ozs.service.entity.vo;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.ozs.common.core.domain.BaseEntity;
 import com.ozs.common.vo.PageVo;
-import io.swagger.annotations.ApiModel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
-import lombok.NoArgsConstructor;
-
 import java.io.Serializable;
 
 /**
  * <p>
- * 台账管理表
+ * 相机台账管理请求参数
  * </p>
  *
  * @author ozs

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

@@ -7,7 +7,7 @@ import java.io.Serializable;
 
 /**
  * <p>
- * 线路台账管理表
+ * 线路管理请求参数
  * </p>
  *
  * @author ozs

+ 0 - 2
business-service/src/main/java/com/ozs/service/entity/vo/HistoricalAlarmVo.java

@@ -1,7 +1,5 @@
 package com.ozs.service.entity.vo;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 
 import java.io.Serializable;

+ 4 - 4
business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmVo.java

@@ -15,7 +15,7 @@ import java.util.Date;
 
 /**
  * <p>
- * 预报警信息管理
+ * 报警信息请求参数
  * </p>
  *
  * @author ozs
@@ -49,12 +49,12 @@ public class MsgAlarmVo extends PageVo implements Serializable {
     /**
      * 起始报警病害属性(可以给出泥石流的框定范围)
      */
-    private String beginAlarmArrr;
+    private String beginAlarmAttr;
     
     /**
      * 结束报警病害属性(可以给出泥石流的框定范围)
      */
-    private String endAlarmArrr;
+    private String endAlarmAttr;
 
     /**
      * 开始报警时间
@@ -62,7 +62,7 @@ public class MsgAlarmVo extends PageVo implements Serializable {
     private String beginAlarmTime;
 
     /**
-     * 开始报警时间
+     * 结束报警时间
      */
     private String endAlarmTime;
 

+ 1 - 1
business-service/src/main/java/com/ozs/service/mapper/BaseCameraManagementMapper.java

@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
- * 台账管理表 Mapper 接口
+ * 相机台账管理表 Mapper 接口
  * </p>
  *
  * @author ozs

+ 1 - 1
business-service/src/main/java/com/ozs/service/mapper/BaseDeviceDynamicManagementMapper.java

@@ -10,7 +10,7 @@ import java.util.List;
 
 /**
  * <p>
- * 台账管理表 Mapper 接口
+ * 设备动态管理表 Mapper 接口
  * </p>
  *
  * @author ozs

+ 1 - 1
business-service/src/main/java/com/ozs/service/mapper/BaseRailwayManagementMapper.java

@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
- *  Mapper 接口
+ *   线路管理表 Mapper 接口
  * </p>
  *
  * @author ozs

+ 1 - 1
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmFrequencyMapper.java

@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
- * 预报警信息管理记录表 Mapper 接口
+ * 预报警频次表 Mapper 接口
  * </p>
  *
  * @author ozs

+ 1 - 1
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMapper.java

@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
- * 报警信息管理表 Mapper 接口
+ * 报警信息表 Mapper 接口
  * </p>
  *
  * @author ozs

+ 1 - 1
business-service/src/main/java/com/ozs/service/mapper/SvcAddressMapper.java

@@ -6,7 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
- *  Mapper 接口
+ * 报警消息访问令牌参数验证表 Mapper 接口
  * </p>
  *
  * @author ozs

+ 2 - 2
business-service/src/main/java/com/ozs/service/service/BaseCameraManagementService.java

@@ -8,7 +8,7 @@ import java.util.List;
 
 /**
  * <p>
- * 台账管理表 服务类
+ * 相机台账管理表 服务类
  * </p>
  *
  * @author ozs
@@ -16,7 +16,7 @@ import java.util.List;
  */
 public interface BaseCameraManagementService extends IService<BaseCameraManagement> {
     /**
-     * 台账管理导入
+     * 相机台账管理导入
      * @param accountManageList
      * @param updateSupport
      * @return

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

@@ -6,7 +6,7 @@ import com.ozs.service.entity.CameraTree;
 
 /**
  * <p>
- * 台账管理表 服务类
+ * 设备动态管理表 服务类
  * </p>
  *
  * @author ozs

+ 2 - 2
business-service/src/main/java/com/ozs/service/service/BaseRailwayManagementService.java

@@ -7,7 +7,7 @@ import java.util.List;
 
 /**
  * <p>
- *  服务类
+ *   线路管理表 服务类
  * </p>
  *
  * @author ozs
@@ -15,7 +15,7 @@ import java.util.List;
  */
 public interface BaseRailwayManagementService extends IService<BaseRailwayManagement> {
     /**
-     * 线路台账导入
+     * 线路管理表导入
      * @param accountManageList
      * @param updateSupport
      * @return

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

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * <p>
- * 预报警信息管理记录表 服务类
+ * 预报警频次表 服务类
  * </p>
  *
  * @author ozs

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

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * <p>
- * 报警信息管理表 服务类
+ * 报警信息表 服务类
  * </p>
  *
  * @author ozs

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

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * <p>
- *  服务类
+ * 报警消息访问令牌参数验证表 服务类
  * </p>
  *
  * @author ozs

+ 4 - 4
business-service/src/main/java/com/ozs/service/service/impl/BaseCameraManagementServiceImpl.java

@@ -19,7 +19,7 @@ import java.util.List;
 
 /**
  * <p>
- * 台账管理表 服务实现类
+ * 相机台账管理表 服务实现类
  * </p>
  *
  * @author ozs
@@ -33,16 +33,16 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
     BaseCameraManagementMapper baseCameraManagementMapper;
 
     /**
-     * 台账管理导入
+     * 相机台账管理导入
      *
-     * @param accountManageList 台账相机列表
+     * @param accountManageList 相机台账列表
      * @param updateSupport     是否更新支持,如果已存在,则进行更新数据
      * @return
      */
     @Override
     public String importBaseAccountManagement(List<BaseCameraManagement> accountManageList, boolean updateSupport) {
         if (com.ozs.common.utils.StringUtils.isNull(accountManageList) || accountManageList.size() == 0) {
-            throw new ServiceException("导入台账管理相机信息不能为空!");
+            throw new ServiceException("导入相机台账列表信息不能为空!");
         }
         int successNum = 0;
         int failureNum = 0;

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

@@ -18,7 +18,7 @@ import java.util.stream.Collectors;
 
 /**
  * <p>
- * 台账管理表 服务实现类
+ * 设备动态管理表 服务实现类
  * </p>
  *
  * @author ozs

+ 4 - 4
business-service/src/main/java/com/ozs/service/service/impl/BaseRailwayManagementServiceImpl.java

@@ -17,7 +17,7 @@ import java.util.List;
 
 /**
  * <p>
- *  服务实现类
+ *  线路管理表 服务实现类
  * </p>
  *
  * @author ozs
@@ -32,15 +32,15 @@ public class BaseRailwayManagementServiceImpl extends ServiceImpl<BaseRailwayMan
     protected Validator validator;
 
     /**
-     * 导出线路台账
-     * @param accountManageList 线路台账列表
+     * 导出线路管理表信息
+     * @param accountManageList 线路管理表信息列表
      * @param updateSupport 是否更新支持,如果已存在,则进行更新数据
      * @return
      */
     @Override
     public String importBaseLineManagement(List<BaseRailwayManagement> accountManageList, boolean updateSupport) {
         if (com.ozs.common.utils.StringUtils.isNull(accountManageList) || accountManageList.size() == 0) {
-            throw new ServiceException("导入线路台账信息不能为空!");
+            throw new ServiceException("导入线路管理信息不能为空!");
         }
         int successNum = 0;
         int failureNum = 0;

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

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
 
 /**
  * <p>
- * 预报警信息管理记录表 服务实现类
+ * 预报警频次表 服务实现类
  * </p>
  *
  * @author ozs

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

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
 
 /**
  * <p>
- * 报警信息管理表 服务实现类
+ * 报警信息表 服务实现类
  * </p>
  *
  * @author ozs

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

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
 
 /**
  * <p>
- *  服务实现类
+ * 报警消息访问令牌参数验证表 服务实现类
  * </p>
  *
  * @author ozs

+ 5 - 0
hazard-admin/pom.xml

@@ -18,6 +18,11 @@
     </description>
 
     <dependencies>
+        <!-- webSocket web端 消息推送 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
 
         <!-- spring-boot-devtools -->
         <dependency>

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

@@ -40,7 +40,7 @@ import java.util.List;
 
 /**
  * <p>
- * 台账管理表 前端控制器
+ * 相机台账管理表 前端控制器
  * </p>
  *
  * @author ozs
@@ -54,8 +54,6 @@ public class BaseCameraManagementController extends BaseController {
     BaseCameraManagementService baseCameraManagementService;
     @Resource
     BaseDeviceDynamicManagementService baseDeviceDynamicManagementService;
-    @Resource
-    BaseRailwayManagementService baseLineManagementService;
 
     /**
      * 相机台账管理分页
@@ -87,13 +85,13 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     /**
-     * 删除相机信息
+     * 删除相机台账管理信息
      *
      * @param accountManagementIds
      * @return
      */
     @DeleteMapping("/{accountManagementIds}")
-    @ApiOperation("删除相机信息")
+    @ApiOperation("删除相机台账管理信息")
     public AjaxResult removeAccountManagement(@PathVariable List<Long> accountManagementIds) {
         if (baseCameraManagementService.removeByIds(accountManagementIds)) {
             return AjaxResult.success();
@@ -102,13 +100,13 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     /**
-     * 新增相机信息
+     * 新增相机台账管理信息
      *
      * @param baseCameraManagement
      * @return
      */
     @PostMapping("/saveAccountManagement")
-    @ApiOperation("新增相机信息")
+    @ApiOperation("新增相机台账管理信息")
     public AjaxResult saveDistributionModule(@RequestBody BaseCameraManagement baseCameraManagement) {
         baseCameraManagement.setCreateBy(getUsername());
         BaseDeviceDynamicManagement baseDynamicManagement = new BaseDeviceDynamicManagement();
@@ -120,13 +118,13 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     /**
-     * 修改相机信息
+     * 修改相机台账管理信息
      *
      * @param baseCameraManagement
      * @return
      */
     @PutMapping("/editAccountManagement")
-    @ApiOperation("修改相机信息")
+    @ApiOperation("修改相机台账管理信息")
     public AjaxResult editAccountManagement(@RequestBody BaseCameraManagement baseCameraManagement) {
         baseCameraManagement.setUpdateBy(getUsername());
         if (baseCameraManagementService.updateById(baseCameraManagement)) {
@@ -135,10 +133,10 @@ public class BaseCameraManagementController extends BaseController {
         return AjaxResult.error();
     }
 
-    @GetMapping(value = "/{accountManagementId}")
-    @ApiOperation("根据相机ID获取详细信息")
-    public AjaxResult getInfo(@PathVariable Long accountManagementId) {
-        return AjaxResult.success(baseCameraManagementService.getById(accountManagementId));
+    @GetMapping(value = "/{id}")
+    @ApiOperation("根据相机ID获取相机台账管理信息")
+    public AjaxResult getInfo(@PathVariable Long id) {
+        return AjaxResult.success(baseCameraManagementService.getById(id));
     }
 
     /**
@@ -149,7 +147,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      * @throws Exception
      */
-    @ApiOperation("台账管理导入")
+    @ApiOperation("相机台账管理信息导入")
     @PostMapping("/importBaseAccountManagement")
     public AjaxResult importBaseAccountManagement(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<BaseCameraManagement> util = new ExcelUtil<BaseCameraManagement>(BaseCameraManagement.class);
@@ -163,7 +161,7 @@ public class BaseCameraManagementController extends BaseController {
      *
      * @param response
      */
-    @ApiOperation("导出台账管理")
+    @ApiOperation("导出相机台账管理信息")
     @PostMapping("/exportBaseAccountManagement")
     public void exportBaseAccountManagement(HttpServletResponse response, @RequestBody BaseCameraManagementVo baseAccountManagementVo) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
@@ -188,13 +186,13 @@ public class BaseCameraManagementController extends BaseController {
     }
 
 
-    @ApiOperation("模板下载")
+    @ApiOperation("相机台账管理信息模板下载")
     @GetMapping("/downloaExcel")
     public void downloadZip(HttpServletResponse response) {
         try {
             InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/provisionalPlan.xlsx");
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, "临时计划导入模板.xlsx");
+            FileUtils.setAttachmentResponseHeader(response, "相机台账管理信息模板.xlsx");
             FileUtils.writeBytesByInput(resourceAsStream, response.getOutputStream());
         } catch (Exception e) {
             log.error("下载文件失败", e);
@@ -202,18 +200,18 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @ApiOperation("查询录像")
-    @GetMapping("/api/records")
-    public AjaxResult apiRecords() {
-        String param = "id=34020000001320000002&channel=34020000001320000002";
+    @GetMapping("/api/records/{cameraCode}/{channel}")
+    public AjaxResult apiRecords(@PathVariable String cameraCode,@PathVariable String channel) {
+        String param = "id="+cameraCode+"&channel="+channel;
         String s = HttpUtils.sendGet("http://47.106.159.135:8554/gb28181/api/records", param);
         System.out.println(s);
         return success(HttpUtils.sendGet("http://47.106.159.135:8554/gb28181/api/records", param));
     }
 
     @ApiOperation("播放回放")
-    @GetMapping("/api/invite")
-    public AjaxResult apiInvite() {
-        String param = "id=34020000001320000002&channel=34020000001320000002&startTime=1677230469&endTime=1677230513";
+    @GetMapping("/api/invite/{cameraCode}/{channel}/{startTime}/{endTime}")
+    public AjaxResult apiInvite(@PathVariable String cameraCode,@PathVariable String channel,@PathVariable String startTime,@PathVariable String endTime) {
+        String param = "id="+cameraCode+"&channel="+channel+"&startTime="+startTime+"&endTime="+endTime;
         return success(HttpUtils.sendGet("http://47.106.159.135:8554/gb28181/api/invite/", param));
     }
 

+ 19 - 19
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseRailwayManagementController.java

@@ -33,7 +33,7 @@ import java.util.List;
 
 /**
  * <p>
- * 线路台账管理表前端控制器
+ * 线路管理表前端控制器
  * </p>
  *
  * @author ozs
@@ -47,12 +47,12 @@ public class BaseRailwayManagementController extends BaseController {
     BaseRailwayManagementService baseRailwayManagementService;
 
     /**
-     * 线路台账管理分页
+     * 线路管理分页
      *
      * @param baseRailwayManagementVo
      * @return
      */
-    @ApiOperation(value = "线路台账管理分页")
+    @ApiOperation(value = "线路管理分页")
     @PostMapping("/list")
     public AjaxResult selectBaseLineManagement(@RequestBody BaseRailwayManagementVo baseRailwayManagementVo) {
         LambdaQueryWrapper<BaseRailwayManagement> lw = new LambdaQueryWrapper<BaseRailwayManagement>();
@@ -67,13 +67,13 @@ public class BaseRailwayManagementController extends BaseController {
     }
 
     /**
-     * 删除线路台账信息
+     * 删除线路管理表信息
      *
      * @param lineIds
      * @return
      */
     @DeleteMapping("/{lineIds}")
-    @ApiOperation("删除线路台账信息")
+    @ApiOperation("删除线路管理表信息")
     public AjaxResult removeLineManagement(@PathVariable List<Long> lineIds) {
         if (baseRailwayManagementService.removeByIds(lineIds)) {
             return AjaxResult.success();
@@ -82,13 +82,13 @@ public class BaseRailwayManagementController extends BaseController {
     }
 
     /**
-     * 新增线路台账信息
+     * 新增线路管理表信息
      *
      * @param baseRailwayManagement
      * @return
      */
     @PostMapping("/saveLineManagement")
-    @ApiOperation("新增线路台账信息")
+    @ApiOperation("新增线路管理表信息")
     public AjaxResult saveLineManagement(@RequestBody BaseRailwayManagement baseRailwayManagement) {
         baseRailwayManagement.setCreateBy(getUsername());
         if (baseRailwayManagementService.save(baseRailwayManagement)) {
@@ -98,13 +98,13 @@ public class BaseRailwayManagementController extends BaseController {
     }
 
     /**
-     * 修改线路台账信息
+     * 修改线路管理表信息
      *
      * @param baseRailwayManagement
      * @return
      */
     @PutMapping("/editLineManagement")
-    @ApiOperation("修改线路台账信息")
+    @ApiOperation("修改线路管理表信息")
     public AjaxResult editLineManagement(@RequestBody BaseRailwayManagement baseRailwayManagement) {
         baseRailwayManagement.setUpdateBy(getUsername());
         if (baseRailwayManagementService.updateById(baseRailwayManagement)) {
@@ -113,21 +113,21 @@ public class BaseRailwayManagementController extends BaseController {
         return AjaxResult.error();
     }
 
-    @GetMapping(value = "/{lineId}")
-    @ApiOperation("根据台账ID获取详细信息")
-    public AjaxResult getInfo(@PathVariable Long lineId) {
-        return AjaxResult.success(baseRailwayManagementService.getById(lineId));
+    @GetMapping(value = "/{id}")
+    @ApiOperation("根据台账ID获取线路管理表详细信息")
+    public AjaxResult getInfo(@PathVariable Long id) {
+        return AjaxResult.success(baseRailwayManagementService.getById(id));
     }
 
     /**
-     * 线路台账导入
+     * 线路管理表信息导入
      *
      * @param file
      * @param updateSupport
      * @return
      * @throws Exception
      */
-    @ApiOperation("线路台账导入")
+    @ApiOperation("线路管理表信息导入")
     @PostMapping("/importBaseLineManagement")
     public AjaxResult importBaseLineManagement(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<BaseRailwayManagement> util = new ExcelUtil<BaseRailwayManagement>(BaseRailwayManagement.class);
@@ -137,11 +137,11 @@ public class BaseRailwayManagementController extends BaseController {
     }
 
     /**
-     * 导出线路台账
+     * 导出线路管理表信息
      *
      * @param response
      */
-    @ApiOperation("导出线路台账")
+    @ApiOperation("导出线路管理表信息")
     @PostMapping("/exportBaseLineManagement")
     public void exportBaseLineManagement(HttpServletResponse response, @RequestBody BaseRailwayManagementVo baseRailwayManagementVo) {
         LambdaQueryWrapper<BaseRailwayManagement> lw = new LambdaQueryWrapper<BaseRailwayManagement>();
@@ -156,13 +156,13 @@ public class BaseRailwayManagementController extends BaseController {
         util.exportExcel(response, list, "线路台账数据");
     }
 
-    @ApiOperation("模板下载")
+    @ApiOperation("线路管理表信息模板下载")
     @GetMapping("/downloaExcel")
     public void downloadZip(HttpServletResponse response) {
         try {
             InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/planQuarter.xlsx");
             response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
-            FileUtils.setAttachmentResponseHeader(response, "台账线路管理导入模板.xlsx");
+            FileUtils.setAttachmentResponseHeader(response, "线路管理表信息导入模板.xlsx");
             FileUtils.writeBytesByInput(resourceAsStream, response.getOutputStream());
         } catch (Exception e) {
             log.error("下载文件失败", e);

+ 33 - 12
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.HazardApplication;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.utils.StringUtils;
@@ -14,8 +15,10 @@ import com.ozs.service.entity.vo.HistoricalAlarmVo;
 import com.ozs.service.entity.vo.MsgAlarmVo;
 import com.ozs.service.service.MsgAlarmFrequencyService;
 import com.ozs.service.service.MsgAlarmService;
+import com.ozs.web.core.config.WebSocketService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
+import org.springframework.boot.SpringApplication;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -33,7 +36,7 @@ import java.util.List;
 
 /**
  * <p>
- * 报警信息管理表 前端控制器
+ * 报警信息表 前端控制器
  * </p>
  *
  * @author ozs
@@ -47,14 +50,32 @@ public class MsgAlarmController extends BaseController {
     @Resource
     MsgAlarmFrequencyService msgAlarmFrequencyService;
 
+    /**
+     * 测试消息推送
+     */
+    @PostMapping("/push")
+    @ApiOperation(value = "预报警信息分页")
+    public AjaxResult insertDate(String[] args) {
+        // 模拟需要推送的用户群
+        ArrayList<String> ids = new ArrayList<>();
+        ids.add("001");
+        ids.add("002");
+        ids.add("003");
+        ids.add("004");
+        ids.add("005");
+
+        WebSocketService webSocketService = new WebSocketService();
+        webSocketService.sendMsgToUsers(ids);
+        return AjaxResult.success("推送成功");
+    }
 
     /**
-     * 预报警信息分页
+     * 报警信息分页
      *
      * @param msgAlarmVo
      * @return
      */
-    @ApiOperation(value = "预报警信息分页")
+    @ApiOperation(value = "报警信息分页")
     @PostMapping("/list")
     public AjaxResult selectMsgAlarm(@RequestBody MsgAlarmVo msgAlarmVo) {
         LambdaQueryWrapper<MsgAlarm> lw = new LambdaQueryWrapper<MsgAlarm>();
@@ -70,11 +91,11 @@ public class MsgAlarmController extends BaseController {
         if (!StringUtils.isBlank(msgAlarmVo.getAlarmMile())) {
             lw.eq(MsgAlarm::getAlarmMile, msgAlarmVo.getAlarmMile());
         }
-        if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginAlarmArrr())) {
-            lw.ge(MsgAlarm::getAlarmArrr, msgAlarmVo.getBeginAlarmArrr());
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginAlarmAttr())) {
+            lw.ge(MsgAlarm::getAlarmAttr, msgAlarmVo.getBeginAlarmAttr());
         }
-        if (!ObjectUtils.isEmpty(msgAlarmVo.getEndAlarmArrr())) {
-            lw.le(MsgAlarm::getAlarmArrr, msgAlarmVo.getEndAlarmArrr());
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getEndAlarmAttr())) {
+            lw.le(MsgAlarm::getAlarmAttr, msgAlarmVo.getEndAlarmAttr());
         }
         if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginAlarmTime())) {
             lw.ge(MsgAlarm::getAlarmTime, msgAlarmVo.getBeginAlarmTime());
@@ -90,20 +111,20 @@ public class MsgAlarmController extends BaseController {
     }
 
     @GetMapping(value = "/{id}")
-    @ApiOperation("根据报警信息ID获取详细信息")
+    @ApiOperation("根据报警信息ID获取详细信息")
     public AjaxResult getInfo(@PathVariable Long id) {
         return AjaxResult.success(msgAlarmService.getById(id));
     }
 
 
     @PutMapping(value = "/{id}")
-    @ApiOperation("根据报警信息ID解除报警")
+    @ApiOperation("根据报警信息ID解除报警")
     public AjaxResult updateIsLock(@PathVariable Long id) {
         MsgAlarm msgAlarm = msgAlarmService.getById(id);
         msgAlarm.setIsLock(1);
         msgAlarm.setUpdateBy(getUsername());
         msgAlarm.setReleasedBy(getUsername());
-        msgAlarm.setReleasedTime(System.currentTimeMillis());
+        msgAlarm.setReleasedTime(new Date());
         return AjaxResult.success(msgAlarmService.updateById(msgAlarm));
     }
 
@@ -111,7 +132,7 @@ public class MsgAlarmController extends BaseController {
     @ApiOperation("报警消息详情历史报警次数信息")
     public AjaxResult alarmHistoricalAlarm(@PathVariable Long alarmId) {
         QueryWrapper<MsgAlarmFrequency> wrapper = new QueryWrapper<>();
-        wrapper.eq("alarm_id",alarmId);
+        wrapper.eq("alarm_id", alarmId);
         wrapper.orderByDesc("alarm_time");
         List<MsgAlarmFrequency> list = msgAlarmFrequencyService.list(wrapper);
         return AjaxResult.success(list);
@@ -121,7 +142,7 @@ public class MsgAlarmController extends BaseController {
     @ApiOperation("视频服务历史报警信息")
     public AjaxResult videoHistoricalAlarm(@PathVariable Long alarmCamera) {
         QueryWrapper<MsgAlarm> wrapper = new QueryWrapper<>();
-        wrapper.eq("alarm_camera",alarmCamera);
+        wrapper.eq("alarm_camera", alarmCamera);
         wrapper.orderByDesc("alarm_time");
         List<MsgAlarm> list = msgAlarmService.list(wrapper);
         return AjaxResult.success(list);

+ 2 - 2
hazard-admin/src/main/java/com/ozs/web/controller/upload/UploadController.java

@@ -50,7 +50,7 @@ public class UploadController {
             if (StringUtils.isNotBlank(imageName)) {
                 LambdaQueryWrapper<MsgAlarm> lw = new LambdaQueryWrapper<MsgAlarm>();
                 if (!ObjectUtils.isEmpty(cameraCode)) {
-                    lw.eq(MsgAlarm::getCameraCode, cameraCode);
+                    lw.eq(MsgAlarm::getAlarmCamera, cameraCode);
                     lw.orderByDesc(MsgAlarm::getAlarmTime);
                 }
                 List<MsgAlarm> list = msgAlarmService.list(lw);
@@ -58,7 +58,7 @@ public class UploadController {
                 String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
                 String filename = IdUtils.fastSimpleUUID() + image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf("."));
                 SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
-                String format1 = dateFormat1.format(new Date(msgAlarm.getAlarmTime()));
+                String format1 = dateFormat1.format(msgAlarm.getAlarmTime());
                 String imgName = msgAlarm.getAlarmLine() + "/" + lineType + "/" + msgAlarm.getAlarmMile() + format1 + "/" + filename;
                 minioUtils.minIoClientUpload(image.getInputStream(), imgName);
                 uploadFile = "/" + msgAlarm.getAlarmLine() + "/" + lineType + "/" + msgAlarm.getAlarmMile() + "/" + format1 + "/" + filename;

+ 113 - 0
hazard-admin/src/main/java/com/ozs/web/core/config/Server4WebSocket.java

@@ -0,0 +1,113 @@
+package com.ozs.web.core.config;
+
+import com.alibaba.fastjson2.JSONObject;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.io.IOException;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * @Author : sunhh
+ * @create 2023/3/2 14:57
+ */
+@Component
+@ServerEndpoint(value = "/serverForWebSocket/{userId}")
+public class Server4WebSocket {
+    // 存储登录用户的 sid 以及 session
+    private static ConcurrentHashMap<String, Session> connections = new ConcurrentHashMap<>(32);
+    // 是WebSocket的Session
+    private Session session;
+    // 统计在线人数
+    private static AtomicInteger onlineCount = new AtomicInteger();
+
+    @OnOpen //事件 --登录的人.//当你登录之后建立连接,此方法便会执行
+    public void onopen(@PathParam("userId") String userId, Session session) {
+        this.session = session;
+        System.out.println("seesionId为" + session.getId());
+        if (connections.containsKey(userId)) {
+            connections.remove(userId);
+            connections.put(userId, session);
+        } else {
+            onlineCount.incrementAndGet();
+            connections.put(userId, session);
+            System.out.println("用户:" + userId + "-" + session.getId() + "上线了-" + session);
+            System.out.println("在线人数:" + onlineCount);
+        }
+        String content = new JSONObject(connections).toString();
+        System.out.println("在线用户信息:" + content);
+    }
+
+    @OnClose
+    public void onClose(Session session) {
+        for (String userId : connections.keySet()) {
+            if (connections.get(userId).equals(session)) {
+                System.out.println("用户:" + userId + "-关闭-" + session);
+                connections.remove(session);
+                onlineCount.decrementAndGet(); // 在线数减1
+            }
+        }
+    }
+
+    @OnMessage
+    public void onMessage(String msg, Session session) {
+        System.out.println("服务端收到客户端" + session.getId() + "的消息:" + msg);
+        // 客户端向服务端发送消息,然后再推送给其他的用户,可以在这里进行设置
+        try {
+            sendMessage(msg, session);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @OnError
+    public void onError(Session session, Throwable error) {
+        System.out.println("发生错误");
+        error.printStackTrace();
+    }
+
+    //推送
+    public void sendMessage(String msg, Session session) throws IOException {
+//        for (Session session1 : webSocketSet) {
+//            if (session != session1)
+//                session1.getBasicRemote().sendText(msg);
+//        }
+        System.out.println("推送:" + msg);
+        session.getBasicRemote().sendText(msg);
+    }
+
+    // 推送给指定的用户群
+    public void sendMsgToUsers(List<String> ids) {
+        ids.stream().forEach(s -> {
+            System.out.println("用户:" + s + "是否能够推送:" + connections.containsKey(s));
+            if (connections.containsKey(s)) {
+                if (connections.get(s).isOpen()) {
+                    try {
+                        System.out.println("开始推送");
+                        sendMessage("hello:" + s, connections.get(s));
+                    } catch (IOException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+        });
+    }
+
+    // 推送给全部在线用户
+    public void sendMsgToAll() {
+        connections.keySet().stream().forEach(s -> {
+            if (connections.get(s).isOpen()) {
+                try {
+                    System.out.println("开始推送");
+                    sendMessage("hello:" + s, connections.get(s));
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        });
+    }
+}

+ 21 - 0
hazard-admin/src/main/java/com/ozs/web/core/config/WebSocketService.java

@@ -0,0 +1,21 @@
+package com.ozs.web.core.config;
+
+import java.util.List;
+
+/**
+ * @Author : sunhh
+ * @create 2023/3/2 15:01
+ */
+public class WebSocketService {
+    // 推送给指定的在线的用户
+    public void sendMsgToUsers(List<String> ids) {
+        Server4WebSocket server4WebSocket = new Server4WebSocket();
+        server4WebSocket.sendMsgToUsers(ids);
+    }
+
+    // 推送给所有用户
+    public void sendMsgToAll() {
+        Server4WebSocket server4WebSocket = new Server4WebSocket();
+        server4WebSocket.sendMsgToAll();
+    }
+}

+ 18 - 0
hazard-admin/src/main/java/com/ozs/web/core/config/WebsocketConfig.java

@@ -0,0 +1,18 @@
+package com.ozs.web.core.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
+
+/**
+ * @Author : sunhh
+ * @create 2023/3/2 10:41
+ */
+
+@Configuration
+public class WebsocketConfig {
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter() {
+        return new ServerEndpointExporter();
+    }
+}

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

@@ -8,10 +8,12 @@ import com.ozs.common.utils.ApiTokenUtils;
 import com.ozs.common.utils.AppTokenUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.stateSecrets.SM4Utils;
+import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseDeviceDynamicManagement;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAlarmFrequency;
 import com.ozs.service.entity.SvcAddress;
+import com.ozs.service.service.BaseCameraManagementService;
 import com.ozs.service.service.BaseDeviceDynamicManagementService;
 import com.ozs.service.service.MsgAlarmFrequencyService;
 import com.ozs.service.service.MsgAlarmService;
@@ -58,6 +60,8 @@ public class GeoHazardMonitorTokenController {
     MsgAlarmFrequencyService msgAlarmFrequencyService;
     @Autowired
     SvcAddressService svcAddressService;
+    @Autowired
+    BaseCameraManagementService baseCameraManagementService;
 
 
     /**
@@ -65,7 +69,7 @@ public class GeoHazardMonitorTokenController {
      *
      * @return
      */
-    @PostMapping("/IPAddress/token")
+    @PostMapping("/token")
     public String getWebToken(@RequestBody SvcAddress svcAddress) {
         // 生成令牌
         JSONObject jsonObject = new JSONObject();
@@ -85,52 +89,33 @@ public class GeoHazardMonitorTokenController {
             if (objects.size() > 0) {
                 RespGeoHazardMonitorVo respGeoHazardMonitorVo = new RespGeoHazardMonitorVo();
                 respGeoHazardMonitorVo.setAccessToken(objects.get(1));
-                respGeoHazardMonitorVo.setExpiresIn(Long.valueOf(objects.get(0)));
+                Long l = Long.valueOf(objects.get(0));
+                respGeoHazardMonitorVo.setExpiresIn(l / 1000);
                 respGeoHazardMonitorVo.setTokenType("令牌类型");
-                jsonObject.put("resultCode",1);
-                jsonObject.put("message","成功");
-                jsonObject.put("data",respGeoHazardMonitorVo);
+                jsonObject.put("resultCode", 1);
+                jsonObject.put("message", "成功");
+                jsonObject.put("data", respGeoHazardMonitorVo);
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             } else {
-                jsonObject.put("resultCode",2);
-                jsonObject.put("message","失败");
-                jsonObject.put("data","生成token失败");
+                jsonObject.put("resultCode", 2);
+                jsonObject.put("message", "失败");
+                jsonObject.put("data", "生成token失败");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             }
         } else {
-            jsonObject.put("resultCode",2);
-            jsonObject.put("message","失败");
-            jsonObject.put("data","参数验证失败");
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "参数验证失败");
             return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
         }
     }
 
-    /**
-     * 获取app访问令牌
-     *
-     * @return
-     */
-    @PostMapping("/App/token")
-    public Result getAppToken(@RequestParam("parameter") String parameter) {
-        // 生成令牌
-        ArrayList<String> objects = appTokenUtils.createGeoHazardMonitorToken();
-        if (objects.size() > 0) {
-            RespGeoHazardMonitorVo respGeoHazardMonitorVo = new RespGeoHazardMonitorVo();
-            respGeoHazardMonitorVo.setAccessToken(objects.get(1));
-            respGeoHazardMonitorVo.setExpiresIn(Long.valueOf(objects.get(0)));
-            respGeoHazardMonitorVo.setTokenType("令牌类型");
-            return new Result(1, "成功", respGeoHazardMonitorVo);
-        } else {
-            return new Result(2, "失败", "生成token失败!!");
-        }
-    }
-
     /**
      * 报警信息数据传输
      *
      * @return // 生成令牌
      */
-    @PostMapping("/IPAddress/alarm")
+    @PostMapping("/alarm")
     public String alarm(@RequestParam("parameter") String parameter, HttpServletRequest request) {
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         JSONObject jsonObject = new JSONObject();
@@ -138,6 +123,14 @@ public class GeoHazardMonitorTokenController {
             String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
             ReqMsgAlarmVo reqMsgAlarmVo = JSON.parseObject(s, ReqMsgAlarmVo.class);
             RespMsgAlarmVo respMsgAlarmVo = new RespMsgAlarmVo();
+            LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<BaseCameraManagement>();
+            if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmCamera())) {
+                wrapper.eq(BaseCameraManagement::getCameraCode, reqMsgAlarmVo.getAlarmCamera());
+            }
+            BaseCameraManagement  baseCameraManagement = baseCameraManagementService.getOne(wrapper);
+            if (ObjectUtils.isEmpty(reqMsgAlarmVo.getLineDir())) {
+                reqMsgAlarmVo.setLineDir(baseCameraManagement.getLineDir());
+            }
             LambdaQueryWrapper<MsgAlarm> lw = new LambdaQueryWrapper<MsgAlarm>();
             if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmId())) {
                 lw.eq(MsgAlarm::getAlarmId, reqMsgAlarmVo.getAlarmId());
@@ -147,9 +140,11 @@ public class GeoHazardMonitorTokenController {
                 MsgAlarm msgAlarm = new MsgAlarm();
                 BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarm);
 //                msgAlarm.setCreateBy(getUsername());
+                msgAlarm.setAlarmLine(baseCameraManagement.getRailwayName());
+                msgAlarm.setAlarmTime(new Date(reqMsgAlarmVo.getAlarmTime()));
                 msgAlarmService.save(msgAlarm);
                 respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
-                respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getCameraCode());
+                respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
                 respMsgAlarmVo.setIsCancel(2);
                 respMsgAlarmVo.setCancelTime(null);
             } else {
@@ -158,18 +153,21 @@ public class GeoHazardMonitorTokenController {
 //                msgAlarmVice.setCreateBy(getUsername());
                 msgAlarmFrequencyService.save(msgAlarmVice);
                 respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
-                respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getCameraCode());
+                respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
                 respMsgAlarmVo.setIsCancel(alarm.getIsLock());
-                respMsgAlarmVo.setCancelTime(alarm.getReleasedTime());
+                if (!ObjectUtils.isEmpty(alarm.getReleasedTime())) {
+                    respMsgAlarmVo.setCancelTime(alarm.getReleasedTime().getTime());
+                }
+                respMsgAlarmVo.setCancelTime(null);
             }
-            jsonObject.put("resultCode",1);
-            jsonObject.put("message","成功");
-            jsonObject.put("data",respMsgAlarmVo);
+            jsonObject.put("resultCode", 1);
+            jsonObject.put("message", "成功");
+            jsonObject.put("data", respMsgAlarmVo);
             return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
         } else {
-            jsonObject.put("resultCode",2);
-            jsonObject.put("message","失败");
-            jsonObject.put("data","token验证失败");
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "失败");
+            jsonObject.put("data", "token验证失败");
             return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
         }
     }
@@ -180,8 +178,9 @@ public class GeoHazardMonitorTokenController {
      *
      * @return
      */
-    @PostMapping("/IPAddress/device/state")
-    public String deviceState(@RequestParam("parameter") String parameter, HttpServletRequest request) throws ParseException {
+    @PostMapping("/device/state")
+    public String deviceState(@RequestParam("parameter") String parameter, HttpServletRequest request) throws
+            ParseException {
         JSONObject jsonObject = new JSONObject();
         String token = apiTokenUtils.getGeoHazardMonitorToken(request);
         if (StringUtils.isNotEmpty(token)) {
@@ -193,18 +192,19 @@ public class GeoHazardMonitorTokenController {
             BaseDeviceDynamicManagement baseDynamicManagement = baseDeviceDynamicManagementService.getOne(lw);
             baseDynamicManagement.setElectricity(reqDeviceVo.getElectricity());
             baseDynamicManagement.setUpdateTime(new Date(reqDeviceVo.getTime()));
+            baseDynamicManagement.setCameraState(reqDeviceVo.getCameraState());
             if (baseDeviceDynamicManagementService.updateById(baseDynamicManagement)) {
-                jsonObject.put("resultCode",1);
-                jsonObject.put("message","成功");
+                jsonObject.put("resultCode", 1);
+                jsonObject.put("message", "成功");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             }
-            jsonObject.put("resultCode",2);
-            jsonObject.put("message","设备状态数据传输失败");
-            return  SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "设备状态数据传输失败");
+            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
         } else {
-            jsonObject.put("resultCode",2);
-            jsonObject.put("message","token验证失败");
+            jsonObject.put("resultCode", 2);
+            jsonObject.put("message", "token验证失败");
             return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
         }
     }
-}
+}

+ 26 - 20
hazard-sdk/src/main/java/com/ozs/controller/upload/UploadController.java

@@ -5,7 +5,9 @@ import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.utils.MinioUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.uuid.IdUtils;
+import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.service.BaseCameraManagementService;
 import com.ozs.service.service.MsgAlarmService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -22,7 +24,6 @@ import java.util.Date;
 import java.util.List;
 
 @RestController
-@RequestMapping("/system/upLoad")
 public class UploadController {
 
     @Value("${minio.bucketName}")
@@ -31,38 +32,43 @@ public class UploadController {
     @Resource
     MinioUtils minioUtils;
     @Autowired
-    MsgAlarmService msgAlarmService;
+    BaseCameraManagementService baseCameraManagementService;
 
 
-    @PostMapping("/upLoadImage")
-    public AjaxResult upLoadImage(@RequestParam("file") MultipartFile image,
+    @PostMapping("/putObject")
+    public AjaxResult upLoadImage(@RequestParam("stream") MultipartFile stream,
                                   @RequestParam(value = "cameraCode", required = false) String cameraCode,
-                                  @RequestParam(value = "lineType", required = false) String lineType) throws Exception {
-        if (image.isEmpty()) {
+                                  @RequestParam(value = "size", required = false) Long size,
+                                  @RequestParam(value = "contentType", required = false) String contentType,
+                                  @RequestParam(value = "lineDir", required = false) Integer lineDir) throws Exception {
+        if (stream.isEmpty()) {
             return AjaxResult.error("不能上传空文件哦");
         }
         //图片保存路径
         //String fileUploadPath ="/"+userId+"/image";
         String uploadFile = null;
-        if (image != null && !image.isEmpty()) {
+        if (stream != null && !stream.isEmpty()) {
 
-            String imageName = image.getOriginalFilename();
+            String imageName = stream.getOriginalFilename();
             if (StringUtils.isNotBlank(imageName)) {
-                LambdaQueryWrapper<MsgAlarm> lw = new LambdaQueryWrapper<MsgAlarm>();
+                LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<BaseCameraManagement>();
                 if (!ObjectUtils.isEmpty(cameraCode)) {
-                    lw.eq(MsgAlarm::getCameraCode, cameraCode);
-                    lw.orderByDesc(MsgAlarm::getAlarmTime);
+                    wrapper.eq(BaseCameraManagement::getCameraCode, cameraCode);
                 }
-                List<MsgAlarm> list = msgAlarmService.list(lw);
-                MsgAlarm msgAlarm = list.get(0);
-                String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
-                String filename = IdUtils.fastSimpleUUID() + image.getOriginalFilename().substring(image.getOriginalFilename().lastIndexOf("."));
+                List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
+                BaseCameraManagement baseCameraManagement = list.get(0);
+                String filename = IdUtils.fastSimpleUUID() + stream.getOriginalFilename().substring(stream.getOriginalFilename().lastIndexOf("."));
                 SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
-                String format1 = dateFormat1.format(new Date(msgAlarm.getAlarmTime()));
-                String imgName = msgAlarm.getAlarmLine() + "/" + lineType + "/" + msgAlarm.getAlarmMile() + format1 + "/" + filename;
-                minioUtils.minIoClientUpload(image.getInputStream(), imgName);
-                uploadFile = "/" + msgAlarm.getAlarmLine() + "/" + lineType + "/" + msgAlarm.getAlarmMile() + "/" + format1 + "/" + filename;
-
+                String format1 = dateFormat1.format(new Date());
+                Integer line = 0;
+                if (!ObjectUtils.isEmpty(lineDir)) {
+                    line = lineDir;
+                } else {
+                    line = baseCameraManagement.getLineDir();
+                }
+                String imgName = baseCameraManagement.getRemark() + "/" + line + "/" + baseCameraManagement.getInstallMile() +"/"+ format1 + "/" + filename;
+                minioUtils.minIoClientUpload(stream.getInputStream(), imgName);
+                uploadFile = "/" + baseCameraManagement.getRemark() + "/" + line + "/" + baseCameraManagement.getInstallMile() +"/"+ format1 + "/" + filename;
             }
         } else {
             return AjaxResult.error("上传功能出错");

+ 6 - 1
hazard-sdk/src/main/java/com/ozs/vo/ReqDeviceVo.java

@@ -1,6 +1,7 @@
 package com.ozs.vo;
 
 import lombok.Data;
+import org.omg.PortableInterceptor.INACTIVE;
 
 import java.io.Serializable;
 
@@ -14,7 +15,7 @@ public class ReqDeviceVo implements Serializable {
     /**
      * 相机编码
      */
-    private Integer cameraCode;
+    private String cameraCode;
     /**
      * 时间
      */
@@ -23,4 +24,8 @@ public class ReqDeviceVo implements Serializable {
      * 剩余电量
      */
     private Integer electricity;
+    /**
+     * 剩余电量
+     */
+    private Integer cameraState;
 }

+ 2 - 2
hazard-sdk/src/main/java/com/ozs/vo/ReqMsgAlarmVo.java

@@ -23,7 +23,7 @@ public class ReqMsgAlarmVo implements Serializable {
     private Long alarmTime;
 
     /** 相机编码 */
-    private Integer cameraCode;
+    private Integer alarmCamera;
 
     /** 报警里程位置 */
     private String alarmMile;
@@ -41,7 +41,7 @@ public class ReqMsgAlarmVo implements Serializable {
     private Integer alarmType;
 
     /** 报警病害属性(可以给出泥石流的框定范围) */
-    private String alarmArrr;
+    private String alarmAttr;
     
     /** 报警图片地址 */
     private String imageUrl;