浏览代码

代码合并

gao.qiang 1 周之前
父节点
当前提交
1edcf96268
共有 59 个文件被更改,包括 1102 次插入313 次删除
  1. 2 0
      .idea/encodings.xml
  2. 17 12
      .idea/jarRepositories.xml
  3. 13 13
      business-service/src/main/java/com/ozs/service/entity/MsgAlarm.java
  4. 13 13
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmCloud.java
  5. 1 1
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmFrequency.java
  6. 1 1
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmFrequencyCloud.java
  7. 1 1
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmFrequencyMatter.java
  8. 10 10
      business-service/src/main/java/com/ozs/service/entity/MsgAlarmMatter.java
  9. 62 0
      business-service/src/main/java/com/ozs/service/entity/UserStateStatistics.java
  10. 13 13
      business-service/src/main/java/com/ozs/service/entity/vo/AlarmStatisticDto.java
  11. 8 8
      business-service/src/main/java/com/ozs/service/entity/vo/AlarmStatisticVo.java
  12. 1 1
      business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraManagementHomeVo.java
  13. 1 1
      business-service/src/main/java/com/ozs/service/entity/vo/HistoricalAlarmVo.java
  14. 1 1
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmMatterVo.java
  15. 7 7
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmResp.java
  16. 2 2
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmVo.java
  17. 3 3
      business-service/src/main/java/com/ozs/service/entity/vo/ReleaseAlarmVo.java
  18. 36 0
      business-service/src/main/java/com/ozs/service/entity/vo/UserStateStatisticsResp.java
  19. 9 0
      business-service/src/main/java/com/ozs/service/mapper/BaseUserMapper.java
  20. 0 4
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmCloudMapper.java
  21. 1 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAppPushMapper.java
  22. 27 0
      business-service/src/main/java/com/ozs/service/mapper/UserStateStatisticsMapper.java
  23. 25 0
      business-service/src/main/java/com/ozs/service/service/UserStateStatisticsService.java
  24. 53 17
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmCloudServiceImpl.java
  25. 2 2
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java
  26. 47 0
      business-service/src/main/java/com/ozs/service/service/impl/UserStateStatisticsServiceImpl.java
  27. 65 0
      business-service/src/main/resources/mapper/service/BaseUserMapper.xml
  28. 1 41
      business-service/src/main/resources/mapper/service/MsgAlarmCloudMapper.xml
  29. 4 1
      business-service/src/main/resources/mapper/service/MsgAlarmMapper.xml
  30. 94 0
      business-service/src/main/resources/mapper/service/UserStateStatisticsMapper.xml
  31. 43 28
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
  32. 5 5
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraVersionController.java
  33. 3 2
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseDeviceResumeController.java
  34. 2 2
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseElectricityResumeController.java
  35. 12 10
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseRailwayManagementController.java
  36. 91 32
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  37. 15 4
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmMatterController.java
  38. 67 0
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/UserStateStatisticsController.java
  39. 18 0
      hazard-admin/src/main/java/com/ozs/web/controller/common/CommonController.java
  40. 2 1
      hazard-admin/src/main/java/com/ozs/web/controller/monitor/CameraUpdateLogController.java
  41. 4 3
      hazard-admin/src/main/java/com/ozs/web/controller/monitor/SysLoginInfoController.java
  42. 4 3
      hazard-admin/src/main/java/com/ozs/web/controller/monitor/SysOperlogController.java
  43. 1 1
      hazard-admin/src/main/java/com/ozs/web/controller/monitor/SysUserOnlineController.java
  44. 6 5
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysConfigController.java
  45. 8 3
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java
  46. 5 4
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysDictDataController.java
  47. 6 5
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysDictTypeController.java
  48. 4 3
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysMenuController.java
  49. 3 3
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysProfileController.java
  50. 14 14
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysRoleController.java
  51. 17 17
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java
  52. 21 2
      hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java
  53. 25 1
      hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketServer.java
  54. 7 0
      hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java
  55. 186 0
      hazard-admin/src/main/java/com/ozs/web/core/util/InsertUserStateUtil.java
  56. 5 5
      hazard-admin/src/main/resources/application-druid.yml
  57. 3 3
      hazard-admin/src/main/resources/application.yml
  58. 4 4
      hazard-sdk/src/main/java/com/ozs/controller/matter/MatterMonitorTokenController.java
  59. 1 1
      hazard-sdk/src/main/resources/application.yml

+ 2 - 0
.idea/encodings.xml

@@ -7,5 +7,7 @@
     <file url="file://$PROJECT_DIR$/hazard-admin/src/main/resources" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/hazard-sdk/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/hazard-sdk/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
   </component>
 </project>

+ 17 - 12
.idea/jarRepositories.xml

@@ -1,16 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://maven.aliyun.com/repository/public" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
-    </remote-repository>
     <remote-repository>
       <option name="id" value="public" />
       <option name="name" value="aliyun nexus" />
@@ -18,8 +8,8 @@
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
@@ -31,11 +21,21 @@
       <option name="name" value="Nexus Repository" />
       <option name="url" value="http://10.21.171.91:8084/nexus/content/groups/public/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="custom_group" />
+      <option name="name" value="Nexus Repository" />
+      <option name="url" value="http://47.94.132.61:18881/repository/custom_group/" />
+    </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
       <option name="name" value="Central Repository" />
       <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
     <remote-repository>
       <option name="id" value="custom_group" />
       <option name="name" value="Nexus Repository" />
@@ -46,5 +46,10 @@
       <option name="name" value="JBoss Community repository" />
       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://maven.aliyun.com/repository/public" />
+    </remote-repository>
   </component>
 </project>

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

@@ -103,19 +103,19 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     private String imageUrl;
 
     /**
-     * 解除
+     * 处置
      */
     private String releasedBy;
 
     /**
-     * 解除时间
+     * 处置时间
      */
     @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 releasedTime;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 
@@ -148,21 +148,21 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     private String remark;
 
     /**
-     * 解除报警类型1实报2误报
+     * 处置报警类型1实报2误报
      */
     private Integer releasedType;
 
     /**
-     * 解除原因
+     * 处置原因
      */
-    @Excel(name = "解除原因")
+    @Excel(name = "处置原因")
     private String releasedReason;
 
     /**
-     * 解除报警类型名称   1实报2误报
+     * 处置报警类型名称   1实报2误报
      */
     @TableField(exist = false)
-    @Excel(name = "解除报警类型")
+    @Excel(name = "处置报警类型")
     private String releasedTypeName;
 
     /**
@@ -204,10 +204,10 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     private List<String> imageUrls;
 
     /**
-     * 解除人真实姓名
+     * 处置人真实姓名
      */
     @TableField(exist = false)
-    @Excel(name = "解除人")
+    @Excel(name = "处置人")
     private String releasedByName;
 
     /**
@@ -237,9 +237,9 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     private String alarmTypeName;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
-    @Excel(name = "报警是否解除")
+    @Excel(name = "报警是否处置")
     @TableField(exist = false)
     private String  isLockName;
     

+ 13 - 13
business-service/src/main/java/com/ozs/service/entity/MsgAlarmCloud.java

@@ -93,19 +93,19 @@ public class MsgAlarmCloud extends BaseEntity implements Serializable {
     private String imageUrl;
 
     /**
-     * 解除
+     * 处置
      */
     private String releasedBy;
 
     /**
-     * 解除时间
+     * 处置时间
      */
     @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 releasedTime;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 
@@ -138,21 +138,21 @@ public class MsgAlarmCloud extends BaseEntity implements Serializable {
     private String remark;
 
     /**
-     * 解除报警类型1实报2误报
+     * 处置报警类型1实报2误报
      */
     private Integer releasedType;
 
     /**
-     * 解除原因
+     * 处置原因
      */
-    @Excel(name = "解除原因")
+    @Excel(name = "处置原因")
     private String releasedReason;
 
     /**
-     * 解除报警类型名称   1实报2误报
+     * 处置报警类型名称   1实报2误报
      */
     @TableField(exist = false)
-    @Excel(name = "解除报警类型")
+    @Excel(name = "处置报警类型")
     private String releasedTypeName;
 
     /**
@@ -194,10 +194,10 @@ public class MsgAlarmCloud extends BaseEntity implements Serializable {
     private List<String> imageUrls;
 
     /**
-     * 解除人真实姓名
+     * 处置人真实姓名
      */
     @TableField(exist = false)
-    @Excel(name = "解除人")
+    @Excel(name = "处置人")
     private String releasedByName;
 
     /**
@@ -227,9 +227,9 @@ public class MsgAlarmCloud extends BaseEntity implements Serializable {
     private String alarmTypeName;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
-    @Excel(name = "报警是否解除")
+    @Excel(name = "报警是否处置")
     @TableField(exist = false)
     private String  isLockName;
 

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

@@ -100,7 +100,7 @@ public class MsgAlarmFrequency extends BaseEntity implements Serializable {
     private String remark;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     @TableField(exist = false)
     private Integer isLock;

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

@@ -89,7 +89,7 @@ public class MsgAlarmFrequencyCloud extends BaseEntity implements Serializable {
     private String remark;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     @TableField(exist = false)
     private Integer isLock;

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

@@ -109,7 +109,7 @@ public class MsgAlarmFrequencyMatter extends BaseEntity implements Serializable
     private String remark;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     @TableField(exist = false)
     private Integer isLock;

+ 10 - 10
business-service/src/main/java/com/ozs/service/entity/MsgAlarmMatter.java

@@ -95,19 +95,19 @@ public class MsgAlarmMatter extends BaseEntity implements Serializable {
     private String alarmAttr;
 
     /**
-     * 解除
+     * 处置
      */
     private String releasedBy;
 
     /**
-     * 解除时间
+     * 处置时间
      */
     @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 releasedTime;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isRelease;
 
@@ -139,9 +139,9 @@ public class MsgAlarmMatter extends BaseEntity implements Serializable {
     private String remark;
 
     /**
-     * 解除内容
+     * 处置内容
      */
-    @Excel(name = "解除内容")
+    @Excel(name = "处置内容")
     private String releaseContent;
 
     /**
@@ -187,10 +187,10 @@ public class MsgAlarmMatter extends BaseEntity implements Serializable {
     private String imageUrlStr;
 
     /**
-     * 解除人真实姓名
+     * 处置人真实姓名
      */
     @TableField(exist = false)
-    @Excel(name = "解除人")
+    @Excel(name = "处置人")
     private String releasedByName;
 
     /**
@@ -220,9 +220,9 @@ public class MsgAlarmMatter extends BaseEntity implements Serializable {
     private String alarmTypeName;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
-    @Excel(name = "报警是否解除")
+    @Excel(name = "报警是否处置")
     @TableField(exist = false)
     private String  isReleaseName;
 

+ 62 - 0
business-service/src/main/java/com/ozs/service/entity/UserStateStatistics.java

@@ -0,0 +1,62 @@
+package com.ozs.service.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+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;
+
+/**
+ * <p>
+ * 用户状态统计表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-17
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class UserStateStatistics extends BaseEntity implements Serializable{
+
+    private static final long serialVersionUID = 1L;
+
+    
+    /**
+     * 主键ID
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户ID
+     */
+    private String userId;
+
+    /**
+     * 昵称
+     */
+    private String nikeName;
+
+
+    /**
+     * 账号
+     */
+    private String userName;
+
+
+    /**
+     * 用户状态(1在线2离线)
+     */
+    private Integer isDisable;
+
+
+
+
+}

+ 13 - 13
business-service/src/main/java/com/ozs/service/entity/vo/AlarmStatisticDto.java

@@ -89,38 +89,38 @@ public class AlarmStatisticDto {
     private String imageUrl;
 
     /**
-     * 解除
+     * 处置
      */
     private String releasedBy;
 
     /**
-     * 解除人真实姓名
+     * 处置人真实姓名
      */
-    @Excel(name = "解除人")
+    @Excel(name = "处置人")
     private String releasedByName;
 
     /**
-     * 解除时间
+     * 处置时间
      */
     @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 releasedTime;
 
     /**
-     * 解除原因
+     * 处置原因
      */
-    @Excel(name = "解除原因")
+    @Excel(name = "处置原因")
     private String releasedReason;
 
     /**
-     * 解除报警类型1实报2误报
+     * 处置报警类型1实报2误报
      */
     private Integer releasedType;
 
     /**
-     * 解除报警类型名称   1实报2误报
+     * 处置报警类型名称   1实报2误报
      */
-    @Excel(name = "解除报警类型")
+    @Excel(name = "处置报警类型")
     private String releasedTypeName;
 
     /**
@@ -138,14 +138,14 @@ public class AlarmStatisticDto {
     private String alarmMiles;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
-    @Excel(name = "报警是否解除")
+    @Excel(name = "报警是否处置")
     private String isLockName;
 
     /**

+ 8 - 8
business-service/src/main/java/com/ozs/service/entity/vo/AlarmStatisticVo.java

@@ -46,17 +46,17 @@ public class AlarmStatisticVo {
     private String remark;
 
     /**
-     * 解除原因
+     * 处置原因
      */
     private String releasedReason;
 
     /**
-     * 解除报警类型1实报2误报
+     * 处置报警类型1实报2误报
      */
     private Integer releasedType;
 
     /**
-     * 解除报警类型名称   1实报2误报
+     * 处置报警类型名称   1实报2误报
      */
     private String releasedTypeName;
 
@@ -105,17 +105,17 @@ public class AlarmStatisticVo {
     private String imageUrl;
 
     /**
-     * 解除
+     * 处置
      */
     private String releasedBy;
 
     /**
-     * 解除
+     * 处置
      */
     private String releasedByName;
 
     /**
-     * 解除时间
+     * 处置时间
      */
     @JsonFormat(
             pattern = "yyyy-MM-dd HH:mm:ss"
@@ -123,12 +123,12 @@ public class AlarmStatisticVo {
     private Date releasedTime;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private String isLockName;
 

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

@@ -150,7 +150,7 @@ public class BaseCameraManagementHomeVo extends BaseEntity implements Serializab
     private Integer isDisable;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 }

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

@@ -24,7 +24,7 @@ public class HistoricalAlarmVo implements Serializable {
 
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 }

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

@@ -93,7 +93,7 @@ public class MsgAlarmMatterVo extends PageVo implements Serializable {
     private String endAlarmTime;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isRelease;
     private String isReleaseName;

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

@@ -88,12 +88,12 @@ public class MsgAlarmResp implements Serializable {
     private String installLongitude;
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 
     /**
-     * 解除时间
+     * 处置时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date releasedTime;
@@ -118,12 +118,12 @@ public class MsgAlarmResp implements Serializable {
     private String deptName;
 
     /**
-     * 解除报警类型1实报2误报
+     * 处置报警类型1实报2误报
      */
     private Integer releasedType;
 
     /**
-     * 解除原因
+     * 处置原因
      */
     private String releasedReason;
 
@@ -137,12 +137,12 @@ public class MsgAlarmResp implements Serializable {
      */
     private String content;
     /**
-     * 解除人真实姓名
+     * 处置人真实姓名
      */
     private String releasedByName;
 
     /**
-     * 解除报警类型名称   1实报2误报
+     * 处置报警类型名称   1实报2误报
      */
     private String releasedTypeName;
 
@@ -182,7 +182,7 @@ public class MsgAlarmResp implements Serializable {
      */
     private String versionName;
     /**
-     * 未解除报警总数
+     * 未处置报警总数
      */
     private  Long unlockNum;
     /**

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

@@ -61,7 +61,7 @@ public class MsgAlarmVo extends PageVo implements Serializable {
 
 
     /**
-     * 报警是否解除 1已解除2未解除
+     * 报警是否处置 1已处置2未处置
      */
     private Integer isLock;
 
@@ -90,7 +90,7 @@ public class MsgAlarmVo extends PageVo implements Serializable {
     private String endMiles;
 
     /**
-     * 解除报警类型1实报2误报
+     * 处置报警类型1实报2误报
      */
     private Integer releasedType;
 

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

@@ -15,15 +15,15 @@ public class ReleaseAlarmVo implements Serializable {
      */
     private String alarmId;
     /**
-     * 解除报警时间
+     * 处置报警时间
      */
     private Long releaseTime;
     /**
-     * 解除原因(内容)
+     * 处置原因(内容)
      */
     private String releaseContent;
     /**
-     * 解除
+     * 处置
      */
     private String operator;
 }

+ 36 - 0
business-service/src/main/java/com/ozs/service/entity/vo/UserStateStatisticsResp.java

@@ -0,0 +1,36 @@
+package com.ozs.service.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.vo.PageVo;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author Administrator
+ * 设备状态履历
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class UserStateStatisticsResp extends PageVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @Excel(name = "姓名")
+    private String nikeName;
+    @Excel(name = "账号")
+    private String userName;
+    @Excel(name = "用户状态名称")
+    private String isDisableName;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime ;
+    private String userId;
+    private Integer isDisable;
+    private Integer faultNum;
+}

+ 9 - 0
business-service/src/main/java/com/ozs/service/mapper/BaseUserMapper.java

@@ -5,6 +5,7 @@ import com.ozs.service.entity.BaseUser;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
@@ -39,4 +40,12 @@ public interface BaseUserMapper extends BaseMapper<BaseUser> {
     List<String> getRoleName(@Param("userId")String userId);
 
     BaseUser getUserById(@Param("id")Long id);
+
+    List<String> getUserIdsLists();
+
+    List<BaseUser> getUsersByIds(@Param("userIds") List<String> userIds);
+
+    List<String> getUserIdsAll();
+
+    List<String> getUserLists();
 }

+ 0 - 4
business-service/src/main/java/com/ozs/service/mapper/MsgAlarmCloudMapper.java

@@ -7,7 +7,6 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -48,7 +47,4 @@ public interface MsgAlarmCloudMapper extends BaseMapper<MsgAlarmCloud> {
     List<MsgAlarmCloud> queryAlarmInfoByAfterTenMinute();
 
     List<MsgAlarmCloud> selectMsgAlarmListHome(MsgAlarmVo msgAlarmVo);
-
-    // 新的方法,直接查询统计结果
-    Map<String, Integer> selectAlarmStatistics(MsgAlarmVo msgAlarmVo);
 }

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

@@ -1,6 +1,7 @@
 package com.ozs.service.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAlarmCloud;
 import com.ozs.service.entity.MsgAppPush;
 import com.ozs.service.entity.vo.MsgAlarmVo;

+ 27 - 0
business-service/src/main/java/com/ozs/service/mapper/UserStateStatisticsMapper.java

@@ -0,0 +1,27 @@
+package com.ozs.service.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.UserStateStatistics;
+import com.ozs.service.entity.vo.DeviceStateResp;
+import com.ozs.service.entity.vo.UserStateStatisticsResp;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 相机台账管理表 Mapper 接口
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-17
+ */
+@Mapper
+public interface UserStateStatisticsMapper extends BaseMapper<UserStateStatistics> {
+
+    List<UserStateStatisticsResp> getUserStateStatistics(@Param("startTime")String startTime, @Param("endTime")String endTime,@Param("userId") String userId);
+
+    List<UserStateStatisticsResp> userStateStatisticsPage(UserStateStatisticsResp userStateStatisticsResp);
+}

+ 25 - 0
business-service/src/main/java/com/ozs/service/service/UserStateStatisticsService.java

@@ -0,0 +1,25 @@
+package com.ozs.service.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.service.entity.UserStateStatistics;
+import com.ozs.service.entity.vo.DeviceStateResp;
+import com.ozs.service.entity.vo.UserStateStatisticsResp;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 相机台账管理表 服务类
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-17
+ */
+public interface UserStateStatisticsService extends IService<UserStateStatistics> {
+    List<UserStateStatisticsResp> getUserStateStatistics(String startTime, String endTime,String userId );
+
+    List<UserStateStatisticsResp> exportUserStateStatistics(String startTime, String endTime,String userId);
+
+    IPage<UserStateStatisticsResp> userStateStatisticsPage(UserStateStatisticsResp userStateStatisticsResp);
+}

+ 53 - 17
business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmCloudServiceImpl.java

@@ -121,7 +121,13 @@ public class MsgAlarmCloudServiceImpl extends ServiceImpl<MsgAlarmCloudMapper, M
         Integer countCamera = baseCameraManagementMapper.countCamera(msgAlarmVo);
         // 累计报警次数
         Integer countMsg = msgAlarmCloudMapper.countMsg(msgAlarmVo);
+        // 处置报警
+//        LambdaQueryWrapper<MsgAlarm> lwJC = new LambdaQueryWrapper<MsgAlarm>();
+//        lwJC.eq(MsgAlarm::getIsLock, "1");
         Integer countJC = msgAlarmCloudMapper.countJC(msgAlarmVo);
+        // 未处置报警
+//        LambdaQueryWrapper<MsgAlarm> lwWJC = new LambdaQueryWrapper<MsgAlarm>();
+//        lwWJC.eq(MsgAlarm::getIsLock, "2");
         Integer countWJC = msgAlarmCloudMapper.countWJC(msgAlarmVo);
         map.put("countCamera", countCamera);
         map.put("countMsg", countMsg);
@@ -235,25 +241,55 @@ public class MsgAlarmCloudServiceImpl extends ServiceImpl<MsgAlarmCloudMapper, M
 
     @Override
     public AjaxResult alarmStatistics(MsgAlarmVo msgAlarmVo1) {
-        // 执行合并查询以获取统计结果
-        Map<String, Integer> statistics = msgAlarmCloudMapper.selectAlarmStatistics(msgAlarmVo1);
-
-        // 创建返回结果的 map
-        Map<String, Integer> results = new HashMap<>();
-        if (statistics != null) {
-            results.put("highAlarmCount", statistics.get("highAlarmCount"));
-            results.put("puAlarmCount", statistics.get("puAlarmCount"));
-            results.put("highUnresolvedCount", statistics.get("highUnresolvedCount"));
-            results.put("puUnresolvedCount", statistics.get("puUnresolvedCount"));
+        int count = 0;
+        int unresolvedCount = 0;
+        //找出所有报警数据
+        List<MsgAlarmCloud> list = msgAlarmCloudMapper.selectMsgAlarmList(msgAlarmVo1);
+        //未处置的报警
+        msgAlarmVo1.setIsLock(2);
+        List<MsgAlarmCloud> alarmList = msgAlarmCloudMapper.selectMsgAlarmList(msgAlarmVo1);
+        HashMap<String, Integer> map = new HashMap<>();
+        if (!ObjectUtils.isEmpty(list)) {
+            //获取所有报警的相机编码
+            //找出所有报警数据 1=高铁的数量
+            count = (int) list.stream()
+                    .map(base -> baseCameraManagementMapper.selectOne(new LambdaQueryWrapper<BaseCameraManagement>()
+                            .eq(BaseCameraManagement::getCameraCode, base.getCameraCode())))
+                    .filter(Objects::nonNull)  // 确保 management 不是 null
+                    .map(management -> baseRailwayManagementMapper.selectOne(new LambdaQueryWrapper<BaseRailwayManagement>()
+                            .eq(BaseRailwayManagement::getRailwayCode, management.getRailwayCode()))) // 确保管理信息不是空的
+                    .filter(Objects::nonNull) // 确保 baseRailwayManagement 不是 null
+                    .filter(baseRailwayManagement -> baseRailwayManagement.getRailwayType() == 1)
+                    .count();
+            //普铁的数量
+            int pu = list.size() - count;
+            map.put("highAlarmCount", count);
+            map.put("puAlarmCount", pu);
         } else {
-            // 处理statistics为空的情况,设置默认值或空值
-            results.put("highAlarmCount", 0);
-            results.put("puAlarmCount", 0);
-            results.put("highUnresolvedCount", 0);
-            results.put("puUnresolvedCount", 0);
+            map.put("highAlarmCount", 0);
+            map.put("puAlarmCount", 0);
         }
-
-        return AjaxResult.success(results);
+        if (!ObjectUtils.isEmpty(alarmList)) {
+            //获取所有报警的相机编码
+            //找出所有未处置报警数据 1=高铁的数量
+            unresolvedCount = (int) alarmList.stream()
+                    .map(base -> baseCameraManagementMapper.selectOne(new LambdaQueryWrapper<BaseCameraManagement>()
+                            .eq(BaseCameraManagement::getCameraCode, base.getCameraCode())))
+                    .filter(Objects::nonNull)
+                    .map(management -> baseRailwayManagementMapper.selectOne(new LambdaQueryWrapper<BaseRailwayManagement>()
+                            .eq(BaseRailwayManagement::getRailwayCode, management.getRailwayCode()))) // 确保管理信息不是空的
+                    .filter(Objects::nonNull) // 确保 baseRailwayManagement 不是 null
+                    .filter(baseRailwayManagement -> baseRailwayManagement.getRailwayType() == 1)
+                    .count();
+            //普铁的数量
+            int puUnresolvedCount = alarmList.size() - unresolvedCount;
+            map.put("highUnresolvedCount", unresolvedCount);
+            map.put("puUnresolvedCount", puUnresolvedCount);
+        } else {
+            map.put("highUnresolvedCount", 0);
+            map.put("puUnresolvedCount", 0);
+        }
+        return AjaxResult.success(map);
     }
 
     @Override

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

@@ -122,11 +122,11 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
         Integer countCamera = baseCameraManagementMapper.countCamera(msgAlarmVo);
         // 累计报警次数
         Integer countMsg = msgAlarmMapper.countMsg(msgAlarmVo);
-        // 解除报警
+        // 处置报警
 //        LambdaQueryWrapper<MsgAlarm> lwJC = new LambdaQueryWrapper<MsgAlarm>();
 //        lwJC.eq(MsgAlarm::getIsLock, "1");
         Integer countJC = msgAlarmMapper.countJC(msgAlarmVo);
-        // 未解除报警
+        // 未处置报警
 //        LambdaQueryWrapper<MsgAlarm> lwWJC = new LambdaQueryWrapper<MsgAlarm>();
 //        lwWJC.eq(MsgAlarm::getIsLock, "2");
         Integer countWJC = msgAlarmMapper.countWJC(msgAlarmVo);

+ 47 - 0
business-service/src/main/java/com/ozs/service/service/impl/UserStateStatisticsServiceImpl.java

@@ -0,0 +1,47 @@
+package com.ozs.service.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.ozs.service.entity.UserStateStatistics;
+import com.ozs.service.entity.vo.BaseDeviceResumeVo;
+import com.ozs.service.entity.vo.DeviceStateResp;
+import com.ozs.service.entity.vo.UserStateStatisticsResp;
+import com.ozs.service.mapper.UserStateStatisticsMapper;
+import com.ozs.service.service.UserStateStatisticsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+@Slf4j
+@Service
+public class UserStateStatisticsServiceImpl extends ServiceImpl<UserStateStatisticsMapper, UserStateStatistics> implements UserStateStatisticsService {
+
+    @Autowired
+    private  UserStateStatisticsMapper userStateStatisticsMapper;
+    @Override
+    public List<UserStateStatisticsResp> getUserStateStatistics(String startTime, String endTime,String userId) {
+        return userStateStatisticsMapper.getUserStateStatistics(startTime, endTime, userId);
+    }
+
+    @Override
+    public List<UserStateStatisticsResp> exportUserStateStatistics(String startTime, String endTime,String userId) {
+        return userStateStatisticsMapper.getUserStateStatistics(startTime, endTime, userId);
+    }
+
+    @Override
+    public IPage<UserStateStatisticsResp> userStateStatisticsPage(UserStateStatisticsResp userStateStatisticsResp) {
+        int pageNum = Integer.parseInt(userStateStatisticsResp.getPageNum().toString());
+        int pageSize = Integer.parseInt(userStateStatisticsResp.getPageSize().toString());
+        com.github.pagehelper.Page<UserStateStatisticsResp> page = PageHelper.startPage(pageNum, pageSize)
+                .doSelectPage(() -> userStateStatisticsMapper.userStateStatisticsPage(userStateStatisticsResp));
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<UserStateStatisticsResp> pageR =
+                new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(pageNum, pageSize);
+        pageR.setRecords(page.getResult());
+        pageR.setTotal(page.getTotal());
+        return pageR;
+    }
+}

+ 65 - 0
business-service/src/main/resources/mapper/service/BaseUserMapper.xml

@@ -78,4 +78,69 @@
     <select id="getUserById" resultType="com.ozs.service.entity.BaseUser">
     select user_id userId, dept_id deptId, data_permission dataPermission,nick_name nickName,user_name userName from sys_user where id = #{id}
     </select>
+    <select id="getUserIdsLists" resultType="java.lang.String">
+        SELECT u.user_id
+        FROM sys_user u
+        WHERE u.status = 1
+          AND u.del_flag = 1
+          AND u.dept_id IN (
+            SELECT dept_id
+            FROM sys_dept
+            WHERE dept_name = '工务部'
+              AND status = 1
+              AND del_flag = 1
+            UNION ALL
+            SELECT dept_id
+            FROM sys_dept
+            WHERE
+                parent_id = (SELECT dept_id
+                             FROM sys_dept
+                             WHERE dept_name = '工务部'
+                               AND status = 1
+                               AND del_flag = 1)
+              AND status = 1
+              AND del_flag = 1
+        );
+    </select>
+    <select id="getUsersByIds" resultType="com.ozs.service.entity.BaseUser">
+        SELECT user_id, user_name, nick_name
+        FROM sys_user
+        WHERE user_id IN
+        <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+        AND status = 1 AND del_flag = 1
+    </select>
+    <select id="getUserIdsAll" resultType="java.lang.String">
+        SELECT u.user_id
+        FROM sys_user u
+        WHERE u.status = 1
+          AND u.del_flag = 1
+          AND u.dept_id IN (
+            SELECT dept_id
+            FROM sys_dept
+            WHERE
+                parent_id = (SELECT dept_id
+                             FROM sys_dept
+                             WHERE dept_name = '工务部'
+                               AND status = 1
+                               AND del_flag = 1)
+              AND status = 1
+              AND del_flag = 1
+        );
+    </select>
+    <select id="getUserLists" resultType="java.lang.String">
+        SELECT u.user_id
+        FROM sys_user u
+        WHERE u.status = 1
+          AND u.del_flag = 1
+          AND EXISTS (
+            SELECT 1
+            FROM sys_dept d1
+            WHERE d1.status = 1
+              AND d1.del_flag = 1
+              AND d1.dept_name = '工务部'
+              AND u.dept_id IN (d1.dept_id)
+          )
+    </select>
 </mapper>

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

@@ -306,8 +306,7 @@
         a.released_time AS releasedTime,
         a.released_type AS releasedType,
         a.released_reason AS releasedReason,
-        a.remark AS remark,
-        COUNT(CASE WHEN a.is_lock = 2 THEN 1 END) OVER() AS unlockNum
+        a.remark AS remark
         FROM msg_alarm_cloud AS a
             join base_camera_management AS b on a.camera_code=b.camera_code
             join base_railway_management AS l on b.railway_code=l.railway_code
@@ -558,43 +557,4 @@
           and a.released_url is null
           and a.alarm_time &lt;= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
     </select>
-    <select id="selectAlarmStatistics" resultType="java.util.HashMap">
-        SELECT
-        SUM(CASE WHEN rm.railway_type = 1 THEN 1 ELSE 0 END) AS highAlarmCount,
-        SUM(CASE WHEN rm.railway_type &lt;&gt; 1 THEN 1 ELSE 0 END) AS puAlarmCount,
-        SUM(CASE WHEN am.is_lock = 2 AND rm.railway_type = 1 THEN 1 ELSE 0 END) AS highUnresolvedCount,
-        SUM(CASE WHEN am.is_lock = 2 AND rm.railway_type &lt;&gt; 1 THEN 1 ELSE 0 END) AS puUnresolvedCount
-        FROM
-        msg_alarm_cloud am
-        JOIN
-        base_camera_management cm ON am.camera_code = cm.camera_code
-        JOIN
-        base_railway_management rm ON cm.railway_code = rm.railway_code
-        <where>
-            am.is_lock IN (1, 2)
-            <if test="ids != null and ids.size>0">
-                and a.id in
-                <foreach item="items" collection="ids" separator="," open="(" close=")" index="">
-                    #{items}
-                </foreach>
-            </if>
-            <if test="!dsFlay">
-                and
-                <trim prefix="(" prefixOverrides="or" suffix=")">
-                    <if test="dsUserId != null and dsUserId != ''">
-                        or am.create_by=#{dsUserId}
-                    </if>
-                    <if test="dsDeptId != null and dsDeptId != 0">
-                        or cm.dept_id=#{dsDeptId}
-                    </if>
-                    <if test="dsDeptIds != null">
-                        or cm.dept_id in
-                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
-                            #{item}
-                        </foreach>
-                    </if>
-                </trim>
-            </if>
-        </where>
-    </select>
 </mapper>

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

@@ -405,6 +405,9 @@
             <if test="endMile != null and endMile != 0">
                 and b.end_mile &lt;=#{endMile}
             </if>
+            <if test="releasedType != null and releasedType != 0">
+                and a.released_type =#{releasedType}
+            </if>
             <if test="ids != null and ids.size>0">
                 and a.id in
                 <foreach item="items" collection="ids" separator="," open="(" close=")" index="">
@@ -453,7 +456,7 @@
                 AND date_format(a.alarm_time,'%Y-%m-%d') &lt;= date_format(#{endAlarmTime},'%Y-%m-%d')
             </if>
         </where>
-        order by a.alarm_time desc
+        order by a.is_lock desc, a.alarm_time desc
     </select>
 
     <select id="getByAlarmId" resultType="com.ozs.service.entity.MsgAlarm" parameterType="java.lang.String">

+ 94 - 0
business-service/src/main/resources/mapper/service/UserStateStatisticsMapper.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ozs.service.mapper.UserStateStatisticsMapper">
+    <select id="getUserStateStatistics" resultType="com.ozs.service.entity.vo.UserStateStatisticsResp">
+        SELECT
+        u.nike_name AS nikeName,
+        u.user_name AS userName,
+        u.create_time AS createTime,
+        CASE
+        u.is_disable
+        WHEN 1 THEN
+        '在线'
+        WHEN 2 THEN
+        '离线'
+        END AS isDisableName,
+        COUNT(CASE WHEN u.is_disable = 2 THEN 1 END) OVER () AS faultNum
+        FROM
+        user_state_statistics u
+        <where>
+            <if test="userId != null and userId != ''">
+                AND u.user_id =#{userId}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND u.create_time &gt;=#{startTime}
+            </if>
+            <if test="startTime == null or startTime == ''">
+                AND u.create_time &gt;= DATE_SUB(NOW(), INTERVAL 72 HOUR)
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND u.create_time &lt;=#{endTime}
+            </if>
+            <if test="endTime == null and endTime == ''">
+                AND u.create_time &lt;= NOW()
+            </if>
+        </where>
+        ORDER BY u.create_time desc
+    </select>
+    <select id="userStateStatisticsPage" resultType="com.ozs.service.entity.vo.UserStateStatisticsResp">
+        SELECT
+        t.nikeName,
+        t.userName,
+        t.createTime,
+        t.isDisableName,
+        t.userId,
+        t.isDisable,
+        s.dept_id
+        FROM
+        (
+        SELECT
+        u.nike_name AS nikeName,
+        u.user_name AS userName,
+        u.create_time AS createTime,
+        CASE
+        u.is_disable
+        WHEN 1 THEN
+        '在线'
+        WHEN 2 THEN
+        '离线'
+        END AS isDisableName,
+        u.user_id AS userId,
+        u.is_disable AS isDisable,
+        ROW_NUMBER() OVER ( PARTITION BY u.user_id ORDER BY u.create_time DESC ) AS rn
+        FROM
+        user_state_statistics u
+        ) t
+        INNER JOIN sys_user s ON t.userId = s.user_id
+        AND s.STATUS = 1
+        AND s.del_flag = 1
+        AND s.dept_id IN (
+        SELECT
+        dept_id
+        FROM
+        sys_dept
+        WHERE
+        dept_name = '工务部'
+        AND STATUS = 1
+        AND del_flag = 1 UNION ALL
+        SELECT
+        dept_id
+        FROM
+        sys_dept
+        WHERE
+        parent_id = ( SELECT dept_id FROM sys_dept WHERE dept_name = '工务部' AND STATUS = 1 AND del_flag = 1 )
+        AND STATUS = 1
+        AND del_flag = 1
+        )
+        WHERE
+        t.rn = 1
+        <if test="isDisable != null and isDisable != 0">
+            AND t.isDisable = #{isDisable}
+        </if>
+        ORDER BY t.createTime DESC, t.userId DESC
+    </select>
+</mapper>

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

@@ -22,6 +22,7 @@ import com.ozs.service.entity.*;
 import com.ozs.service.entity.vo.*;
 import com.ozs.service.service.*;
 import com.ozs.service.utils.PublishClient;
+import com.ozs.system.mapper.SysDictDataMapper;
 import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictTypeService;
@@ -96,13 +97,15 @@ public class BaseCameraManagementController extends BaseController {
     private CameraUtil cameraUtil;
     @Autowired
     private MqLogService mqLogService;
-
+    // 字典
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
 
     /**
      * 所有相机列表+权限
      */
     @GetMapping("/selectCameraAll")
-    @Log(title = "相机台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "相机列表", businessType = BusinessType.SELECT)
     public AjaxResult selectCameraAll() {
         BaseCameraManagementVo baseCameraManagementVo = (BaseCameraManagementVo) dataScoreUtil.setDataScore(getUserId(), new BaseCameraManagementVo());
         List<BaseCameraManagementHomeVo> baseCameraManagements = baseCameraManagementService.selectCameraAll(baseCameraManagementVo);
@@ -110,7 +113,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @PostMapping(value = "/homeGetInfo")
-    @Log(title = "相机台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "首页地图相机信息", businessType = BusinessType.SELECT)
     public AjaxResult homeGetInfo(@RequestBody BaseCameraManagementHomeVo baseCameraManagementHomeVo) {
         Integer isLock = baseCameraManagementHomeVo.getIsLock();
         Long id = baseCameraManagementHomeVo.getId();
@@ -209,7 +212,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @PostMapping("/list")
-    @Log(title = "相机台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "相机台账分页列表", businessType = BusinessType.SELECT)
     public AjaxResult selectBaseAccountManagement(@RequestBody BaseCameraManagementVo baseCameraManagementVo) {
         baseCameraManagementVo = (BaseCameraManagementVo) dataScoreUtil.setDataScore(getUserId(), baseCameraManagementVo);
         if (!ObjectUtils.isEmpty(baseCameraManagementVo.getBeginMile())) {
@@ -274,7 +277,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @RequestMapping("/remove/{accountManagementIds}")
-    @Log(title = "相机台账管理", businessType = BusinessType.DELETE)
+    @Log(title = "删除相机台账管理信息", businessType = BusinessType.DELETE)
     @Transactional
     public AjaxResult removeAccountManagement(@PathVariable List<Long> accountManagementIds) {
         for (Long accountManagementId : accountManagementIds) {
@@ -297,7 +300,7 @@ public class BaseCameraManagementController extends BaseController {
      */
     @PostMapping("/saveAccountManagement")
     @Transactional
-    @Log(title = "相机台账管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增相机台账管理信息", businessType = BusinessType.INSERT)
     public AjaxResult saveAccountManagement(@RequestBody BaseCameraManagement baseCameraManagement) {
         try {
             String idempotence = idempotenceUtils.getIdempotence(baseCameraManagement.getCameraCode());
@@ -379,7 +382,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @PostMapping("/editAccountManagement")
-    @Log(title = "相机台账管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改相机台账管理信息", businessType = BusinessType.UPDATE)
     public AjaxResult editAccountManagement(@RequestBody BaseCameraManagement baseCameraManagement) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
@@ -437,7 +440,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping(value = "/{id}")
-    @Log(title = "相机台账管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据ID获取相机信息", businessType = BusinessType.MESSAGE)
     public AjaxResult getInfo(@PathVariable Long id) {
         BaseCameraManagement baseCameraManagement = baseCameraManagementService.getById(id);
         LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
@@ -494,7 +497,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping("/getDate/{cameraCode}")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "根据相机编码获取报警信息", businessType = BusinessType.OTHER)
     public AjaxResult getDate(@PathVariable String cameraCode) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         if (!ObjectUtils.isEmpty(cameraCode)) {
@@ -548,7 +551,7 @@ public class BaseCameraManagementController extends BaseController {
      * @throws Exception
      */
     @PostMapping("/importBaseAccountManagement")
-    @Log(title = "相机台账管理", businessType = BusinessType.IMPORT)
+    @Log(title = "台账管理导入", businessType = BusinessType.IMPORT)
     public AjaxResult importBaseAccountManagement(MultipartFile file, boolean updateSupport) throws Exception {
         try {
             List<BaseCameraManagementVos> accountManageList;
@@ -577,7 +580,7 @@ public class BaseCameraManagementController extends BaseController {
      * @param response
      */
     @PostMapping("/exportBaseAccountManagement")
-    @Log(title = "相机台账管理", businessType = BusinessType.EXPORT)
+    @Log(title = "导出台账管理", businessType = BusinessType.EXPORT)
     public void exportBaseAccountManagement(HttpServletResponse response, @RequestBody BaseCameraManagementVo baseCameraManagementVo) {
         baseCameraManagementVo = (BaseCameraManagementVo) dataScoreUtil.setDataScore(getUserId(), baseCameraManagementVo);
         if (!ObjectUtils.isEmpty(baseCameraManagementVo.getBeginMile())) {
@@ -628,7 +631,7 @@ public class BaseCameraManagementController extends BaseController {
 
 
     @GetMapping("/downloaExcel")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "相机台账下载模板", businessType = BusinessType.OTHER)
     public void downloadZip(HttpServletResponse response) {
         try {
             InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/baseCameraManagement.xlsx");
@@ -641,7 +644,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping("/api/records/{cameraCode}")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取相机实时流", businessType = BusinessType.OTHER)
     public AjaxResult apiRecords(@PathVariable @NotNull(message = "相机编码不能为空") String cameraCode) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         lw.eq(BaseCameraManagement::getCameraCode, cameraCode);
@@ -653,7 +656,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping("/api/records/{cameraCode}/{flay}")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取相机实时流", businessType = BusinessType.OTHER)
     public AjaxResult apiRecords(@PathVariable @NotNull(message = "相机编码不能为空") String cameraCode,
                                  @PathVariable @NotNull(message = "条件不能为空") boolean flay) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
@@ -666,7 +669,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping("/api/records/{cameraCode}/{flay}/{format}")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取相机实时流", businessType = BusinessType.OTHER)
     public AjaxResult apiRecords(@PathVariable @NotNull(message = "相机编码不能为空") String cameraCode,
                                  @PathVariable @NotNull(message = "条件不能为空") boolean flay,
                                  @PathVariable @NotNull(message = "格式不能为空") String format) {
@@ -680,7 +683,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping("/api/recordsList")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "批量获取相机实时流", businessType = BusinessType.OTHER)
     public AjaxResult apiRecordsList(@RequestBody
                                      @NotNull(message = "相机编码不能为空")
                                      List<String> cameraCodes) {
@@ -718,7 +721,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @PostMapping("/api/play")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取相机回放视频", businessType = BusinessType.OTHER)
     public AjaxResult play(@Validated @RequestBody BaseCameraResVo vo) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         lw.eq(BaseCameraManagement::getCameraCode, vo.getCameraCode());
@@ -735,7 +738,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping("/totalNumberOfDevices")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取相机总条数", businessType = BusinessType.OTHER)
     public AjaxResult totalNumberOfDevices() {
         long count = baseCameraManagementService.count();
         return success(count);
@@ -750,7 +753,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @PostMapping("/cameraTree")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "相机", businessType = BusinessType.OTHER)
     public AjaxResult cameraTree(@RequestBody CameraTreeVo cameraTreeVo) {
         cameraTreeVo = (CameraTreeVo) dataScoreUtil.setDataScore(getUserId(), cameraTreeVo);
         int count = 0;
@@ -848,7 +851,7 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping("/endRecording/{id}")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "关闭录制视频", businessType = BusinessType.OTHER)
     public AjaxResult endRecording(@PathVariable Long id) {
         List<SysDictData> data = dictTypeService.selectDictDataByType("management_transcribe_switch");
         if (data.get(0).getDictValue().equals("true")) {
@@ -880,7 +883,7 @@ public class BaseCameraManagementController extends BaseController {
 
 
     @GetMapping("/startRecording/{id}")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "开启录制视频", businessType = BusinessType.OTHER)
     public AjaxResult startRecording(@PathVariable Long id) throws Exception {
         List<SysDictData> data = dictTypeService.selectDictDataByType("management_transcribe_switch");
         if (data.get(0).getDictValue().equals("true")) {
@@ -912,8 +915,10 @@ public class BaseCameraManagementController extends BaseController {
     }
 
     @GetMapping(value = "/getAlarm/{cameraCode}")
-    @Log(title = "相机台账管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据相机编码获取报警信息", businessType = BusinessType.MESSAGE)
     public AjaxResult getAlarm(@PathVariable String cameraCode) {
+        String dictLabel=null;
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         LambdaQueryWrapper<BaseCameraManagement> queryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
         if (!ObjectUtils.isEmpty(cameraCode)) {
             queryWrapper.eq(BaseCameraManagement::getCameraCode, cameraCode);
@@ -950,8 +955,13 @@ public class BaseCameraManagementController extends BaseController {
                 msgAlarmResp.setReleasedByName(msgAlarmclou.getReleasedByName());
                 msgAlarmResp.setReleasedReason(msgAlarmclou.getReleasedReason());
                 String[] split1 = msgAlarmclou.getAlarmAttr().split(",");
+                for (SysDictData sysDictData : sysAlarmType) {
+                    if (sysDictData.getDictValue().equals(msgAlarmclou.getAlarmType().toString())) {
+                        dictLabel=sysDictData.getDictLabel();
+                    }
+                }
                 String stringBuilder = "画面大小为" + split1[0] + "×" + split1[1] + "," +
-                        "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                        dictLabel+"范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
                         "大小" + split1[4] + "×" + split1[5];
                 msgAlarmResp.setAlarmAttrName(stringBuilder);
                 if (!ObjectUtils.isEmpty(msgAlarmResp.getReleasedType())) {
@@ -995,7 +1005,7 @@ public class BaseCameraManagementController extends BaseController {
 
 
     @PostMapping("/api/record")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取相机回放视频", businessType = BusinessType.OTHER)
     public AjaxResult record(@Validated @RequestBody BaseCameraResVo vo) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         lw.eq(BaseCameraManagement::getCameraCode, vo.getCameraCode());
@@ -1028,7 +1038,7 @@ public class BaseCameraManagementController extends BaseController {
 
 
     @GetMapping("/api/getRecordByAlarmId")
-    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "相机回放视频", businessType = BusinessType.OTHER)
     public AjaxResult getRecordByAlarmId(@RequestParam("alarmId") String alarmId) {
 
         LambdaQueryWrapper<MsgAlarmCloud> wrapper = new LambdaQueryWrapper<>();
@@ -1062,6 +1072,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @GetMapping("/nightVision/{code}/{mode}")
+    @Log(title = "相机夜视切换", businessType = BusinessType.OTHER)
     public AjaxResult nightVision(@PathVariable("code") String code, @PathVariable("mode") Integer mode) {
         BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(new LambdaQueryWrapper<BaseCameraManagement>()
                 .eq(BaseCameraManagement::getCameraCode, code));
@@ -1076,6 +1087,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @GetMapping("/switchFrameRate")
+    @Log(title = "相机帧率切换", businessType = BusinessType.OTHER)
     public AjaxResult switchFrameRate(@RequestParam("code") String code, @RequestParam("fps") String fps) {
         BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(new LambdaQueryWrapper<BaseCameraManagement>()
                 .eq(BaseCameraManagement::getCameraCode, code));
@@ -1090,7 +1102,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @PostMapping("/deviceState/page")
-    @Log(title = "相机台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "设备状态分页列表", businessType = BusinessType.SELECT)
     public AjaxResult deviceStatePage(@RequestBody DeviceStateResp deviceStateResp) {
         deviceStateResp = (DeviceStateResp) dataScoreUtil.setDataScore(getUserId(), deviceStateResp);
         IPage<DeviceStateResp> page = baseCameraManagementService.deviceStatePage(deviceStateResp);
@@ -1115,7 +1127,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @PostMapping("/bell/deviceState/page")
-    @Log(title = "相机台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "铃铛进去的设备状态页面", businessType = BusinessType.SELECT)
     public AjaxResult bellDeviceStatePage(@RequestBody DeviceStateResp deviceStateResp) {
         deviceStateResp = (DeviceStateResp) dataScoreUtil.setDataScore(getUserId(), deviceStateResp);
         IPage<DeviceStateResp> page = baseCameraManagementService.bellDeviceStatePage(deviceStateResp);
@@ -1139,7 +1151,7 @@ public class BaseCameraManagementController extends BaseController {
      * @param response
      */
     @PostMapping("/exportDeviceState")
-    @Log(title = "相机台账管理", businessType = BusinessType.EXPORT)
+    @Log(title = "导出设备状态", businessType = BusinessType.EXPORT)
     public void exportDeviceState(HttpServletResponse response, @RequestBody DeviceStateResp deviceStateResp) {
         deviceStateResp = (DeviceStateResp) dataScoreUtil.setDataScore(getUserId(), deviceStateResp);
         List<DeviceStateResp> deviceStateRespList = baseCameraManagementService.deviceStateRespList(deviceStateResp);
@@ -1155,6 +1167,7 @@ public class BaseCameraManagementController extends BaseController {
      * 获取离线相机和电量低的相机
      */
     @GetMapping("/getMalfunctionAndLowCameraManagement")
+    @Log(title = "获取离线相机和电量低的相机", businessType = BusinessType.SELECT)
     public AjaxResult getMalfunctionAndLowCameraManagement() {
         HashMap<String, Integer> map = new HashMap<>();
         DeviceStateResp deviceStateResp1 = new DeviceStateResp();
@@ -1195,6 +1208,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @GetMapping("cameraStateTotal")
+    @Log(title = "根据线路类型获取异常和非异常相机的数量", businessType = BusinessType.SELECT)
     public AjaxResult cameraStateTotal() {
         BaseCameraManagementVo baseCameraManagementVo = new BaseCameraManagementVo();
         BaseCameraManagementVo baseCameraManagementVos = (BaseCameraManagementVo) dataScoreUtil.setDataScore(getUserId(), baseCameraManagementVo);
@@ -1207,6 +1221,7 @@ public class BaseCameraManagementController extends BaseController {
      * @return
      */
     @GetMapping("cameraStateList")
+    @Log(title = "首页设备状态列表", businessType = BusinessType.SELECT)
     public AjaxResult cameraStateList() {
         BaseCameraManagementVo baseCameraManagementVo = new BaseCameraManagementVo();
         BaseCameraManagementVo baseCameraManagementVos = (BaseCameraManagementVo) dataScoreUtil.setDataScore(getUserId(), baseCameraManagementVo);

+ 5 - 5
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraVersionController.java

@@ -52,7 +52,7 @@ public class BaseCameraVersionController extends BaseController {
      * @return
      */
     @PostMapping("/cameraVersionUpgrade")
-    @Log(title = "相机版本管理", businessType = BusinessType.INSERT)
+    @Log(title = "版本升级", businessType = BusinessType.INSERT)
     public AjaxResult cameraVersionUpgrade(@RequestBody BaseCameraVersionVo baseCameraVersion) {
         if (StringUtils.isEmptySunhh(baseCameraVersion) || StringUtils.isEmptySunhh(baseCameraVersion.getId())) {
             return AjaxResult.error("相机版本id不能为空!");
@@ -70,7 +70,7 @@ public class BaseCameraVersionController extends BaseController {
      * @return
      */
     @PostMapping("/cameraAllList")
-    @Log(title = "相机版本管理", businessType = BusinessType.SELECT)
+    @Log(title = "相机列表", businessType = BusinessType.SELECT)
     public AjaxResult cameraAllList(@RequestBody BaseCameraManagement baseCameraManagement) {
         if (StringUtils.isEmptySunhh(baseCameraManagement) || StringUtils.isEmptySunhh(baseCameraManagement.getVersionId())) {
             return AjaxResult.error("相机版本id不能为空!");
@@ -86,7 +86,7 @@ public class BaseCameraVersionController extends BaseController {
      * @return
      */
     @PostMapping("/cameraVersionList")
-    @Log(title = "相机版本管理", businessType = BusinessType.SELECT)
+    @Log(title = "相机版本管理分页", businessType = BusinessType.SELECT)
     public AjaxResult cameraVersionList(@RequestBody BaseCameraVersionVo baseCameraVersionVo) {
         com.github.pagehelper.Page<BaseCameraVersion> page = baseCameraVersionService.cameraVersionList(baseCameraVersionVo);
         com.baomidou.mybatisplus.extension.plugins.pagination.Page<BaseCameraVersionVo> pageR =
@@ -123,7 +123,7 @@ public class BaseCameraVersionController extends BaseController {
      * @return
      */
     @PostMapping("/cameraVersionAdd")
-    @Log(title = "相机版本管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增相机版本", businessType = BusinessType.INSERT)
     public AjaxResult cameraVersionAdd(@RequestBody BaseCameraVersion baseCameraVersion) {
         if (StringUtils.isEmptySunhh(baseCameraVersion) || StringUtils.isEmptySunhh(baseCameraVersion.getVersionNum())
                 || StringUtils.isEmptySunhh(baseCameraVersion.getVersionName())
@@ -140,7 +140,7 @@ public class BaseCameraVersionController extends BaseController {
      * @return
      */
     @RequestMapping("/cameraVersionDelete/{ids}")
-    @Log(title = "相机版本管理", businessType = BusinessType.DELETE)
+    @Log(title = "修改相机版本", businessType = BusinessType.DELETE)
     public AjaxResult cameraVersionDelete(@PathVariable List<Long> ids) {
         if (StringUtils.isEmptySunhh(ids)) {
             return AjaxResult.error("删除ID不能为空!");

+ 3 - 2
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseDeviceResumeController.java

@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -31,7 +32,7 @@ public class BaseDeviceResumeController extends BaseController {
      * 获取设备状态履历
      */
     @GetMapping("/getBaseDeviceResume")
-    @Log(title = "设备状态履历", businessType = BusinessType.SELECT)
+    @Log(title = "获取设备状态履历信息", businessType = BusinessType.SELECT)
     public AjaxResult getBaseDeviceResume(@RequestParam(value = "cameraCode") String cameraCode,
                                           @RequestParam(value = "startTime", required = false) String startTime,
                                           @RequestParam(value = "endTime", required = false) String endTime) {
@@ -45,7 +46,7 @@ public class BaseDeviceResumeController extends BaseController {
      * @param response
      */
     @GetMapping("/exportDeviceResume")
-    @Log(title = "设备状态履历", businessType = BusinessType.EXPORT)
+    @Log(title = "导出设备状态履历", businessType = BusinessType.EXPORT)
     public void exportDeviceResume(HttpServletResponse response, @RequestParam(value = "cameraCode") String cameraCode,
                                    @RequestParam(value ="startTime", required = false) String startTime,
                                    @RequestParam(value ="endTime", required = false) String endTime) {

+ 2 - 2
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseElectricityResumeController.java

@@ -36,7 +36,7 @@ public class BaseElectricityResumeController extends BaseController {
      * 获取电池电量状态履历
      */
     @GetMapping("/getBaseElectricityResume")
-    @Log(title = "设备状态履历", businessType = BusinessType.SELECT)
+    @Log(title = "获取设备状态履历信息", businessType = BusinessType.SELECT)
     public AjaxResult getBaseElectricityResume(@RequestParam(value = "cameraCode") String cameraCode,
                                                @RequestParam(value = "startTime", required = false) String startTime,
                                                @RequestParam(value = "endTime", required = false) String endTime) {
@@ -51,7 +51,7 @@ public class BaseElectricityResumeController extends BaseController {
      * @param response
      */
     @GetMapping("/exportElectricityResume")
-    @Log(title = "电池电量状态履历", businessType = BusinessType.EXPORT)
+    @Log(title = "导出电池电量状态履历", businessType = BusinessType.EXPORT)
     public void exportElectricityResume(HttpServletResponse response, @RequestParam(value = "cameraCode") String cameraCode,
                                    @RequestParam(value ="startTime", required = false) String startTime,
                                    @RequestParam(value ="endTime", required = false) String endTime) {

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

@@ -71,7 +71,7 @@ public class BaseRailwayManagementController extends BaseController {
      * @return
      */
     @PostMapping("/list")
-    @Log(title = "线路台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "线路分页信息", businessType = BusinessType.SELECT)
     public AjaxResult selectBaseLineManagement(@RequestBody BaseRailwayManagementVo baseRailwayManagementVo) {
         LambdaQueryWrapper<BaseRailwayManagement> lw = new LambdaQueryWrapper<BaseRailwayManagement>();
         if (!StringUtils.isBlank(baseRailwayManagementVo.getRailwayCode())) {
@@ -103,7 +103,7 @@ public class BaseRailwayManagementController extends BaseController {
      * @return
      */
     @RequestMapping("/remove/{lineIds}")
-    @Log(title = "线路台账管理", businessType = BusinessType.DELETE)
+    @Log(title = "删除线路表信息", businessType = BusinessType.DELETE)
     public AjaxResult removeLineManagement(@PathVariable List<Long> lineIds) {
         for (Long lineId : lineIds) {
             BaseRailwayManagement baseRailwayManagement1 = baseRailwayManagementService.getById(lineId);
@@ -130,7 +130,7 @@ public class BaseRailwayManagementController extends BaseController {
      * @return
      */
     @PostMapping("/saveRailwayManagement")
-    @Log(title = "线路台账管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增线路表信息", businessType = BusinessType.INSERT)
     public AjaxResult saveLineManagement(@RequestBody BaseRailwayManagement baseRailwayManagement) {
         try {
             String idempotence = idempotenceUtils.getIdempotence(baseRailwayManagement.getRailwayCode());
@@ -177,7 +177,7 @@ public class BaseRailwayManagementController extends BaseController {
      * @return
      */
     @RequestMapping("/editRailwayManagement")
-    @Log(title = "线路台账管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改线路表信息", businessType = BusinessType.UPDATE)
     public AjaxResult editLineManagement(@RequestBody BaseRailwayManagement baseRailwayManagement) {
         BaseRailwayManagement baseRailwayManagement1 = baseRailwayManagementService.getById(baseRailwayManagement.getId());
         if (ObjectUtils.isEmpty(baseRailwayManagement1)) {
@@ -215,7 +215,7 @@ public class BaseRailwayManagementController extends BaseController {
     }
 
     @GetMapping(value = "/{id}")
-    @Log(title = "线路台账管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据主键获取线路信息", businessType = BusinessType.MESSAGE)
     public AjaxResult getInfo(@PathVariable Long id) {
         BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getById(id);
         List<SysDictData> data = dictTypeService.selectDictDataByType("railway_type");
@@ -236,7 +236,7 @@ public class BaseRailwayManagementController extends BaseController {
      * @throws Exception
      */
     @PostMapping("/importBaseLineManagement")
-    @Log(title = "线路台账管理", businessType = BusinessType.IMPORT)
+    @Log(title = "线路表信息导入", businessType = BusinessType.IMPORT)
     public AjaxResult importBaseLineManagement(MultipartFile file, boolean updateSupport) throws Exception {
         String message = null;
         ExcelUtil<BaseRailwayManagement> util = new ExcelUtil<BaseRailwayManagement>(BaseRailwayManagement.class);
@@ -253,7 +253,7 @@ public class BaseRailwayManagementController extends BaseController {
      * @param response
      */
     @PostMapping("/exportBaseLineManagement")
-    @Log(title = "线路台账管理", businessType = BusinessType.EXPORT)
+    @Log(title = "导出线路表信息", businessType = BusinessType.EXPORT)
     public void exportBaseLineManagement(HttpServletResponse response, @RequestBody BaseRailwayManagementVo baseRailwayManagementVo) {
         LambdaQueryWrapper<BaseRailwayManagement> lw = new LambdaQueryWrapper<BaseRailwayManagement>();
         if (!StringUtils.isBlank(baseRailwayManagementVo.getRailwayCode())) {
@@ -271,7 +271,7 @@ public class BaseRailwayManagementController extends BaseController {
     }
 
     @GetMapping("/downloaExcel")
-    @Log(title = "线路台账管理", businessType = BusinessType.OTHER)
+    @Log(title = "线路台账模板", businessType = BusinessType.OTHER)
     public void downloadZip(HttpServletResponse response) {
         try {
             InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/baseRailwayManagement.xlsx");
@@ -287,9 +287,11 @@ public class BaseRailwayManagementController extends BaseController {
      * 线路下拉
      */
     @GetMapping("/query")
-    @Log(title = "线路台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "相机线路下拉框信息", businessType = BusinessType.SELECT)
     public AjaxResult query() {
          List<BaseRailwayManagement> list = baseRailwayManagementService.list();
+         list.forEach(item -> item.setRailwayTypeName(item.getRailwayType() == 1 ? "高铁" : "普铁"));
+
 //        List<BaseRailwayManagement> list = baseRailwayManagementService.listRailway();
         list.sort(new Comparator<BaseRailwayManagement>() {
             @Override
@@ -308,7 +310,7 @@ public class BaseRailwayManagementController extends BaseController {
      * 相机线路下拉
      */
     @GetMapping("/pullDown")
-    @Log(title = "线路台账管理", businessType = BusinessType.SELECT)
+    @Log(title = "相机线路下拉框信息", businessType = BusinessType.SELECT)
     public AjaxResult pullDown() {
          List<BaseRailwayManagement> list = baseRailwayManagementService.list();
         list.sort(new Comparator<BaseRailwayManagement>() {

+ 91 - 32
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -18,6 +18,7 @@ import com.ozs.service.entity.*;
 import com.ozs.service.entity.vo.*;
 import com.ozs.service.mapper.MsgAlarmMapper;
 import com.ozs.service.service.*;
+import com.ozs.system.mapper.SysDictDataMapper;
 import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictDataService;
@@ -56,6 +57,7 @@ import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 /**
@@ -88,17 +90,17 @@ public class MsgAlarmController extends BaseController {
     private BaseUserService baseUserService;
     @Autowired
     private ISysDeptService deptService;
+    // 字典
     @Autowired
-    private MsgAppPushService msgAppPushService;
-    @Autowired
-    private RedisService redisService;
+    private SysDictDataMapper dictDataMapper;
 
     /**
      * web更多消息-总数,已读数
      */
     @PostMapping("/messageMoreNum")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "报警信息数量信息统计", businessType = BusinessType.SELECT)
     public AjaxResult messageMoreNum(@RequestBody MsgAlarmVo msgAlarmVo) {
+        // MsgAlarmVo msgAlarmVo1 = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
         Map<String, Integer> messageMore = msgWebPushService.messageMoreNum(getUserId());
         return AjaxResult.success(messageMore);
     }
@@ -107,8 +109,9 @@ public class MsgAlarmController extends BaseController {
      * web更多消息
      */
     @PostMapping("/messageMore")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "报警信息详情", businessType = BusinessType.SELECT)
     public AjaxResult messageMore(@RequestBody MsgAlarmVo msgAlarmVo) {
+        // MsgAlarmVo msgAlarmVo1 = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
         String userId = getUserId();
         if (!StringUtils.isEmpty(userId)) {
             msgAlarmVo.setUserId(userId);
@@ -121,8 +124,9 @@ public class MsgAlarmController extends BaseController {
      * web报警未读消息个数+未读消息列表
      */
     @GetMapping("/webAlarm")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "web报警未读消息个数和未读消息列表", businessType = BusinessType.SELECT)
     public AjaxResult webAlarmNum() {
+        // MsgAlarmVo msgAlarm = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), new MsgAlarmVo());
         Map webAlarm = msgWebPushService.webAlarm(getUserId());
         return AjaxResult.success(webAlarm);
     }
@@ -131,7 +135,7 @@ public class MsgAlarmController extends BaseController {
      * web消息全部已读
      */
     @PostMapping("/readAll")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "web消息全部已读信息", businessType = BusinessType.SELECT)
     public AjaxResult readAll() {
         return toAjax(msgWebPushService.readAll(getUserId()));
     }
@@ -140,7 +144,7 @@ public class MsgAlarmController extends BaseController {
      * web消息已读
      */
     @PostMapping("/read")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "web消息已读信息", businessType = BusinessType.SELECT)
     public AjaxResult read(@RequestBody MsgWebPush msgWebPush) {
 //        if (StringUtils.isEmpty(msgWebPush) || ObjectUtils.isEmpty(msgWebPush.getPushId())) {
 //            return AjaxResult.error("PushId不能为空!");
@@ -150,14 +154,16 @@ public class MsgAlarmController extends BaseController {
 
     /**
      * 首页报警信息列表
-     * 首页左侧报警默认为全部,先按照未解除、已解除排序,然后再按照时间倒序排序
+     * 首页左侧报警默认为全部,先按照未处置、已处置排序,然后再按照时间倒序排序
      *
      * @param msgAlarmVo
      * @return
      */
     @PostMapping("/listHome")
-    @Log(title = "首页", businessType = BusinessType.SELECT)
+    @Log(title = "首页报警信息列表", businessType = BusinessType.SELECT)
     public AjaxResult selectMsgAlarmHome(@RequestBody MsgAlarmVo msgAlarmVo) {
+        AtomicReference<String> dictLabel= new AtomicReference<>();
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         msgAlarmVo = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
         if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
             msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
@@ -210,9 +216,14 @@ public class MsgAlarmController extends BaseController {
                 if (!ObjectUtils.isEmpty(o.getReleasedType())) {
                     o.setReleasedTypeName(o.getReleasedType() == 1 ? "实报" : "误报");
                 }
+                for (SysDictData sysDictData : sysAlarmType) {
+                    if (sysDictData.getDictValue().equals(o.getAlarmType().toString())) {
+                        dictLabel.set(sysDictData.getDictLabel());
+                    }
+                }
                 String[] split1 = o.getAlarmAttr().split(",");
                 String stringBuilder = "画面,大小为" + split1[0] + "×" + split1[1] + "," +
-                        "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                        dictLabel+"范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
                         "大小" + split1[4] + "×" + split1[5];
                 o.setAlarmAttr(stringBuilder);
                 return o;
@@ -229,8 +240,10 @@ public class MsgAlarmController extends BaseController {
      * @return
      */
     @PostMapping("/list")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "报警信息分页", businessType = BusinessType.SELECT)
     public AjaxResult selectMsgAlarm(@RequestBody MsgAlarmVo msgAlarmVo) {
+        AtomicReference<String> dictLabel= new AtomicReference<>();
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         msgAlarmVo = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
         if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
             msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
@@ -256,14 +269,14 @@ public class MsgAlarmController extends BaseController {
                     cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, o.getCameraCode());
                 }
                 BaseCameraManagement cameraManagement = baseCameraManagementService.getOne(cameraManagementLambdaQueryWrapper);
+                SysDept sysDept = deptService.selectDeptById(cameraManagement.getDeptId());
+                o.setDeptName(sysDept.getDeptName());
                 LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
                 if (!ObjectUtils.isEmpty(cameraManagement.getRailwayCode())) {
                     queryWrapper.eq(BaseRailwayManagement::getRailwayCode, cameraManagement.getRailwayCode());
                 }
                 BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
-                SysDept sysDept = deptService.selectDeptById(cameraManagement.getDeptId());
                 o.setRailwayName(baseRailwayManagement.getRailwayName());
-                o.setDeptName(sysDept.getDeptName());
                 if (StringUtils.isNotEmpty(o.getReleasedBy())) {
                     BaseUser user = baseUserService.getUser(o.getReleasedBy());
                     o.setReleasedByName(user.getNickName());
@@ -286,9 +299,14 @@ public class MsgAlarmController extends BaseController {
                 if (!ObjectUtils.isEmpty(o.getReleasedType())) {
                     o.setReleasedTypeName(o.getReleasedType() == 1 ? "实报" : "误报");
                 }
+                for (SysDictData sysDictData : sysAlarmType) {
+                    if (sysDictData.getDictValue().equals(o.getAlarmType().toString())) {
+                        dictLabel.set(sysDictData.getDictLabel());
+                    }
+                }
                 String[] split1 = o.getAlarmAttr().split(",");
                 String stringBuilder = "画面,大小为" + split1[0] + "×" + split1[1] + "," +
-                        "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                        dictLabel+"范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
                         "大小" + split1[4] + "×" + split1[5];
                 o.setAlarmAttr(stringBuilder);
                 return o;
@@ -304,8 +322,11 @@ public class MsgAlarmController extends BaseController {
      * @param response
      */
     @PostMapping("/exportMsgAlarm")
-    @Log(title = "报警信息管理", businessType = BusinessType.EXPORT)
+    @Log(title = "导出报警消息", businessType = BusinessType.EXPORT)
     public void exportMsgAlarm(HttpServletResponse response, @RequestBody MsgAlarmVo msgAlarmVo) {
+        //获取字典数据
+        String dictLabel=null;
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         msgAlarmVo = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
         if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
             msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
@@ -372,8 +393,13 @@ public class MsgAlarmController extends BaseController {
             SysDictData one = dictDataService.getOne(dict);
             msgAlarmCloud.setAlarmTypeName(one.getDictLabel());
             String[] split1 = msgAlarmCloud.getAlarmAttr().split(",");
+            for (SysDictData sysDictData : sysAlarmType) {
+                if (sysDictData.getDictValue().equals(msgAlarmCloud.getAlarmType().toString())) {
+                    dictLabel=sysDictData.getDictLabel();
+                }
+            }
             String stringBuilder = "画面,大小为" + split1[0] + "×" + split1[1] + "," +
-                    "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                    dictLabel+"范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
                     "大小" + split1[4] + "×" + split1[5];
             msgAlarmCloud.setAlarmAttr(stringBuilder);
         }
@@ -382,7 +408,7 @@ public class MsgAlarmController extends BaseController {
     }
 
     @GetMapping(value = "/getByAlarmId/{alarmId}")
-    @Log(title = "报警信息管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据报警ID获取报警信息", businessType = BusinessType.MESSAGE)
     public AjaxResult getByAlarmId(@PathVariable String alarmId) {
         MsgAlarmCloud msgAlarmCloud = msgAlarmCloudService.getByAlarmId(alarmId);
         if (!ObjectUtils.isEmpty(msgAlarmCloud)) {
@@ -426,8 +452,10 @@ public class MsgAlarmController extends BaseController {
     }
 
     @GetMapping(value = "/{id}")
-    @Log(title = "报警信息管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据主键获取报警信息", businessType = BusinessType.MESSAGE)
     public AjaxResult getInfo(@PathVariable Long id) {
+        String dictLabel=null;
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         MsgAlarmCloud msgAlarmCloud = msgAlarmCloudService.getById(id);
         if (!ObjectUtils.isEmpty(msgAlarmCloud)) {
             LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
@@ -466,12 +494,29 @@ public class MsgAlarmController extends BaseController {
             SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());
             msgAlarmResp.setDeptName(sysDept.getDeptName());
             String[] split1 = msgAlarmCloud.getAlarmAttr().split(",");
+            for (SysDictData sysDictData : sysAlarmType) {
+                if (sysDictData.getDictValue().equals(msgAlarmCloud.getAlarmType().toString())) {
+                    dictLabel=sysDictData.getDictLabel();
+                }
+            }
             String stringBuilder = "画面,大小为" + split1[0] + "×" + split1[1] + "," +
-                    "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                    dictLabel+"范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
                     "大小" + split1[4] + "×" + split1[5];
             msgAlarmResp.setAlarmAttrName(stringBuilder);
             msgAlarmResp.setCardNum(baseCameraManagement.getCardNum());
             msgAlarmResp.setCameraSn(baseCameraManagement.getCameraSn());
+            if (!ObjectUtils.isEmpty(baseCameraManagement)) {
+                if (!StringUtils.isEmpty(baseCameraManagement.getVersionName())) {
+                    msgAlarmResp.setVersionName(baseCameraManagement.getVersionName());
+                } else {
+                    msgAlarmResp.setVersionName(" ");
+                }
+                if (!StringUtils.isEmpty(baseCameraManagement.getVersionNum())) {
+                    msgAlarmResp.setVersionNum(baseCameraManagement.getVersionNum());
+                } else {
+                    msgAlarmResp.setVersionNum(" ");
+                }
+            }
             return AjaxResult.success(msgAlarmResp);
         } else {
             return success("无报警信息数据");
@@ -480,7 +525,7 @@ public class MsgAlarmController extends BaseController {
 
     // todo  需要测试 验证 是否合成视频
     @RequestMapping(value = "/updateIsLock")
-    @Log(title = "报警信息管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改报警状态", businessType = BusinessType.UPDATE)
     @Transactional
     public AjaxResult updateIsLock(@RequestParam(value = "id") Long id,
                                    @RequestParam(value = "releasedType", required = false) Integer releasedType,
@@ -535,7 +580,7 @@ public class MsgAlarmController extends BaseController {
     }
 
     @GetMapping(value = "/alarmHistoricalAlarm/{alarmId}")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "获取报警信息", businessType = BusinessType.SELECT)
     public AjaxResult alarmHistoricalAlarm(@PathVariable String alarmId) {
         QueryWrapper<MsgAlarmCloud> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("alarm_id", alarmId);
@@ -568,7 +613,7 @@ public class MsgAlarmController extends BaseController {
     }
 
     @GetMapping(value = "/videoHistoricalAlarm/{cameraCode}")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "根据相机编码获取报警信息", businessType = BusinessType.SELECT)
     public AjaxResult videoHistoricalAlarm(@PathVariable String cameraCode) {
         QueryWrapper<MsgAlarmCloud> wrapper = new QueryWrapper<>();
         wrapper.eq("camera_code", cameraCode);
@@ -589,9 +634,11 @@ public class MsgAlarmController extends BaseController {
      * @param alarmStatisticResVo
      * @return
      */
-    @Log(title = "报警信息管理", businessType = BusinessType.OTHER)
+    @Log(title = "web报警数据统计", businessType = BusinessType.OTHER)
     @PostMapping("/dataStatistic")
     public AjaxResult dataStatistic(@RequestBody AlarmStatisticResVo alarmStatisticResVo) {
+        AtomicReference<String> dictLabel= new AtomicReference<>();
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         alarmStatisticResVo = (AlarmStatisticResVo) dataScoreUtil.setDataScore(getUserId(), alarmStatisticResVo);
         IPage<AlarmStatisticVo> page = msgAlarmCloudService.list(alarmStatisticResVo);
         page.setTotal(page.getTotal());
@@ -625,15 +672,20 @@ public class MsgAlarmController extends BaseController {
                     o.setIsLockName(o.getIsLock() == 1 ? "已解除" : "未解除");
                 }
                 if (!ObjectUtils.isEmpty(o.getAlarmAttr())) {
+                    for (SysDictData sysDictData : sysAlarmType) {
+                        if (sysDictData.getDictValue().equals(o.getAlarmType().toString())) {
+                            dictLabel.set(sysDictData.getDictLabel());
+                        }
+                    }
                     String[] split1 = o.getAlarmAttr().split(",");
                     String stringBuilder = "画面大小" + split1[0] + "×" + split1[1] + "," +
-                            "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                            dictLabel+"范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
                             "大小" + split1[4] + "×" + split1[5];
                     o.setAlarmAttrString(stringBuilder);
                 }
                 return o;
             }).collect(Collectors.toList());
-                        page.setRecords(dto1);
+            page.setRecords(dto1);
         }
         return AjaxResult.success(page);
     }
@@ -644,7 +696,7 @@ public class MsgAlarmController extends BaseController {
      * @param
      * @return
      */
-    @Log(title = "报警信息管理", businessType = BusinessType.OTHER)
+    @Log(title = "web报警数据统计", businessType = BusinessType.OTHER)
     @PostMapping("/alarmMonthStatistic")
     public AjaxResult alarmMonthStatistic(@RequestBody AlarmStatisticResVo alarmStatisticResVo) {
         alarmStatisticResVo = (AlarmStatisticResVo) dataScoreUtil.setDataScore(getUserId(), alarmStatisticResVo);
@@ -703,9 +755,11 @@ public class MsgAlarmController extends BaseController {
      * @param
      * @return
      */
-    @Log(title = "报警信息管理", businessType = BusinessType.EXPORT)
+    @Log(title = "web数报警据统计导出", businessType = BusinessType.EXPORT)
     @PostMapping("/exportDataStatistic")
     public void exportDataStatistic(HttpServletResponse response, @RequestBody AlarmStatisticResVo alarmStatisticResVo) {
+        final String[] dictLabel = {null};
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         alarmStatisticResVo = (AlarmStatisticResVo) dataScoreUtil.setDataScore(getUserId(), alarmStatisticResVo);
         try {
             List<AlarmStatisticDto> list = msgAlarmCloudService.exportExcel(alarmStatisticResVo);
@@ -735,9 +789,14 @@ public class MsgAlarmController extends BaseController {
                         l.setIsLockName(l.getIsLock() == 1 ? "已解除" : "未解除");
                     }
                     if (!ObjectUtils.isEmpty(l.getAlarmAttr())) {
+                        for (SysDictData sysDictData : sysAlarmType) {
+                            if (sysDictData.getDictValue().equals(l.getAlarmType().toString())) {
+                                dictLabel[0] =sysDictData.getDictLabel();
+                            }
+                        }
                         String[] split1 = l.getAlarmAttr().split(",");
                         String stringBuilder = "画面大小" + split1[0] + "×" + split1[1] + "," +
-                                "泥石流范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
+                                dictLabel[0] +"范围为左上角坐标(" + split1[2] + "," + split1[3] + ")" +
                                 "大小" + split1[4] + "×" + split1[5];
                         l.setAlarmAttrString(stringBuilder);
                     }
@@ -758,7 +817,7 @@ public class MsgAlarmController extends BaseController {
      * @param
      * @return
      */
-    @Log(title = "报警信息管理", businessType = BusinessType.EXPORT)
+    @Log(title = "web报警数据统计月统计导出", businessType = BusinessType.EXPORT)
     @PostMapping("/exportDataStatisticMonth")
     public void exportDataStatisticMonth(HttpServletResponse response, @RequestBody AlarmStatisticResVo alarmStatisticResVo) {
         alarmStatisticResVo = (AlarmStatisticResVo) dataScoreUtil.setDataScore(getUserId(), alarmStatisticResVo);
@@ -825,7 +884,7 @@ public class MsgAlarmController extends BaseController {
 
 
     @GetMapping(value = "/alarmStatistics")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "获取报警信息", businessType = BusinessType.SELECT)
     public AjaxResult alarmStatistics() {
         MsgAlarmVo msgAlarmVo1 = new MsgAlarmVo();
         MsgAlarmVo msgAlarmVo = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo1);
@@ -833,7 +892,7 @@ public class MsgAlarmController extends BaseController {
     }
 
     @GetMapping(value = "/alarmCountSort")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "获取报警信息", businessType = BusinessType.SELECT)
     public AjaxResult alarmCountSort() {
         MsgAlarmVo msgAlarmVo1 = new MsgAlarmVo();
         MsgAlarmVo msgAlarmVo = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo1);

+ 15 - 4
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmMatterController.java

@@ -15,6 +15,7 @@ import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.service.entity.*;
 import com.ozs.service.entity.vo.*;
 import com.ozs.service.service.*;
+import com.ozs.system.mapper.SysDictDataMapper;
 import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysDeptService;
 import com.ozs.system.service.ISysDictDataService;
@@ -58,6 +59,9 @@ public class MsgAlarmMatterController extends BaseController {
     private ISysDictTypeService dictTypeService;
     @Resource
     private MsgAlarmExtService msgAlarmExtService;
+    // 字典
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
     /**
      * 报警信息分页
      *
@@ -65,7 +69,7 @@ public class MsgAlarmMatterController extends BaseController {
      * @return
      */
     @PostMapping("/list")
-    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    @Log(title = "报警信息分页", businessType = BusinessType.SELECT)
     public AjaxResult selectMsgAlarm(@RequestBody MsgAlarmMatterVo msgAlarmVo) {
         msgAlarmVo = (MsgAlarmMatterVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
         if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
@@ -135,8 +139,10 @@ public class MsgAlarmMatterController extends BaseController {
      * @param response
      */
     @PostMapping("/exportMsgAlarm")
-    @Log(title = "报警信息管理", businessType = BusinessType.EXPORT)
+    @Log(title = "导出报警消息", businessType = BusinessType.EXPORT)
     public void exportMsgAlarm(HttpServletResponse response, @RequestBody MsgAlarmMatterVo msgAlarmVo) {
+        String dictLabel=null;
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         msgAlarmVo = (MsgAlarmMatterVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
         if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())) {
             msgAlarmVo.setAlarmMile(msgAlarmVo.getAlarmMile() * 1000);
@@ -169,11 +175,16 @@ public class MsgAlarmMatterController extends BaseController {
 //                }
                 o.setReleasedByName(o.getReleasedBy());
             }
+            for (SysDictData sysDictData : sysAlarmType) {
+                if (sysDictData.getDictValue().equals(o.getAlarmType().toString())) {
+                    dictLabel=sysDictData.getDictLabel();
+                }
+            }
             String mils = AppendUtils.stringAppend(o.getAlarmMile());
             o.setAlarmMiles(mils);
             o.setLineDirName(o.getLineDir() == 1 ? "上行" : "下行");
-            o.setAlarmTypeStr(o.getAlarmType() == 1 ? "泥石流" : (o.getAlarmType() == 2 ? "异物侵限" : (o.getAlarmType() == 3 ? "断轨监测" : "未知")));
-            o.setIsReleaseName(o.getIsRelease() == 1 ? "已解除" : (o.getIsRelease() == 2 ? "未解除" : "未知"));
+            o.setAlarmTypeStr(dictLabel);
+            o.setIsReleaseName(o.getIsRelease() == 1 ? "已处置" : (o.getIsRelease() == 2 ? "未处置" : "未知"));
             List<SysDictData> data = dictTypeService.selectDictDataByType("sys_alarm_type");
             data.stream().forEach(sysDictData -> {
                 if (sysDictData.getDictValue().equals(o.getAlarmType().toString())) {

+ 67 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/UserStateStatisticsController.java

@@ -0,0 +1,67 @@
+package com.ozs.web.controller.accountmanagment;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.service.entity.vo.DeviceStateResp;
+import com.ozs.service.entity.vo.UserStateStatisticsResp;
+import com.ozs.service.service.UserStateStatisticsService;
+import com.ozs.system.service.DataScoreUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * @author Administrator
+ */
+@RestController
+@RequestMapping("/service/userStateStatistics")
+@Slf4j
+public class UserStateStatisticsController extends BaseController {
+
+    @Autowired
+    private UserStateStatisticsService userStateStatisticsService;
+    @Autowired
+    private DataScoreUtil dataScoreUtil;
+
+    @GetMapping("/getUserStateStatistics")
+    @Log(title = "用户状态履历列表", businessType = BusinessType.SELECT)
+    public AjaxResult getUserStateStatistics(@RequestParam(value = "userId", required = false) String userId,
+                                             @RequestParam(value = "startTime", required = false) String startTime,
+                                             @RequestParam(value = "endTime", required = false) String endTime) {
+
+        List<UserStateStatisticsResp> userStateStatisticsRespList = userStateStatisticsService.getUserStateStatistics(startTime, endTime, userId);
+        return AjaxResult.success(userStateStatisticsRespList);
+    }
+
+
+    @GetMapping("/exportUserStateStatistics")
+    @Log(title = "导出用户状态履历", businessType = BusinessType.EXPORT)
+    public void exportUserStateStatistics(HttpServletResponse response,
+                                          @RequestParam(value = "userId", required = false) String userId,
+                                          @RequestParam(value = "startTime", required = false) String startTime,
+                                          @RequestParam(value = "endTime", required = false) String endTime) {
+        List<UserStateStatisticsResp> userStateStatisticsRespList = userStateStatisticsService.exportUserStateStatistics(startTime, endTime, userId);
+        ExcelUtil<UserStateStatisticsResp> util = new ExcelUtil<>(UserStateStatisticsResp.class);
+        util.exportExcel(response, userStateStatisticsRespList, "用户状态履历数据");
+    }
+
+
+    @PostMapping("/userStateStatistics/page")
+    @Log(title = "用户状态分页列表", businessType = BusinessType.SELECT)
+    public AjaxResult userStateStatisticsPage(@RequestBody UserStateStatisticsResp userStateStatisticsResp) {
+        userStateStatisticsResp = (UserStateStatisticsResp) dataScoreUtil.setDataScore(getUserId(), userStateStatisticsResp);
+        IPage<UserStateStatisticsResp> page = userStateStatisticsService.userStateStatisticsPage(userStateStatisticsResp);
+        page.setTotal(page.getTotal());
+        page.setCurrent(page.getCurrent());
+        page.setPages(page.getPages());
+        return AjaxResult.success(page);
+    }
+}

+ 18 - 0
hazard-admin/src/main/java/com/ozs/web/controller/common/CommonController.java

@@ -2,8 +2,13 @@ package com.ozs.web.controller.common;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.core.redis.RedisCache;
+import com.ozs.common.utils.SecurityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +41,8 @@ public class CommonController
     private ServerConfig serverConfig;
 
     private static final String FILE_DELIMETER = ",";
+    @Autowired
+    private RedisCache redisCache;
 
     /**
      * 通用下载请求
@@ -160,4 +167,15 @@ public class CommonController
             log.error("下载文件失败", e);
         }
     }
+
+
+    @GetMapping("/obtain/the/valid/time")
+    public AjaxResult obtainTheValidTime(){
+        // 获取当前的用户
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        String username = loginUser.getUsername();
+        Long expireMinutes = redisCache.getKeyExpireTime(username, TimeUnit.MINUTES);
+        log.info("Key 将在 " + expireMinutes + " 分钟后过期");
+       return AjaxResult.success(expireMinutes);
+    }
 }

+ 2 - 1
hazard-admin/src/main/java/com/ozs/web/controller/monitor/CameraUpdateLogController.java

@@ -58,6 +58,7 @@ public class CameraUpdateLogController extends BaseController {
      * @return
      */
     @PostMapping("/list")
+    @Log(title = "相机升级日志列表", businessType = BusinessType.SELECT)
     public AjaxResult list(@RequestBody CameraUpdateLogResp cameraUpdateLogResp) throws ParseException {
         LambdaQueryWrapper<CameraUpdateLog> wrapper = new LambdaQueryWrapper<CameraUpdateLog>();
         if (!ObjectUtils.isEmpty(cameraUpdateLogResp.getVersionNum())) {
@@ -98,7 +99,7 @@ public class CameraUpdateLogController extends BaseController {
         return AjaxResult.success(page);
     }
 
-    @Log(title = "相机升级日志", businessType = BusinessType.EXPORT)
+    @Log(title = "相机升级日志导出", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, @RequestBody CameraUpdateLogResVo cameraUpdateLogResVo) {
         List<CameraLogDetail> list = cameraLogDetailService.selectDetail(cameraUpdateLogResVo);

+ 4 - 3
hazard-admin/src/main/java/com/ozs/web/controller/monitor/SysLoginInfoController.java

@@ -56,6 +56,7 @@ public class SysLoginInfoController extends BaseController {
      */
     @PostMapping("/list")
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
+    @Log(title = "获取登录日志分页列表", businessType = BusinessType.SELECT)
     public AjaxResult list(@RequestBody SysLoginInfoVo sysLoginInfoVo) throws ParseException {
         LambdaQueryWrapper<SysLoginInfo> wrapper = new LambdaQueryWrapper<SysLoginInfo>();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -86,7 +87,7 @@ public class SysLoginInfoController extends BaseController {
         return AjaxResult.success(info);
     }
 
-    @Log(title = "登录日志", businessType = BusinessType.EXPORT)
+    @Log(title = "登录日志导出", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, @RequestBody SysLoginInfoResq sysLoginInfoResq) {
@@ -96,7 +97,7 @@ public class SysLoginInfoController extends BaseController {
     }
 
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
-    @Log(title = "登录日志", businessType = BusinessType.DELETE)
+    @Log(title = "登录日志删除", businessType = BusinessType.DELETE)
     @PostMapping("/{infoIds}")
     public AjaxResult remove(@PathVariable Long[] infoIds)
     {
@@ -104,7 +105,7 @@ public class SysLoginInfoController extends BaseController {
     }
 
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
-    @Log(title = "登录日志", businessType = BusinessType.CLEAN)
+    @Log(title = "登录日志清除", businessType = BusinessType.CLEAN)
     @PostMapping("/clean")
     public AjaxResult clean()
     {

+ 4 - 3
hazard-admin/src/main/java/com/ozs/web/controller/monitor/SysOperlogController.java

@@ -54,6 +54,7 @@ public class SysOperlogController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
     @PostMapping("/list")
+    @Log(title = "获取操作日志分页列表", businessType = BusinessType.SELECT)
     public AjaxResult list(@RequestBody SysOperlogVo sysOperlogVo) {
         LambdaQueryWrapper<SysOperLog> wrapper = new LambdaQueryWrapper<SysOperLog>();
         if (!ObjectUtils.isEmpty(sysOperlogVo.getUserId())) {
@@ -86,7 +87,7 @@ public class SysOperlogController extends BaseController {
         return AjaxResult.success(sysOperLog);
     }
 
-    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
+    @Log(title = "操作日志导出", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, @RequestBody SysOperlogResq sysOperlogResq) {
@@ -95,7 +96,7 @@ public class SysOperlogController extends BaseController {
         util.exportExcel(response, list, "操作日志");
     }
 
-    @Log(title = "操作日志", businessType = BusinessType.DELETE)
+    @Log(title = "操作日志删除", businessType = BusinessType.DELETE)
     @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
     @PostMapping("/{operIds}")
     public AjaxResult remove(@PathVariable Long[] operIds)
@@ -103,7 +104,7 @@ public class SysOperlogController extends BaseController {
         return toAjax(operLogService.deleteOperLogByIds(operIds));
     }
 
-    @Log(title = "操作日志", businessType = BusinessType.CLEAN)
+    @Log(title = "操作日志清除", businessType = BusinessType.CLEAN)
     @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
     @GetMapping("/clean")
     public AjaxResult clean()

+ 1 - 1
hazard-admin/src/main/java/com/ozs/web/controller/monitor/SysUserOnlineController.java

@@ -81,7 +81,7 @@ public class SysUserOnlineController extends BaseController
      * 强退用户
      */
     @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
-    @Log(title = "在线用户", businessType = BusinessType.FORCE)
+    @Log(title = "强退用户", businessType = BusinessType.FORCE)
     @GetMapping("/{tokenId}")
     public AjaxResult forceLogout(@PathVariable String tokenId)
     {

+ 6 - 5
hazard-admin/src/main/java/com/ozs/web/controller/system/SysConfigController.java

@@ -38,6 +38,7 @@ public class SysConfigController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:config:list')")
     @GetMapping("/list")
+    @Log(title = "获取参数配置列表列表", businessType = BusinessType.SELECT)
     public TableDataInfo list(SysConfig config)
     {
         startPage();
@@ -45,7 +46,7 @@ public class SysConfigController extends BaseController
         return getDataTable(list);
     }
 
-    @Log(title = "参数管理", businessType = BusinessType.EXPORT)
+    @Log(title = "导出参数配置", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:config:export')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysConfig config)
@@ -78,7 +79,7 @@ public class SysConfigController extends BaseController
      * 新增参数配置
      */
     @PreAuthorize("@ss.hasPermi('system:config:add')")
-    @Log(title = "参数管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增参数配置", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysConfig config)
     {
@@ -94,7 +95,7 @@ public class SysConfigController extends BaseController
      * 修改参数配置
      */
     @PreAuthorize("@ss.hasPermi('system:config:edit')")
-    @Log(title = "参数管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改参数配置", businessType = BusinessType.UPDATE)
     @RequestMapping
     public AjaxResult edit(@Validated @RequestBody SysConfig config)
     {
@@ -110,7 +111,7 @@ public class SysConfigController extends BaseController
      * 删除参数配置
      */
     @PreAuthorize("@ss.hasPermi('system:config:remove')")
-    @Log(title = "参数管理", businessType = BusinessType.DELETE)
+    @Log(title = "删除参数配置", businessType = BusinessType.DELETE)
     @PostMapping("/{configIds}")
     public AjaxResult remove(@PathVariable Long[] configIds)
     {
@@ -122,7 +123,7 @@ public class SysConfigController extends BaseController
      * 刷新参数缓存
      */
     @PreAuthorize("@ss.hasPermi('system:config:remove')")
-    @Log(title = "参数管理", businessType = BusinessType.CLEAN)
+    @Log(title = "刷新参数缓存", businessType = BusinessType.CLEAN)
     @GetMapping("/refreshCache")
     public AjaxResult refreshCache()
     {

+ 8 - 3
hazard-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ozs.common.core.domain.entity.SysRole;
 import com.ozs.common.core.domain.vo.SysDeptVo;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.system.service.DataScoreUtil;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,12 +39,15 @@ import javax.servlet.http.HttpServletResponse;
 public class SysDeptController extends BaseController {
     @Autowired
     private ISysDeptService deptService;
+    @Autowired
+    private DataScoreUtil dataScoreUtil;
 
     /**
      * 获取部门列表
      */
     @PreAuthorize("@ss.hasPermi('system:dept:list')")
     @GetMapping("/list")
+    @Log(title = "获取部门列表", businessType = BusinessType.SELECT)
     public AjaxResult list(SysDeptVo dept) {
         List<SysDept> depts = deptService.selectDeptList(dept);
         for (SysDept sysDept : depts) {
@@ -72,6 +76,7 @@ public class SysDeptController extends BaseController {
      */
     @GetMapping("/deptTree")
     public AjaxResult deptTree(SysDeptVo dept) {
+        dept= (SysDeptVo) dataScoreUtil.setDataScore(getUserId(), dept);
         return success(deptService.selectDeptTreeList(dept));
     }
 
@@ -102,7 +107,7 @@ public class SysDeptController extends BaseController {
      * 新增部门
      */
     @PreAuthorize("@ss.hasPermi('system:dept:add')")
-    @Log(title = "部门管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增部门", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysDept dept) {
         if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
@@ -125,7 +130,7 @@ public class SysDeptController extends BaseController {
      * 修改部门
      */
     @PreAuthorize("@ss.hasPermi('system:dept:edit')")
-    @Log(title = "部门管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改部门", businessType = BusinessType.UPDATE)
     @RequestMapping("/edit")
     public AjaxResult edit(@Validated @RequestBody SysDept dept) {
         Long deptId = dept.getDeptId();
@@ -154,7 +159,7 @@ public class SysDeptController extends BaseController {
      * 删除部门
      */
     @PreAuthorize("@ss.hasPermi('system:dept:remove')")
-    @Log(title = "部门管理", businessType = BusinessType.DELETE)
+    @Log(title = "删除部门", businessType = BusinessType.DELETE)
     @RequestMapping("/remove/{deptId}")
     public AjaxResult remove(@PathVariable Long deptId) {
         if (deptService.hasChildByDeptId(deptId)) {

+ 5 - 4
hazard-admin/src/main/java/com/ozs/web/controller/system/SysDictDataController.java

@@ -64,6 +64,7 @@ public class SysDictDataController extends BaseController {
      * @return
      */
     @PostMapping("/list")
+    @Log(title = "字典数据列表", businessType = BusinessType.SELECT)
     public AjaxResult list(@RequestBody SysDictDataVo sysDictDataVo) {
         LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<SysDictData>();
         if (!ObjectUtils.isEmpty(sysDictDataVo.getDictCode())) {
@@ -98,7 +99,7 @@ public class SysDictDataController extends BaseController {
         return AjaxResult.success(page);
     }
 
-    @Log(title = "字典数据", businessType = BusinessType.EXPORT)
+    @Log(title = "字典数据导出", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:dict:export')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, @RequestBody SysDictData dictData) {
@@ -131,7 +132,7 @@ public class SysDictDataController extends BaseController {
      * 新增字典类型
      */
     @PreAuthorize("@ss.hasPermi('system:dict:add')")
-    @Log(title = "字典数据", businessType = BusinessType.INSERT)
+    @Log(title = "新增字典类型", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysDictData dict)
     {
@@ -143,7 +144,7 @@ public class SysDictDataController extends BaseController {
      * 修改保存字典类型
      */
     @PreAuthorize("@ss.hasPermi('system:dict:edit')")
-    @Log(title = "字典数据", businessType = BusinessType.UPDATE)
+    @Log(title = "修改保存字典类型", businessType = BusinessType.UPDATE)
     @RequestMapping("/edit")
     public AjaxResult edit(@Validated @RequestBody SysDictData dict)
     {
@@ -158,7 +159,7 @@ public class SysDictDataController extends BaseController {
      * 删除字典类型
      */
     @PreAuthorize("@ss.hasPermi('system:dict:remove')")
-    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @Log(title = "删除字典类型", businessType = BusinessType.DELETE)
     @RequestMapping("remove/{dictCodes}")
     public AjaxResult remove(@PathVariable Long[] dictCodes)
     {

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

@@ -60,6 +60,7 @@ public class SysDictTypeController extends BaseController {
      */
     @PostMapping("/list")
     @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @Log(title = "字典类型列表", businessType = BusinessType.SELECT)
     public AjaxResult list(@RequestBody SysDictTypeVo sysDictTypeVo) {
         LambdaQueryWrapper<SysDictType> wrapper = new LambdaQueryWrapper<SysDictType>();
         if (!ObjectUtils.isEmpty(sysDictTypeVo.getDictId())) {
@@ -81,7 +82,7 @@ public class SysDictTypeController extends BaseController {
         return AjaxResult.success(page);
     }
 
-    @Log(title = "字典类型", businessType = BusinessType.EXPORT)
+    @Log(title = "字典类型导出", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:dict:export')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, @RequestBody SysDictType dictType) {
@@ -104,7 +105,7 @@ public class SysDictTypeController extends BaseController {
      * 新增字典类型
      */
     @PreAuthorize("@ss.hasPermi('system:dict:add')")
-    @Log(title = "字典类型", businessType = BusinessType.INSERT)
+    @Log(title = "新增字典类型", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysDictType dict)
     {
@@ -122,7 +123,7 @@ public class SysDictTypeController extends BaseController {
      * 修改字典类型
      */
     @PreAuthorize("@ss.hasPermi('system:dict:edit')")
-    @Log(title = "字典类型", businessType = BusinessType.UPDATE)
+    @Log(title = "修改字典类型", businessType = BusinessType.UPDATE)
     @RequestMapping("/update")
     public AjaxResult edit(@Validated @RequestBody SysDictType dict)
     {
@@ -140,7 +141,7 @@ public class SysDictTypeController extends BaseController {
      * 删除字典类型
      */
     @PreAuthorize("@ss.hasPermi('system:dict:remove')")
-    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @Log(title = "删除字典类型", businessType = BusinessType.DELETE)
     @RequestMapping("/remove/{dictIds}")
     public AjaxResult remove(@PathVariable Long[] dictIds)
     {
@@ -152,7 +153,7 @@ public class SysDictTypeController extends BaseController {
      * 刷新字典缓存
      */
     @PreAuthorize("@ss.hasPermi('system:dict:remove')")
-    @Log(title = "字典类型", businessType = BusinessType.CLEAN)
+    @Log(title = "刷新字典缓存", businessType = BusinessType.CLEAN)
     @GetMapping("/refreshCache")
     public AjaxResult refreshCache()
     {

+ 4 - 3
hazard-admin/src/main/java/com/ozs/web/controller/system/SysMenuController.java

@@ -41,6 +41,7 @@ public class SysMenuController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:menu:list')")
     @GetMapping("/list")
+    @Log(title = "获取菜单列表", businessType = BusinessType.SELECT)
     public AjaxResult list(SysMenu menu) {
         List<SysMenu> menus = menuService.selectMenuList(menu, getId());
         for (SysMenu menuA : menus) {
@@ -88,7 +89,7 @@ public class SysMenuController extends BaseController {
      * 新增菜单
      */
     @PreAuthorize("@ss.hasPermi('system:menu:add')")
-    @Log(title = "菜单管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增菜单", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysMenu menu) {
         if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
@@ -102,7 +103,7 @@ public class SysMenuController extends BaseController {
      * 修改菜单
      */
     @PreAuthorize("@ss.hasPermi('system:menu:edit')")
-    @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改菜单", businessType = BusinessType.UPDATE)
     @RequestMapping("/edit")
     public AjaxResult edit(@Validated @RequestBody SysMenu menu) {
         if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
@@ -118,7 +119,7 @@ public class SysMenuController extends BaseController {
      * 删除菜单
      */
     @PreAuthorize("@ss.hasPermi('system:menu:remove')")
-    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
+    @Log(title = "删除菜单", businessType = BusinessType.DELETE)
     @RequestMapping("/remove/{menuId}")
     public AjaxResult remove(@PathVariable("menuId") Long menuId) {
         if (menuService.hasChildByMenuId(menuId)) {

+ 3 - 3
hazard-admin/src/main/java/com/ozs/web/controller/system/SysProfileController.java

@@ -55,7 +55,7 @@ public class SysProfileController extends BaseController
     /**
      * 修改用户
      */
-    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @Log(title = "修改用户", businessType = BusinessType.UPDATE)
     @RequestMapping("/update")
     public AjaxResult updateProfile(@RequestBody SysUser user)
     {
@@ -90,7 +90,7 @@ public class SysProfileController extends BaseController
     /**
      * 重置密码
      */
-    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @Log(title = "重置密码", businessType = BusinessType.UPDATE)
     @RequestMapping("/updatePwd")
     public AjaxResult updatePwd(String oldPassword, String newPassword)
     {
@@ -118,7 +118,7 @@ public class SysProfileController extends BaseController
     /**
      * 头像上传
      */
-    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
+    @Log(title = "头像上传", businessType = BusinessType.UPDATE)
     @PostMapping("/avatar")
     public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception
     {

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

@@ -92,7 +92,7 @@ public class SysRoleController extends BaseController {
 
     @PreAuthorize("@ss.hasPermi('system:role:list')")
     @PostMapping("/list")
-    @Log(title = "角色管理", businessType = BusinessType.SELECT)
+    @Log(title = "角色管理列表", businessType = BusinessType.SELECT)
     public AjaxResult page(@NotEmpty(message = "数据为空")
                            @RequestBody SysRoleRequestVo vo) {
         LambdaQueryWrapper<SysRole> lw = new LambdaQueryWrapper<SysRole>();
@@ -107,7 +107,7 @@ public class SysRoleController extends BaseController {
         return success(page);
     }
 
-    @Log(title = "角色管理", businessType = BusinessType.EXPORT)
+    @Log(title = "角色管理导出", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:role:export')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysRole role) {
@@ -121,7 +121,7 @@ public class SysRoleController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:role:query')")
     @GetMapping(value = "/{roleId}")
-    @Log(title = "角色管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据角色编号获取详细信息", businessType = BusinessType.MESSAGE)
     public AjaxResult getInfo(@PathVariable Long roleId) {
 //        roleService.checkRoleDataScope(roleId);
         SysRole sysRole = roleService.selectRoleById(roleId);
@@ -142,7 +142,7 @@ public class SysRoleController extends BaseController {
      * 新增角色
      */
     @PreAuthorize("@ss.hasPermi('system:role:add')")
-    @Log(title = "角色管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增角色", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysRole role) {
         if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) {
@@ -160,7 +160,7 @@ public class SysRoleController extends BaseController {
      * 修改保存角色
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
-    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改保存角色", businessType = BusinessType.UPDATE)
     @RequestMapping("/edit")
     public AjaxResult edit(@Validated @RequestBody SysRole role) {
 //        roleService.checkRoleAllowed(role);
@@ -206,7 +206,7 @@ public class SysRoleController extends BaseController {
      * 修改保存数据权限
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
-    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改保存数据权限", businessType = BusinessType.UPDATE)
     @RequestMapping("/dataScope")
     public AjaxResult dataScope(@RequestBody SysRole role) {
         roleService.checkRoleAllowed(role);
@@ -218,7 +218,7 @@ public class SysRoleController extends BaseController {
      * 状态修改
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
-    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @Log(title = "状态修改", businessType = BusinessType.UPDATE)
     @RequestMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysRole role) {
         roleService.checkRoleAllowed(role);
@@ -231,7 +231,7 @@ public class SysRoleController extends BaseController {
      * 删除角色
      */
     @PreAuthorize("@ss.hasPermi('system:role:remove')")
-    @Log(title = "角色管理", businessType = BusinessType.DELETE)
+    @Log(title = "删除角色", businessType = BusinessType.DELETE)
     @RequestMapping("/remove/{roleIds}")
     public AjaxResult remove(@PathVariable Long[] roleIds) {
         return toAjax(roleService.deleteRoleByIds(roleIds));
@@ -242,7 +242,7 @@ public class SysRoleController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:role:query')")
     @GetMapping("/optionselect")
-    @Log(title = "角色管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取角色选择框列表", businessType = BusinessType.OTHER)
     public AjaxResult optionselect() {
         return success(roleService.selectRoleAll());
     }
@@ -264,7 +264,7 @@ public class SysRoleController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:role:list')")
     @GetMapping("/authUser/unallocatedList")
-    @Log(title = "角色管理", businessType = BusinessType.SELECT)
+    @Log(title = "查询未分配用户角色列表", businessType = BusinessType.SELECT)
     public TableDataInfo unallocatedList(SysUser user) {
         startPage();
         List<SysUser> list = userService.selectUnallocatedList(user);
@@ -275,7 +275,7 @@ public class SysRoleController extends BaseController {
      * 取消授权用户
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
-    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @Log(title = "取消授权用户", businessType = BusinessType.GRANT)
     @RequestMapping("/authUser/cancel")
     public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole) {
         return toAjax(roleService.deleteAuthUser(userRole));
@@ -285,7 +285,7 @@ public class SysRoleController extends BaseController {
      * 批量取消授权用户
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
-    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @Log(title = "批量取消授权用户", businessType = BusinessType.GRANT)
     @RequestMapping("/authUser/cancelAll")
     public AjaxResult cancelAuthUserAll(Long roleId,@RequestBody Long[] userIds) {
         return toAjax(roleService.deleteAuthUsers(roleId, userIds));
@@ -295,7 +295,7 @@ public class SysRoleController extends BaseController {
      * 批量选择用户授权
      */
     @PreAuthorize("@ss.hasPermi('system:role:edit')")
-    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @Log(title = "批量选择用户授权", businessType = BusinessType.GRANT)
     @RequestMapping("/authUser/selectAll")
     public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) {
         roleService.checkRoleDataScope(roleId);
@@ -307,7 +307,7 @@ public class SysRoleController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:role:query')")
     @GetMapping(value = "/deptTree/{roleId}")
-    @Log(title = "角色管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取对应角色部门树列表", businessType = BusinessType.OTHER)
     public AjaxResult deptTree(@PathVariable("roleId") Long roleId) {
         AjaxResult ajax = AjaxResult.success();
         ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));

+ 17 - 17
hazard-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java

@@ -113,7 +113,7 @@ public class SysUserController extends BaseController {
      */
     @PostMapping("/list")
     @PreAuthorize("@ss.hasPermi('system:user:list')")
-    @Log(title = "用户管理", businessType = BusinessType.SELECT)
+    @Log(title = "获取用户列表", businessType = BusinessType.SELECT)
     public AjaxResult list(@RequestBody SysUserVo sysUserVo) {
         sysUserVo = (SysUserVo) dataScoreUtil.setDataScore(getUserId(), sysUserVo);
         IPage<SysUser> page = userService.queryPage(sysUserVo);
@@ -144,7 +144,7 @@ public class SysUserController extends BaseController {
         return AjaxResult.success(page);
     }
 
-    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
+    @Log(title = "用户管理导出", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @PostMapping("/export")
     public void export(HttpServletResponse response, @RequestBody SysUserVo sysUserVo) {
@@ -176,7 +176,7 @@ public class SysUserController extends BaseController {
         util.exportExcel(response, usetList, "用户数据");
     }
 
-    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
+    @Log(title = "用户管理导入", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
@@ -195,14 +195,14 @@ public class SysUserController extends BaseController {
     }
 
     @PostMapping("/importTemplate")
-    @Log(title = "用户管理", businessType = BusinessType.SELECT)
+    @Log(title = "用户管理导入模板", businessType = BusinessType.SELECT)
     public void importTemplate(HttpServletResponse response) {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         util.importTemplateExcel(response, "用户数据");
     }
 
     @GetMapping("/downloaExcel")
-    @Log(title = "用户管理", businessType = BusinessType.OTHER)
+    @Log(title = "下载用户管理模板", businessType = BusinessType.OTHER)
     public void downloadZip(HttpServletResponse response) {
         try {
             InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/SysUser.xlsx");
@@ -219,7 +219,7 @@ public class SysUserController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:user:query')")
     @GetMapping(value = {"/", "/{id}"})
-    @Log(title = "用户管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据用户编号获取详细信息", businessType = BusinessType.MESSAGE)
     public AjaxResult getInfo(@PathVariable(value = "id", required = false) Long id) {
 //        userService.checkUserDataScope(id);
         AjaxResult ajax = AjaxResult.success();
@@ -242,7 +242,7 @@ public class SysUserController extends BaseController {
      * 新增用户
      */
     @PreAuthorize("@ss.hasPermi('system:user:add')")
-    @Log(title = "用户管理", businessType = BusinessType.INSERT)
+    @Log(title = "新增用户", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     public AjaxResult add(@Validated @RequestBody SysUser user) {
         String password = null;
@@ -265,7 +265,7 @@ public class SysUserController extends BaseController {
      * 修改用户
      */
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
-    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改用户", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody SysUser user) {
 //        userService.checkUserAllowed(user);
@@ -285,7 +285,7 @@ public class SysUserController extends BaseController {
      * 修改用户-web修改个人信息
      */
 //    @PreAuthorize("@ss.hasPermi('system:user:edit')")
-    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @Log(title = "web修改个人信息", businessType = BusinessType.UPDATE)
     @RequestMapping(value = "/updateUser", method = RequestMethod.PUT)
     public AjaxResult updateUser(@RequestBody SysUserUpdate user) {
         if (!StringUtils.isEmpty(user) && !StringUtils.isEmpty(user.getPassword())) {
@@ -318,7 +318,7 @@ public class SysUserController extends BaseController {
      * 删除用户
      */
     @PreAuthorize("@ss.hasPermi('system:user:remove')")
-    @Log(title = "用户管理", businessType = BusinessType.DELETE)
+    @Log(title = "删除用户", businessType = BusinessType.DELETE)
     @RequestMapping("/remove/{Ids}")
     public AjaxResult remove(@PathVariable Long[] Ids) {
         if (ArrayUtils.contains(Ids, getId())) {
@@ -353,7 +353,7 @@ public class SysUserController extends BaseController {
      * 重置密码
      */
     @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
-    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @Log(title = "重置密码", businessType = BusinessType.UPDATE)
     @GetMapping("/resetPwd/{id}")
     public AjaxResult resetPwd(@PathVariable(value = "id") Long id) {
         boolean stop=false;
@@ -389,7 +389,7 @@ public class SysUserController extends BaseController {
     /**
      * 修改密码
      */
-    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @Log(title = "修改密码", businessType = BusinessType.UPDATE)
     @RequestMapping("/updatePassWord")
     public AjaxResult updatePassWord(@RequestBody SysUser user) {
         LoginUser loginUser = getLoginUser();
@@ -418,7 +418,7 @@ public class SysUserController extends BaseController {
      * 状态修改
      */
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
-    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @Log(title = "状态修改", businessType = BusinessType.UPDATE)
     @RequestMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysUser user) {
 //        userService.checkUserAllowed(user);
@@ -432,7 +432,7 @@ public class SysUserController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:user:query')")
     @GetMapping("/authRole/{userId}")
-    @Log(title = "用户管理", businessType = BusinessType.MESSAGE)
+    @Log(title = "根据用户编号获取授权角色", businessType = BusinessType.MESSAGE)
     public AjaxResult authRole(@PathVariable("userId") Long id) {
         AjaxResult ajax = AjaxResult.success();
         SysUser user = userService.selectUserById(id);
@@ -446,7 +446,7 @@ public class SysUserController extends BaseController {
      * 用户授权角色
      */
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
-    @Log(title = "用户管理", businessType = BusinessType.GRANT)
+    @Log(title = "用户授权角色", businessType = BusinessType.GRANT)
     @RequestMapping("/authRole")
     public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
 //        userService.checkUserDataScope(userId);
@@ -459,7 +459,7 @@ public class SysUserController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @GetMapping("/deptTree")
-    @Log(title = "用户管理", businessType = BusinessType.OTHER)
+    @Log(title = "获取部门树列表", businessType = BusinessType.OTHER)
     public AjaxResult deptTree(SysDeptVo sysDeptVo) {
         sysDeptVo = (SysDeptVo) dataScoreUtil.setDataScore(getUserId(), sysDeptVo);
         return success(deptService.selectDeptTreeList(sysDeptVo));
@@ -469,7 +469,7 @@ public class SysUserController extends BaseController {
      * 数据权限分配
      */
     @GetMapping("/dataPermission/{id}/{dataPermission}")
-    @Log(title = "用户管理", businessType = BusinessType.GRANT)
+    @Log(title = "数据权限分配", businessType = BusinessType.GRANT)
     public AjaxResult dataPermission(@PathVariable("id") Long id, @PathVariable("dataPermission") Integer dataPermission) {
         BaseUser baseUser = baseUserService.getUserById(id);
         if (baseUser.getUserName().equals("admin")) {

+ 21 - 2
hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java

@@ -4,12 +4,14 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.service.entity.*;
 import com.ozs.service.entity.vo.MsgAlarmResp;
 import com.ozs.service.service.*;
+import com.ozs.system.mapper.SysDictDataMapper;
 import com.ozs.system.service.ISysDictDataService;
 import com.ozs.system.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
@@ -54,6 +56,9 @@ public class WebSocketConteoller extends BaseController {
     private ISysDictDataService dictDataService;
     @Autowired
     private  MsgAlarmCloudService  msgAlarmCloudService;
+    // 字典
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
 
     /**
      * 获取项目名称
@@ -74,6 +79,8 @@ public class WebSocketConteoller extends BaseController {
     @ResponseBody
     @GetMapping("/getMessageApp")
     public Map publishApp() {
+        String dictLabel=null;
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         String userId = getUserId();
         List<MsgAppPush> msgAppPushList = msgAppPushService.getByUserId(userId);
         for (MsgAppPush msgAppPush : msgAppPushList) {
@@ -84,11 +91,16 @@ public class WebSocketConteoller extends BaseController {
             String formatDate = sdf.format(alarmTime != null ? alarmTime : new Date());
             List<String> userList = new ArrayList<>();
             userList.add(userId);
+            for (SysDictData sysDictData : sysAlarmType) {
+                if (sysDictData.getDictValue().equals(msgAlarmResp.getAlarmType().toString())) {
+                    dictLabel=sysDictData.getDictLabel();
+                }
+            }
             JPushUtil.sendToRegistrationId(
                     userList,
                     "报警通知!", msgAlarmResp.getRailwayName() != null ? msgAlarmResp.getRailwayName() : "",
                     // content,
-                    formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + msgAlarmResp.getLineDir() + "     " + msgAlarmResp.getAlarmMile() + "     " + msgAlarmResp.getBeginMile(),
+                    formatDate + "     " + dictLabel + "     " + msgAlarmResp.getLineDir() + "     " + msgAlarmResp.getAlarmMile() + "     " + msgAlarmResp.getBeginMile(),
                     remark);
             msgAppPush.setOnline("1");
             msgAppPushService.updateById(msgAppPush);
@@ -126,6 +138,8 @@ public class WebSocketConteoller extends BaseController {
     @PostMapping("/publish")
     public Map publish(@RequestBody MsgAlarmCloud msgAlarmCloud) {
         String endMile = null;
+        String dictLabel=null;
+        List<SysDictData> sysAlarmType = dictDataMapper.selectDictDataByType("sys_alarm_type");
         log.info("消息推送:" + msgAlarmCloud.toString());
         LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<BaseCameraManagement>();
         if (!ObjectUtils.isEmpty(msgAlarmCloud.getCameraCode())) {
@@ -268,11 +282,16 @@ public class WebSocketConteoller extends BaseController {
                         }
                         List<String> userList = new ArrayList<>();
                         userList.add(userRegistrationid.getRegistrationId());
+                        for (SysDictData sysDictData : sysAlarmType) {
+                            if (sysDictData.getDictValue().equals(msgAlarmCloud.getAlarmType().toString())) {
+                                dictLabel=sysDictData.getDictLabel();
+                            }
+                        }
                         JPushUtil.sendToRegistrationId(
                                 userList,
                                 "报警通知!", baseRailwayManagement.getRailwayName() != null ? baseRailwayManagement.getRailwayName() : "",
                                 // content,
-                                formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + lineDirName + "     " + mile + "     " + endMile,
+                                formatDate + "     " + dictLabel + "     " + lineDirName + "     " + mile + "     " + endMile,
                                 content);
                         msgAppPush.setOnline("1");
                     } else {

+ 25 - 1
hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketServer.java

@@ -1,16 +1,19 @@
 package com.ozs.web.controller.websocket;
 
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.websocket.*;
 import javax.websocket.server.PathParam;
 import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.stream.Collectors;
 
 /**
  * @Author : sunhh
@@ -42,6 +45,11 @@ public class WebSocketServer {
         return session != null ? true : false;
     }
 
+    //获取所有在线用户
+    public List<String> getOnlineUser() {
+       return new ArrayList<>(sessionPool.keySet());
+    }
+
     /**
      * 链接成功调用的方法
      */
@@ -52,7 +60,7 @@ public class WebSocketServer {
             this.userId = userId;
             webSockets.add(this);
             sessionPool.put(userId, session);
-            System.out.println("链接成功" + webSockets.size());
+                System.out.println("链接成功" + webSockets.size());
             log.info("【websocket消息】有新的连接,总数为:" + webSockets.size());
         } catch (Exception e) {
         }
@@ -69,6 +77,7 @@ public class WebSocketServer {
             System.out.println("链接失败" + webSockets.size());
             log.info("【websocket消息】连接断开,总数为:" + webSockets.size());
         } catch (Exception e) {
+            log.error("onClose移除连接失败", e);
         }
     }
 
@@ -80,6 +89,8 @@ public class WebSocketServer {
     @OnMessage
     public void onMessage(String message) {
         log.info("【websocket消息】收到客户端消息:" + message);
+        log.info("【收到消息】userId: {}, Session是否打开: {}, 当前webSockets大小: {}",
+                this.userId, this.session.isOpen(), webSockets.size());
     }
 
     /**
@@ -138,4 +149,17 @@ public class WebSocketServer {
             }
         }
     }
+
+    @Scheduled(fixedRate = 30000) // 每30秒执行一次
+    public void cleanInvalidSessions() {
+        List<String> invalidUserIds = sessionPool.entrySet().stream()
+                .filter(entry -> !entry.getValue().isOpen())
+                .map(Map.Entry::getKey)
+                .collect(Collectors.toList());
+        invalidUserIds.forEach(userId -> {
+            sessionPool.remove(userId);
+            webSockets.removeIf(ws -> ws.userId.equals(userId));
+        });
+        log.info("清理无效连接,剩余总数: {}", webSockets.size());
+    }
 }

+ 7 - 0
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -1099,17 +1099,24 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
             }
             // 计算查询的时间范围(前五分钟)
             long startTime = currentTimestamp - timeInterval;
+            log.info("当前时间戳:{},时间间隔:{}", currentTimestamp, timeInterval);
+            log.info("查询时间范围:{}", new Date(startTime) + "--" + new Date(currentTimestamp));
             // 查询 MQ 日志
             LambdaQueryWrapper<MqLog> mqLogQuery = new LambdaQueryWrapper<>();
             mqLogQuery.between(MqLog::getCreateTime, new Date(startTime), new Date(currentTimestamp));
             List<MqLog> mqLogs = mqLogService.list(mqLogQuery);
+            log.info("查询结果:{}", mqLogs);
             Set<String> loggedCameraCodes = mqLogs.stream().map(MqLog::getCameraCode).collect(Collectors.toSet());
+            log.info("已记录日志的设备:{}", loggedCameraCodes);
             // 获取所有设备
             List<BaseDeviceDynamicManagement> devices = baseDeviceDynamicManagementService.list();
             Set<String> allCameraCodes = devices.stream().map(BaseDeviceDynamicManagement::getCameraCode).collect(Collectors.toSet());
+            log.info("所有设备:{}", allCameraCodes);
             // 找出未记录日志的设备
             Set<String> inactiveCameraCodes = new HashSet<>(allCameraCodes);
+            log.info("set集合中的设备:{}", inactiveCameraCodes);
             inactiveCameraCodes.removeAll(loggedCameraCodes);
+            log.info("未记录日志的设备:{}", inactiveCameraCodes);
             // 保存设备状态变更记录
             saveDeviceResume(loggedCameraCodes, 1);
             saveDeviceResume(inactiveCameraCodes, 2);

+ 186 - 0
hazard-admin/src/main/java/com/ozs/web/core/util/InsertUserStateUtil.java

@@ -0,0 +1,186 @@
+package com.ozs.web.core.util;
+
+
+import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ozs.service.entity.BaseUser;
+import com.ozs.service.entity.MsgWebPush;
+import com.ozs.service.entity.UserStateStatistics;
+import com.ozs.service.entity.vo.MsgAlarmResp;
+import com.ozs.service.mapper.BaseUserMapper;
+import com.ozs.service.service.UserStateStatisticsService;
+import com.ozs.web.controller.websocket.WebSocketServer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+
+@Configuration
+@EnableScheduling
+@EnableAsync
+public class InsertUserStateUtil {
+
+    private static final Logger log = LoggerFactory.getLogger(InsertUserStateUtil.class);
+
+    @Autowired
+    private WebSocketServer webSocketServer;
+    @Autowired
+    private BaseUserMapper baseUserMapper;
+    @Autowired
+    private UserStateStatisticsService userStateStatisticsService;
+    @Value("${base.isEnable:false}")
+    private String isEnable;
+
+    @Async
+    @Scheduled(cron = "0 */5 * * * ?")
+    @Transactional
+    public void tableCreationAndDelete() {
+        if ("true".equals(isEnable)) {
+            log.info("开始执行 tableCreationAndDelete 任务");
+            // 获取在线用户和工务段用户
+            List<String> onlineUser = webSocketServer.getOnlineUser();
+            List<String> userIdList = baseUserMapper.getUserIdsLists();
+            //需要推送信息的用户
+            List<String> userIdsAll = baseUserMapper.getUserIdsAll();
+            //获取属于工段用户的用户ID
+            List<String> userLists = baseUserMapper.getUserLists();
+
+
+            // 使用Set提高查找性能
+            Set<String> onlineSet = new HashSet<>(onlineUser);
+            Set<String> userSet = new HashSet<>(userIdList);
+            Set<String> userAll = new HashSet<>(userIdsAll);
+
+            // 计算差集和交集
+            Set<String> offlineUsers = userSet.stream()
+                    .filter(userId -> !onlineSet.contains(userId))
+                    .collect(Collectors.toSet());
+            Set<String> offlineUsersAll = userAll.stream()
+                    .filter(userId -> !onlineSet.contains(userId))
+                    .collect(Collectors.toSet());
+            Set<String> onlineUsers = onlineSet.stream()
+                    .filter(userSet::contains)
+                    .collect(Collectors.toSet());
+
+            // 批量查询用户信息,减少数据库查询
+            Map<String, BaseUser> userMap = baseUserMapper.getUsersByIds(
+                    Stream.concat(offlineUsers.stream(), onlineUsers.stream())
+                            .collect(Collectors.toList())
+            ).stream().collect(Collectors.toMap(BaseUser::getUserId, user -> user));
+
+            // 批量查询最新用户状态
+            List<String> allUserIds = Stream.concat(offlineUsers.stream(), onlineUsers.stream())
+                    .collect(Collectors.toList());
+            Map<String, UserStateStatistics> latestUserStateMap = getUserLatestStateMap(allUserIds);
+            log.info("用户状态 {}", latestUserStateMap);
+            // 处理离线用户
+            processUserStates(offlineUsers, userMap, latestUserStateMap, 2, userStateStatisticsService);
+
+            // 处理在线用户
+            processUserStates(onlineUsers, userMap, latestUserStateMap, 1, userStateStatisticsService);
+            // 推送信息
+            String data = objStr(offlineUsersAll.size());
+            log.info("准备推送数据: {}, 目标用户数: {}", data, userLists.size());
+            // 先批量检查在线状态,减少重复调用
+            List<String> onlineUserList = userLists.stream()
+                    .filter(webSocketServer::userOnline)
+                    .collect(Collectors.toList());
+
+            log.info("在线用户数: {}", onlineUserList.size());
+
+            // 批量推送
+            onlineUserList.parallelStream().forEach(userId -> {
+                try {
+                    webSocketServer.sendOneMessage(userId, data);
+                    log.info("推送成功 - 用户: {}", userId);
+                } catch (Exception e) {
+                    log.error("推送消息给用户 {} 时发生异常: {}", userId, e.getMessage(), e);
+                }
+            });
+            log.info("推送完成,成功推送数: {}", onlineUserList.size());
+        }
+    }
+
+
+    /**
+     * 批量获取用户最新状态
+     */
+    private Map<String, UserStateStatistics> getUserLatestStateMap(List<String> userIds) {
+        if (ObjectUtils.isEmpty(userIds)) {
+            return new HashMap<>();
+        }
+
+        // 使用批量查询替代循环中的单个查询
+        List<UserStateStatistics> latestStates = userStateStatisticsService.list(
+                new LambdaQueryWrapper<UserStateStatistics>()
+                        .in(UserStateStatistics::getUserId, userIds)
+                        .orderByDesc(UserStateStatistics::getCreateTime)
+        );
+
+        // 按用户ID分组,取每个用户的最新状态
+        return latestStates.stream()
+                .collect(Collectors.toMap(
+                        UserStateStatistics::getUserId,
+                        Function.identity(),
+                        (existing, replacement) -> existing.getCreateTime().after(replacement.getCreateTime()) ? existing : replacement
+                ));
+    }
+
+    /**
+     * 处理用户状态更新
+     */
+    private void processUserStates(Set<String> userIds,
+                                   Map<String, BaseUser> userMap,
+                                   Map<String, UserStateStatistics> latestStateMap,
+                                   Integer targetState,
+                                   UserStateStatisticsService service) {
+        List<UserStateStatistics> toSave = new ArrayList<>();
+
+        for (String userId : userIds) {
+            UserStateStatistics latestState = latestStateMap.get(userId);
+            BaseUser user = userMap.get(userId);
+
+            if (user == null) continue;
+
+            // 判断是否需要新增记录
+            if (ObjectUtils.isEmpty(latestState) ||
+                    !targetState.equals(latestState.getIsDisable())) {
+
+                UserStateStatistics newState = new UserStateStatistics();
+                newState.setUserId(userId);
+                newState.setUserName(user.getUserName());
+                newState.setNikeName(user.getNickName());
+                newState.setIsDisable(targetState);
+                newState.setCreateTime(new Date());
+
+                toSave.add(newState);
+            }
+        }
+
+        // 批量保存
+        if (!toSave.isEmpty()) {
+            service.saveBatch(toSave);
+        }
+    }
+
+    private String objStr(Integer count) {
+        JSONObject obj = new JSONObject();
+        obj.put("data", count);
+        obj.put("code", 120);
+        log.info("【websocket消息】 单点消息:" + obj.toJSONString());
+        return obj.toJSONString();
+    }
+}

+ 5 - 5
hazard-admin/src/main/resources/application-druid.yml

@@ -6,7 +6,7 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://10.161.12.47:3306/hazard?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://10.161.12.47:3306/hazard?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&connectTimeout=30000&socketTimeout=60000
                 username: root
                 password: UTA1hcycRtgD0c7Y
             # 从库数据源
@@ -25,15 +25,15 @@ spring:
             # 配置获取连接等待超时的时间
             maxWait: 60000
             # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-            timeBetweenEvictionRunsMillis: 60000
+            timeBetweenEvictionRunsMillis: 30000
             # 配置一个连接在池中最小生存的时间,单位是毫秒
-            minEvictableIdleTimeMillis: 300000
+            minEvictableIdleTimeMillis: 180000
             # 配置一个连接在池中最大生存的时间,单位是毫秒
-            maxEvictableIdleTimeMillis: 900000
+            maxEvictableIdleTimeMillis: 360000
             # 配置检测连接是否有效
             validationQuery: SELECT 1 FROM DUAL
             testWhileIdle: true
-            testOnBorrow: false
+            testOnBorrow: true
             testOnReturn: false
             webStatFilter:
                 enabled: true

+ 3 - 3
hazard-admin/src/main/resources/application.yml

@@ -26,11 +26,11 @@ base:
   defaultPassword: yn5aq5Mt.106.tky
   imgUrl: http://10.161.12.52:18801/picbucket
   recordUrl: http://183.236.39.220:8081${server.servlet.context-path}
-  isEnable: false;
+  isEnable: false
 # 开发环境配置
 server:
   # 服务器的HTTP端口,默认为8080
-  port: 18841
+  port: 5912
   servlet:
     # 应用的访问路径
     context-path: /hazard
@@ -117,7 +117,7 @@ token:
   # 令牌密钥
   secret: abcdefghijklmnopqrstuvwxyz
   # 令牌有效期(默认24小时)
-  expireTime: 1440
+  expireTime: 4320
 # app:token配置
 apptoken:
   # 令牌自定义标识

+ 4 - 4
hazard-sdk/src/main/java/com/ozs/controller/matter/MatterMonitorTokenController.java

@@ -277,7 +277,7 @@ public class MatterMonitorTokenController {
     }
 
     /**
-     * 报警解除接口
+     * 报警处置接口
      *
      * @param parameterVo
      * @param request
@@ -301,15 +301,15 @@ public class MatterMonitorTokenController {
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), "f5408458becc8c68");
             }
             if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseTime())) {
-                AjaxResults1 = new AjaxResults(0, "解除报警时间不能为空");
+                AjaxResults1 = new AjaxResults(0, "处置报警时间不能为空");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), "f5408458becc8c68");
             }
             if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseContent())) {
-                AjaxResults1 = new AjaxResults(0, "解除原因不能为空");
+                AjaxResults1 = new AjaxResults(0, "处置原因不能为空");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), "f5408458becc8c68");
             }
             if (ObjectUtils.isEmpty(releaseAlarmVo.getOperator())) {
-                AjaxResults1 = new AjaxResults(0, "解除人不能为空");
+                AjaxResults1 = new AjaxResults(0, "处置人不能为空");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(AjaxResults1), "f5408458becc8c68");
             }
             LambdaQueryWrapper<MsgAlarmMatter> wrapper = new LambdaQueryWrapper<>();

+ 1 - 1
hazard-sdk/src/main/resources/application.yml

@@ -24,7 +24,7 @@ base:
 # 开发环境配置
 server:
   # 服务器的HTTP端口,默认为8080
-  port: 15672
+  port: 5914
   servlet:
     # 应用的访问路径
     context-path: /