瀏覽代碼

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

wyyay 2 年之前
父節點
當前提交
d9bfd23d9e
共有 27 個文件被更改,包括 540 次插入211 次删除
  1. 12 12
      .idea/jarRepositories.xml
  2. 1 0
      business-service/src/main/java/com/ozs/service/entity/MsgAlarm.java
  3. 3 0
      business-service/src/main/java/com/ozs/service/mapper/BaseCameraManagementMapper.java
  4. 1 1
      business-service/src/main/java/com/ozs/service/mapper/BaseDeviceDynamicManagementMapper.java
  5. 8 0
      business-service/src/main/java/com/ozs/service/mapper/MsgAlarmMapper.java
  6. 2 6
      business-service/src/main/java/com/ozs/service/mapper/MsgWebPushMapper.java
  7. 2 2
      business-service/src/main/java/com/ozs/service/service/BaseCameraManagementService.java
  8. 1 1
      business-service/src/main/java/com/ozs/service/service/BaseDeviceDynamicManagementService.java
  9. 5 0
      business-service/src/main/java/com/ozs/service/service/MsgAlarmService.java
  10. 3 3
      business-service/src/main/java/com/ozs/service/service/MsgWebPushService.java
  11. 10 9
      business-service/src/main/java/com/ozs/service/service/impl/BaseCameraManagementServiceImpl.java
  12. 4 2
      business-service/src/main/java/com/ozs/service/service/impl/BaseDeviceDynamicManagementServiceImpl.java
  13. 30 12
      business-service/src/main/java/com/ozs/service/service/impl/MsgAlarmServiceImpl.java
  14. 6 16
      business-service/src/main/java/com/ozs/service/service/impl/MsgWebPushServiceImpl.java
  15. 23 0
      business-service/src/main/resources/mapper/service/BaseCameraManagementMapper.xml
  16. 6 3
      business-service/src/main/resources/mapper/service/BaseDeviceDynamicManagementMapper.xml
  17. 80 2
      business-service/src/main/resources/mapper/service/MsgAlarmMapper.xml
  18. 92 103
      business-service/src/main/resources/mapper/service/MsgWebPushMapper.xml
  19. 64 6
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java
  20. 2 0
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseRailwayManagementController.java
  21. 38 6
      hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java
  22. 7 19
      hazard-admin/src/main/java/com/ozs/web/controller/home/HomeController.java
  23. 22 2
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java
  24. 12 2
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysRoleController.java
  25. 8 1
      hazard-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java
  26. 95 0
      hazard-admin/src/main/java/com/ozs/web/controller/websocket/JPushUtil.java
  27. 3 3
      hazard-admin/src/main/java/com/ozs/web/controller/websocket/WebSocketConteoller.java

+ 12 - 12
.idea/jarRepositories.xml

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

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

@@ -174,5 +174,6 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 解除人真实姓名
      */
+    @TableField(exist = false)
     private String releasedByName;
 }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.vo.BaseCameraManagementVo;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -20,4 +21,6 @@ import java.util.List;
 public interface BaseCameraManagementMapper extends BaseMapper<BaseCameraManagement> {
 
     List<BaseCameraManagement> selectCameraManagementList(BaseCameraManagementVo baseCameraManagementVo);
+
+    Integer countCamera(MsgAlarmVo msgAlarmVo);
 }

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

@@ -19,5 +19,5 @@ import java.util.List;
 @Mapper
 public interface BaseDeviceDynamicManagementMapper extends BaseMapper<BaseDeviceDynamicManagement> {
 
-    List<BaseCameraManagementDto> list(@Param("name") String name);
+    List<BaseCameraManagementDto> list(@Param("name") String name, @Param("lineDir") Integer lineDir, @Param("beginMile") Integer beginMile);
 }

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

@@ -42,4 +42,12 @@ public interface MsgAlarmMapper extends BaseMapper<MsgAlarm> {
 
 
     List<MsgAlarm> selectMsgAlarmList(MsgAlarmVo msgAlarmVo);
+
+    MsgAlarm getByAlarmId(@Param("alarmId") String alarmId);
+
+    Integer countMsg(MsgAlarmVo msgAlarmVo);
+
+    Integer countJC(MsgAlarmVo msgAlarmVo);
+
+    Integer countWJC(MsgAlarmVo msgAlarmVo);
 }

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

@@ -16,15 +16,11 @@ import java.util.Map;
  */
 @Mapper
 public interface MsgWebPushMapper extends BaseMapper<MsgWebPush> {
-    Integer webAlarmNum(@Param("userIds") List<String> userIds);
+    Integer webAlarmNum(MsgAlarmVo msgAlarmParameter);
 
-    List<MsgAlarm> webAlarm(@Param("userIds") List<String> userIds);
+    List<MsgAlarm> webAlarm(MsgAlarmVo msgAlarmParameter);
 
     List<MsgAlarm> messageMore(MsgAlarmVo msgAlarmVo);
 
-    List<String> messageMoreByUserIds(List<String> userIds);
-
     Map<String, Integer> messageMoreNum(MsgAlarmVo msgAlarmVo);
-
-    int messageMoreCount(MsgAlarmVo msgAlarmVo);
 }

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

@@ -28,9 +28,9 @@ public interface BaseCameraManagementService extends IService<BaseCameraManageme
      */
     String importBaseAccountManagement(List<BaseCameraManagementVos> accountManageList, boolean updateSupport, String userId);
 
-    List<BaseCameraManagementHomeVo> selectCameraAll(String userId);
+    List<BaseCameraManagementHomeVo> selectCameraAll(BaseCameraManagementVo baseCameraManagementVo);
     
-    List<String> getUserIds(String userId);
+//    List<String> getUserIds(String userId);
 
     List<String> getUserIdList(String userId);
 

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

@@ -14,5 +14,5 @@ import com.ozs.service.entity.CameraTree;
  */
 public interface BaseDeviceDynamicManagementService extends IService<BaseDeviceDynamicManagement> {
 
-    CameraTree cameraTree(String name);
+    CameraTree cameraTree(String name, Integer lineDir, Integer mils);
 }

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

@@ -11,6 +11,7 @@ import com.ozs.service.entity.vo.MsgAlarmVo;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -41,4 +42,8 @@ public interface MsgAlarmService extends IService<MsgAlarm> {
     MsgAlarm selectByCameraCode(String cameraCode);
 
     IPage<MsgAlarm> queryPage(MsgAlarmVo msgAlarmVo);
+
+    MsgAlarm getByAlarmId(String alarmId);
+
+    Map<String, Integer> statisticsNum(MsgAlarmVo msgAlarmVo);
 }

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

@@ -17,9 +17,9 @@ import java.util.Map;
 public interface MsgWebPushService extends IService<MsgWebPush> {
     int read(MsgWebPush msgWebPush);
 
-    Map webAlarm(String userId);
+    Map webAlarm(MsgAlarmVo msgAlarm);
 
-    IPage<MsgAlarm> messageMore(String userId, MsgAlarmVo msgAlarmVo);
+    IPage<MsgAlarm> messageMore(MsgAlarmVo msgAlarmVo);
 
-    Map<String, Integer> messageMoreNum(String userId, MsgAlarmVo msgAlarmVo);
+    Map<String, Integer> messageMoreNum(MsgAlarmVo msgAlarmVo);
 }

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

@@ -181,13 +181,14 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
      * @return
      */
     @Override
-    public List<BaseCameraManagementHomeVo> selectCameraAll(String userId) {
-        List<String> userIdList = getUserIds(userId);
-        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
-        if (!StringUtils.isEmpty(userIdList)) {
-            lw.in(BaseCameraManagement::getCreateBy, userIdList);
-        }
-        List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementMapper.selectList(lw);
+    public List<BaseCameraManagementHomeVo> selectCameraAll(BaseCameraManagementVo baseCameraManagementVo) {
+//        List<String> userIdList = getUserIds(userId);
+//        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
+//        if (!StringUtils.isEmpty(userIdList)) {
+//            lw.in(BaseCameraManagement::getCreateBy, userIdList);
+//        }
+//        List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementMapper.selectList(lw);
+        List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementMapper.selectCameraManagementList(baseCameraManagementVo);
         List<BaseCameraManagementHomeVo> allListVo = BeanUtils.entityListToVOList(baseCameraManagementList, BaseCameraManagementHomeVo.class);
         for (BaseCameraManagementHomeVo baseCameraManagementHomeVo : allListVo) {
             Map map = msgAlarmMapper.selectCameraCode(baseCameraManagementHomeVo.getCameraCode());
@@ -206,7 +207,7 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
      * @param userId
      * @return
      */
-    public List<String> getUserIds(String userId) {
+   /* public List<String> getUserIds(String userId) {
         BaseUser baseUser = baseUserService.getUser(userId);
         if (StringUtils.isNull(baseUser) || StringUtils.isNull(baseUser.getDataPermission())
                 || StringUtils.isNull(baseUser.getDeptId())) {
@@ -241,7 +242,7 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
         }
         List<String> list = new ArrayList<>(set);
         return list;
-    }
+    }*/
 
 
     /**

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

@@ -31,7 +31,9 @@ public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl<BaseDevi
     BaseDeviceDynamicManagementMapper baseDeviceDynamicManagementMapper;
 
     @Override
-    public CameraTree cameraTree(String name) {
+    public CameraTree cameraTree(String name, Integer lineDir, Integer beginMile) {
+
+
         //1 父
         CameraTree cameraTree = CameraTree.builder()
                 .name("相机树")
@@ -40,7 +42,7 @@ public class BaseDeviceDynamicManagementServiceImpl extends ServiceImpl<BaseDevi
                 .children(new ArrayList<>())
                 .build();
         Map<String, CameraTree> map = new HashMap<>();
-        List<BaseCameraManagementDto> list = baseDeviceDynamicManagementMapper.list(name);
+        List<BaseCameraManagementDto> list = baseDeviceDynamicManagementMapper.list(name, lineDir, beginMile);
         if (list.size() > 0) {
             for (BaseCameraManagementDto o : list) {
                 // 线路

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

@@ -1,5 +1,6 @@
 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.github.pagehelper.PageHelper;
@@ -9,22 +10,13 @@ import com.ozs.service.entity.vo.AlarmStatisticMonthDto;
 import com.ozs.service.entity.vo.AlarmStatisticResVo;
 import com.ozs.service.entity.vo.AlarmStatisticVo;
 import com.ozs.service.entity.vo.MsgAlarmVo;
-import com.ozs.service.mapper.BaseDictDataMapper;
+import com.ozs.service.mapper.BaseCameraManagementMapper;
 import com.ozs.service.mapper.MsgAlarmMapper;
 import com.ozs.service.service.MsgAlarmService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.hssf.usermodel.*;
-import org.apache.poi.ss.usermodel.*;
-import org.springframework.beans.BeanUtils;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import javax.servlet.http.HttpServletResponse;
-import java.io.OutputStream;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -38,9 +30,9 @@ import java.util.*;
 @Service
 public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> implements MsgAlarmService {
     @Autowired
-    MsgAlarmMapper msgAlarmMapper;
+    private MsgAlarmMapper msgAlarmMapper;
     @Autowired
-    BaseDictDataMapper baseDictDataMapper;
+    private BaseCameraManagementMapper baseCameraManagementMapper;
 
     public static IPage listToPage(List list, int pageNum, int pageSize) {
         List pageList = new ArrayList<>();
@@ -100,4 +92,30 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
         return pageR;
     }
 
+    @Override
+    public MsgAlarm getByAlarmId(String alarmId) {
+        return msgAlarmMapper.getByAlarmId(alarmId);
+    }
+
+    @Override
+    public Map<String, Integer> statisticsNum(MsgAlarmVo msgAlarmVo) {
+        Map<String, Integer> map = new HashMap<>();
+        // 相机数量
+        Integer countCamera = baseCameraManagementMapper.countCamera(msgAlarmVo);
+        // 累计报警次数
+        Integer countMsg = msgAlarmMapper.countMsg(msgAlarmVo);
+        // 解除报警
+//        LambdaQueryWrapper<MsgAlarm> lwJC = new LambdaQueryWrapper<MsgAlarm>();
+//        lwJC.eq(MsgAlarm::getIsLock, "1");
+        Integer countJC = msgAlarmMapper.countJC(msgAlarmVo);
+        // 未解除报警
+//        LambdaQueryWrapper<MsgAlarm> lwWJC = new LambdaQueryWrapper<MsgAlarm>();
+//        lwWJC.eq(MsgAlarm::getIsLock, "2");
+        Integer countWJC = msgAlarmMapper.countWJC(msgAlarmVo);
+        map.put("countCamera", countCamera);
+        map.put("countMsg", countMsg);
+        map.put("countJC", countJC);
+        map.put("countWJC", countWJC);
+        return map;
+    }
 }

+ 6 - 16
business-service/src/main/java/com/ozs/service/service/impl/MsgWebPushServiceImpl.java

@@ -47,17 +47,12 @@ public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebP
     }
 
     @Override
-    public Map webAlarm(String userId) {
-        List<String> userIds = baseCameraManagementService.getUserIds(userId);
+    public Map webAlarm(MsgAlarmVo msgAlarmParameter) {
+        // List<String> userIds = baseCameraManagementService.getUserIds(userId);
         Map<String, Object> webAlarmMap = new HashMap<>();
         List<MsgAlarmResp> msgAlarmRespList = new ArrayList<>();
-        if (StringUtils.isEmpty(userIds)) {
-            webAlarmMap.put("webAlarmNum", 0);
-            webAlarmMap.put("webAlarm", msgAlarmRespList);
-            return webAlarmMap;
-        }
-        Integer webAlarmNum = msgWebPushMapper.webAlarmNum(userIds);
-        List<MsgAlarm> webAlarm = msgWebPushMapper.webAlarm(userIds);
+        Integer webAlarmNum = msgWebPushMapper.webAlarmNum(msgAlarmParameter);
+        List<MsgAlarm> webAlarm = msgWebPushMapper.webAlarm(msgAlarmParameter);
         if (!StringUtils.isEmpty(webAlarm) && webAlarm.size() > 0) {
             for (MsgAlarm msgAlarm : webAlarm) {
                 LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
@@ -90,10 +85,7 @@ public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebP
     }
 
     @Override
-    public IPage<MsgAlarm> messageMore(String userId, MsgAlarmVo msgAlarmVo) {
-        List<String> userIds = baseCameraManagementService.getUserIds(userId);
-        msgAlarmVo.setUserIds(userIds);
-        // List<MsgAlarm> webAlarm = msgWebPushMapper.messageMore(msgAlarmVo);
+    public IPage<MsgAlarm> messageMore(MsgAlarmVo msgAlarmVo) {
         Page<MsgAlarm> page = PageHelper.startPage(msgAlarmVo.getPageNum().intValue(), msgAlarmVo.getPageSize().intValue())
                 .doSelectPage(() -> msgWebPushMapper.messageMore(msgAlarmVo));
         com.baomidou.mybatisplus.extension.plugins.pagination.Page<MsgAlarm> pageR =
@@ -133,9 +125,7 @@ public class MsgWebPushServiceImpl extends ServiceImpl<MsgWebPushMapper, MsgWebP
     }
 
     @Override
-    public Map<String, Integer> messageMoreNum(String userId, MsgAlarmVo msgAlarmVo) {
-        List<String> userIds = baseCameraManagementService.getUserIds(userId);
-        msgAlarmVo.setUserIds(userIds);
+    public Map<String, Integer> messageMoreNum(MsgAlarmVo msgAlarmVo) {
         Map<String, Integer> map = msgWebPushMapper.messageMoreNum(msgAlarmVo);
         return map;
     }

+ 23 - 0
business-service/src/main/resources/mapper/service/BaseCameraManagementMapper.xml

@@ -57,4 +57,27 @@
             </if>
         </where>
     </select>
+
+    <select id="countCamera" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
+        select count(id) from base_camera_management
+        <where>
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or create_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 6 - 3
business-service/src/main/resources/mapper/service/BaseDeviceDynamicManagementMapper.xml

@@ -14,13 +14,16 @@
 		    base_camera_management AS a inner join
 		    base_railway_management AS l  on  a.railway_code=l.railway_code
 		<where>
-
 			<if test="name != null and name !=''">
 				concat(l.railway_name,a.camera_code)
 				like concat("%",#{name},"%")
 			</if>
-			
+			<if test="lineDir != null and lineDir != ''">
+				line_dir = #{lineDir}
+			</if>
+			<if test="beginMile != null and beginMile != ''">
+				concat(a.install_mile, a.begin_mile, a.end_mile) = #{beginMile}
+			</if>
 		</where>
-			
     </select>
 </mapper>

+ 80 - 2
business-service/src/main/resources/mapper/service/MsgAlarmMapper.xml

@@ -210,10 +210,10 @@
                 and
                 <trim prefix="(" prefixOverrides="or" suffix=")">
                 <if test="dsUserId != null and dsUserId != ''">
-                    or  a.create_by=#{dsUserId}  
+                    or  a.create_by=#{dsUserId}
                 </if>
                 <if test="dsDeptId != null and dsDeptId != 0">
-                    or b.dept_id=#{dsDeptId} 
+                    or b.dept_id=#{dsDeptId}
                 </if>
                 <if test="dsDeptIds != null">
                     or b.dept_id in
@@ -232,6 +232,9 @@
             <if test="isLock != null and isLock != 0">
                 and a.is_lock=#{isLock}
             </if>
+            <if test="lineDir != null and lineDir != 0">
+                and a.line_dir =#{lineDir}
+            </if>
             <if test="beginAlarmTime != null and beginAlarmTime != ''">
                 and date_format(a.alarm_time,'%Y-%m-%d %H:%i:%S') &gt;= date_format(#{beginAlarmTime},'%Y-%m-%d %H:%i:%S')
             </if>
@@ -240,4 +243,79 @@
             </if>
         </where>
     </select>
+
+    <select id="getByAlarmId" resultType="com.ozs.service.entity.MsgAlarm" parameterType="java.lang.String">
+        select * from msg_alarm where alarm_id = #{alarmId}
+    </select>
+
+    <select id="countMsg" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
+        select count(1) from msg_alarm AS a  join base_camera_management AS b on a.camera_code = b.camera_code
+        <where>
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.create_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or b.dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or b.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
+            </if>
+        </where>
+    </select>
+
+    <select id="countJC" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
+        select count(1) from msg_alarm AS a  join base_camera_management AS b on a.camera_code=b.camera_code
+        <where>
+            is_lock = 1
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.create_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or b.dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or b.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
+            </if>
+        </where>
+    </select>
+
+    <select id="countWJC" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
+        select count(1) from msg_alarm AS a  join base_camera_management AS b on a.camera_code=b.camera_code
+        <where>
+            is_lock = 2
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.create_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or b.dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or b.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
+            </if>
+        </where>
+    </select>
 </mapper>

+ 92 - 103
business-service/src/main/resources/mapper/service/MsgWebPushMapper.xml

@@ -2,138 +2,127 @@
 <!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
-        <if test="userIds != null and userIds != ''">
-            and receive_by in
-            <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
-                #{item}
-            </foreach>
-        </if>
-    </select>
-
-    <select id="webAlarm" parameterType="java.lang.String" resultType="com.ozs.service.entity.MsgAlarm">
-        select b.* from (
-            select alarm_id from msg_web_push where status = 1
-                <if test="userIds != null and userIds != ''">
-                    and receive_by in
-                    <foreach item="item" collection="userIds" separator="," open="(" close=")" index="">
-                        #{item}
-                    </foreach>
-                </if>
-        ) a left join (
-            select * from msg_alarm
-        ) b on a.alarm_id = b.alarm_id
-    </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
+    <select id="webAlarmNum" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
+        select count(1)
+        from msg_web_push AS a
+        join msg_alarm AS b on a.alarm_id = b.alarm_id
+        join base_camera_management AS c on b.camera_code = c.camera_code
         <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>
+            status = 1
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.receive_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or c.dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or c.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
             </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
+    </select>
+
+    <select id="webAlarm" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="com.ozs.service.entity.MsgAlarm">
+        select b.*
+        from msg_web_push AS a
+        join msg_alarm AS b on a.alarm_id = b.alarm_id
+        join base_camera_management AS c on b.camera_code = c.camera_code
         <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}
+            status = 1
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.receive_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or c.dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or c.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
             </if>
         </where>
-        ) c on b.camera_code = c.camera_code
     </select>
 
-    <select id="messageMoreCount" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.lang.Integer">
-        select count(b.*) from (
-        select alarm_id from msg_web_push
+    <select id="messageMore" parameterType="com.ozs.service.entity.vo.MsgAlarmVo"
+            resultType="com.ozs.service.entity.MsgAlarm">
+        select b.*
+        from msg_web_push AS a
+        join msg_alarm AS b on a.alarm_id = b.alarm_id
+        join base_camera_management AS c on b.camera_code = c.camera_code
         <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 test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.receive_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or c.dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or c.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
             </if>
-        </where>
-        ) a left join (
-        select * from msg_alarm
-        <where>
             <if test="alarmType != null and alarmType != ''">
-                and alarm_type = #{alarmType}
+                and b.alarm_type = #{alarmType}
             </if>
             <if test="beginAlarmTime != null and beginAlarmTime != ''">
-                and alarm_time &gt;= #{beginAlarmTime}
+                and b.alarm_time &gt;= #{beginAlarmTime}
             </if>
             <if test="endAlarmTime != null and endAlarmTime != ''">
-                and alarm_time &lt;= #{endAlarmTime}
+                and b.alarm_time &lt;= #{endAlarmTime}
             </if>
             <if test="isLock != null and isLock != ''">
-                and is_lock = #{isLock}
+                and b.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}
+                and c.railway_code = #{railwayCode}
             </if>
             <if test="beginMile != null and beginMile != ''">
-                and begin_mile &gt;= #{beginMile}
+                and c.begin_mile &gt;= #{beginMile}
             </if>
             <if test="endMile != null and endMile != ''">
-                and end_mile &lt;= #{endMile}
+                and c.end_mile &lt;= #{endMile}
             </if>
         </where>
-        ) c on b.camera_code = c.camera_code
     </select>
 
     <select id="messageMoreNum" parameterType="com.ozs.service.entity.vo.MsgAlarmVo" resultType="java.util.Map">
-        select count(id) count, SUM(CASE status WHEN '1' THEN 1 ELSE 0 end) AS 'noCount' from msg_web_push
+        select count(1) count, SUM(CASE a.status WHEN '1' THEN 1 ELSE 0 end) AS 'noCount' from msg_web_push AS a join msg_alarm AS b on a.alarm_id = b.alarm_id join base_camera_management AS c on b.camera_code = c.camera_code
         <where>
-            <if test="userIds != null and userIds != ''">
-                and receive_by in
-                <foreach item="item" collection="userIds" index="index" separator="," open="(" close=")">
-                    #{item}
-                </foreach>
+            <if test="!dsFlay">
+                and
+                <trim prefix="(" prefixOverrides="or" suffix=")">
+                    <if test="dsUserId != null and dsUserId != ''">
+                        or a.receive_by = #{dsUserId}
+                    </if>
+                    <if test="dsDeptId != null and dsDeptId != 0">
+                        or c.dept_id = #{dsDeptId}
+                    </if>
+                    <if test="dsDeptIds != null">
+                        or c.dept_id in
+                        <foreach item="item" collection="dsDeptIds" separator="," open="(" close=")" index="">
+                            #{item}
+                        </foreach>
+                    </if>
+                </trim>
             </if>
         </where>
     </select>

+ 64 - 6
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -78,6 +78,7 @@ import java.util.stream.Collectors;
 @RequestMapping("/service/baseCameraManagement")
 @Slf4j
 public class BaseCameraManagementController extends BaseController {
+    public static final String PATTERN = "^K([0-9]+)\\+([0-9]+)$";
     @Resource
     BaseCameraManagementService baseCameraManagementService;
     @Resource
@@ -103,8 +104,8 @@ public class BaseCameraManagementController extends BaseController {
     @ApiOperation(value = "相机台账管理")
     @GetMapping("/selectCameraAll")
     public AjaxResult selectCameraAll() {
-        String userId = getUserId();
-        List<BaseCameraManagementHomeVo> baseCameraManagements = baseCameraManagementService.selectCameraAll(userId);
+        BaseCameraManagementVo baseCameraManagementVo = (BaseCameraManagementVo) dataScoreUtil.setDataScore(getUserId(), new BaseCameraManagementVo());
+        List<BaseCameraManagementHomeVo> baseCameraManagements = baseCameraManagementService.selectCameraAll(baseCameraManagementVo);
         return AjaxResult.success(baseCameraManagements);
     }
 
@@ -243,7 +244,29 @@ public class BaseCameraManagementController extends BaseController {
         }
         BaseCameraManagement cameraManagement = baseCameraManagementService.getOne(lw);
         if (!ObjectUtils.isEmpty(cameraManagement)) {
-            return error("相机编码已存在,不能重复添加");
+            idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
+            return error("相机台账管理信息相机编码已存在,不能重复添加");
+        }
+        LambdaQueryWrapper<BaseDeviceDynamicManagement> queryWrapper = new LambdaQueryWrapper<BaseDeviceDynamicManagement>();
+        if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
+            queryWrapper.eq(BaseDeviceDynamicManagement::getCameraCode, baseCameraManagement.getCameraCode());
+        }
+        BaseDeviceDynamicManagement one = baseDeviceDynamicManagementService.getOne(queryWrapper);
+        if (!ObjectUtils.isEmpty(one)) {
+            idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
+            return error("设备动态管理表该相机编码已存在,不能重复添加");
+        }
+        if (!baseCameraManagement.getBeginMiles().matches(PATTERN)) {
+            idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
+            return error("监控范围开始里程位置填写格式不正确");
+        }
+        if (!baseCameraManagement.getInstallMiles().matches(PATTERN)) {
+            idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
+            return error("监控相机安装里程位置填写格式不正确");
+        }
+        if (!baseCameraManagement.getEndMiles().matches(PATTERN)) {
+            idempotenceUtils.deleteIdempotence(baseCameraManagement.getCameraCode());
+            return error("监控范围结束里程位置填写格式不正确");
         }
         int miles = AppendUtils.stringSplit(baseCameraManagement.getBeginMiles());
         baseCameraManagement.setBeginMile(miles);
@@ -289,6 +312,15 @@ public class BaseCameraManagementController extends BaseController {
         if (!ObjectUtils.isEmpty(cameraManagement) && !cameraManagement.getId().equals(baseCameraManagement.getId())) {
             return error("相机编码已存在,不能进行修改操作");
         }
+        if (!baseCameraManagement.getBeginMiles().matches(PATTERN)) {
+            return error("监控范围开始里程位置填写格式不正确");
+        }
+        if (!baseCameraManagement.getInstallMiles().matches(PATTERN)) {
+            return error("监控相机安装里程位置填写格式不正确");
+        }
+        if (!baseCameraManagement.getEndMiles().matches(PATTERN)) {
+            return error("监控范围结束里程位置填写格式不正确");
+        }
         int miles = AppendUtils.stringSplit(baseCameraManagement.getBeginMiles());
         baseCameraManagement.setBeginMile(miles);
         int install = AppendUtils.stringSplit(baseCameraManagement.getInstallMiles());
@@ -301,6 +333,9 @@ public class BaseCameraManagementController extends BaseController {
             queryWrapper.eq(BaseDeviceDynamicManagement::getCameraCode, baseCameraManagement.getCameraCode());
         }
         BaseDeviceDynamicManagement one = baseDeviceDynamicManagementService.getOne(queryWrapper);
+        if (ObjectUtils.isEmpty(one)) {
+            return error("设备动态管理表没有该相机编码");
+        }
         one.setCameraCode(baseCameraManagement.getCameraCode());
         if (baseCameraManagementService.updateById(baseCameraManagement) && baseDeviceDynamicManagementService.updateById(one)) {
             return AjaxResult.success();
@@ -353,12 +388,21 @@ public class BaseCameraManagementController extends BaseController {
         if (ObjectUtils.isEmpty(baseRailwayManagement)) {
             return error("设备动态管理表中没有该相机编码:" + baseCameraManagement.getCameraCode() + "的数据");
         }
+        LambdaQueryWrapper<MsgAlarm> wrapper1 = new LambdaQueryWrapper<MsgAlarm>();
+        if (!ObjectUtils.isEmpty(baseCameraManagement.getCameraCode())) {
+            wrapper1.eq(MsgAlarm::getCameraCode, baseCameraManagement.getCameraCode());
+        }
+        MsgAlarm msgAlarm = msgAlarmService.getOne(wrapper1);
+        if (ObjectUtils.isEmpty(msgAlarm)) {
+            return error("报警信息表中没有该相机编码:" + baseCameraManagement.getCameraCode() + "的数据");
+        }
         List<Object> list = new ArrayList<>();
         list.add(baseRailwayManagement.getRailwayName());
         list.add(AppendUtils.stringAppend(baseCameraManagement.getInstallMile()));
         list.add(baseCameraManagement.getLineDir());
         list.add(baseCameraManagement.getCameraCode());
         list.add(baseDeviceDynamicManagement.getElectricity());
+        list.add(msgAlarm.getIsLock());
         SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String format1 = dateFormat1.format(new Date());
         list.add(format1);
@@ -525,14 +569,28 @@ public class BaseCameraManagementController extends BaseController {
     @ApiOperation("视频服务设备数量")
     @GetMapping("/totalNumberOfDevices")
     public AjaxResult totalNumberOfDevices() {
-        long count = baseDeviceDynamicManagementService.count();
+        long count = baseCameraManagementService.count();
         return success(count);
     }
 
+    /**
+     * 视频服务树形结构
+     *
+     * @param name      线路
+     * @param lineDir   行别
+     * @param mils 里程位置
+     * @return
+     */
     @ApiOperation("视频服务树形结构")
     @GetMapping("/cameraTree")
-    public AjaxResult cameraTree(@RequestParam(value = "name", required = false) String name) {
-        CameraTree cameraTree = baseDeviceDynamicManagementService.cameraTree(name);
+    public AjaxResult cameraTree(@RequestParam(value = "name", required = false) String name,
+                                 @RequestParam(value = "lineDir", required = false) Integer lineDir,
+                                 @RequestParam(value = "beginMile", required = false) String mils) {
+        if (!mils.matches(PATTERN)) {
+            return error("里程位置填写格式不正确!");
+        }
+        Integer milsInt = AppendUtils.stringSplit(mils);
+        CameraTree cameraTree = baseDeviceDynamicManagementService.cameraTree(name, lineDir, milsInt);
         List<CameraTree> children = cameraTree.getChildren();
         children.sort(new Comparator<CameraTree>() {
             @Override

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

@@ -141,6 +141,7 @@ public class BaseRailwayManagementController extends BaseController {
             lw.eq(BaseRailwayManagement::getRailwayCode, baseRailwayManagement.getRailwayCode());
             BaseRailwayManagement railwayManagement = baseRailwayManagementService.getOne(lw);
             if (!ObjectUtils.isEmpty(railwayManagement)) {
+                idempotenceUtils.deleteIdempotence(baseRailwayManagement.getRailwayCode());
                 return error("线路编码已存在,不能重复添加");
             }
         }
@@ -148,6 +149,7 @@ public class BaseRailwayManagementController extends BaseController {
             lw.eq(BaseRailwayManagement::getRailwayName, baseRailwayManagement.getRailwayName());
             BaseRailwayManagement railwayManagement = baseRailwayManagementService.getOne(lw);
             if (!ObjectUtils.isEmpty(railwayManagement)) {
+                idempotenceUtils.deleteIdempotence(baseRailwayManagement.getRailwayCode());
                 return error("线路名称已存在,不能重复添加");
             }
         }

+ 38 - 6
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -90,8 +90,8 @@ public class MsgAlarmController extends BaseController {
     @PostMapping("/messageMoreNum")
     @ApiOperation("更多消息--总数,已读数")
     public AjaxResult messageMoreNum(@RequestBody MsgAlarmVo msgAlarmVo) {
-        String userId = getUserId();
-        Map<String, Integer> messageMore = msgWebPushService.messageMoreNum(userId, msgAlarmVo);
+        MsgAlarmVo msgAlarmVo1 = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
+        Map<String, Integer> messageMore = msgWebPushService.messageMoreNum(msgAlarmVo1);
         return AjaxResult.success(messageMore);
     }
 
@@ -101,8 +101,8 @@ public class MsgAlarmController extends BaseController {
     @PostMapping("/messageMore")
     @ApiOperation("更多消息")
     public AjaxResult messageMore(@RequestBody MsgAlarmVo msgAlarmVo) {
-        String userId = getUserId();
-        IPage<MsgAlarm> messageMore = msgWebPushService.messageMore(userId, msgAlarmVo);
+        MsgAlarmVo msgAlarmVo1 = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), msgAlarmVo);
+        IPage<MsgAlarm> messageMore = msgWebPushService.messageMore(msgAlarmVo1);
         return AjaxResult.success(messageMore);
     }
 
@@ -112,8 +112,8 @@ public class MsgAlarmController extends BaseController {
     @GetMapping("/webAlarm")
     @ApiOperation("app报警推送次数")
     public AjaxResult webAlarmNum() {
-        String userId = getUserId();
-        Map webAlarm = msgWebPushService.webAlarm(userId);
+        MsgAlarmVo msgAlarm = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), new MsgAlarmVo());
+        Map webAlarm = msgWebPushService.webAlarm(msgAlarm);
         return AjaxResult.success(webAlarm);
     }
 
@@ -178,6 +178,38 @@ public class MsgAlarmController extends BaseController {
         return AjaxResult.success(page);
     }
 
+    @GetMapping(value = "/getByAlarmId/{alarmId}")
+    @ApiOperation("根据报警信息ID获取详细信息-app")
+    public AjaxResult getByAlarmId(@PathVariable String alarmId) {
+        MsgAlarm msgAlarm = msgAlarmService.getByAlarmId(alarmId);
+        if (!ObjectUtils.isEmpty(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());
+            return AjaxResult.success(msgAlarmResp);
+        } else {
+            return success("无报警信息数据");
+        }
+    }
+
     @GetMapping(value = "/{id}")
     @ApiOperation("根据报警信息ID获取详细信息")
     public AjaxResult getInfo(@PathVariable Long id) {

+ 7 - 19
hazard-admin/src/main/java/com/ozs/web/controller/home/HomeController.java

@@ -7,9 +7,12 @@ import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.vo.BaseCameraManagementVo;
+import com.ozs.service.entity.vo.MsgAlarmVo;
 import com.ozs.service.service.BaseCameraManagementService;
 import com.ozs.service.service.MsgAlarmService;
+import com.ozs.system.service.DataScoreUtil;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -26,10 +29,10 @@ import java.util.Map;
 @RequestMapping("/home")
 public class HomeController extends BaseController {
 
-    @Resource
-    private BaseCameraManagementService baseCameraManagementService;
     @Resource
     private MsgAlarmService msgAlarmService;
+    @Autowired
+    private DataScoreUtil dataScoreUtil;
 
     /**
      * 统计数量
@@ -37,23 +40,8 @@ public class HomeController extends BaseController {
     @ApiOperation(value = "统计数量")
     @GetMapping("/statisticsNum")
     public AjaxResult statisticsNum() {
-        Map<String, Long> map = new HashMap<>();
-        // 相机数量
-        long countCamera = baseCameraManagementService.count();
-        // 累计报警次数
-        long countMsg = msgAlarmService.count();
-        // 解除报警
-        LambdaQueryWrapper<MsgAlarm> lwJC = new LambdaQueryWrapper<MsgAlarm>();
-        lwJC.eq(MsgAlarm::getIsLock, "1");
-        long countJC = msgAlarmService.count(lwJC);
-        // 未解除报警
-        LambdaQueryWrapper<MsgAlarm> lwWJC = new LambdaQueryWrapper<MsgAlarm>();
-        lwWJC.eq(MsgAlarm::getIsLock, "2");
-        long countWJC = msgAlarmService.count(lwWJC);
-        map.put("countCamera", countCamera);
-        map.put("countMsg", countMsg);
-        map.put("countJC", countJC);
-        map.put("countWJC", countWJC);
+        MsgAlarmVo msgAlarmVo = (MsgAlarmVo) dataScoreUtil.setDataScore(getUserId(), new MsgAlarmVo());
+        Map<String, Integer> map = msgAlarmService.statisticsNum(msgAlarmVo);
         return AjaxResult.success(map);
     }
 }

+ 22 - 2
hazard-admin/src/main/java/com/ozs/web/controller/system/SysDeptController.java

@@ -2,10 +2,12 @@ package com.ozs.web.controller.system;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -117,7 +119,16 @@ public class SysDeptController extends BaseController {
         if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
             return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         }
-        dept.setCreateBy(getUsername());
+        LambdaQueryWrapper<SysDept> wq=new LambdaQueryWrapper<SysDept>();
+        if (ObjectUtils.isNotEmpty(dept.getDeptCode())) {
+            wq.eq(SysDept::getDeptCode, dept.getDeptCode());
+        }
+        SysDept sysDept = deptService.getOne(wq);
+        if (ObjectUtils.isNotEmpty(sysDept)){
+            return error("新增部门'" + dept.getDeptCode() + "'失败,部门编码已存在");
+        }
+        dept.setCreateBy(getUserId());
+        dept.setUpdateBy(getUserId());
         return toAjax(deptService.insertDept(dept));
     }
 
@@ -137,7 +148,16 @@ public class SysDeptController extends BaseController {
         } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) {
             return error("该部门包含未停用的子部门!");
         }
-        dept.setUpdateBy(getUsername());
+        LambdaQueryWrapper<SysDept> wq=new LambdaQueryWrapper<SysDept>();
+        if (ObjectUtils.isNotEmpty(dept.getDeptCode())) {
+            wq.eq(SysDept::getDeptCode, dept.getDeptCode());
+            wq.ne(SysDept::getDeptId,dept.getDeptId());
+        }
+        SysDept sysDept = deptService.getOne(wq);
+        if (ObjectUtils.isNotEmpty(sysDept)){
+            return error("新增部门'" + dept.getDeptCode() + "'失败,部门编码已存在");
+        }
+        dept.setUpdateBy(getUserId());
         return toAjax(deptService.updateDept(dept));
     }
 

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

@@ -1,6 +1,9 @@
 package com.ozs.web.controller.system;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Set;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotEmpty;
 
@@ -10,6 +13,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.common.core.domain.vo.SysRoleRequestVo;
 import com.ozs.common.core.domain.vo.SysUserVo;
 import com.ozs.system.service.DataScoreUtil;
+import com.ozs.system.service.ISysMenuService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -67,6 +71,8 @@ public class SysRoleController extends BaseController
     private ISysDeptService deptService;
     @Autowired
     private DataScoreUtil dataScoreUtil;
+    @Autowired
+    private ISysMenuService menuService;
 
 //    @PreAuthorize("@ss.hasPermi('system:role:list')")
 //    @GetMapping("/list")
@@ -108,8 +114,12 @@ public class SysRoleController extends BaseController
     @GetMapping(value = "/{roleId}")
     public AjaxResult getInfo(@PathVariable Long roleId)
     {
-        roleService.checkRoleDataScope(roleId);
-        return success(roleService.selectRoleById(roleId));
+//        roleService.checkRoleDataScope(roleId);
+        SysRole sysRole = roleService.selectRoleById(roleId);
+        List<Long> rolePerms = menuService.selectMenu(sysRole.getRoleId());
+        Long[] strArr = rolePerms.toArray(new Long[rolePerms.size()]);
+        sysRole.setMenuIds(strArr);
+        return success(sysRole);
     }
 
     /**

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

@@ -204,7 +204,11 @@ public class SysUserController extends BaseController {
         if (StringUtils.isNotNull(id)) {
             SysUser sysUser = userService.selectUserById(id);
             ajax.put(AjaxResult.DATA_TAG, sysUser);
-            ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
+            if (SysUser.isAdmin(id)){
+                ajax.put("roleIds", roles.stream().map(SysRole::getRoleId).collect(Collectors.toList())); 
+            }else {
+                ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
+            }
         }
         return ajax;
     }
@@ -221,6 +225,9 @@ public class SysUserController extends BaseController {
         } else if (StringUtils.isNotEmpty(user.getPhoneNum())
                 && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }else if (StringUtils.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
+            return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setCreateBy(getUsername());
         return toAjax(userService.saveUser(user));

+ 95 - 0
hazard-admin/src/main/java/com/ozs/web/controller/websocket/JPushUtil.java

@@ -43,6 +43,7 @@ public class JPushUtil {
         int result = 0;
         try {
             PushPayload pushPayload = JPushUtil.buildPushObjectAllAliasAlertWithTitle(alias, notification_title, msg_title, msg_content, extrasparam);
+            PushPayload pushPayload1 = JPushUtil.buildPushObjectAllAliasAlertWithTitle(alias, notification_title, msg_title, msg_content, extrasparam);
             PushResult pushResult = jPushClient.sendPush(pushPayload);
             if (pushResult.getResponseCode() == 200) {
                 result = 1;
@@ -59,6 +60,36 @@ public class JPushUtil {
         return result;
     }
 
+    /**
+     * 推送给指定设备标识参数的用户(自定义消息通知)
+     * @param alias 设备标识 用户ID 别名
+     * @param notification_title 通知内容标题
+     * @param msg_title 消息内容标题
+     * @param msg_content 消息内容
+     * @param extrasparam 扩展字段(通常传跳转的链接)
+     * @return 0推送失败,1推送成功
+     */
+    public int sendToRegistrationId(String alias, String notification_title, String msg_title, String msg_content, String extrasparam) {
+        JPushClient jPushClient = new JPushClient(MASTERSECRET, APPKER);
+        int result = 0;
+        try {
+            PushPayload pushPayload= this.buildPushObject_all_alias_alertWithTitle(alias, notification_title, msg_title, msg_content, extrasparam);
+            PushResult pushResult = jPushClient.sendPush(pushPayload);
+            if(pushResult.getResponseCode() == 200){
+                result=1;
+            }
+            log.info("[极光推送]PushResult result is " + pushResult);
+        } catch (APIConnectionException e) {
+            log.error("[极光推送]Connection error. Should retry later. ", e);
+        } catch (APIRequestException e) {
+            log.error("[极光推送]Error response from JPush server. Should review and fix it. ", e);
+            log.info("[极光推送]HTTP Status: " + e.getStatus());
+            log.info("[极光推送]Error Code: " + e.getErrorCode());
+            log.info("[极光推送]Error Message: " + e.getErrorMessage());
+        }
+        return result;
+    }
+
     /**
      * 推送给设备标识参数的用户(定时)
      */
@@ -179,6 +210,70 @@ public class JPushUtil {
         return result;
     }
 
+    /**
+     * 推送自定义消息 指定别名推送
+     * @param alias
+     * @param notification_title
+     * @param msg_title
+     * @param msg_content
+     * @param extrasparam
+     * @return
+     */
+    private PushPayload buildPushObject_all_alias_alertWithTitle(String alias, String notification_title, String msg_title, String msg_content, String extrasparam) {
+        //创建一个IosAlert对象,可指定APNs的alert、title等字段
+        //IosAlert iosAlert =  IosAlert.newBuilder().setTitleAndBody("title", "alert body").build();
+        return PushPayload.newBuilder()
+                //指定要推送的平台,all代表当前应用配置了的所有平台,也可以传android等具体平台
+                .setPlatform(Platform.all())
+                //指定推送的接收对象,all代表所有人,也可以指定已经设置成功的tag或alias或该应应用客户端调用接口获取到的registration id
+                .setAudience(Audience.alias(alias))
+                //.setAudience(Audience.all()) //所有人
+                //.setAudience(Audience.registrationId(registrationId)) //注册ID
+                //jpush的通知,android的由jpush直接下发,iOS的由apns服务器下发,Winphone的由mpns下发
+                .setNotification(Notification.newBuilder()
+                        //指定当前推送的android通知
+                        .addPlatformNotification(AndroidNotification.newBuilder()
+                                .setAlert(msg_content)
+                                .setTitle(notification_title)
+                                //此字段为透传字段,不会显示在通知栏。用户可以通过此字段来做一些定制需求,如特定的key传要指定跳转的页面(value)
+                                .addExtra("url", extrasparam)
+                                .build())
+                        //指定当前推送的iOS通知
+                        .addPlatformNotification(IosNotification.newBuilder()
+                                //传一个IosAlert对象,指定apns title、title、subtitle等
+                                .setAlert(msg_content)
+                                //直接传alert
+                                //此项是指定此推送的badge自动加1
+                                .incrBadge(1)
+                                //此字段的值default表示系统默认声音;传sound.caf表示此推送以项目里面打包的sound.caf声音来提醒,
+                                // 如果系统没有此音频则以系统默认声音提醒;此字段如果传空字符串,iOS9及以上的系统是无声音提醒,以下的系统是默认声音
+                                .setSound("sound.caf")
+                                //此字段为透传字段,不会显示在通知栏。用户可以通过此字段来做一些定制需求,如特定的key传要指定跳转的页面(value)
+                                .addExtra("url", extrasparam)
+                                //此项说明此推送是一个background推送,想了解background看:http://docs.jpush.io/client/ios_tutorials/#ios-7-background-remote-notification
+                                //取消此注释,消息推送时ios将无法在锁屏情况接收
+                                // .setContentAvailable(true)
+                                .build())
+                        .build())
+                //Platform指定了哪些平台就会像指定平台中符合推送条件的设备进行推送。 jpush的自定义消息,
+                // sdk默认不做任何处理,不会有通知提示。建议看文档http://docs.jpush.io/guideline/faq/的
+                // [通知与自定义消息有什么区别?]了解通知和自定义消息的区别
+                .setMessage(Message.newBuilder()
+                        .setMsgContent(msg_content)
+                        .setTitle(msg_title)
+                        //.addExtra("url", extrasparam) //释放该字段会发送两次消息,第二次消息内容是扩展字段
+                        .build())
+                .setOptions(Options.newBuilder()
+                        //此字段的值是用来指定本推送要推送的apns环境,false表示开发,true表示生产;对android和自定义消息无意义
+                        .setApnsProduction(true)
+                        //此字段是给开发者自己给推送编号,方便推送者分辨推送记录
+                        .setSendno(1)
+                        //此字段的值是用来指定本推送的离线保存时长,如果不传此字段则默认保存一天,最多指定保留十天; 秒为单位
+                        .setTimeToLive(1 * 60 * 60 * 24)
+                        .build())
+                .build();
+    }
+
     public static PushPayload buildPushObjectAndroidAndIos(String notification_title, String msg_title, String msg_content, String extrasparam) {
         return PushPayload.newBuilder()
                 .setPlatform(Platform.android_ios())

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

@@ -107,9 +107,9 @@ public class WebSocketConteoller extends BaseController {
             JPushUtil.sendToRegistrationId(
                     alias,
                     "报警通知!", cameraName != null ? cameraName : "",
-                    content,
-                    // formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + (baseCameraManagement.getLineDir() == 1 ? "上行" : "下行") + "     " + mile + "     " + endMile,
-                    "");
+                    // content,
+                    formatDate + "     " + (msgAlarmResp.getAlarmType() == 1 ? "泥石流" : msgAlarmResp.getAlarmType()) + "     " + (baseCameraManagement.getLineDir() == 1 ? "上行" : "下行") + "     " + mile + "     " + endMile,
+                    content);
         }
         // 存入数据
         if (!StringUtils.isEmpty(msgAlarm.getAlarmId()) || !StringUtils.isEmpty(userIdList)) {