|
@@ -1,14 +1,18 @@
|
|
package com.ozs.service.service.impl;
|
|
package com.ozs.service.service.impl;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.ozs.common.constant.Constants;
|
|
import com.ozs.common.constant.Constants;
|
|
|
|
+import com.ozs.common.core.domain.AjaxResult;
|
|
import com.ozs.service.entity.BaseCameraManagement;
|
|
import com.ozs.service.entity.BaseCameraManagement;
|
|
|
|
+import com.ozs.service.entity.BaseRailwayManagement;
|
|
import com.ozs.service.entity.MsgAlarm;
|
|
import com.ozs.service.entity.MsgAlarm;
|
|
import com.ozs.service.entity.vo.*;
|
|
import com.ozs.service.entity.vo.*;
|
|
import com.ozs.service.mapper.BaseCameraManagementMapper;
|
|
import com.ozs.service.mapper.BaseCameraManagementMapper;
|
|
|
|
+import com.ozs.service.mapper.BaseRailwayManagementMapper;
|
|
import com.ozs.service.mapper.MsgAlarmMapper;
|
|
import com.ozs.service.mapper.MsgAlarmMapper;
|
|
import com.ozs.service.service.MsgAlarmService;
|
|
import com.ozs.service.service.MsgAlarmService;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -16,6 +20,7 @@ import com.ozs.service.service.RedisService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
+import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -36,6 +41,8 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
|
|
private BaseCameraManagementMapper baseCameraManagementMapper;
|
|
private BaseCameraManagementMapper baseCameraManagementMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private RedisService redisService;
|
|
private RedisService redisService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private BaseRailwayManagementMapper baseRailwayManagementMapper;
|
|
|
|
|
|
|
|
|
|
public IPage listToPage(List list, int pageNum, int pageSize) {
|
|
public IPage listToPage(List list, int pageNum, int pageSize) {
|
|
@@ -158,22 +165,22 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
|
|
@Override
|
|
@Override
|
|
public void getNormalBaseCameraManagementsCache(String setType) {
|
|
public void getNormalBaseCameraManagementsCache(String setType) {
|
|
Set<BaseCameraVO> alarmSet = redisService.getSetMembers(Constants.ALARM_SET);
|
|
Set<BaseCameraVO> alarmSet = redisService.getSetMembers(Constants.ALARM_SET);
|
|
- if(!CollectionUtils.isEmpty(alarmSet)) {
|
|
|
|
- Set<String> cameraCodeSet = alarmSet.stream()
|
|
|
|
- .map(BaseCameraVO::getCameraCode)
|
|
|
|
- .collect(Collectors.toSet());
|
|
|
|
- QueryWrapper<BaseCameraManagement> queryWrapper = new QueryWrapper<>();
|
|
|
|
- if(Constants.ALARM_SET.equals(setType)) {
|
|
|
|
- // 使用QueryWrapper和notin方法根据cameraCode列表查询BaseCameraManagement数据
|
|
|
|
- queryWrapper.notIn("camera_code", cameraCodeSet);
|
|
|
|
- Set<BaseCameraManagement> set = baseCameraManagementMapper.selectList(queryWrapper).stream().collect(Collectors.toSet());
|
|
|
|
- set.forEach(item -> {
|
|
|
|
- BaseCameraVO baseCameraVO = new BaseCameraVO();
|
|
|
|
- baseCameraVO.setCameraCode(item.getCameraCode());
|
|
|
|
- baseCameraVO.setChannel(item.getChannel());
|
|
|
|
- redisService.addToSet(Constants.NORMAL_SET, baseCameraVO);
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(alarmSet)) {
|
|
|
|
+ Set<String> cameraCodeSet = alarmSet.stream()
|
|
|
|
+ .map(BaseCameraVO::getCameraCode)
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
+ QueryWrapper<BaseCameraManagement> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ if (Constants.ALARM_SET.equals(setType)) {
|
|
|
|
+ // 使用QueryWrapper和notin方法根据cameraCode列表查询BaseCameraManagement数据
|
|
|
|
+ queryWrapper.notIn("camera_code", cameraCodeSet);
|
|
|
|
+ Set<BaseCameraManagement> set = baseCameraManagementMapper.selectList(queryWrapper).stream().collect(Collectors.toSet());
|
|
|
|
+ set.forEach(item -> {
|
|
|
|
+ BaseCameraVO baseCameraVO = new BaseCameraVO();
|
|
|
|
+ baseCameraVO.setCameraCode(item.getCameraCode());
|
|
|
|
+ baseCameraVO.setChannel(item.getChannel());
|
|
|
|
+ redisService.addToSet(Constants.NORMAL_SET, baseCameraVO);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -182,21 +189,21 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
|
|
List<MsgAlarm> lockedMsgAlarms = msgAlarmMapper.selectList(new QueryWrapper<MsgAlarm>().eq("is_lock", 2));
|
|
List<MsgAlarm> lockedMsgAlarms = msgAlarmMapper.selectList(new QueryWrapper<MsgAlarm>().eq("is_lock", 2));
|
|
if (lockedMsgAlarms.isEmpty()) {
|
|
if (lockedMsgAlarms.isEmpty()) {
|
|
Set<BaseCameraManagement> normalSet = baseCameraManagementMapper.selectList(null).stream().collect(Collectors.toSet());
|
|
Set<BaseCameraManagement> normalSet = baseCameraManagementMapper.selectList(null).stream().collect(Collectors.toSet());
|
|
- normalSet.forEach(item ->{
|
|
|
|
- BaseCameraVO baseCameraVO=new BaseCameraVO();
|
|
|
|
|
|
+ normalSet.forEach(item -> {
|
|
|
|
+ BaseCameraVO baseCameraVO = new BaseCameraVO();
|
|
baseCameraVO.setCameraCode(item.getCameraCode());
|
|
baseCameraVO.setCameraCode(item.getCameraCode());
|
|
baseCameraVO.setChannel(item.getChannel());
|
|
baseCameraVO.setChannel(item.getChannel());
|
|
- redisService.addToSet(Constants.NORMAL_SET,baseCameraVO);
|
|
|
|
|
|
+ redisService.addToSet(Constants.NORMAL_SET, baseCameraVO);
|
|
});
|
|
});
|
|
- redisService.addToSet(Constants.ALARM_SET,null);
|
|
|
|
|
|
+ redisService.addToSet(Constants.ALARM_SET, null);
|
|
}
|
|
}
|
|
// 提取cameraCode列表
|
|
// 提取cameraCode列表
|
|
Set<String> cameraCodeSet = lockedMsgAlarms.stream().map(MsgAlarm::getCameraCode).collect(Collectors.toSet());
|
|
Set<String> cameraCodeSet = lockedMsgAlarms.stream().map(MsgAlarm::getCameraCode).collect(Collectors.toSet());
|
|
QueryWrapper<BaseCameraManagement> queryWrapperAlarm = new QueryWrapper<>();
|
|
QueryWrapper<BaseCameraManagement> queryWrapperAlarm = new QueryWrapper<>();
|
|
queryWrapperAlarm.in("camera_code", cameraCodeSet);
|
|
queryWrapperAlarm.in("camera_code", cameraCodeSet);
|
|
Set<BaseCameraManagement> alarmSet = baseCameraManagementMapper.selectList(queryWrapperAlarm).stream().collect(Collectors.toSet());
|
|
Set<BaseCameraManagement> alarmSet = baseCameraManagementMapper.selectList(queryWrapperAlarm).stream().collect(Collectors.toSet());
|
|
- alarmSet.forEach(item->{
|
|
|
|
- BaseCameraVO baseCameraVO=new BaseCameraVO();
|
|
|
|
|
|
+ alarmSet.forEach(item -> {
|
|
|
|
+ BaseCameraVO baseCameraVO = new BaseCameraVO();
|
|
baseCameraVO.setCameraCode(item.getCameraCode());
|
|
baseCameraVO.setCameraCode(item.getCameraCode());
|
|
baseCameraVO.setChannel(item.getChannel());
|
|
baseCameraVO.setChannel(item.getChannel());
|
|
redisService.addToSet(Constants.ALARM_SET, baseCameraVO);
|
|
redisService.addToSet(Constants.ALARM_SET, baseCameraVO);
|
|
@@ -204,8 +211,8 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
|
|
QueryWrapper<BaseCameraManagement> queryWrapperNormal = new QueryWrapper<>();
|
|
QueryWrapper<BaseCameraManagement> queryWrapperNormal = new QueryWrapper<>();
|
|
queryWrapperNormal.notIn("camera_code", cameraCodeSet);
|
|
queryWrapperNormal.notIn("camera_code", cameraCodeSet);
|
|
Set<BaseCameraManagement> normalSet = baseCameraManagementMapper.selectList(queryWrapperNormal).stream().collect(Collectors.toSet());
|
|
Set<BaseCameraManagement> normalSet = baseCameraManagementMapper.selectList(queryWrapperNormal).stream().collect(Collectors.toSet());
|
|
- normalSet.forEach(item->{
|
|
|
|
- BaseCameraVO baseCameraVO=new BaseCameraVO();
|
|
|
|
|
|
+ normalSet.forEach(item -> {
|
|
|
|
+ BaseCameraVO baseCameraVO = new BaseCameraVO();
|
|
baseCameraVO.setCameraCode(item.getCameraCode());
|
|
baseCameraVO.setCameraCode(item.getCameraCode());
|
|
baseCameraVO.setChannel(item.getChannel());
|
|
baseCameraVO.setChannel(item.getChannel());
|
|
redisService.addToSet(Constants.NORMAL_SET, baseCameraVO);
|
|
redisService.addToSet(Constants.NORMAL_SET, baseCameraVO);
|
|
@@ -219,4 +226,56 @@ public class MsgAlarmServiceImpl extends ServiceImpl<MsgAlarmMapper, MsgAlarm> i
|
|
BaseCameraManagement baseCameraManagement = baseCameraManagementMapper.selectOne(queryWrapper);
|
|
BaseCameraManagement baseCameraManagement = baseCameraManagementMapper.selectOne(queryWrapper);
|
|
return baseCameraManagement;
|
|
return baseCameraManagement;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public AjaxResult alarmStatistics() {
|
|
|
|
+ int count;
|
|
|
|
+ int unresolvedCount;
|
|
|
|
+ //找出所有报警数据
|
|
|
|
+ List<MsgAlarm> list = this.list();
|
|
|
|
+ //未解除的报警
|
|
|
|
+ List<MsgAlarm> alarmList = this.list(new LambdaQueryWrapper<MsgAlarm>()
|
|
|
|
+ .eq(MsgAlarm::getIsLock, 1));
|
|
|
|
+ HashMap<String, Integer> map = new HashMap<>();
|
|
|
|
+ if (!ObjectUtils.isEmpty(list)) {
|
|
|
|
+ //获取所有报警的相机编码
|
|
|
|
+ //找出所有报警数据 1=高铁的数量
|
|
|
|
+ count = (int) list.stream()
|
|
|
|
+ .map(base -> baseCameraManagementMapper.selectOne(new LambdaQueryWrapper<BaseCameraManagement>()
|
|
|
|
+ .eq(BaseCameraManagement::getCameraCode, base)))
|
|
|
|
+ .filter(Objects::nonNull) // 确保 management 不是 null
|
|
|
|
+ .map(management -> baseRailwayManagementMapper.selectOne(new LambdaQueryWrapper<BaseRailwayManagement>()
|
|
|
|
+ .eq(BaseRailwayManagement::getRailwayCode, management.getRailwayCode()))) // 确保管理信息不是空的
|
|
|
|
+ .filter(Objects::nonNull) // 确保 baseRailwayManagement 不是 null
|
|
|
|
+ .filter(baseRailwayManagement -> baseRailwayManagement.getRailwayType() == 1)
|
|
|
|
+ .count();
|
|
|
|
+ //普铁的数量
|
|
|
|
+ int pu = list.size() - count;
|
|
|
|
+ map.put("highAlarmCount", count);
|
|
|
|
+ map.put("puAlarmCount", pu);
|
|
|
|
+ }
|
|
|
|
+ if (!ObjectUtils.isEmpty(alarmList)) {
|
|
|
|
+ //获取所有报警的相机编码
|
|
|
|
+ //找出所有已解除报警数据 1=高铁的数量
|
|
|
|
+ unresolvedCount = (int) alarmList.stream()
|
|
|
|
+ .map(base -> baseCameraManagementMapper.selectOne(new LambdaQueryWrapper<BaseCameraManagement>()
|
|
|
|
+ .eq(BaseCameraManagement::getCameraCode, base)))
|
|
|
|
+ .filter(Objects::nonNull)
|
|
|
|
+ .map(management -> baseRailwayManagementMapper.selectOne(new LambdaQueryWrapper<BaseRailwayManagement>()
|
|
|
|
+ .eq(BaseRailwayManagement::getRailwayCode, management.getRailwayCode()))) // 确保管理信息不是空的
|
|
|
|
+ .filter(Objects::nonNull) // 确保 baseRailwayManagement 不是 null
|
|
|
|
+ .filter(baseRailwayManagement -> baseRailwayManagement.getRailwayType() == 1)
|
|
|
|
+ .count();
|
|
|
|
+ //普铁的数量
|
|
|
|
+ int puUnresolvedCount = alarmList.size() - unresolvedCount;
|
|
|
|
+ map.put("highUnresolvedCount", unresolvedCount);
|
|
|
|
+ map.put("puUnresolvedCount", puUnresolvedCount);
|
|
|
|
+ }
|
|
|
|
+ return AjaxResult.success(map);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public AjaxResult alarmCountSort() {
|
|
|
|
+ return AjaxResult.success(baseCameraManagementMapper.alarmCountSort());
|
|
|
|
+ }
|
|
}
|
|
}
|