Ver código fonte

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

buzhanyi 2 anos atrás
pai
commit
cb8f30beaf
48 arquivos alterados com 763 adições e 304 exclusões
  1. 2 2
      .idea/compiler.xml
  2. 12 12
      .idea/jarRepositories.xml
  3. 1 6
      business-service/pom.xml
  4. 2 2
      business-service/src/main/java/com/ozs/service/entity/BaseCameraManagement.java
  5. 1 1
      business-service/src/main/java/com/ozs/service/entity/BaseRailwayManagement.java
  6. 8 1
      business-service/src/main/java/com/ozs/service/entity/CameraTree.java
  7. 152 0
      business-service/src/main/java/com/ozs/service/entity/vo/BaseCameraManagementHomeVo.java
  8. 98 0
      business-service/src/main/java/com/ozs/service/mapper/BaseDictDataMapper.java
  9. 2 0
      business-service/src/main/java/com/ozs/service/mapper/BaseUserMapper.java
  10. 5 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMapper.java
  11. 2 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAppPushMapper.java
  12. 6 0
      business-service/src/main/java/com/ozs/service/mapper/MsgWebPushMapper.java
  13. 4 3
      business-service/src/main/java/com/ozs/service/service/BaseCameraManagementService.java
  14. 2 2
      business-service/src/main/java/com/ozs/service/service/BaseRailwayManagementService.java
  15. 3 0
      business-service/src/main/java/com/ozs/service/service/BaseUserService.java
  16. 7 0
      business-service/src/main/java/com/ozs/service/service/MsgAlarmService.java
  17. 6 0
      business-service/src/main/java/com/ozs/service/service/MsgAppPushService.java
  18. 4 0
      business-service/src/main/java/com/ozs/service/service/MsgWebPushService.java
  19. 25 8
      business-service/src/main/java/com/ozs/service/service/impl/BaseCameraManagementServiceImpl.java
  20. 1 0
      business-service/src/main/java/com/ozs/service/service/impl/BaseDeviceDynamicManagementServiceImpl.java
  21. 4 1
      business-service/src/main/java/com/ozs/service/service/impl/BaseRailwayManagementServiceImpl.java
  22. 5 0
      business-service/src/main/java/com/ozs/service/service/impl/BaseUserServiceImpl.java
  23. 10 5
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java
  24. 8 0
      business-service/src/main/java/com/ozs/service/service/impl/MsgAppPushServiceImpl.java
  25. 14 0
      business-service/src/main/java/com/ozs/service/service/impl/MsgWebPushServiceImpl.java
  26. 3 0
      business-service/src/main/resources/mapper/service/BaseUserMapper.xml
  27. 11 0
      business-service/src/main/resources/mapper/service/MsgAlarmMapper.xml
  28. 6 0
      business-service/src/main/resources/mapper/service/MsgAppPushMapper.xml
  29. 12 0
      business-service/src/main/resources/mapper/service/MsgWebPushMapper.xml
  30. 5 0
      hazard-admin/Dockerfile
  31. 101 7
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
  32. 11 1
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseRailwayManagementController.java
  33. 28 41
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  34. 15 4
      hazard-admin/src/main/java/com/ozs/web/controller/app/JPushAppController.java
  35. 22 0
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysLoginController.java
  36. 55 8
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java
  37. 33 8
      hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java
  38. 5 11
      hazard-admin/src/main/java/com/ozs/web/core/config/CaneraConfig.java
  39. 29 167
      hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java
  40. 3 3
      hazard-admin/src/main/resources/application.yml
  41. 1 0
      hazard-admin/src/main/resources/logback.xml
  42. BIN
      hazard-admin/src/main/resources/template/SysUser.xlsx
  43. BIN
      hazard-admin/src/main/resources/template/baseCameraManagement.xlsx
  44. BIN
      hazard-admin/src/main/resources/template/baseRailwayManagement.xlsx
  45. 5 0
      hazard-sdk/Dockerfile
  46. 26 10
      hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java
  47. 3 1
      hazard-sdk/src/main/java/com/ozs/controller/upload/UploadController.java
  48. 5 0
      hazard-sdk/src/main/resources/application.yml

+ 2 - 2
.idea/compiler.xml

@@ -7,10 +7,10 @@
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
         <outputRelativeToContentRoot value="true" />
-        <module name="base-admin" />
-        <module name="hazard-admin" />
         <module name="hazard-sdk" />
         <module name="hazard-sdk" />
         <module name="business-service" />
         <module name="business-service" />
+        <module name="hazard-admin" />
+        <module name="base-admin" />
       </profile>
       </profile>
     </annotationProcessing>
     </annotationProcessing>
     <bytecodeTargetLevel>
     <bytecodeTargetLevel>

+ 12 - 12
.idea/jarRepositories.xml

@@ -1,16 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
   <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>
     <remote-repository>
       <option name="id" value="public" />
       <option name="id" value="public" />
       <option name="name" value="aliyun nexus" />
       <option name="name" value="aliyun nexus" />
@@ -18,8 +8,8 @@
     </remote-repository>
     </remote-repository>
     <remote-repository>
     <remote-repository>
       <option name="id" value="central" />
       <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>
     <remote-repository>
     <remote-repository>
       <option name="id" value="central" />
       <option name="id" value="central" />
@@ -36,6 +26,11 @@
       <option name="name" value="Central Repository" />
       <option name="name" value="Central Repository" />
       <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
       <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
     </remote-repository>
     </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>
     <remote-repository>
       <option name="id" value="custom_group" />
       <option name="id" value="custom_group" />
       <option name="name" value="Nexus Repository" />
       <option name="name" value="Nexus Repository" />
@@ -46,5 +41,10 @@
       <option name="name" value="JBoss Community repository" />
       <option name="name" value="JBoss Community repository" />
       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
     </remote-repository>
     </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>
   </component>
 </project>
 </project>

+ 1 - 6
business-service/pom.xml

@@ -35,12 +35,7 @@
             <groupId>mysql</groupId>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
         </dependency>
-        <dependency>
-            <groupId>com.ozs</groupId>
-            <artifactId>base-system</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>compile</scope>
-        </dependency>
+
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

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

@@ -61,7 +61,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
     /**
     /**
      * 行别(1上行2下行)
      * 行别(1上行2下行)
      */
      */
-    @Excel(name = "行别")
+    @Excel(name = "行别",readConverterExp = "1=上行,2=下行")
     private Integer lineDir;
     private Integer lineDir;
 
 
     /**
     /**
@@ -109,7 +109,7 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
     /**
     /**
      * 是否开启录像(1开启2不开启)
      * 是否开启录像(1开启2不开启)
      */
      */
-    @Excel(name = "是否开启录像")
+    @Excel(name = "是否开启录像",readConverterExp = "1=开启,2=不开启")
     private Integer startRecording;
     private Integer startRecording;
 
 
     /**
     /**

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

@@ -47,7 +47,7 @@ public class BaseRailwayManagement extends BaseEntity implements Serializable {
     /**
     /**
      * 线路类型(普铁/高铁 )
      * 线路类型(普铁/高铁 )
      */
      */
-    @Excel(name = "线路类型")
+    @Excel(name = "线路类型",readConverterExp = "1=高铁,2=普快")
     private Integer railwayType;
     private Integer railwayType;
 
 
     /**
     /**

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

@@ -12,11 +12,18 @@ import java.util.List;
  */
  */
 @Data
 @Data
 @Builder
 @Builder
-public class CameraTree implements Serializable {
+public class CameraTree implements Serializable,Comparable<CameraTree> {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
     String code;
     String code;
     String name;
     String name;
     boolean flay;
     boolean flay;
+    Integer mileage;
     List<CameraTree> children;
     List<CameraTree> children;
+
+    @Override
+    public int compareTo(CameraTree o) {
+        int i =o.getName().compareTo(o.name);
+        return i;
+    }
 }
 }

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

@@ -0,0 +1,152 @@
+package com.ozs.service.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ozs.common.annotation.Excel;
+import com.ozs.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机台账管理表
+ * </p>
+ *
+ * @author ozs
+ * @since 2023-02-17
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("相机台账管理表")
+public class BaseCameraManagementHomeVo extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 相机编码
+     */
+    @Excel(name = "相机编码")
+    private String cameraCode;
+
+    /**
+     * 通道编号
+     */
+    @Excel(name = "通道编号")
+    private String channel;
+
+    /**
+     * 所属工务段编码(单位id)
+     */
+    @Excel(name = "所属工务段编码(单位id)")
+    private Long deptId;
+
+    /**
+     * 行别(1上行2下行)
+     */
+    @Excel(name = "行别")
+    private Integer lineDir;
+
+    /**
+     * 监控相机安装里程位置
+     */
+    @Excel(name = "监控相机安装里程位置")
+    private Integer installMile;
+
+    /**
+     * 监控范围开始里程位置
+     */
+    @Excel(name = "监控范围开始里程位置")
+    private Integer beginMile;
+
+    /**
+     * 监控范围结束里程位置
+     */
+    @Excel(name = "监控范围结束里程位置")
+    private Integer endMile;
+
+    /**
+     * 监视相机经度
+     */
+    @Excel(name = "监视相机经度")
+    private String installLongitude;
+
+    /**
+     * 监视相机纬度
+     */
+    @Excel(name = "监视相机纬度")
+    private String installLatitude;
+
+    /**
+     * 线路编码
+     */
+    @Excel(name = "线路编码")
+    private String railwayCode;
+
+    /**
+     * 物联网卡号
+     */
+    @Excel(name = "物联网卡号")
+    private String cardNum;
+
+    /**
+     * 是否开启录像(1开启2不开启)
+     */
+    @Excel(name = "是否开启录像")
+    private Integer startRecording;
+
+    /**
+     * 录像接口返回的任务ID
+     */
+    @Excel(name = "录像接口返回的任务ID")
+    private String taskId;
+
+
+    /**
+     * 监控相机安装里程位置字符串形式
+     */
+    @TableField(exist = false)
+    private String installMiles;
+
+    /**
+     * 监控范围开始里程位置字符串形式
+     */
+    @TableField(exist = false)
+    private String beginMiles;
+
+    /**
+     * 监控范围结束里程位置字符串形式
+     */
+    @TableField(exist = false)
+    private String endMiles;
+
+    /**
+     *线路名称
+     */
+    @TableField(exist = false)
+    private String railwayName;
+
+    /**
+     *所属工务段名称
+     */
+    @TableField(exist = false)
+    private String deptName;
+
+    /**
+     * 报警是否解除 1已解除2未解除
+     */
+    private Integer isLock;
+}

+ 98 - 0
business-service/src/main/java/com/ozs/service/mapper/BaseDictDataMapper.java

@@ -0,0 +1,98 @@
+package com.ozs.service.mapper;
+
+import com.ozs.common.core.domain.entity.SysDictData;
+import icu.mhb.mybatisplus.plugln.base.mapper.JoinBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 字典表 数据层
+ *
+ * @author hx
+ */
+@Mapper
+public interface BaseDictDataMapper extends JoinBaseMapper<SysDictData> {
+    /**
+     * 根据条件分页查询字典数据
+     *
+     * @param dictData 字典数据信息
+     * @return 字典数据集合信息
+     */
+    public List<SysDictData> selectDictDataList(SysDictData dictData);
+
+    /**
+     * 根据字典类型查询字典数据
+     *
+     * @param dictType 字典类型
+     * @return 字典数据集合信息
+     */
+    public List<SysDictData> selectDictDataByType(String dictType);
+
+    /**
+     * 根据字典类型和字典键值查询字典数据信息
+     *
+     * @param dictType  字典类型
+     * @param dictValue 字典键值
+     * @return 字典标签
+     */
+    public String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue);
+
+    /**
+     * 根据字典数据ID查询信息
+     *
+     * @param dictCode 字典数据ID
+     * @return 字典数据
+     */
+    public SysDictData selectDictDataById(Long dictCode);
+
+    /**
+     * 查询字典数据
+     *
+     * @param dictType 字典类型
+     * @return 字典数据
+     */
+    public int countDictDataByType(String dictType);
+
+    /**
+     * 通过字典ID删除字典数据信息
+     *
+     * @param dictCode 字典数据ID
+     * @return 结果
+     */
+    public int deleteDictDataById(Long dictCode);
+
+    /**
+     * 批量删除字典数据信息
+     *
+     * @param dictCodes 需要删除的字典数据ID
+     * @return 结果
+     */
+    public int deleteDictDataByIds(Long[] dictCodes);
+
+    /**
+     * 新增字典数据信息
+     *
+     * @param dictData 字典数据信息
+     * @return 结果
+     */
+    public int insertDictData(SysDictData dictData);
+
+    /**
+     * 修改字典数据信息
+     *
+     * @param dictData 字典数据信息
+     * @return 结果
+     */
+    public int updateDictData(SysDictData dictData);
+
+    /**
+     * 同步修改字典类型
+     *
+     * @param oldDictType 旧字典类型
+     * @param newDictType 新旧字典类型
+     * @return 结果
+     */
+    public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType);
+}

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

@@ -31,4 +31,6 @@ public interface BaseUserMapper extends BaseMapper<BaseUser> {
     Set<String> getUserIdList6();
     Set<String> getUserIdList6();
 
 
     BaseUser getUser(@Param("userId") String userId);
     BaseUser getUser(@Param("userId") String userId);
+    
+    BaseUser getUserName(@Param("userName") String userName);
 }
 }

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

@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -32,4 +33,8 @@ public interface MsgAlarmMapper extends BaseMapper<MsgAlarm> {
 
 
     //报警月统计数据导出数据集合
     //报警月统计数据导出数据集合
     List<AlarmStatisticMonthDto> listDtoMonth(@Param("railwayCode") String railwayCode, @Param("startMonth") Integer startMonth, @Param("endMonth") Integer endMonth, @Param("alarmType") String alarmType, @Param("userId") String userId);
     List<AlarmStatisticMonthDto> listDtoMonth(@Param("railwayCode") String railwayCode, @Param("startMonth") Integer startMonth, @Param("endMonth") Integer endMonth, @Param("alarmType") String alarmType, @Param("userId") String userId);
+
+    Map selectCameraCode(@Param("cameraCode") String cameraCode);
+
+    MsgAlarm selectByCameraCode(@Param("cameraCode") String cameraCode);
 }
 }

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

@@ -33,4 +33,6 @@ public interface MsgAppPushMapper extends BaseMapper<MsgAppPush> {
      * @return
      * @return
      */
      */
     public int update(@Param("id") Long id, @Param("status") Integer status, @Param("updateBy") String updateBy);
     public int update(@Param("id") Long id, @Param("status") Integer status, @Param("updateBy") String updateBy);
+
+    Integer appAlarmNum(@Param("userId") String userId);
 }
 }

+ 6 - 0
business-service/src/main/java/com/ozs/service/mapper/MsgWebPushMapper.java

@@ -3,6 +3,9 @@ package com.ozs.service.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.service.entity.MsgWebPush;
 import com.ozs.service.entity.MsgWebPush;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
 /**
  * @Author : sunhh
  * @Author : sunhh
@@ -10,4 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
  */
  */
 @Mapper
 @Mapper
 public interface MsgWebPushMapper extends BaseMapper<MsgWebPush> {
 public interface MsgWebPushMapper extends BaseMapper<MsgWebPush> {
+    Integer webAlarmNum(@Param("userId") String userId);
+
+    List<MsgWebPush> webAlarm(@Param("userId") String userId);
 }
 }

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

@@ -3,6 +3,7 @@ package com.ozs.service.service;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.AjaxResult;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseCameraManagement;
+import com.ozs.service.entity.vo.BaseCameraManagementHomeVo;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -17,14 +18,14 @@ import java.util.List;
 public interface BaseCameraManagementService extends IService<BaseCameraManagement> {
 public interface BaseCameraManagementService extends IService<BaseCameraManagement> {
     /**
     /**
      * 相机台账管理表导入
      * 相机台账管理表导入
-     *
      * @param accountManageList
      * @param accountManageList
      * @param updateSupport
      * @param updateSupport
+     * @param userId
      * @return
      * @return
      */
      */
-    String importBaseAccountManagement(List<BaseCameraManagement> accountManageList, boolean updateSupport);
+    String importBaseAccountManagement(List<BaseCameraManagement> accountManageList, boolean updateSupport,String userId);
 
 
-    List<BaseCameraManagement> selectCameraAll(String userId);
+    List<BaseCameraManagementHomeVo> selectCameraAll(String userId);
 
 
     List<String> getUserIds(String userId);
     List<String> getUserIds(String userId);
 }
 }

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

@@ -17,12 +17,12 @@ import java.util.List;
 public interface BaseRailwayManagementService extends IService<BaseRailwayManagement> {
 public interface BaseRailwayManagementService extends IService<BaseRailwayManagement> {
     /**
     /**
      * 线路管理表导入
      * 线路管理表导入
-     *
      * @param accountManageList
      * @param accountManageList
      * @param updateSupport
      * @param updateSupport
+     * @param userId
      * @return
      * @return
      */
      */
-    String importBaseLineManagement(List<BaseRailwayManagement> accountManageList, boolean updateSupport);
+    String importBaseLineManagement(List<BaseRailwayManagement> accountManageList, boolean updateSupport,String userId);
 
 
     String getCameraNameByCameraCode(String cameraCode);
     String getCameraNameByCameraCode(String cameraCode);
 }
 }

+ 3 - 0
business-service/src/main/java/com/ozs/service/service/BaseUserService.java

@@ -3,6 +3,7 @@ package com.ozs.service.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseUser;
 import com.ozs.service.entity.BaseUser;
+import org.apache.ibatis.annotations.Param;
 
 
 import java.util.Set;
 import java.util.Set;
 
 
@@ -14,4 +15,6 @@ public interface BaseUserService extends IService<BaseUser> {
     Set<String> getUserIdList(String createBy, Long deptId);
     Set<String> getUserIdList(String createBy, Long deptId);
 
 
     BaseUser getUser(String userId);
     BaseUser getUser(String userId);
+
+    BaseUser getUserName(@Param("userName") String userName);;
 }
 }

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

@@ -31,4 +31,11 @@ public interface MsgAlarmService extends IService<MsgAlarm> {
 
 
     //web数据统计 报警月统计数据导出
     //web数据统计 报警月统计数据导出
     List<AlarmStatisticMonthDto> exportExcelMonth(AlarmStatisticResVo alarmStatisticResVo, String userId) throws Exception;
     List<AlarmStatisticMonthDto> exportExcelMonth(AlarmStatisticResVo alarmStatisticResVo, String userId) throws Exception;
+
+    /**
+     * 通过相机编码查询未解除预警信息
+     * @param cameraCode
+     * @return
+     */
+    MsgAlarm selectByCameraCode(String cameraCode);
 }
 }

+ 6 - 0
business-service/src/main/java/com/ozs/service/service/MsgAppPushService.java

@@ -31,4 +31,10 @@ public interface MsgAppPushService extends IService<MsgAppPush> {
      * @return
      * @return
      */
      */
     int update(Long id, Integer status, String updateBy);
     int update(Long id, Integer status, String updateBy);
+
+    /**
+     * app 未读消息个数
+     * @return
+     */
+    Integer appAlarmNum(String userId);
 }
 }

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

@@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ozs.service.entity.MsgAppPush;
 import com.ozs.service.entity.MsgAppPush;
 import com.ozs.service.entity.MsgWebPush;
 import com.ozs.service.entity.MsgWebPush;
 
 
+import java.util.Map;
+
 /**
 /**
  * @Author : sunhh
  * @Author : sunhh
  * @create 2023/3/15 14:33
  * @create 2023/3/15 14:33
  */
  */
 public interface MsgWebPushService extends IService<MsgWebPush> {
 public interface MsgWebPushService extends IService<MsgWebPush> {
     int read(MsgWebPush msgWebPush);
     int read(MsgWebPush msgWebPush);
+
+    Map webAlarm(String userId);
 }
 }

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

@@ -4,14 +4,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.exception.ServiceException;
 import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.StringUtils;
+import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.common.utils.bean.BeanValidators;
 import com.ozs.common.utils.bean.BeanValidators;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseDeviceDynamicManagement;
 import com.ozs.service.entity.BaseDeviceDynamicManagement;
 import com.ozs.service.entity.BaseUser;
 import com.ozs.service.entity.BaseUser;
+import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.entity.vo.BaseCameraManagementHomeVo;
 import com.ozs.service.mapper.BaseCameraManagementMapper;
 import com.ozs.service.mapper.BaseCameraManagementMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ozs.service.mapper.BaseDeviceDynamicManagementMapper;
 import com.ozs.service.mapper.BaseDeviceDynamicManagementMapper;
 import com.ozs.service.mapper.BaseUserMapper;
 import com.ozs.service.mapper.BaseUserMapper;
+import com.ozs.service.mapper.MsgAlarmMapper;
 import com.ozs.service.service.BaseCameraManagementService;
 import com.ozs.service.service.BaseCameraManagementService;
 import com.ozs.service.service.BaseUserService;
 import com.ozs.service.service.BaseUserService;
 import com.ozs.service.utils.DataPermissionUtils;
 import com.ozs.service.utils.DataPermissionUtils;
@@ -21,10 +25,7 @@ import org.springframework.util.ObjectUtils;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.validation.Validator;
 import javax.validation.Validator;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -46,6 +47,8 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
     private BaseUserService baseUserService;
     private BaseUserService baseUserService;
     @Resource
     @Resource
     private BaseUserMapper baseUserMapper;
     private BaseUserMapper baseUserMapper;
+    @Resource
+    private MsgAlarmMapper msgAlarmMapper;
 
 
     /**
     /**
      * 相机台账管理表导入
      * 相机台账管理表导入
@@ -55,7 +58,7 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public String importBaseAccountManagement(List<BaseCameraManagement> accountManageList, boolean updateSupport) {
+    public String importBaseAccountManagement(List<BaseCameraManagement> accountManageList, boolean updateSupport,String userId) {
         if (com.ozs.common.utils.StringUtils.isNull(accountManageList) || accountManageList.size() == 0) {
         if (com.ozs.common.utils.StringUtils.isNull(accountManageList) || accountManageList.size() == 0) {
             throw new ServiceException("导入相机台账列表信息不能为空!");
             throw new ServiceException("导入相机台账列表信息不能为空!");
         }
         }
@@ -73,14 +76,19 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
                 BaseCameraManagement baseAccountManagement = baseCameraManagementMapper.selectOne(lw);
                 BaseCameraManagement baseAccountManagement = baseCameraManagementMapper.selectOne(lw);
                 if (ObjectUtils.isEmpty(baseAccountManagement)) {
                 if (ObjectUtils.isEmpty(baseAccountManagement)) {
                     BeanValidators.validateWithException(validator, accountManagement);
                     BeanValidators.validateWithException(validator, accountManagement);
+                    accountManagement.setUpdateBy(userId);
+                    accountManagement.setCreateBy(userId);
                     baseCameraManagementMapper.insert(accountManagement);
                     baseCameraManagementMapper.insert(accountManagement);
                     BaseDeviceDynamicManagement baseDeviceDynamicManagement = new BaseDeviceDynamicManagement();
                     BaseDeviceDynamicManagement baseDeviceDynamicManagement = new BaseDeviceDynamicManagement();
                     baseDeviceDynamicManagement.setCameraCode(accountManagement.getCameraCode());
                     baseDeviceDynamicManagement.setCameraCode(accountManagement.getCameraCode());
+                    baseDeviceDynamicManagement.setUpdateBy(userId);
+                    baseDeviceDynamicManagement.setCreateBy(userId);
                     baseDeviceDynamicManagementMapper.insert(baseDeviceDynamicManagement);
                     baseDeviceDynamicManagementMapper.insert(baseDeviceDynamicManagement);
                     successNum++;
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、相机编码 " + accountManagement.getCameraCode() + " 导入成功");
                     successMsg.append("<br/>" + successNum + "、相机编码 " + accountManagement.getCameraCode() + " 导入成功");
                 } else if (updateSupport) {
                 } else if (updateSupport) {
                     BeanValidators.validateWithException(validator, accountManagement);
                     BeanValidators.validateWithException(validator, accountManagement);
+                    accountManagement.setUpdateBy(userId);
                     baseCameraManagementMapper.update(accountManagement, lw);
                     baseCameraManagementMapper.update(accountManagement, lw);
                     LambdaQueryWrapper<BaseDeviceDynamicManagement> wrapper = new LambdaQueryWrapper<BaseDeviceDynamicManagement>();
                     LambdaQueryWrapper<BaseDeviceDynamicManagement> wrapper = new LambdaQueryWrapper<BaseDeviceDynamicManagement>();
                     if (!ObjectUtils.isEmpty(baseAccountManagement.getCameraCode())) {
                     if (!ObjectUtils.isEmpty(baseAccountManagement.getCameraCode())) {
@@ -88,6 +96,7 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
                     }
                     }
                     BaseDeviceDynamicManagement baseDeviceDynamicManagement = baseDeviceDynamicManagementMapper.selectOne(wrapper);
                     BaseDeviceDynamicManagement baseDeviceDynamicManagement = baseDeviceDynamicManagementMapper.selectOne(wrapper);
                     baseDeviceDynamicManagement.setCameraCode(accountManagement.getCameraCode());
                     baseDeviceDynamicManagement.setCameraCode(accountManagement.getCameraCode());
+                    baseDeviceDynamicManagement.setUpdateBy(userId);
                     baseDeviceDynamicManagementMapper.updateById(baseDeviceDynamicManagement);
                     baseDeviceDynamicManagementMapper.updateById(baseDeviceDynamicManagement);
                     successNum++;
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、相机编码 " + accountManagement.getCameraCode() + " 更新成功");
                     successMsg.append("<br/>" + successNum + "、相机编码 " + accountManagement.getCameraCode() + " 更新成功");
@@ -117,14 +126,22 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public List<BaseCameraManagement> selectCameraAll(String userId) {
+    public List<BaseCameraManagementHomeVo> selectCameraAll(String userId) {
         List<String> userIdList = getUserIds(userId);
         List<String> userIdList = getUserIds(userId);
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
-        if (!ObjectUtils.isEmpty(userIdList)) {
+        if (!StringUtils.isEmpty(userIdList)) {
             lw.in(BaseCameraManagement::getCreateBy, userIdList);
             lw.in(BaseCameraManagement::getCreateBy, userIdList);
         }
         }
         List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementMapper.selectList(lw);
         List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementMapper.selectList(lw);
-        return baseCameraManagementList;
+        List<BaseCameraManagementHomeVo> allListVo = BeanUtils.entityListToVOList(baseCameraManagementList, BaseCameraManagementHomeVo.class);
+        for (BaseCameraManagementHomeVo baseCameraManagementHomeVo : allListVo) {
+            Map map = msgAlarmMapper.selectCameraCode(baseCameraManagementHomeVo.getCameraCode());
+            if (!StringUtils.isEmpty(map) && !StringUtils.isEmpty(map.get("isLock"))) {
+                String isLock = map.get("isLock").toString();
+                baseCameraManagementHomeVo.setIsLock(Integer.valueOf(isLock));
+            }
+        }
+        return allListVo;
     }
     }
 
 
     /**
     /**

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

@@ -65,6 +65,7 @@ public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl<BaseDevi
                         .code(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
                         .code(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
                         .name(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
                         .name(mils + "-" + (o.getLineDir().equals("1") ? "上行" : "下行"))
                         .flay(true)
                         .flay(true)
+                        .mileage(o.getInstallMile())
                         .children(new ArrayList<>())
                         .children(new ArrayList<>())
                         .build();
                         .build();
 
 

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

@@ -38,7 +38,7 @@ public class BaseRailwayManagementServiceImpl extends ServiceImpl<BaseRailwayMan
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public String importBaseLineManagement(List<BaseRailwayManagement> accountManageList, boolean updateSupport) {
+    public String importBaseLineManagement(List<BaseRailwayManagement> accountManageList, boolean updateSupport,String userId) {
         if (com.ozs.common.utils.StringUtils.isNull(accountManageList) || accountManageList.size() == 0) {
         if (com.ozs.common.utils.StringUtils.isNull(accountManageList) || accountManageList.size() == 0) {
             throw new ServiceException("导入线路管理信息不能为空!");
             throw new ServiceException("导入线路管理信息不能为空!");
         }
         }
@@ -56,11 +56,14 @@ public class BaseRailwayManagementServiceImpl extends ServiceImpl<BaseRailwayMan
                 BaseRailwayManagement baseLineManagement = baseRailwayManagementMapper.selectOne(lw);
                 BaseRailwayManagement baseLineManagement = baseRailwayManagementMapper.selectOne(lw);
                 if (ObjectUtils.isEmpty(baseLineManagement)) {
                 if (ObjectUtils.isEmpty(baseLineManagement)) {
                     BeanValidators.validateWithException(validator, railwayManagement);
                     BeanValidators.validateWithException(validator, railwayManagement);
+                    railwayManagement.setUpdateBy(userId);
+                    railwayManagement.setCreateBy(userId);
                     baseRailwayManagementMapper.insert(railwayManagement);
                     baseRailwayManagementMapper.insert(railwayManagement);
                     successNum++;
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、线路编码 " + railwayManagement.getRailwayCode() + " 导入成功");
                     successMsg.append("<br/>" + successNum + "、线路编码 " + railwayManagement.getRailwayCode() + " 导入成功");
                 } else if (updateSupport) {
                 } else if (updateSupport) {
                     BeanValidators.validateWithException(validator, railwayManagement);
                     BeanValidators.validateWithException(validator, railwayManagement);
+                    railwayManagement.setUpdateBy(userId);
                     baseRailwayManagementMapper.update(railwayManagement,lw);
                     baseRailwayManagementMapper.update(railwayManagement,lw);
                     successNum++;
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、线路编码 " + railwayManagement.getRailwayCode()  + " 更新成功");
                     successMsg.append("<br/>" + successNum + "、线路编码 " + railwayManagement.getRailwayCode()  + " 更新成功");

+ 5 - 0
business-service/src/main/java/com/ozs/service/service/impl/BaseUserServiceImpl.java

@@ -58,4 +58,9 @@ public class BaseUserServiceImpl extends ServiceImpl<BaseUserMapper, BaseUser> i
     public BaseUser getUser(String userId) {
     public BaseUser getUser(String userId) {
         return baseUserMapper.getUser(userId);
         return baseUserMapper.getUser(userId);
     }
     }
+
+    @Override
+    public BaseUser getUserName(String userName) {
+        return baseUserMapper.getUserName(userName);
+    }
 }
 }

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

@@ -8,10 +8,10 @@ import com.ozs.service.entity.vo.AlarmStatisticDto;
 import com.ozs.service.entity.vo.AlarmStatisticMonthDto;
 import com.ozs.service.entity.vo.AlarmStatisticMonthDto;
 import com.ozs.service.entity.vo.AlarmStatisticResVo;
 import com.ozs.service.entity.vo.AlarmStatisticResVo;
 import com.ozs.service.entity.vo.AlarmStatisticVo;
 import com.ozs.service.entity.vo.AlarmStatisticVo;
+import com.ozs.service.mapper.BaseDictDataMapper;
 import com.ozs.service.mapper.MsgAlarmMapper;
 import com.ozs.service.mapper.MsgAlarmMapper;
 import com.ozs.service.service.MsgAlarmService;
 import com.ozs.service.service.MsgAlarmService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ozs.system.mapper.SysDictDataMapper;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
@@ -38,7 +38,7 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
     @Autowired
     @Autowired
     MsgAlarmMapper msgAlarmMapper;
     MsgAlarmMapper msgAlarmMapper;
     @Autowired
     @Autowired
-    SysDictDataMapper sysDictDataMapper;
+    BaseDictDataMapper baseDictDataMapper;
 
 
     public static IPage listToPage(List list, int pageNum, int pageSize) {
     public static IPage listToPage(List list, int pageNum, int pageSize) {
         List pageList = new ArrayList<>();
         List pageList = new ArrayList<>();
@@ -72,11 +72,11 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
                 alarmStatisticResVo.getEndMonth(), alarmStatisticResVo.getAlarmType(), userId);
                 alarmStatisticResVo.getEndMonth(), alarmStatisticResVo.getAlarmType(), userId);
         listDto.forEach(l -> {
         listDto.forEach(l -> {
             String alarmType = l.getAlarmType();
             String alarmType = l.getAlarmType();
-            String alarmTypeValue = sysDictDataMapper.selectDictLabel("sys_alarm_type", alarmType);
+            String alarmTypeValue = baseDictDataMapper.selectDictLabel("sys_alarm_type", alarmType);
             l.setAlarmTypeValue(alarmTypeValue);
             l.setAlarmTypeValue(alarmTypeValue);
 
 
             String lineDir = l.getLineDir();
             String lineDir = l.getLineDir();
-            String lineDirValue = sysDictDataMapper.selectDictLabel("sys_line_dir", lineDir);
+            String lineDirValue = baseDictDataMapper.selectDictLabel("sys_line_dir", lineDir);
             l.setLineDirValue(lineDirValue);
             l.setLineDirValue(lineDirValue);
         });
         });
         return listDto;
         return listDto;
@@ -88,10 +88,15 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
                 alarmStatisticResVo.getEndMonth(), alarmStatisticResVo.getAlarmType(), userId);
                 alarmStatisticResVo.getEndMonth(), alarmStatisticResVo.getAlarmType(), userId);
         listDto.forEach(l -> {
         listDto.forEach(l -> {
             String alarmType = l.getAlarmType();
             String alarmType = l.getAlarmType();
-            String alarmTypeValue = sysDictDataMapper.selectDictLabel("sys_alarm_type", alarmType);
+            String alarmTypeValue = baseDictDataMapper.selectDictLabel("sys_alarm_type", alarmType);
             l.setAlarmTypeValue(alarmTypeValue);
             l.setAlarmTypeValue(alarmTypeValue);
         });
         });
         return listDto;
         return listDto;
     }
     }
 
 
+    @Override
+    public MsgAlarm selectByCameraCode(String cameraCode) {
+        return msgAlarmMapper.selectByCameraCode(cameraCode);
+    }
+
 }
 }

+ 8 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgAppPushServiceImpl.java

@@ -1,6 +1,8 @@
 package com.ozs.service.service.impl;
 package com.ozs.service.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.common.utils.StringUtils;
 import com.ozs.service.entity.MsgAppPush;
 import com.ozs.service.entity.MsgAppPush;
 import com.ozs.service.entity.vo.MsgAppPushVo;
 import com.ozs.service.entity.vo.MsgAppPushVo;
 import com.ozs.service.mapper.MsgAppPushMapper;
 import com.ozs.service.mapper.MsgAppPushMapper;
@@ -31,4 +33,10 @@ public class MsgAppPushServiceImpl extends ServiceImpl<MsgAppPushMapper, MsgAppP
         int num = msgAppPushMapper.update(id, status, updateBy);
         int num = msgAppPushMapper.update(id, status, updateBy);
         return num;
         return num;
     }
     }
+
+    @Override
+    public Integer appAlarmNum(String userId) {
+        Integer integer = msgAppPushMapper.appAlarmNum(userId);
+        return integer;
+    }
 }
 }

+ 14 - 0
business-service/src/main/java/com/ozs/service/service/impl/MsgWebPushServiceImpl.java

@@ -7,6 +7,10 @@ import com.ozs.service.service.MsgWebPushService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
 /**
  * @Author : sunhh
  * @Author : sunhh
  * @create 2023/3/15 14:34
  * @create 2023/3/15 14:34
@@ -22,4 +26,14 @@ public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebP
         msgWebPush.setStatus(2);
         msgWebPush.setStatus(2);
         return msgWebPushMapper.updateById(msgWebPush);
         return msgWebPushMapper.updateById(msgWebPush);
     }
     }
+
+    @Override
+    public Map webAlarm(String userId) {
+        Map<String, Object> webAlarmMap = new HashMap<>();
+        Integer webAlarmNum = msgWebPushMapper.webAlarmNum(userId);
+        List<MsgWebPush> webAlarm = msgWebPushMapper.webAlarm(userId);
+        webAlarmMap.put("webAlarmNum", webAlarmNum);
+        webAlarmMap.put("webAlarm", webAlarm);
+        return webAlarmMap;
+    }
 }
 }

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

@@ -64,4 +64,7 @@
     <select id="getUser" resultType="com.ozs.service.entity.BaseUser" parameterType="java.lang.String">
     <select id="getUser" resultType="com.ozs.service.entity.BaseUser" parameterType="java.lang.String">
         select user_id userId, dept_id deptId, data_permission dataPermission from sys_user where user_id = #{userId}
         select user_id userId, dept_id deptId, data_permission dataPermission from sys_user where user_id = #{userId}
     </select>
     </select>
+    <select id="getUserName" resultType="com.ozs.service.entity.BaseUser" parameterType="java.lang.String">
+        select user_id userId, dept_id deptId, data_permission dataPermission from sys_user where user_name = #{userName}
+    </select>
 </mapper>
 </mapper>

+ 11 - 0
business-service/src/main/resources/mapper/service/MsgAlarmMapper.xml

@@ -73,6 +73,7 @@
             <if test="userId != null and userId != ''">
             <if test="userId != null and userId != ''">
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
             </if>
             </if>
+            and YEAR(a.alarm_time) = YEAR(SYSDATE())
         </where>
         </where>
         group by a.alarm_id
         group by a.alarm_id
     </select>
     </select>
@@ -122,6 +123,7 @@
             <if test="userId != null and userId != ''">
             <if test="userId != null and userId != ''">
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
             </if>
             </if>
+            and YEAR(a.alarm_time) = YEAR(SYSDATE())
         </where>
         </where>
         group by a.alarm_id,MONTH(a.alarm_time)
         group by a.alarm_id,MONTH(a.alarm_time)
 
 
@@ -172,6 +174,7 @@
             <if test="userId != null and userId != ''">
             <if test="userId != null and userId != ''">
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
             </if>
             </if>
+            and YEAR(a.alarm_time) = YEAR(SYSDATE())
         </where>
         </where>
         group by a.alarm_id
         group by a.alarm_id
     </select>
     </select>
@@ -214,8 +217,16 @@
             <if test="userId != null and userId != ''">
             <if test="userId != null and userId != ''">
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
                 and UPPER(m.receive_by) like UPPER(CONCAT('%',#{userId},'%'))
             </if>
             </if>
+            and YEAR(a.alarm_time) = YEAR(SYSDATE())
         </where>
         </where>
         group by a.alarm_id,MONTH(a.alarm_time)
         group by a.alarm_id,MONTH(a.alarm_time)
+    </select>
+
+    <select id="selectCameraCode" parameterType="java.lang.String" resultType="java.util.Map">
+        select is_lock isLock, max(alarm_time) from msg_alarm where camera_code = #{cameraCode}
+    </select>
 
 
+    <select id="selectByCameraCode" parameterType="java.lang.String" resultType="com.ozs.service.entity.MsgAlarm">
+        select *, max(alarm_time) from msg_alarm where camera_code = #{cameraCode}
     </select>
     </select>
 </mapper>
 </mapper>

+ 6 - 0
business-service/src/main/resources/mapper/service/MsgAppPushMapper.xml

@@ -62,6 +62,7 @@
             <if test="status != null and status != 0">
             <if test="status != null and status != 0">
                 and UPPER(status) like UPPER(CONCAT('%',#{status},'%'))
                 and UPPER(status) like UPPER(CONCAT('%',#{status},'%'))
             </if>
             </if>
+            and YEAR(a.alarm_time) = YEAR(SYSDATE())
         </where>
         </where>
     </select>
     </select>
     <update id="update" parameterType="com.ozs.service.entity.MsgAppPush">
     <update id="update" parameterType="com.ozs.service.entity.MsgAppPush">
@@ -73,4 +74,9 @@
         </set>
         </set>
         where id = #{id}
         where id = #{id}
     </update>
     </update>
+
+
+    <select id="appAlarmNum" parameterType="java.lang.String" resultType="java.lang.Integer">
+        select count(*) from msg_app_push where status = 1 and receive_by = #{userId}
+    </select>
 </mapper>
 </mapper>

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

@@ -0,0 +1,12 @@
+<?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.MsgWebPushMapper">
+
+    <select id="webAlarmNum" parameterType="java.lang.String" resultType="java.lang.Integer">
+        select count(*) from msg_web_push where status = 1 and receive_by = #{userId}
+    </select>
+
+    <select id="webAlarm" parameterType="java.lang.String" resultType="com.ozs.service.entity.MsgWebPush">
+        select * from msg_web_push where status = 1 and receive_by = #{userId}
+    </select>
+</mapper>

+ 5 - 0
hazard-admin/Dockerfile

@@ -0,0 +1,5 @@
+FROM openjdk:8
+ADD target/hazard-admin.jar app.jar
+EXPOSE 18819
+VOLUME ["/data/service/hazard-admin/logs","/logs"]
+ENTRYPOINT java -jar /app.jar >/logs/app.log

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

@@ -11,7 +11,10 @@ import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.exception.base.BaseException;
+import com.ozs.common.utils.ApiTokenUtils;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.ChineseToPingyin;
+import com.ozs.common.utils.IdempotenceUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.common.utils.http.HttpUtils;
@@ -22,6 +25,7 @@ import com.ozs.service.entity.BaseDeviceDynamicManagement;
 import com.ozs.service.entity.BaseRailwayManagement;
 import com.ozs.service.entity.BaseRailwayManagement;
 import com.ozs.service.entity.CameraTree;
 import com.ozs.service.entity.CameraTree;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.entity.vo.BaseCameraManagementHomeVo;
 import com.ozs.service.entity.vo.BaseCameraManagementVo;
 import com.ozs.service.entity.vo.BaseCameraManagementVo;
 import com.ozs.service.entity.vo.BaseCameraResVo;
 import com.ozs.service.entity.vo.BaseCameraResVo;
 import com.ozs.service.entity.vo.MsgAlarmResp;
 import com.ozs.service.entity.vo.MsgAlarmResp;
@@ -54,10 +58,14 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
 import java.io.InputStream;
+import java.text.Collator;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Locale;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -86,6 +94,8 @@ public class BaseCameraManagementController extends BaseController {
     private ServerConfig serverConfig;
     private ServerConfig serverConfig;
     @Autowired
     @Autowired
     private CaneraConfig caneraConfig;
     private CaneraConfig caneraConfig;
+    @Autowired
+    private IdempotenceUtils idempotenceUtils;
 
 
     /**
     /**
      * 所有相机列表+权限
      * 所有相机列表+权限
@@ -94,10 +104,62 @@ public class BaseCameraManagementController extends BaseController {
     @GetMapping("/selectCameraAll")
     @GetMapping("/selectCameraAll")
     public AjaxResult selectCameraAll() {
     public AjaxResult selectCameraAll() {
         String userId = getUserId();
         String userId = getUserId();
-        List<BaseCameraManagement> baseCameraManagements = baseCameraManagementService.selectCameraAll(userId);
+        List<BaseCameraManagementHomeVo> baseCameraManagements = baseCameraManagementService.selectCameraAll(userId);
         return AjaxResult.success(baseCameraManagements);
         return AjaxResult.success(baseCameraManagements);
     }
     }
 
 
+    @PostMapping(value = "/homeGetInfo")
+    @ApiOperation("根据相机ID、是否解除 获取相机信息、未解除信息")
+    public AjaxResult homeGetInfo(@RequestBody BaseCameraManagementHomeVo baseCameraManagementHomeVo) {
+        Integer isLock = baseCameraManagementHomeVo.getIsLock();
+        Long id = baseCameraManagementHomeVo.getId();
+        String cameraCode = baseCameraManagementHomeVo.getCameraCode();
+        // isLock  报警是否解除 1已解除2未解除
+        if (!StringUtils.isEmpty(isLock) && isLock == 1 && !StringUtils.isEmpty(id)) {
+            BaseCameraManagement baseCameraManagement = baseCameraManagementService.getById(id);
+            LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+            if (!ObjectUtils.isEmpty(baseCameraManagement.getRailwayCode())) {
+                queryWrapper.eq(BaseRailwayManagement::getRailwayCode, baseCameraManagement.getRailwayCode());
+            }
+            BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+            SysDept sysDept = deptService.selectDeptById(baseCameraManagement.getDeptId());
+            baseCameraManagement.setDeptName(sysDept.getDeptName());
+            baseCameraManagement.setRailwayName(baseRailwayManagement.getRailwayName());
+            String mils = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
+            baseCameraManagement.setInstallMiles(mils);
+            String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
+            baseCameraManagement.setEndMiles(end);
+            String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
+            baseCameraManagement.setBeginMiles(begin);
+            return AjaxResult.success(baseCameraManagement);
+        } else if (!StringUtils.isEmpty(isLock) && isLock == 2 && !StringUtils.isEmpty(cameraCode)) {
+            MsgAlarm msgAlarm = msgAlarmService.selectByCameraCode(cameraCode);
+            LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
+            if (!ObjectUtils.isEmpty(msgAlarm.getCameraCode())) {
+                lw.eq(BaseCameraManagement::getCameraCode, msgAlarm.getCameraCode());
+            }
+            BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(lw);
+            LambdaQueryWrapper<BaseRailwayManagement> wrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+            if (!ObjectUtils.isEmpty(baseCameraManagement.getRailwayCode())) {
+                wrapper.eq(BaseRailwayManagement::getRailwayCode, baseCameraManagement.getRailwayCode());
+            }
+            BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(wrapper);
+            MsgAlarmResp msgAlarmResp = new MsgAlarmResp();
+            BeanUtils.copyProperties(msgAlarm, msgAlarmResp);
+            msgAlarmResp.setRailwayName(baseRailwayManagement.getRailwayName());
+            msgAlarmResp.setDeptId(baseCameraManagement.getDeptId());
+            String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
+            String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
+            String endMile=begin+"-"+end;
+            msgAlarmResp.setBeginMile(endMile);
+            String mile = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
+            msgAlarmResp.setAlarmMile(mile);
+            msgAlarmResp.setInstallLongitude(baseCameraManagement.getInstallLongitude()+","+baseCameraManagement.getInstallLatitude());
+            return AjaxResult.success(msgAlarmResp);
+        }
+        return null;
+    }
+
     /**
     /**
      * 相机台账管理分页
      * 相机台账管理分页
      *
      *
@@ -187,6 +249,11 @@ public class BaseCameraManagementController extends BaseController {
     @ApiOperation("新增相机台账管理信息")
     @ApiOperation("新增相机台账管理信息")
     @Transactional
     @Transactional
     public AjaxResult saveAccountManagement(@RequestBody BaseCameraManagement baseCameraManagement) {
     public AjaxResult saveAccountManagement(@RequestBody BaseCameraManagement baseCameraManagement) {
+        String idempotence = idempotenceUtils.getIdempotence(baseCameraManagement.getCameraCode());
+        if (StringUtils.isNotEmpty(idempotence)){
+            return  error("你的网络卡顿,请不要一直添加!!!");
+        }
+        idempotenceUtils.createIdempotence(baseCameraManagement.getCameraCode());
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
         if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
             lw.eq(BaseCameraManagement::getCameraCode, baseCameraManagement.getCameraCode());
             lw.eq(BaseCameraManagement::getCameraCode, baseCameraManagement.getCameraCode());
@@ -215,8 +282,10 @@ public class BaseCameraManagementController extends BaseController {
             baseCameraManagement.setStartRecording(2);
             baseCameraManagement.setStartRecording(2);
         }
         }
         if (baseCameraManagementService.save(baseCameraManagement) && baseDeviceDynamicManagementService.save(baseDynamicManagement)) {
         if (baseCameraManagementService.save(baseCameraManagement) && baseDeviceDynamicManagementService.save(baseDynamicManagement)) {
+            idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
             return AjaxResult.success();
             return AjaxResult.success();
         }
         }
+        idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
         return AjaxResult.error();
         return AjaxResult.error();
     }
     }
 
 
@@ -320,7 +389,7 @@ public class BaseCameraManagementController extends BaseController {
     public AjaxResult importBaseAccountManagement(MultipartFile file, boolean updateSupport) throws Exception {
     public AjaxResult importBaseAccountManagement(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<BaseCameraManagement> util = new ExcelUtil<BaseCameraManagement>(BaseCameraManagement.class);
         ExcelUtil<BaseCameraManagement> util = new ExcelUtil<BaseCameraManagement>(BaseCameraManagement.class);
         List<BaseCameraManagement> AccountManageList = util.importExcel(file.getInputStream());
         List<BaseCameraManagement> AccountManageList = util.importExcel(file.getInputStream());
-        String message = baseCameraManagementService.importBaseAccountManagement(AccountManageList, updateSupport);
+        String message = baseCameraManagementService.importBaseAccountManagement(AccountManageList, updateSupport,getUserId());
         return AjaxResult.success(message);
         return AjaxResult.success(message);
     }
     }
 
 
@@ -379,7 +448,7 @@ public class BaseCameraManagementController extends BaseController {
         return new AjaxResult(200, "ok", CameraUtil.getPlayFlv(cameraCode, one.getChannel()));
         return new AjaxResult(200, "ok", CameraUtil.getPlayFlv(cameraCode, one.getChannel()));
     }
     }
 
 
-    @ApiOperation("播放回放")
+    @ApiOperation("播放回放-废弃")
     @PostMapping("/api/invite")
     @PostMapping("/api/invite")
     public AjaxResult apiInvite(@Validated @RequestBody BaseCameraResVo vo) {
     public AjaxResult apiInvite(@Validated @RequestBody BaseCameraResVo vo) {
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
         LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
@@ -388,7 +457,8 @@ public class BaseCameraManagementController extends BaseController {
         if (ObjectUtils.isEmpty(one)) {
         if (ObjectUtils.isEmpty(one)) {
             throw new BaseException("相机编号【" + vo.getCameraCode() + "】不存在");
             throw new BaseException("相机编号【" + vo.getCameraCode() + "】不存在");
         }
         }
-        return success(CameraUtil.historyPlayList(one.getChannel(), vo.getStartTime(), vo.getEntTime(), caneraConfig.getMappingUrl()));
+        // CameraUtil.historyPlayList(one.getChannel(), vo.getStartTime(), vo.getEntTime(), caneraConfig.getMappingUrl())
+        return success();
     }
     }
 
 
     @ApiOperation("播放回放")
     @ApiOperation("播放回放")
@@ -420,8 +490,32 @@ public class BaseCameraManagementController extends BaseController {
     public AjaxResult cameraTree(@RequestParam(value = "name", required = false) String name) {
     public AjaxResult cameraTree(@RequestParam(value = "name", required = false) String name) {
         CameraTree cameraTree = baseDeviceDynamicManagementService.cameraTree(name);
         CameraTree cameraTree = baseDeviceDynamicManagementService.cameraTree(name);
         List<CameraTree> children = cameraTree.getChildren();
         List<CameraTree> children = cameraTree.getChildren();
+        children.sort(new Comparator<CameraTree>() {
+            @Override
+            public int compare(CameraTree o1, CameraTree o2) {
+                String name1 = ChineseToPingyin.convertHanziToPinyin(o1.getName());
+                String substring1 = name1.substring(0, 1);
+                String name2 = ChineseToPingyin.convertHanziToPinyin(o2.getName());
+                String substring2 = name2.substring(0, 1);
+                return substring1.compareTo(substring2);
+            }
+        });
+
+
         for (CameraTree child : children) {
         for (CameraTree child : children) {
             List<CameraTree> children1 = child.getChildren();
             List<CameraTree> children1 = child.getChildren();
+            children1.sort(new Comparator<CameraTree>() {
+                @Override
+                public int compare(CameraTree o1, CameraTree o2) {
+                  int i=  o1.getMileage() - o2.getMileage();
+                  if (i==0) {
+                      String[] split = o1.getName().split("-");
+                      return  "上行".equals(split[1])?-1:1;
+                  }else {
+                      return i;
+                  }
+                }
+            });
             for (CameraTree tree : children1) {
             for (CameraTree tree : children1) {
                 List<CameraTree> children2 = tree.getChildren();
                 List<CameraTree> children2 = tree.getChildren();
                 if (children2.size() < 2) {
                 if (children2.size() < 2) {
@@ -485,7 +579,7 @@ public class BaseCameraManagementController extends BaseController {
             queryWrapper.orderByDesc(MsgAlarm::getCreateTime);
             queryWrapper.orderByDesc(MsgAlarm::getCreateTime);
         }
         }
         List<MsgAlarm> msgAlarmList = msgAlarmService.list(queryWrapper);
         List<MsgAlarm> msgAlarmList = msgAlarmService.list(queryWrapper);
-        if (msgAlarmList.size()>0) {
+        if (msgAlarmList.size() > 0) {
             MsgAlarm msgAlarm = msgAlarmList.get(0);
             MsgAlarm msgAlarm = msgAlarmList.get(0);
             LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
             LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
             if (!ObjectUtils.isEmpty(cameraCode)) {
             if (!ObjectUtils.isEmpty(cameraCode)) {
@@ -511,8 +605,8 @@ public class BaseCameraManagementController extends BaseController {
             msgAlarmResp.setLineDir(baseCameraManagement.getLineDir());
             msgAlarmResp.setLineDir(baseCameraManagement.getLineDir());
             msgAlarmResp.setAlarmMile(baseCameraManagement.getInstallMile().toString());
             msgAlarmResp.setAlarmMile(baseCameraManagement.getInstallMile().toString());
             return AjaxResult.success(msgAlarmResp);
             return AjaxResult.success(msgAlarmResp);
-        }else {
-            return  error("该相机没有报警消息");
+        } else {
+            return error("该相机没有报警消息");
         }
         }
     }
     }
 }
 }

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

@@ -9,6 +9,7 @@ import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.core.domain.entity.SysDictData;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.IdempotenceUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.common.utils.poi.ExcelUtil;
@@ -58,6 +59,8 @@ public class BaseRailwayManagementController extends BaseController {
     private ISysDictTypeService dictTypeService;
     private ISysDictTypeService dictTypeService;
     @Autowired
     @Autowired
     private BaseCameraManagementService baseCameraManagementService;
     private BaseCameraManagementService baseCameraManagementService;
+    @Autowired
+    private IdempotenceUtils idempotenceUtils;
 
 
     /**
     /**
      * 线路管理表分页
      * 线路管理表分页
@@ -148,6 +151,11 @@ public class BaseRailwayManagementController extends BaseController {
     @PutMapping("/editRailwayManagement")
     @PutMapping("/editRailwayManagement")
     @ApiOperation("修改线路管理表信息")
     @ApiOperation("修改线路管理表信息")
     public AjaxResult editLineManagement(@RequestBody BaseRailwayManagement baseRailwayManagement) {
     public AjaxResult editLineManagement(@RequestBody BaseRailwayManagement baseRailwayManagement) {
+        String idempotence = idempotenceUtils.getIdempotence(baseRailwayManagement.getRailwayCode());
+        if (StringUtils.isNotEmpty(idempotence)){
+            return  error("你的网络卡顿,请不要一直添加!!!");
+        }
+        idempotenceUtils.createIdempotence(baseRailwayManagement.getRailwayCode());
         BaseRailwayManagement baseRailwayManagement1 = baseRailwayManagementService.getById(baseRailwayManagement.getId());
         BaseRailwayManagement baseRailwayManagement1 = baseRailwayManagementService.getById(baseRailwayManagement.getId());
         if (ObjectUtils.isEmpty(baseRailwayManagement1)) {
         if (ObjectUtils.isEmpty(baseRailwayManagement1)) {
             return error("主键不存在");
             return error("主键不存在");
@@ -162,8 +170,10 @@ public class BaseRailwayManagementController extends BaseController {
         }
         }
         baseRailwayManagement.setUpdateBy(getUserId());
         baseRailwayManagement.setUpdateBy(getUserId());
         if (baseRailwayManagementService.updateById(baseRailwayManagement)) {
         if (baseRailwayManagementService.updateById(baseRailwayManagement)) {
+            idempotenceUtils.deleteIdempotence(baseRailwayManagement.getRailwayCode());
             return AjaxResult.success();
             return AjaxResult.success();
         }
         }
+        idempotenceUtils.deleteIdempotence(baseRailwayManagement.getRailwayCode());
         return AjaxResult.error();
         return AjaxResult.error();
     }
     }
 
 
@@ -193,7 +203,7 @@ public class BaseRailwayManagementController extends BaseController {
     public AjaxResult importBaseLineManagement(MultipartFile file, boolean updateSupport) throws Exception {
     public AjaxResult importBaseLineManagement(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<BaseRailwayManagement> util = new ExcelUtil<BaseRailwayManagement>(BaseRailwayManagement.class);
         ExcelUtil<BaseRailwayManagement> util = new ExcelUtil<BaseRailwayManagement>(BaseRailwayManagement.class);
         List<BaseRailwayManagement> AccountManageList = util.importExcel(file.getInputStream());
         List<BaseRailwayManagement> AccountManageList = util.importExcel(file.getInputStream());
-        String message = baseRailwayManagementService.importBaseLineManagement(AccountManageList, updateSupport);
+        String message = baseRailwayManagementService.importBaseLineManagement(AccountManageList, updateSupport,getUserId());
         return AjaxResult.success(message);
         return AjaxResult.success(message);
     }
     }
 
 

+ 28 - 41
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -11,16 +11,11 @@ import com.ozs.common.core.domain.entity.SysDept;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
 import com.ozs.common.utils.poi.ExcelUtil;
-import com.ozs.service.entity.BaseCameraManagement;
-import com.ozs.service.entity.BaseRailwayManagement;
-import com.ozs.service.entity.MsgAlarm;
-import com.ozs.service.entity.MsgAlarmFrequency;
+import com.ozs.service.entity.*;
 import com.ozs.service.entity.vo.*;
 import com.ozs.service.entity.vo.*;
 import com.ozs.service.mapper.MsgAlarmMapper;
 import com.ozs.service.mapper.MsgAlarmMapper;
-import com.ozs.service.service.BaseCameraManagementService;
-import com.ozs.service.service.BaseRailwayManagementService;
-import com.ozs.service.service.MsgAlarmFrequencyService;
-import com.ozs.service.service.MsgAlarmService;
+import com.ozs.service.service.*;
+import com.ozs.system.service.ISysDictDataService;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
@@ -54,6 +49,7 @@ import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -78,27 +74,32 @@ public class MsgAlarmController extends BaseController {
     BaseCameraManagementService baseCameraManagementService;
     BaseCameraManagementService baseCameraManagementService;
     @Autowired
     @Autowired
     BaseRailwayManagementService baseRailwayManagementService;
     BaseRailwayManagementService baseRailwayManagementService;
-    @Value("${base.imgUrl:http://124.71.171.71:18801/picbucket}")
-    private String imgUrl;
+    @Autowired
+    private MsgWebPushService msgWebPushService;
+    @Autowired
+    private ISysDictDataService dictDataService;
 
 
+    /**
+     * web报警未读消息个数+未读消息列表
+     */
+    @GetMapping("/webAlarm")
+    @ApiOperation("app报警推送次数")
+    public AjaxResult webAlarmNum() {
+        String userId = getUserId();
+        Map webAlarm = msgWebPushService.webAlarm(userId);
+        return AjaxResult.success(webAlarm);
+    }
 
 
     /**
     /**
-     * 测试消息推送
+     * web消息已读
      */
      */
-    @PostMapping("/push")
-    @ApiOperation(value = "预报警信息分页")
-    public AjaxResult insertDate(String[] args) {
-        // 模拟需要推送的用户群
-        ArrayList<String> ids = new ArrayList<>();
-        ids.add("001");
-        ids.add("002");
-        ids.add("003");
-        ids.add("004");
-        ids.add("005");
-//
-//        WebSocketService webSocketService = new WebSocketService();
-//        webSocketService.sendMsgToUsers(ids);
-        return AjaxResult.success("推送成功");
+    @PostMapping("/read")
+    @ApiOperation(value = "web消息已读")
+    public AjaxResult read(@RequestBody MsgWebPush msgWebPush) {
+        if (StringUtils.isEmpty(msgWebPush) || StringUtils.isEmpty(msgWebPush.getId())) {
+            return AjaxResult.error("主键ID不能为空!");
+        }
+        return toAjax(msgWebPushService.read(msgWebPush));
     }
     }
 
 
     /**
     /**
@@ -154,13 +155,6 @@ public class MsgAlarmController extends BaseController {
         IPage<MsgAlarm> page = msgAlarmService.page(new Page<>(msgAlarmVo.getPageNum(), msgAlarmVo.getPageSize()), lw);
         IPage<MsgAlarm> page = msgAlarmService.page(new Page<>(msgAlarmVo.getPageNum(), msgAlarmVo.getPageSize()), lw);
         if(!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())){
         if(!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())){
             List<MsgAlarm> dto1 = page.getRecords().stream().map(o -> {
             List<MsgAlarm> dto1 = page.getRecords().stream().map(o -> {
-                ArrayList<String> objects = new ArrayList<>();
-                String[] split = o.getImageUrl().split(";");
-                for (String s : split) {
-                    s = imgUrl + s;
-                    objects.add(s);
-                }
-                o.setImageUrls(objects);
                 LambdaQueryWrapper<BaseCameraManagement> cameraManagementLambdaQueryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
                 LambdaQueryWrapper<BaseCameraManagement> cameraManagementLambdaQueryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
                 if (!ObjectUtils.isEmpty(o.getCameraCode())) {
                 if (!ObjectUtils.isEmpty(o.getCameraCode())) {
                     cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, o.getCameraCode());
                     cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, o.getCameraCode());
@@ -212,13 +206,6 @@ public class MsgAlarmController extends BaseController {
         String mile = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
         String mile = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
         msgAlarmResp.setAlarmMile(mile);
         msgAlarmResp.setAlarmMile(mile);
         msgAlarmResp.setInstallLongitude(baseCameraManagement.getInstallLongitude()+","+baseCameraManagement.getInstallLatitude());
         msgAlarmResp.setInstallLongitude(baseCameraManagement.getInstallLongitude()+","+baseCameraManagement.getInstallLatitude());
-        ArrayList<String> objects = new ArrayList<>();
-        String[] split = msgAlarm.getImageUrl().split(";");
-        for (String s : split) {
-            s = imgUrl + s;
-            objects.add(s);
-        }
-        msgAlarmResp.setImageUrls(objects);
         return AjaxResult.success(msgAlarmResp);
         return AjaxResult.success(msgAlarmResp);
     }
     }
 
 
@@ -320,7 +307,7 @@ public class MsgAlarmController extends BaseController {
             @ApiImplicitParam(paramType = "query", name = "alarmType", value = "灾害类型"),
             @ApiImplicitParam(paramType = "query", name = "alarmType", value = "灾害类型"),
     })
     })
     public void exportDataStatistic(HttpServletResponse response, @RequestBody AlarmStatisticResVo alarmStatisticResVo) {
     public void exportDataStatistic(HttpServletResponse response, @RequestBody AlarmStatisticResVo alarmStatisticResVo) {
-        String userId = "1";//getUserId();
+        String userId = getUserId();
         if ("1".equals(userId)) {
         if ("1".equals(userId)) {
             userId = "";
             userId = "";
         }
         }
@@ -349,7 +336,7 @@ public class MsgAlarmController extends BaseController {
             @ApiImplicitParam(paramType = "query", name = "alarmType", value = "灾害类型"),
             @ApiImplicitParam(paramType = "query", name = "alarmType", value = "灾害类型"),
     })
     })
     public void exportDataStatisticMonth(HttpServletResponse response, @RequestBody AlarmStatisticResVo alarmStatisticResVo) {
     public void exportDataStatisticMonth(HttpServletResponse response, @RequestBody AlarmStatisticResVo alarmStatisticResVo) {
-        String userId = "1";//getUserId();
+        String userId = getUserId();
         if ("1".equals(userId)) {
         if ("1".equals(userId)) {
             userId = "";
             userId = "";
         }
         }

+ 15 - 4
hazard-admin/src/main/java/com/ozs/web/controller/app/JPushAppController.java

@@ -4,14 +4,12 @@ import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.service.entity.UserRegistrationid;
 import com.ozs.service.entity.UserRegistrationid;
+import com.ozs.service.service.MsgAppPushService;
 import com.ozs.service.service.UserRegistrationidService;
 import com.ozs.service.service.UserRegistrationidService;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
@@ -24,6 +22,19 @@ import org.springframework.web.multipart.MultipartFile;
 public class JPushAppController extends BaseController {
 public class JPushAppController extends BaseController {
     @Autowired
     @Autowired
     private UserRegistrationidService userRegistrationidService;
     private UserRegistrationidService userRegistrationidService;
+    @Autowired
+    private MsgAppPushService msgAppPushService;
+
+    /**
+     * app报警推送次数
+     */
+    @GetMapping("/appAlarmNum")
+    @ApiOperation("app报警推送次数")
+    public AjaxResult appAlarmNum() {
+        String userId = getUserId();
+        Integer appAlarmNum = msgAppPushService.appAlarmNum(userId);
+        return AjaxResult.success(appAlarmNum);
+    }
 
 
     /**
     /**
      * 存储RegistrationID
      * 存储RegistrationID

+ 22 - 0
hazard-admin/src/main/java/com/ozs/web/controller/system/SysLoginController.java

@@ -60,6 +60,28 @@ public class SysLoginController {
         return ajax;
         return ajax;
     }
     }
 
 
+    /**
+     * 登录方法
+     *
+     * @param loginBody 登录信息
+     * @return 结果
+     */
+    @PostMapping("/loginApp")
+    public AjaxResult loginApp(@RequestBody LoginBody loginBody) {
+        AjaxResult ajax = AjaxResult.success();
+        // 生成令牌
+        String token = loginService.loginApp(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
+                loginBody.getUuid());
+        ajax.put(Constants.TOKEN, token);
+        LoginUser loginedUser = tokenService.getLoginedUserByToken(token);
+        if (loginedUser != null) {
+            ajax.put("userId", loginedUser.getUserId());
+            ajax.put("username", loginedUser.getUsername());
+            ajax.put("avatar", loginedUser.getUser() != null ? loginedUser.getUser().getAvatar() : "");
+        }
+        return ajax;
+    }
+
     /**
     /**
      * 获取用户信息
      * 获取用户信息
      *
      *

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

@@ -2,6 +2,7 @@ package com.ozs.web.controller.system;
 
 
 import java.io.InputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -10,9 +11,14 @@ import javax.servlet.http.HttpServletResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ozs.common.constant.CacheConstants;
+import com.ozs.common.core.domain.entity.SysUserUpdate;
+import com.ozs.common.core.domain.entity.SysUsers;
+import com.ozs.common.core.domain.model.LoginUser;
 import com.ozs.common.core.domain.vo.SysUserVo;
 import com.ozs.common.core.domain.vo.SysUserVo;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.file.FileUtils;
+import com.ozs.framework.web.service.TokenService;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseRailwayManagement;
 import com.ozs.service.entity.BaseRailwayManagement;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAlarm;
@@ -65,6 +71,8 @@ public class SysUserController extends BaseController {
 
 
     @Autowired
     @Autowired
     private ISysPostService postService;
     private ISysPostService postService;
+    @Autowired
+    private TokenService tokenService;
 
 
 //    /**
 //    /**
 //     * 获取用户列表
 //     * 获取用户列表
@@ -86,6 +94,7 @@ public class SysUserController extends BaseController {
      */
      */
     @ApiOperation(value = "获取用户列表")
     @ApiOperation(value = "获取用户列表")
     @PostMapping("/list")
     @PostMapping("/list")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
     public AjaxResult list(@RequestBody SysUserVo sysUserVo) {
     public AjaxResult list(@RequestBody SysUserVo sysUserVo) {
         LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<SysUser>();
         LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<SysUser>();
         if (!ObjectUtils.isEmpty(sysUserVo.getUserName())) {
         if (!ObjectUtils.isEmpty(sysUserVo.getUserName())) {
@@ -103,9 +112,9 @@ public class SysUserController extends BaseController {
         if (!ObjectUtils.isEmpty(sysUserVo.getStatus())) {
         if (!ObjectUtils.isEmpty(sysUserVo.getStatus())) {
             wrapper.eq(SysUser::getStatus, sysUserVo.getStatus());
             wrapper.eq(SysUser::getStatus, sysUserVo.getStatus());
         }
         }
-       
+
         IPage<SysUser> page = userService.page(new Page<>(sysUserVo.getPageNum(), sysUserVo.getPageSize()), wrapper);
         IPage<SysUser> page = userService.page(new Page<>(sysUserVo.getPageNum(), sysUserVo.getPageSize()), wrapper);
-        if(!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())){
+        if (!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())) {
             List<SysUser> dto1 = page.getRecords().stream().map(o -> {
             List<SysUser> dto1 = page.getRecords().stream().map(o -> {
                 SysDept sysDept = deptService.selectDeptById(o.getDeptId());
                 SysDept sysDept = deptService.selectDeptById(o.getDeptId());
                 if (!ObjectUtils.isEmpty(sysDept)) {
                 if (!ObjectUtils.isEmpty(sysDept)) {
@@ -131,8 +140,8 @@ public class SysUserController extends BaseController {
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PostMapping("/importData")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-        List<SysUser> userList = util.importExcel(file.getInputStream());
+        ExcelUtil<SysUsers> util = new ExcelUtil<SysUsers>(SysUsers.class);
+        List<SysUsers> userList = util.importExcel(file.getInputStream());
         String userId = getUserId();
         String userId = getUserId();
         String message = userService.importUser(userList, updateSupport, userId);
         String message = userService.importUser(userList, updateSupport, userId);
         return success(message);
         return success(message);
@@ -202,7 +211,7 @@ public class SysUserController extends BaseController {
      */
      */
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
-    @RequestMapping(value ="/edit",method = RequestMethod.PUT)
+    @RequestMapping(value = "/edit", method = RequestMethod.PUT)
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
         boolean matches = user.getPassword().matches(PW_PATTERN);
         boolean matches = user.getPassword().matches(PW_PATTERN);
         if (!matches) {
         if (!matches) {
@@ -220,9 +229,47 @@ public class SysUserController extends BaseController {
             return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
             return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         }
         user.setUpdateBy(getUsername());
         user.setUpdateBy(getUsername());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         return toAjax(userService.updateUsers(user));
         return toAjax(userService.updateUsers(user));
     }
     }
 
 
+    /**
+     * 修改用户-web修改个人信息
+     */
+//    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @RequestMapping(value = "/updateUser", method = RequestMethod.PUT)
+    public AjaxResult updateUser(@RequestBody SysUserUpdate user) {
+        if (!StringUtils.isEmpty(user) && !StringUtils.isEmpty(user.getPassword())) {
+            boolean matches = user.getPassword().matches(PW_PATTERN);
+            if (!matches) {
+                return error("您的密码太简单!需要包含大小英文、数字、特殊字符、并且长度8-20");
+            }
+        }
+        userService.checkUserAllowedUpdate(user);
+        userService.checkUserDataScope(user.getId());
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUniqueUpdate(user))) {
+            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+        } else if (StringUtils.isNotEmpty(user.getPhoneNum())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUniqueUpdate(user))) {
+            return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        } else if (StringUtils.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUniqueUpdate(user))) {
+            return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setUpdateBy(getUsername());
+        user.setUpdateTime(new Date());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        int i = userService.updateUsersUpdate(user);
+        LoginUser loginUser = getLoginUser();
+        if (i != 0) {
+            // redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId);
+            // 删除用户缓存记录
+            tokenService.delLoginUser(loginUser.getToken());
+        }
+        return toAjax(i);
+    }
+
     /**
     /**
      * 删除用户
      * 删除用户
      */
      */
@@ -319,10 +366,10 @@ public class SysUserController extends BaseController {
      */
      */
     @GetMapping("/dataPermission/{id}/{dataPermission}")
     @GetMapping("/dataPermission/{id}/{dataPermission}")
     @ApiOperation("数据权限分配")
     @ApiOperation("数据权限分配")
-    public AjaxResult dataPermission(@PathVariable("id") Long id,@PathVariable("dataPermission") Integer dataPermission) {
-        if (userService.dataPermission(id,dataPermission)){
+    public AjaxResult dataPermission(@PathVariable("id") Long id, @PathVariable("dataPermission") Integer dataPermission) {
+        if (userService.dataPermission(id, dataPermission)) {
             return success();
             return success();
-        }else {
+        } else {
             return error();
             return error();
         }
         }
     }
     }

+ 33 - 8
hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java

@@ -4,15 +4,17 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.StringUtils;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAlarm;
+import com.ozs.service.entity.MsgAppPush;
+import com.ozs.service.entity.MsgWebPush;
 import com.ozs.service.entity.vo.MsgAlarmResp;
 import com.ozs.service.entity.vo.MsgAlarmResp;
-import com.ozs.service.service.BaseCameraManagementService;
-import com.ozs.service.service.BaseRailwayManagementService;
-import com.ozs.service.service.BaseUserService;
-import com.ozs.service.service.UserRegistrationidService;
+import com.ozs.service.service.*;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
@@ -40,6 +42,10 @@ public class WebSocketConteoller extends BaseController {
     private BaseCameraManagementService baseCameraManagementService;
     private BaseCameraManagementService baseCameraManagementService;
     @Autowired
     @Autowired
     private UserRegistrationidService userRegistrationidService;
     private UserRegistrationidService userRegistrationidService;
+    @Autowired
+    private MsgWebPushService msgWebPushService;
+    @Autowired
+    private MsgAppPushService msgAppPushService;
 
 
     @ResponseBody
     @ResponseBody
     @PostMapping("/publish")
     @PostMapping("/publish")
@@ -52,24 +58,23 @@ public class WebSocketConteoller extends BaseController {
         // 获取推送人ID列表
         // 获取推送人ID列表
         Set<String> set = baseUserService.getUserIdList(baseCameraManagement.getCreateBy(), baseCameraManagement.getDeptId());
         Set<String> set = baseUserService.getUserIdList(baseCameraManagement.getCreateBy(), baseCameraManagement.getDeptId());
         String[] list = set.toArray(new String[set.size()]);
         String[] list = set.toArray(new String[set.size()]);
+        List<String> userIdList = new ArrayList<>(set);
         MsgAlarmResp msgAlarmResp = new MsgAlarmResp();
         MsgAlarmResp msgAlarmResp = new MsgAlarmResp();
         String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
         String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
         String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
         String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
         String endMile = begin + "-" + end;
         String endMile = begin + "-" + end;
         msgAlarmResp.setBeginMile(endMile);
         msgAlarmResp.setBeginMile(endMile);
         msgAlarmResp.setAlarmType(msgAlarm.getAlarmType());
         msgAlarmResp.setAlarmType(msgAlarm.getAlarmType());
-        msgAlarmResp.setAlarmTime(msgAlarm.getAlarmTime());
         String mile = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
         String mile = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
         msgAlarmResp.setAlarmMile(mile);
         msgAlarmResp.setAlarmMile(mile);
         String cameraCode = baseCameraManagement.getCameraCode();
         String cameraCode = baseCameraManagement.getCameraCode();
         String cameraName = baseRailwayManagementService.getCameraNameByCameraCode(cameraCode);
         String cameraName = baseRailwayManagementService.getCameraNameByCameraCode(cameraCode);
         msgAlarmResp.setRailwayName(cameraName != null ? cameraName : "");
         msgAlarmResp.setRailwayName(cameraName != null ? cameraName : "");
         msgAlarmResp.setLineDirStr(baseCameraManagement.getLineDir() == 1 ? "上行" : "下行");
         msgAlarmResp.setLineDirStr(baseCameraManagement.getLineDir() == 1 ? "上行" : "下行");
+        msgAlarmResp.setAlarmTime(msgAlarm.getAlarmTime() != null ? msgAlarm.getAlarmTime() : new Date());
         // 推送消息reqMsgAlarmVo
         // 推送消息reqMsgAlarmVo
         webSocketServer.sendMoreMessage(list, objStr(msgAlarmResp));
         webSocketServer.sendMoreMessage(list, objStr(msgAlarmResp));
-
         // app 消息推送
         // app 消息推送
-        List<String> userIdList = new ArrayList<>(set);
         List<String> alias = userRegistrationidService.selectRegistrationID(userIdList);
         List<String> alias = userRegistrationidService.selectRegistrationID(userIdList);
         // List<String> alias = new ArrayList<String>();
         // List<String> alias = new ArrayList<String>();
         // alias.add("sunhh");
         // alias.add("sunhh");
@@ -79,8 +84,28 @@ public class WebSocketConteoller extends BaseController {
         JPushUtil.sendToRegistrationId(
         JPushUtil.sendToRegistrationId(
                 alias,
                 alias,
                 "报警通知!", cameraName != null ? cameraName : "",
                 "报警通知!", cameraName != null ? cameraName : "",
-                formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType())+ "     " + (baseCameraManagement.getLineDir() == 1 ? "上行" : "下行") + "     " + mile + "     " + endMile,
+                formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + (baseCameraManagement.getLineDir() == 1 ? "上行" : "下行") + "     " + mile + "     " + endMile,
                 "");
                 "");
+        // 存入数据
+        if (!StringUtils.isEmpty(msgAlarm.getAlarmId()) || !StringUtils.isEmpty(userIdList)) {
+            String userIdLogin = getUserId();
+            String alarmId = msgAlarm.getAlarmId();
+            for (String userId : userIdList) {
+                MsgWebPush msgWebPush = new MsgWebPush();
+                // 状态:1未读;2已读
+                msgWebPush.setStatus(1);
+                msgWebPush.setAlarmId(alarmId);
+                msgWebPush.setReceiveBy(userId);
+                msgWebPush.setCreateBy(userIdLogin);
+                msgWebPush.setCreateTime(new Date());
+                msgWebPush.setUpdateBy(userIdLogin);
+                msgWebPush.setUpdateTime(new Date());
+                msgWebPushService.save(msgWebPush);
+                MsgAppPush msgAppPush = new MsgAppPush();
+                BeanUtils.copyProperties(msgWebPush, msgAppPush);
+                msgAppPushService.save(msgAppPush);
+            }
+        }
         HashMap<String, Object> map = new HashMap<>();
         HashMap<String, Object> map = new HashMap<>();
         map.put("code", 200);
         map.put("code", 200);
         return map;
         return map;

+ 5 - 11
hazard-admin/src/main/java/com/ozs/web/core/config/CaneraConfig.java

@@ -8,17 +8,12 @@ import org.springframework.context.annotation.Configuration;
 @Data
 @Data
 public class CaneraConfig {
 public class CaneraConfig {
 
 
-    /**
-     * 视频服务器访问路径
-     */
-    @Value("${base.url:http://47.106.159.135:8554}")
-    private String url;
-
     /**
     /**
      * 视频服务器访问路径
      * 视频服务器访问路径
      */
      */
     @Value("${base.historyUrl:http://47.106.159.135/streams}")
     @Value("${base.historyUrl:http://47.106.159.135/streams}")
     private String historyUrl;
     private String historyUrl;
+
     /**
     /**
      * ffmpeg.exe路径
      * ffmpeg.exe路径
      * "D:\\Java\\operSources\\ffmpeg-4.3.1\\bin\\ffmpeg.exe"
      * "D:\\Java\\operSources\\ffmpeg-4.3.1\\bin\\ffmpeg.exe"
@@ -27,13 +22,12 @@ public class CaneraConfig {
     private String ffmpegPath;
     private String ffmpegPath;
 
 
 
 
-    @Value("${base.mappingUrl:http://47.106.159.135/}")
-    private String mappingUrl;
-
     @Value("${base.filePath:/opt/streams/}")
     @Value("${base.filePath:/opt/streams/}")
     private String filePath;
     private String filePath;
 
 
-    @Value("${base.flvPath:/opt/streams/record/flv/hazard/}")
-    private String flvPath;
+
+    @Value("${base.webUrl:http://47.106.159.135/streams}")
+    private String webUrl;
+
 
 
 }
 }

+ 29 - 167
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -4,18 +4,15 @@ package com.ozs.web.core.util;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSON;
 import com.ozs.common.config.BaseConfig;
 import com.ozs.common.config.BaseConfig;
 import com.ozs.common.constant.Constants;
 import com.ozs.common.constant.Constants;
-import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.utils.DateUtils;
 import com.ozs.common.utils.DateUtils;
 import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.web.core.config.CaneraConfig;
 import com.ozs.web.core.config.CaneraConfig;
-import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.GetMapping;
 
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PostConstruct;
 import java.io.*;
 import java.io.*;
@@ -32,12 +29,10 @@ import java.util.stream.Collectors;
 @Slf4j
 @Slf4j
 public class CameraUtil {
 public class CameraUtil {
 
 
-    private static String url;
     private static String historyUrl;
     private static String historyUrl;
     private static String ffmpegPath;
     private static String ffmpegPath;
-    private static String mappingUrl;
-    private static String flvPath;
     private static String filePath;
     private static String filePath;
+    private static String webUrl;
 
 
     @Autowired
     @Autowired
     private CaneraConfig caneraConfig;
     private CaneraConfig caneraConfig;
@@ -53,7 +48,6 @@ public class CameraUtil {
      */
      */
     public static String historyPlay(List<String> fromVideoFileList, String ph) {
     public static String historyPlay(List<String> fromVideoFileList, String ph) {
         // 视频服务映射路径
         // 视频服务映射路径
-//        String NewfilePath = flvPath + ph;
         String NewfilePath = BaseConfig.getProfile() + "/" + ph;
         String NewfilePath = BaseConfig.getProfile() + "/" + ph;
         log.info("NewfilePath:{}", NewfilePath);
         log.info("NewfilePath:{}", NewfilePath);
         log.info("fromVideoFileList:{}", fromVideoFileList);
         log.info("fromVideoFileList:{}", fromVideoFileList);
@@ -68,10 +62,7 @@ public class CameraUtil {
                 e.printStackTrace();
                 e.printStackTrace();
             }
             }
         }).start();
         }).start();
-        // windows可以 linux不行
-//        convetor(fromVideoFileList, NewfilePath);
         return Constants.RESOURCE_PREFIX + "/" + ph;
         return Constants.RESOURCE_PREFIX + "/" + ph;
-//        return mappingUrl + "record/flv/hazard/" + ph;
     }
     }
 
 
     /**
     /**
@@ -82,7 +73,7 @@ public class CameraUtil {
      * @return
      * @return
      */
      */
     public static String getPlayFlv(String cameraCode, String channel) {
     public static String getPlayFlv(String cameraCode, String channel) {
-        return historyUrl + "/hdl/" + channel + "/" + cameraCode + ".flv";
+        return webUrl + "/hdl/" + channel + "/" + cameraCode + ".flv";
     }
     }
 
 
     /**
     /**
@@ -106,24 +97,17 @@ public class CameraUtil {
         return historyUrl + "/api/record/flv/stop?id=" + taskId;
         return historyUrl + "/api/record/flv/stop?id=" + taskId;
     }
     }
 
 
+
     /**
     /**
-     * 实时播放
+     * 历史回放流(获取)
      *
      *
-     * @param cameraCode
-     * @param channel
+     * @param channel 相机通道
+     * @param startTm 开始时间
+     * @param endTm   结束时间
      * @return
      * @return
      */
      */
-    public static String play(String cameraCode, String channel) {
-        if (StringUtils.isBlank(cameraCode) || StringUtils.isBlank(channel)) {
-            return null;
-        }
-        String param = "id=" + cameraCode + "&channel=" + channel;
-        return HttpUtils.sendGet(url + "/gb28181/api/records", param);
-    }
-
-
     public static String historyPlayListStr(String channel, Date startTm, Date endTm) {
     public static String historyPlayListStr(String channel, Date startTm, Date endTm) {
-        List<String> list = historyPlayList(channel, startTm, endTm, filePath);
+        List<String> list = filterPlayList(channel, startTm, endTm, filePath);
         String ph = "flv/" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date())
         String ph = "flv/" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, new Date())
                 + "/" + channel + "/"
                 + "/" + channel + "/"
                 + UUID.randomUUID().toString() + ".flv";
                 + UUID.randomUUID().toString() + ".flv";
@@ -141,7 +125,16 @@ public class CameraUtil {
     }
     }
 
 
 
 
-    public static List<String> historyPlayList(String channel, Date startTm, Date endTm, String mappingUrl) {
+    /**
+     * 过滤符合条件的视频
+     *
+     * @param channel
+     * @param startTm
+     * @param endTm
+     * @param mappingUrl
+     * @return
+     */
+    public static List<String> filterPlayList(String channel, Date startTm, Date endTm, String mappingUrl) {
         if (StringUtils.isBlank(channel)
         if (StringUtils.isBlank(channel)
                 || ObjectUtils.isEmpty(startTm)
                 || ObjectUtils.isEmpty(startTm)
                 || ObjectUtils.isEmpty(endTm)) {
                 || ObjectUtils.isEmpty(endTm)) {
@@ -209,133 +202,11 @@ public class CameraUtil {
     }
     }
 
 
     /**
     /**
-     * * 参数:
-     * **List<String> fromVideoFileList 需要合并的多视频url地址以List存放**
-     * **String ffmpeg 此处是ffmpeg 配置地址,可写死如“E:/ffmpeg/bin/ffmpeg.exe”**
-     * **String NewfilePath 合并后的视频存放地址,如:E:/mergevideo.mp4***
+     * 合并视频(转化文件)
+     * @param fromVideoFileList 视频路径
+     * @param newfilePath 生产新的视频文件路径
+     * @throws IOException
      */
      */
-    public static void convetor(List<String> fromVideoFileList,
-                                String newfilePath) throws IOException {
-        File file = new File(newfilePath);
-        if (!file.getParentFile().exists()) {
-            file.getParentFile().mkdirs();
-            log.info("创建文件夹:{}", file.getParentFile().getPath());
-        }
-        log.info("newfilePath:{}", newfilePath);
-        Runtime.getRuntime().exec("chmod 777 " + file.getParentFile().getPath());
-        List<String> voidTS = new ArrayList<>();
-        Process process = null;
-        ProcessBuilder builder = null;
-        List<String> command = null;
-        String substr = fromVideoFileList.get(0).substring(0, fromVideoFileList.get(0).lastIndexOf("/"));
-        log.info("substr:{}", substr);
-        Runtime.getRuntime().exec("chmod 777 " + substr);
-        // 转化为临时文件 .ts  放入到 voidTS里面
-        for (int i = 0; i < fromVideoFileList.size(); i++) {
-            String fromVideoFile = fromVideoFileList.get(i);
-            File file1 = new File(fromVideoFile);
-            if (file1.exists()) {
-                log.info("文件存在:{}", fromVideoFile);
-                command = new ArrayList<String>();
-                command.add(ffmpegPath);
-                command.add("-y");
-                command.add("-i");
-                command.add(fromVideoFile);
-                command.add("-vcodec");
-                command.add("copy");
-                command.add("-bsf:v");
-                command.add("h264_mp4toannexb");
-                command.add("-f");
-                command.add("mpegts");
-                command.add(fromVideoFile.substring(0,
-                        fromVideoFile.lastIndexOf(".")) + ".ts");
-                builder = new ProcessBuilder(command);
-                voidTS.add(fromVideoFile.substring(0,
-                        fromVideoFile.lastIndexOf(".")) + ".ts");
-                try {
-                    process = builder.start();
-                    InputStream errorStream = process
-                            .getErrorStream();
-                    InputStreamReader inputStreamReader = new InputStreamReader(
-                            errorStream);
-                    BufferedReader br = new BufferedReader(
-                            inputStreamReader);
-                    String line = "";
-                    StringBuffer sb = new StringBuffer();
-                    while ((line = br.readLine()) != null) {
-                        sb.append(line);
-                    }
-                    String regexDuration = "Duration: (.*?), start: (.*?), bitrate: (\\d*) kb\\/s";
-                    Pattern pattern = Pattern
-                            .compile(regexDuration);
-                    Matcher m = pattern.matcher(sb.toString());
-                    System.out.println(sb.toString());
-                    br.close();
-                    inputStreamReader.close();
-                    errorStream.close();
-                } catch (IOException e) {
-                    log.error(e.getMessage());
-                    e.printStackTrace();
-                }
-            } else {
-                log.info("文件不存在:{}", fromVideoFile);
-            }
-        }
-        for (String voidT : voidTS) {
-            Runtime.getRuntime().exec("chmod 777 " + voidT);
-        }
-        log.info("ffmpegPath:{}", ffmpegPath);
-        List<String> dos = new ArrayList<>();
-        StringBuffer tsPath = new StringBuffer();
-        tsPath.append(ffmpegPath);
-        tsPath.append(" -i ");
-        tsPath.append("concat:");
-        log.info("voidTS:{}", voidTS);
-        for (int t = 0; t < voidTS.size(); t++) {
-            if (t != voidTS.size() - 1) {
-                tsPath.append(voidTS.get(t) + "|");
-            } else {
-                tsPath.append(voidTS.get(t));
-            }
-        }
-        tsPath.append(" -vcodec ");
-        tsPath.append(" copy ");
-        tsPath.append(" -bsf:a ");
-        tsPath.append(" aac_adtstoasc ");
-        tsPath.append(" -movflags ");
-        tsPath.append(" +faststart ");
-        tsPath.append(newfilePath);
-        log.info("执行的命令:{}", tsPath.toString());
-        Process pr = Runtime.getRuntime().exec(
-                tsPath.toString());
-        process.getInputStream();
-        pr.getOutputStream().close();
-        pr.getInputStream().close();
-        pr.getErrorStream().close();
-        try {
-            int i = pr.waitFor();
-            System.out.println("********");
-            log.info("********");
-            System.out.println(i);
-            log.info(i + "");
-            log.info("********");
-            System.out.println("********");
-        } catch (InterruptedException e) {
-            log.error(e.getMessage());
-            e.printStackTrace();
-        } finally {
-            pr.destroy();
-        }
-
-        //删除生成的ts文件
-//        for (String filePath : voidTS) {
-//            File filet = new File(filePath);
-//            filet.delete();
-//            pr.destroy();
-//        }
-    }
-
-
     public static void myConvetor(List<String> fromVideoFileList,
     public static void myConvetor(List<String> fromVideoFileList,
                                   String newfilePath) throws IOException {
                                   String newfilePath) throws IOException {
         /*
         /*
@@ -435,30 +306,21 @@ public class CameraUtil {
         String s = HttpUtils.sendGet("http://47.106.159.135/streams" + "/api/record/flv/list", param);
         String s = HttpUtils.sendGet("http://47.106.159.135/streams" + "/api/record/flv/list", param);
     }
     }
 
 
-    //工具类
-
-    public static void queryRecords(String cameraCode, String channel, Date startTm, Date endTm) {
-        if (StringUtils.isBlank(cameraCode)
-                || StringUtils.isBlank(channel)
-                || ObjectUtils.isEmpty(startTm)
-                || ObjectUtils.isEmpty(endTm)) {
-            throw new BaseException("参数为空");
-        }
-        String param = "id=" + cameraCode + "&channel=" + channel + "&startTime=" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, startTm) + "&endTm=" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, endTm);
-        String s = HttpUtils.sendGet(historyUrl + "/api/gb28181/query/records", param);
-        System.out.println(s);
-    }
 
 
     @PostConstruct
     @PostConstruct
     public void init() {
     public void init() {
-        url = caneraConfig.getUrl();
-        mappingUrl = caneraConfig.getMappingUrl();
         historyUrl = caneraConfig.getHistoryUrl();
         historyUrl = caneraConfig.getHistoryUrl();
         ffmpegPath = caneraConfig.getFfmpegPath();
         ffmpegPath = caneraConfig.getFfmpegPath();
-        flvPath = caneraConfig.getFlvPath();
         filePath = caneraConfig.getFilePath();
         filePath = caneraConfig.getFilePath();
+        webUrl = caneraConfig.getWebUrl();
     }
     }
 
 
+    /**
+     * 定时任务参数flv文件
+     *
+     * @throws IOException
+     * @throws InterruptedException
+     */
     public void deleteFlv() throws IOException, InterruptedException {
     public void deleteFlv() throws IOException, InterruptedException {
         SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
         Date date = new Date();
         Date date = new Date();

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

@@ -15,11 +15,11 @@ base:
   addressEnabled: false
   addressEnabled: false
   # 验证码类型 math 数组计算 char 字符验证
   # 验证码类型 math 数组计算 char 字符验证
   captchaType: math
   captchaType: math
-  #  path: http://47.106.159.135:8554
-  path: http://47.106.159.135:8554
+  # 摄像头配置
   ffmpegPath: /usr/local/ffmpeg/bin/ffmpeg
   ffmpegPath: /usr/local/ffmpeg/bin/ffmpeg
-  mappingUrl: http://47.106.159.135/
   filePath: /opt/streams/
   filePath: /opt/streams/
+  historyUrl: http://124.70.58.209:9080
+  webUrl: http://124.70.58.209:9080
 
 
 # 开发环境配置
 # 开发环境配置
 server:
 server:

+ 1 - 0
hazard-admin/src/main/resources/logback.xml

@@ -2,6 +2,7 @@
 <configuration>
 <configuration>
     <!-- 日志存放路径 -->
     <!-- 日志存放路径 -->
     <property name="log.path" value="/data/service/hazard-admin/logs"/>
     <property name="log.path" value="/data/service/hazard-admin/logs"/>
+<!--    <property name="log.path" value="/Users/sunhuanhuan/Documents/project/106/project/logs"/>-->
     <!-- 日志输出格式 -->
     <!-- 日志输出格式 -->
     <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
     <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
 
 

BIN
hazard-admin/src/main/resources/template/SysUser.xlsx


BIN
hazard-admin/src/main/resources/template/baseCameraManagement.xlsx


BIN
hazard-admin/src/main/resources/template/baseRailwayManagement.xlsx


+ 5 - 0
hazard-sdk/Dockerfile

@@ -0,0 +1,5 @@
+FROM openjdk:8
+ADD target/hazard-sdk.jar app.jar
+EXPOSE 18818
+VOLUME ["/data/service/hazard-sdk/logs","/logs"]
+ENTRYPOINT java -jar /app.jar >/logs/app.log

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

@@ -9,6 +9,7 @@ import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.stateSecrets.SM4Utils;
 import com.ozs.common.utils.stateSecrets.SM4Utils;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseDeviceDynamicManagement;
 import com.ozs.service.entity.BaseDeviceDynamicManagement;
+import com.ozs.service.entity.BaseUser;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAlarmFrequency;
 import com.ozs.service.entity.MsgAlarmFrequency;
 import com.ozs.service.entity.SvcAddress;
 import com.ozs.service.entity.SvcAddress;
@@ -55,6 +56,8 @@ public class GeoHazardMonitorTokenController {
     BaseCameraManagementService baseCameraManagementService;
     BaseCameraManagementService baseCameraManagementService;
     @Value("${sdk.publish:http://47.106.159.135:18819/hazard/sdk/publish}")
     @Value("${sdk.publish:http://47.106.159.135:18819/hazard/sdk/publish}")
     private String sdkUrl;
     private String sdkUrl;
+    @Autowired
+    private BaseUserService baseUserService;
 
 
     /**
     /**
      * 获取web访问令牌
      * 获取web访问令牌
@@ -133,6 +136,8 @@ public class GeoHazardMonitorTokenController {
             }
             }
             MsgAlarm alarm = msgAlarmService.getOne(lw);
             MsgAlarm alarm = msgAlarmService.getOne(lw);
             log.info("alarm:{}", alarm);
             log.info("alarm:{}", alarm);
+            BaseUser admin = baseUserService.getUserName("admin");
+            MsgAlarmFrequency msgAlarmVice = new MsgAlarmFrequency();
             if (ObjectUtils.isEmpty(alarm)) {
             if (ObjectUtils.isEmpty(alarm)) {
                 MsgAlarm msgAlarm = new MsgAlarm();
                 MsgAlarm msgAlarm = new MsgAlarm();
                 BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarm);
                 BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarm);
@@ -144,17 +149,20 @@ public class GeoHazardMonitorTokenController {
                     buffer.append(";");
                     buffer.append(";");
                 }
                 }
                 msgAlarm.setImageUrl(buffer.toString());
                 msgAlarm.setImageUrl(buffer.toString());
-                msgAlarm.setCreateBy("admin");
-                msgAlarm.setUpdateBy("admin");
+                msgAlarm.setCreateBy(admin.getUserId());
+                msgAlarm.setUpdateBy(admin.getUserId());
                 msgAlarm.setAlarmMile(baseCameraManagement.getInstallMile());
                 msgAlarm.setAlarmMile(baseCameraManagement.getInstallMile());
                 msgAlarm.setAlarmTime(new Date(reqMsgAlarmVo.getAlarmTime()));
                 msgAlarm.setAlarmTime(new Date(reqMsgAlarmVo.getAlarmTime()));
                 msgAlarmService.save(msgAlarm);
                 msgAlarmService.save(msgAlarm);
+                msgAlarmVice.setImageUrl(buffer.toString());
+                msgAlarmVice.setCreateBy(admin.getUserId());
+                msgAlarmVice.setUpdateBy(admin.getUserId());
+                msgAlarmFrequencyService.save(msgAlarmVice);
                 respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
                 respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
                 respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
                 respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
                 respMsgAlarmVo.setIsCancel(2);
                 respMsgAlarmVo.setIsCancel(2);
                 respMsgAlarmVo.setCancelTime(null);
                 respMsgAlarmVo.setCancelTime(null);
             } else {
             } else {
-                MsgAlarmFrequency msgAlarmVice = new MsgAlarmFrequency();
                 BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarmVice);
                 BeanUtils.copyProperties(reqMsgAlarmVo, msgAlarmVice);
                 String[] imageUrl = reqMsgAlarmVo.getImageUrls();
                 String[] imageUrl = reqMsgAlarmVo.getImageUrls();
                 StringBuffer buffer = new StringBuffer();
                 StringBuffer buffer = new StringBuffer();
@@ -163,8 +171,8 @@ public class GeoHazardMonitorTokenController {
                     buffer.append(";");
                     buffer.append(";");
                 }
                 }
                 msgAlarmVice.setImageUrl(buffer.toString());
                 msgAlarmVice.setImageUrl(buffer.toString());
-                msgAlarmVice.setCreateBy("admin");
-                msgAlarmVice.setUpdateBy("admin");
+                msgAlarmVice.setCreateBy(admin.getUserId());
+                msgAlarmVice.setUpdateBy(admin.getUserId());
                 msgAlarmFrequencyService.save(msgAlarmVice);
                 msgAlarmFrequencyService.save(msgAlarmVice);
                 respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
                 respMsgAlarmVo.setAlarmId(reqMsgAlarmVo.getAlarmId());
                 respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
                 respMsgAlarmVo.setCameraCode(reqMsgAlarmVo.getAlarmCamera());
@@ -192,6 +200,12 @@ public class GeoHazardMonitorTokenController {
         }
         }
     }
     }
 
 
+    @PostMapping("/encryptionAlarm")
+    public String encryptionAlarm(@RequestBody ReqMsgAlarmVo vo) {
+        String s1 = JSONObject.toJSONString(vo);
+        return SM4Utils.encryptData_ECB(s1, "4370780c9a8c43e5");
+    }
+
     /**
     /**
      * 设备状态数据传输
      * 设备状态数据传输
      *
      *
@@ -212,11 +226,12 @@ public class GeoHazardMonitorTokenController {
                 jsonObject.put("message", "信息编码为空!");
                 jsonObject.put("message", "信息编码为空!");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), "4370780c9a8c43e5");
             }
             }
+            BaseUser admin = baseUserService.getUserName("admin");
             lw.eq(BaseDeviceDynamicManagement::getCameraCode, reqDeviceVo.getCameraCode());
             lw.eq(BaseDeviceDynamicManagement::getCameraCode, reqDeviceVo.getCameraCode());
             BaseDeviceDynamicManagement baseDynamicManagement = baseDeviceDynamicManagementService.getOne(lw);
             BaseDeviceDynamicManagement baseDynamicManagement = baseDeviceDynamicManagementService.getOne(lw);
             baseDynamicManagement.setElectricity(reqDeviceVo.getElectricity());
             baseDynamicManagement.setElectricity(reqDeviceVo.getElectricity());
             baseDynamicManagement.setUpdateTime(new Date(reqDeviceVo.getTime()));
             baseDynamicManagement.setUpdateTime(new Date(reqDeviceVo.getTime()));
-            baseDynamicManagement.setUpdateBy("admin");
+            baseDynamicManagement.setUpdateBy(admin.getUserId());
             log.info("reqDeviceVo:{}", baseDynamicManagement);
             log.info("reqDeviceVo:{}", baseDynamicManagement);
             if (baseDeviceDynamicManagementService.updateById(baseDynamicManagement)) {
             if (baseDeviceDynamicManagementService.updateById(baseDynamicManagement)) {
                 jsonObject.put("resultCode", 1);
                 jsonObject.put("resultCode", 1);
@@ -234,9 +249,10 @@ public class GeoHazardMonitorTokenController {
     }
     }
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {
-        String parameter = "rjW9XcaNdY1M2rtUj4rYsW+3nqcJUDBuE6Orqvd4vyMhOh3fQGPNava0aOcUA7h0wuxoQtHE3bUP5imxqbRd/iBT7QDkrqtdPP5QLEhQodT8v0l8YMMtb7yohAJfEThLJOJ8Odl0kuTJXEJBMD8pE//K9KpRGDY4eEKPdS26YywnIl6HwK9EweYxVGtfJOP3/N7lwum2ROv7iqYgefXd/IxGEG8eVqEUutGKpeCcM0dds/N3Uq5ri/k/BrpaKcV96GnlR4pWkBjWOW08eGJ78shuUJkC682294W4RUp3NPPR7OTErtVAh65or8pB+RGDZuZQlUJ/QVpWp2ZdCrN5Wjqsi1TIa00oGQbYmMixOF0=";
-        String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
-        ReqMsgAlarmVo reqMsgAlarmVo = JSON.parseObject(s, ReqMsgAlarmVo.class);
-        System.out.println(reqMsgAlarmVo.toString());
+//        String parameter = "rjW9XcaNdY1M2rtUj4rYsW+3nqcJUDBuE6Orqvd4vyMhOh3fQGPNava0aOcUA7h0wuxoQtHE3bUP5imxqbRd/iBT7QDkrqtdPP5QLEhQodT8v0l8YMMtb7yohAJfEThLJOJ8Odl0kuTJXEJBMD8pE//K9KpRGDY4eEKPdS26YywnIl6HwK9EweYxVGtfJOP3/N7lwum2ROv7iqYgefXd/IxGEG8eVqEUutGKpeCcM0dds/N3Uq5ri/k/BrpaKcV96GnlR4pWkBjWOW08eGJ78shuUJkC682294W4RUp3NPPR7OTErtVAh65or8pB+RGDZuZQlUJ/QVpWp2ZdCrN5Wjqsi1TIa00oGQbYmMixOF0=";
+//        String s = SM4Utils.decryptData_ECB(parameter, "4370780c9a8c43e5");
+//        ReqMsgAlarmVo reqMsgAlarmVo = JSON.parseObject(s, ReqMsgAlarmVo.class);
+//        System.out.println(reqMsgAlarmVo.toString());
+        System.out.println(new Date().getTime());
     }
     }
 }
 }

+ 3 - 1
hazard-sdk/src/main/java/com/ozs/controller/upload/UploadController.java

@@ -37,6 +37,8 @@ public class UploadController {
     MinioUtils minioUtils;
     MinioUtils minioUtils;
     @Autowired
     @Autowired
     BaseCameraManagementService baseCameraManagementService;
     BaseCameraManagementService baseCameraManagementService;
+    @Value("${base.imgUrl}")
+    private String imgUrl;
 
 
 
 
     @PostMapping("/putObject")
     @PostMapping("/putObject")
@@ -77,7 +79,7 @@ public class UploadController {
                 }
                 }
                 String imgName = baseCameraManagement.getRailwayCode() + "/" + line + "/" + baseCameraManagement.getInstallMile() + "/" + format1 + "/" + filename;
                 String imgName = baseCameraManagement.getRailwayCode() + "/" + line + "/" + baseCameraManagement.getInstallMile() + "/" + format1 + "/" + filename;
                 minioUtils.minIoClientUpload(stream.getInputStream(), imgName);
                 minioUtils.minIoClientUpload(stream.getInputStream(), imgName);
-                uploadFile = "/" + baseCameraManagement.getRailwayCode() + "/" + line + "/" + baseCameraManagement.getInstallMile() + "/" + format1 + "/" + filename;
+                uploadFile = imgUrl+"/" + baseCameraManagement.getRailwayCode() + "/" + line + "/" + baseCameraManagement.getInstallMile() + "/" + format1 + "/" + filename;
             }
             }
         } else {
         } else {
             jsonObject.put("resultCode", 2);
             jsonObject.put("resultCode", 2);

+ 5 - 0
hazard-sdk/src/main/resources/application.yml

@@ -14,6 +14,8 @@ base:
   addressEnabled: false
   addressEnabled: false
   # 验证码类型 math 数组计算 char 字符验证
   # 验证码类型 math 数组计算 char 字符验证
   captchaType: math
   captchaType: math
+  #图片路径前缀
+  imgUrl: http://124.71.171.71:18801/picbucket
 
 
 # 开发环境配置
 # 开发环境配置
 server:
 server:
@@ -150,3 +152,6 @@ minio:
   bucketName: picbucket #存储桶名称
   bucketName: picbucket #存储桶名称
   accessKey: admin #访问的key
   accessKey: admin #访问的key
   secretKey: admin123 #访问的秘钥
   secretKey: admin123 #访问的秘钥
+
+sdk:
+  publish: http://http://124.70.58.209/:18819/hazard/sdk/publish