Преглед изворни кода

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

gao.qiang пре 2 година
родитељ
комит
36d65f3d61
17 измењених фајлова са 304 додато и 57 уклоњено
  1. 2 0
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmResp.java
  2. 3 0
      business-service/src/main/java/com/ozs/service/entity/vo/MsgAlarmVo.java
  3. 8 2
      business-service/src/main/java/com/ozs/service/mapper/MsgWebPushMapper.java
  4. 6 0
      business-service/src/main/java/com/ozs/service/service/MsgWebPushService.java
  5. 3 5
      business-service/src/main/java/com/ozs/service/service/impl/BaseCameraManagementServiceImpl.java
  6. 61 5
      business-service/src/main/java/com/ozs/service/service/impl/MsgWebPushServiceImpl.java
  7. 61 2
      business-service/src/main/resources/mapper/service/MsgWebPushMapper.xml
  8. 5 0
      hazard-admin/Dockerfile
  9. 32 10
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
  10. 24 10
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  11. 29 6
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java
  12. 21 6
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysMenuController.java
  13. 35 6
      hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java
  14. 1 1
      hazard-admin/src/main/resources/application.yml
  15. 5 0
      hazard-sdk/Dockerfile
  16. 5 4
      hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java
  17. 3 0
      hazard-sdk/src/main/resources/application.yml

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

@@ -28,6 +28,8 @@ public class MsgAlarmResp implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    private long id;
+
     /**
      * 线路名称
      */

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

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -66,5 +67,7 @@ public class MsgAlarmVo extends PageVo implements Serializable {
      */
     private Integer isLock;
 
+    private List<String> userIds;
 
+    private Integer status;
 }

+ 8 - 2
business-service/src/main/java/com/ozs/service/mapper/MsgWebPushMapper.java

@@ -1,7 +1,9 @@
 package com.ozs.service.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgWebPush;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -13,7 +15,11 @@ import java.util.List;
  */
 @Mapper
 public interface MsgWebPushMapper extends BaseMapper<MsgWebPush> {
-    Integer webAlarmNum(@Param("userId") String userId);
+    Integer webAlarmNum(@Param("userIds") List<String> userIds);
 
-    List<MsgWebPush> webAlarm(@Param("userId") String userId);
+    List<MsgWebPush> webAlarm(@Param("userIds") List<String> userIds);
+
+    List<MsgAlarm> messageMore(MsgAlarmVo msgAlarmVo);
+
+    List<String> messageMoreByUserIds(List<String> userIds);
 }

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

@@ -1,9 +1,13 @@
 package com.ozs.service.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgAppPush;
 import com.ozs.service.entity.MsgWebPush;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -14,4 +18,6 @@ public interface MsgWebPushService extends IService<MsgWebPush> {
     int read(MsgWebPush msgWebPush);
 
     Map webAlarm(String userId);
+
+    IPage messageMore(String userId, MsgAlarmVo msgAlarmVo);
 }

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

@@ -58,7 +58,7 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
      * @return
      */
     @Override
-    public String importBaseAccountManagement(List<BaseCameraManagement> accountManageList, boolean updateSupport,String userId) {
+    public String importBaseAccountManagement(List<BaseCameraManagement> accountManageList, boolean updateSupport, String userId) {
         if (com.ozs.common.utils.StringUtils.isNull(accountManageList) || accountManageList.size() == 0) {
             throw new ServiceException("导入相机台账列表信息不能为空!");
         }
@@ -136,10 +136,8 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
         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));
-            }
+            String isLock = map.get("isLock").toString();
+            baseCameraManagementHomeVo.setIsLock(!StringUtils.isEmpty(map.get("isLock")) ? Integer.valueOf(isLock) : 1);
         }
         return allListVo;
     }

+ 61 - 5
business-service/src/main/java/com/ozs/service/service/impl/MsgWebPushServiceImpl.java

@@ -1,15 +1,29 @@
 package com.ozs.service.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.PageUtils;
+import com.ozs.common.utils.StringUtils;
+import com.ozs.service.entity.BaseCameraManagement;
+import com.ozs.service.entity.BaseRailwayManagement;
+import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgWebPush;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 import com.ozs.service.mapper.MsgWebPushMapper;
+import com.ozs.service.service.BaseCameraManagementService;
+import com.ozs.service.service.BaseRailwayManagementService;
+import com.ozs.service.service.MsgAlarmFrequencyService;
 import com.ozs.service.service.MsgWebPushService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author : sunhh
@@ -19,6 +33,10 @@ import java.util.Map;
 public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebPush> implements MsgWebPushService {
     @Autowired
     private MsgWebPushMapper msgWebPushMapper;
+    @Autowired
+    private BaseCameraManagementService baseCameraManagementService;
+    @Autowired
+    private BaseRailwayManagementService baseRailwayManagementService;
 
     @Override
     public int read(MsgWebPush msgWebPush) {
@@ -29,11 +47,49 @@ public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebP
 
     @Override
     public Map webAlarm(String userId) {
+        List<String> userIds = baseCameraManagementService.getUserIds(userId);
         Map<String, Object> webAlarmMap = new HashMap<>();
-        Integer webAlarmNum = msgWebPushMapper.webAlarmNum(userId);
-        List<MsgWebPush> webAlarm = msgWebPushMapper.webAlarm(userId);
+        Integer webAlarmNum = msgWebPushMapper.webAlarmNum(userIds);
+        List<MsgWebPush> webAlarm = msgWebPushMapper.webAlarm(userIds);
         webAlarmMap.put("webAlarmNum", webAlarmNum);
         webAlarmMap.put("webAlarm", webAlarm);
         return webAlarmMap;
     }
+
+    @Override
+    public IPage messageMore(String userId, MsgAlarmVo msgAlarmVo) {
+        List<String> userIds = baseCameraManagementService.getUserIds(userId);
+         msgAlarmVo.setUserIds(userIds);
+        List<MsgAlarm> webAlarm = msgWebPushMapper.messageMore(msgAlarmVo);
+        Page<MsgAlarm> page = PageUtils.getPages(msgAlarmVo.getPageNum().intValue(), msgAlarmVo.getPageSize().intValue(), webAlarm);
+        if(!ObjectUtils.isEmpty(page) && !ObjectUtils.isEmpty(page.getRecords())){
+            List<MsgAlarm> dto1 = page.getRecords().stream().map(o -> {
+                String[] split = o.getImageUrl().split(";");
+                ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
+                o.setImageUrls(objects);
+                LambdaQueryWrapper<BaseCameraManagement> cameraManagementLambdaQueryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
+                if (!ObjectUtils.isEmpty(o.getCameraCode())) {
+                    cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, o.getCameraCode());
+                }
+                BaseCameraManagement cameraManagement = baseCameraManagementService.getOne(cameraManagementLambdaQueryWrapper);
+                LambdaQueryWrapper<BaseRailwayManagement> queryWrapper = new LambdaQueryWrapper<BaseRailwayManagement>();
+                if (!ObjectUtils.isEmpty(cameraManagement.getRailwayCode())) {
+                    queryWrapper.eq(BaseRailwayManagement::getRailwayCode, cameraManagement.getRailwayCode());
+                }
+                BaseRailwayManagement baseRailwayManagement = baseRailwayManagementService.getOne(queryWrapper);
+
+                o.setRailwayName(baseRailwayManagement.getRailwayName());
+                String mils = AppendUtils.stringAppend(cameraManagement.getInstallMile());
+                o.setAlarmMiles(mils);
+                String end = AppendUtils.stringAppend(cameraManagement.getEndMile());
+                o.setEndMile(end);
+                String begin = AppendUtils.stringAppend(cameraManagement.getBeginMile());
+                o.setBeginMile(begin);
+                // o.setAlarmCount((int) msgAlarmFrequencyService.count()+1);
+                return o;
+            }).collect(Collectors.toList());
+            page.setRecords(dto1);
+        }
+        return page;
+    }
 }

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

@@ -3,10 +3,69 @@
 <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 count(*) from msg_web_push where status = 1 and receive_by in
+        <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
     </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 * from msg_web_push where status = 1 and receive_by in
+        <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="messageMoreByUserIds" parameterType="java.util.List" resultType="java.lang.String">
+        select alarm_id from msg_web_push where status = #{status} and receive_by in
+        <foreach item="item" collection="userIds" index="index" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="messageMore" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="com.ozs.service.entity.MsgAlarm">
+        select b.* from (
+            select alarm_id from msg_web_push
+            <where>
+                <if test="status != null  and status != ''">
+                    and status = #{status}
+                </if>
+                <if test="userIds != null and userIds != ''">
+                    and receive_by in
+                    <foreach item="item" collection="userIds" index="index" separator="," open="(" close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </where>
+        ) a left join (
+            select * from msg_alarm
+            <where>
+                <if test="alarmType != null and alarmType != ''">
+                    and alarm_type = #{alarmType}
+                </if>
+                <if test="beginAlarmTime != null and beginAlarmTime != ''">
+                    and alarm_time &gt;= #{beginAlarmTime}
+                </if>
+                <if test="endAlarmTime != null and endAlarmTime != ''">
+                    and alarm_time &lt;= #{endAlarmTime}
+                </if>
+                <if test="isLock != null and isLock != ''">
+                    and is_lock = #{isLock}
+                </if>
+            </where>
+        ) b on a.alarm_id = b.alarm_id left join (
+            select * from base_camera_management
+            <where>
+                <if test="railwayCode != null and railwayCode != ''">
+                    and railway_code = #{railwayCode}
+                </if>
+                <if test="beginMile != null and beginMile != ''">
+                    and begin_mile &gt;= #{beginMile}
+                </if>
+                <if test="endMile != null and endMile != ''">
+                    and end_mile &lt;= #{endMile}
+                </if>
+            </where>
+        ) c on b.camera_code = c.camera_code
     </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

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

@@ -60,12 +60,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
 import java.text.Collator;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -110,9 +105,12 @@ public class BaseCameraManagementController extends BaseController {
 
     @PostMapping(value = "/homeGetInfo")
     @ApiOperation("根据相机ID、是否解除 获取相机信息、未解除信息")
-    public AjaxResult homeGetInfo(@PathVariable Long id, @PathVariable Integer isLock, @PathVariable String cameraCode) {
+    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) {
+        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())) {
@@ -129,9 +127,33 @@ public class BaseCameraManagementController extends BaseController {
             String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
             baseCameraManagement.setBeginMiles(begin);
             return AjaxResult.success(baseCameraManagement);
-        } else if (!StringUtils.isEmpty(isLock) && isLock == 2) {
+        } else if (!StringUtils.isEmpty(isLock) && isLock == 2 && !StringUtils.isEmpty(cameraCode)) {
             MsgAlarm msgAlarm = msgAlarmService.selectByCameraCode(cameraCode);
-            return AjaxResult.success(msgAlarm);
+            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());
+            String[] split = msgAlarm.getImageUrl().split(";");
+            ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
+            msgAlarmResp.setImageUrls(objects);
+            return AjaxResult.success(msgAlarmResp);
         }
         return null;
     }

+ 24 - 10
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -47,6 +47,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -79,6 +80,17 @@ public class MsgAlarmController extends BaseController {
     @Autowired
     private ISysDictDataService dictDataService;
 
+    /**
+     * web更多消息
+     */
+    @PostMapping("/messageMore")
+    @ApiOperation("更多消息")
+    public AjaxResult messageMore(@RequestBody MsgAlarmVo msgAlarmVo) {
+        String userId = getUserId();
+        IPage messageMore = msgWebPushService.messageMore(userId, msgAlarmVo);
+        return AjaxResult.success(messageMore);
+    }
+
     /**
      * web报警未读消息个数+未读消息列表
      */
@@ -94,7 +106,7 @@ public class MsgAlarmController extends BaseController {
      * web消息已读
      */
     @PostMapping("/read")
-    @ApiOperation(value = "预报警信息分页")
+    @ApiOperation(value = "web消息已读")
     public AjaxResult read(@RequestBody MsgWebPush msgWebPush) {
         if (StringUtils.isEmpty(msgWebPush) || StringUtils.isEmpty(msgWebPush.getId())) {
             return AjaxResult.error("主键ID不能为空!");
@@ -111,7 +123,7 @@ public class MsgAlarmController extends BaseController {
     @ApiOperation(value = "报警信息分页")
     @PostMapping("/list")
     public AjaxResult selectMsgAlarm(@RequestBody MsgAlarmVo msgAlarmVo) {
-        List<BaseCameraManagement> baseCameraManagementList=new ArrayList<>();
+        List<BaseCameraManagement> baseCameraManagementList = new ArrayList<>();
         LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<BaseCameraManagement>();
         if (!ObjectUtils.isEmpty(msgAlarmVo.getRailwayCode())) {
             wrapper.eq(BaseCameraManagement::getRailwayCode, msgAlarmVo.getRailwayCode());
@@ -122,7 +134,7 @@ public class MsgAlarmController extends BaseController {
         if (!ObjectUtils.isEmpty(msgAlarmVo.getEndMile())) {
             wrapper.le(BaseCameraManagement::getEndMile, msgAlarmVo.getEndMile());
         }
-        if (!ObjectUtils.isEmpty(msgAlarmVo.getRailwayCode())||!ObjectUtils.isEmpty(msgAlarmVo.getBeginMile())||!ObjectUtils.isEmpty(msgAlarmVo.getEndMile())) {
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getRailwayCode()) || !ObjectUtils.isEmpty(msgAlarmVo.getBeginMile()) || !ObjectUtils.isEmpty(msgAlarmVo.getEndMile())) {
             baseCameraManagementList = baseCameraManagementService.list(wrapper);
         }
         List<String> userIds = baseCameraManagementService.getUserIds(getUserId());
@@ -133,14 +145,14 @@ public class MsgAlarmController extends BaseController {
         if (!ObjectUtils.isEmpty(msgAlarmVo.getLineDir())) {
             lw.eq(MsgAlarm::getLineDir, msgAlarmVo.getLineDir());
         }
-        if (baseCameraManagementList.size()>0) {
+        if (baseCameraManagementList.size() > 0) {
             List<String> collect = baseCameraManagementList.stream().map(BaseCameraManagement::getCameraCode).collect(Collectors.toList());
             lw.in(MsgAlarm::getCameraCode, collect);
         }
         if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmType())) {
             lw.eq(MsgAlarm::getAlarmType, msgAlarmVo.getAlarmType());
         }
-        if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile())&& msgAlarmVo.getAlarmMile() != 0) {
+        if (!ObjectUtils.isEmpty(msgAlarmVo.getAlarmMile()) && msgAlarmVo.getAlarmMile() != 0) {
             lw.eq(MsgAlarm::getAlarmMile, msgAlarmVo.getAlarmMile());
         }
         if (!ObjectUtils.isEmpty(msgAlarmVo.getBeginAlarmTime())) {
@@ -153,8 +165,11 @@ public class MsgAlarmController extends BaseController {
             lw.eq(MsgAlarm::getIsLock, msgAlarmVo.getIsLock());
         }
         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 -> {
+                String[] split = o.getImageUrl().split(";");
+                ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
+                o.setImageUrls(objects);
                 LambdaQueryWrapper<BaseCameraManagement> cameraManagementLambdaQueryWrapper = new LambdaQueryWrapper<BaseCameraManagement>();
                 if (!ObjectUtils.isEmpty(o.getCameraCode())) {
                     cameraManagementLambdaQueryWrapper.eq(BaseCameraManagement::getCameraCode, o.getCameraCode());
@@ -173,7 +188,7 @@ public class MsgAlarmController extends BaseController {
                 o.setEndMile(end);
                 String begin = AppendUtils.stringAppend(cameraManagement.getBeginMile());
                 o.setBeginMile(begin);
-                o.setAlarmCount((int) msgAlarmFrequencyService.count()+1);
+                o.setAlarmCount((int) msgAlarmFrequencyService.count() + 1);
                 return o;
             }).collect(Collectors.toList());
             page.setRecords(dto1);
@@ -201,15 +216,14 @@ public class MsgAlarmController extends BaseController {
         msgAlarmResp.setDeptId(baseCameraManagement.getDeptId());
         String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
         String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
-        String endMile=begin+"-"+end;
+        String endMile = begin + "-" + end;
         msgAlarmResp.setBeginMile(endMile);
         String mile = AppendUtils.stringAppend(baseCameraManagement.getInstallMile());
         msgAlarmResp.setAlarmMile(mile);
-        msgAlarmResp.setInstallLongitude(baseCameraManagement.getInstallLongitude()+","+baseCameraManagement.getInstallLatitude());
+        msgAlarmResp.setInstallLongitude(baseCameraManagement.getInstallLongitude() + "," + baseCameraManagement.getInstallLatitude());
         return AjaxResult.success(msgAlarmResp);
     }
 
-
     @PutMapping(value = "/{id}")
     @ApiOperation("根据报警信息ID解除报警")
     public AjaxResult updateIsLock(@PathVariable Long id) {

+ 29 - 6
hazard-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java

@@ -1,6 +1,10 @@
 package com.ozs.web.controller.system;
 
 import java.util.List;
+
+import com.ozs.common.core.domain.entity.SysRole;
+import com.ozs.common.utils.poi.ExcelUtil;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -22,6 +26,8 @@ import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.system.service.ISysDeptService;
 
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * 部门信息
  *
@@ -29,8 +35,7 @@ import com.ozs.system.service.ISysDeptService;
  */
 @RestController
 @RequestMapping("/system/dept")
-public class SysDeptController extends BaseController
-{
+public class SysDeptController extends BaseController {
     @Autowired
     private ISysDeptService deptService;
 
@@ -45,6 +50,16 @@ public class SysDeptController extends BaseController
         return success(depts);
     }
 
+    /**
+     * 获取部门树列表
+     */
+    @GetMapping("/deptTree")
+    @ApiOperation("获取部门树列表")
+    public AjaxResult deptTree(SysDept dept)
+    {
+        return success(deptService.selectDeptTreeList(dept));
+    }
+
     /**
      * 查询部门列表(排除节点)
      */
@@ -118,15 +133,23 @@ public class SysDeptController extends BaseController
     @DeleteMapping("/{deptId}")
     public AjaxResult remove(@PathVariable Long deptId)
     {
-        if (deptService.hasChildByDeptId(deptId))
-        {
+        if (deptService.hasChildByDeptId(deptId)) {
             return warn("存在下级部门,不允许删除");
         }
-        if (deptService.checkDeptExistUser(deptId))
-        {
+        if (deptService.checkDeptExistUser(deptId)) {
             return warn("部门存在用户,不允许删除");
         }
         deptService.checkDeptDataScope(deptId);
         return toAjax(deptService.deleteDeptById(deptId));
     }
+
+    @Log(title = "部门管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:role:export')")
+    @PostMapping("/export")
+    @ApiOperation("部门管理")
+    public void export(HttpServletResponse response, SysDept dept) {
+        List<SysDept> list = deptService.selectDeptList(dept);
+        ExcelUtil<SysDept> util = new ExcelUtil<SysDept>(SysDept.class);
+        util.exportExcel(response, list, "角色数据");
+    }
 }

+ 21 - 6
hazard-admin/src/main/java/com/ozs/web/controller/system/SysMenuController.java

@@ -1,6 +1,11 @@
 package com.ozs.web.controller.system;
 
 import java.util.List;
+
+import com.ozs.common.core.domain.entity.SysDept;
+import com.ozs.common.core.domain.model.LoginUser;
+import com.ozs.common.utils.poi.ExcelUtil;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -21,6 +26,8 @@ import com.ozs.common.enums.BusinessType;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.system.service.ISysMenuService;
 
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * 菜单信息
  *
@@ -28,8 +35,7 @@ import com.ozs.system.service.ISysMenuService;
  */
 @RestController
 @RequestMapping("/system/menu")
-public class SysMenuController extends BaseController
-{
+public class SysMenuController extends BaseController {
     @Autowired
     private ISysMenuService menuService;
 
@@ -129,14 +135,23 @@ public class SysMenuController extends BaseController
     @DeleteMapping("/{menuId}")
     public AjaxResult remove(@PathVariable("menuId") Long menuId)
     {
-        if (menuService.hasChildByMenuId(menuId))
-        {
+        if (menuService.hasChildByMenuId(menuId)) {
             return warn("存在子菜单,不允许删除");
         }
-        if (menuService.checkMenuExistRole(menuId))
-        {
+        if (menuService.checkMenuExistRole(menuId)) {
             return warn("菜单已分配,不允许删除");
         }
         return toAjax(menuService.deleteMenuById(menuId));
     }
+
+    @Log(title = "菜单管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:menu:export')")
+    @PostMapping("/export")
+    @ApiOperation("菜单管理")
+    public void export(HttpServletResponse response, SysMenu menu) {
+        LoginUser loginUser = getLoginUser();
+        List<SysMenu> list = menuService.selectMenuList(menu, loginUser.getId());
+        ExcelUtil<SysMenu> util = new ExcelUtil<SysMenu>(SysMenu.class);
+        util.exportExcel(response, list, "角色数据");
+    }
 }

+ 35 - 6
hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java

@@ -7,12 +7,12 @@ import com.ozs.common.utils.AppendUtils;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.service.entity.BaseCameraManagement;
 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.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 org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
@@ -42,6 +42,10 @@ public class WebSocketConteoller extends BaseController {
     private BaseCameraManagementService baseCameraManagementService;
     @Autowired
     private UserRegistrationidService userRegistrationidService;
+    @Autowired
+    private MsgWebPushService msgWebPushService;
+    @Autowired
+    private MsgAppPushService msgAppPushService;
 
     @ResponseBody
     @PostMapping("/publish")
@@ -54,6 +58,7 @@ public class WebSocketConteoller extends BaseController {
         // 获取推送人ID列表
         Set<String> set = baseUserService.getUserIdList(baseCameraManagement.getCreateBy(), baseCameraManagement.getDeptId());
         String[] list = set.toArray(new String[set.size()]);
+        List<String> userIdList = new ArrayList<>(set);
         MsgAlarmResp msgAlarmResp = new MsgAlarmResp();
         String begin = AppendUtils.stringAppend(baseCameraManagement.getBeginMile());
         String end = AppendUtils.stringAppend(baseCameraManagement.getEndMile());
@@ -67,11 +72,15 @@ public class WebSocketConteoller extends BaseController {
         msgAlarmResp.setRailwayName(cameraName != null ? cameraName : "");
         msgAlarmResp.setLineDirStr(baseCameraManagement.getLineDir() == 1 ? "上行" : "下行");
         msgAlarmResp.setAlarmTime(msgAlarm.getAlarmTime() != null ? msgAlarm.getAlarmTime() : new Date());
+        // 图片
+        if (!StringUtils.isEmpty(msgAlarm.getImageUrl())) {
+            String[] split = msgAlarm.getImageUrl().split(";");
+            ArrayList<String> objects = new ArrayList<>(Arrays.asList(split));
+            msgAlarmResp.setImageUrls(objects);
+        }
         // 推送消息reqMsgAlarmVo
         webSocketServer.sendMoreMessage(list, objStr(msgAlarmResp));
-
         // app 消息推送
-        List<String> userIdList = new ArrayList<>(set);
         List<String> alias = userRegistrationidService.selectRegistrationID(userIdList);
         // List<String> alias = new ArrayList<String>();
         // alias.add("sunhh");
@@ -83,6 +92,26 @@ public class WebSocketConteoller extends BaseController {
                 "报警通知!", cameraName != null ? cameraName : "",
                 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<>();
         map.put("code", 200);
         return map;

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

@@ -18,7 +18,7 @@ base:
   # 摄像头配置
   ffmpegPath: /usr/local/ffmpeg/bin/ffmpeg
   filePath: /opt/streams/
-  historyUrl: http://127.0.0.1:9080
+  historyUrl: http://124.70.58.209:9080
   webUrl: http://124.70.58.209:9080
 
 # 开发环境配置

+ 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

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

@@ -249,9 +249,10 @@ public class GeoHazardMonitorTokenController {
     }
 
     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 - 0
hazard-sdk/src/main/resources/application.yml

@@ -152,3 +152,6 @@ minio:
   bucketName: picbucket #存储桶名称
   accessKey: admin #访问的key
   secretKey: admin123 #访问的秘钥
+
+sdk:
+  publish: http://http://124.70.58.209/:18819/hazard/sdk/publish