|
|
@ -1,27 +1,5 @@
|
|
|
|
package com.ruoyi.business.service.impl;
|
|
|
|
package com.ruoyi.business.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
import com.ruoyi.business.domain.HwAlarmInfo;
|
|
|
|
|
|
|
|
import com.ruoyi.business.domain.HwDevice;
|
|
|
|
|
|
|
|
import com.ruoyi.business.domain.HwMonitorUnit;
|
|
|
|
|
|
|
|
import com.ruoyi.business.domain.VO.*;
|
|
|
|
|
|
|
|
import com.ruoyi.business.mapper.HwAlarmInfoMapper;
|
|
|
|
|
|
|
|
import com.ruoyi.business.mapper.HwDeviceMapper;
|
|
|
|
|
|
|
|
import com.ruoyi.business.mapper.HwElectronicFenceMapper;
|
|
|
|
|
|
|
|
import com.ruoyi.business.mapper.HwMonitorUnitMapper;
|
|
|
|
|
|
|
|
import com.ruoyi.business.service.IHwMonitorUnitService;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.constant.TdEngineConstants;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.domain.R;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.utils.DateUtils;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.utils.NumberUtils;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.utils.StringUtils;
|
|
|
|
|
|
|
|
import com.ruoyi.common.datascope.annotation.DataScope;
|
|
|
|
|
|
|
|
import com.ruoyi.tdengine.api.RemoteTdEngineService;
|
|
|
|
|
|
|
|
import com.ruoyi.tdengine.api.domain.DeviceStatus;
|
|
|
|
|
|
|
|
import com.ruoyi.tdengine.api.domain.TdSelectDto;
|
|
|
|
|
|
|
|
import com.ruoyi.tdengine.api.domain.TdSuperTableSelectVo;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.LocalTime;
|
|
|
|
import java.time.LocalTime;
|
|
|
@ -30,6 +8,26 @@ import java.time.format.DateTimeFormatter;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.ruoyi.business.domain.HwDevice;
|
|
|
|
|
|
|
|
import com.ruoyi.business.domain.VO.*;
|
|
|
|
|
|
|
|
import com.ruoyi.business.mapper.HwDeviceMapper;
|
|
|
|
|
|
|
|
import com.ruoyi.business.mapper.HwElectronicFenceMapper;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.constant.TdEngineConstants;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.domain.R;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.utils.DateUtils;
|
|
|
|
|
|
|
|
import com.ruoyi.common.core.utils.StringUtils;
|
|
|
|
|
|
|
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
|
|
|
|
|
|
|
import com.ruoyi.system.api.domain.SysUser;
|
|
|
|
|
|
|
|
import com.ruoyi.system.api.model.LoginUser;
|
|
|
|
|
|
|
|
import com.ruoyi.tdengine.api.RemoteTdEngineService;
|
|
|
|
|
|
|
|
import com.ruoyi.tdengine.api.domain.DeviceStatus;
|
|
|
|
|
|
|
|
import com.ruoyi.tdengine.api.domain.TdSelectDto;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import com.ruoyi.business.mapper.HwMonitorUnitMapper;
|
|
|
|
|
|
|
|
import com.ruoyi.business.domain.HwMonitorUnit;
|
|
|
|
|
|
|
|
import com.ruoyi.business.service.IHwMonitorUnitService;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 监控单元Service业务层处理
|
|
|
|
* 监控单元Service业务层处理
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -37,7 +35,8 @@ import java.util.stream.Collectors;
|
|
|
|
* @date 2023-08-31
|
|
|
|
* @date 2023-08-31
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService
|
|
|
|
|
|
|
|
{
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private HwMonitorUnitMapper hwMonitorUnitMapper;
|
|
|
|
private HwMonitorUnitMapper hwMonitorUnitMapper;
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
@ -46,8 +45,9 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
private RemoteTdEngineService remoteTdEgineService;
|
|
|
|
private RemoteTdEngineService remoteTdEgineService;
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private HwDeviceMapper hwDeviceMapper;
|
|
|
|
private HwDeviceMapper hwDeviceMapper;
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private HwAlarmInfoMapper hwAlarmInfoMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 查询监控单元
|
|
|
|
* 查询监控单元
|
|
|
@ -56,48 +56,39 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
* @return 监控单元
|
|
|
|
* @return 监控单元
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public HwMonitorUnit selectHwMonitorUnitByMonitorUnitId(Long monitorUnitId) {
|
|
|
|
public HwMonitorUnit selectHwMonitorUnitByMonitorUnitId(Long monitorUnitId)
|
|
|
|
|
|
|
|
{
|
|
|
|
return hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(monitorUnitId);
|
|
|
|
return hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(monitorUnitId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 查询区域数量站场景区总数百分比
|
|
|
|
* 查询区域数量站场景区总数百分比
|
|
|
|
*/
|
|
|
|
* */
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<HwMonitorUnitVo> selectMonitorPercentage() {
|
|
|
|
public List<HwMonitorUnitVo> selectMonitorPercentage() {
|
|
|
|
// HwMonitorUnit queryMonitorUnit = new HwMonitorUnit();
|
|
|
|
|
|
|
|
// List<HwMonitorUnit> list = hwMonitorUnitMapper.selectHwMonitorUnitListJoinScene(queryMonitorUnit);
|
|
|
|
|
|
|
|
// Map<Long, List<HwMonitorUnit>> monitorUnitMap = list.stream()
|
|
|
|
|
|
|
|
// .collect(Collectors.groupingBy(HwMonitorUnit::getSceneId));
|
|
|
|
|
|
|
|
// List<HwMonitorUnitVo> monitorUnitVoList = new ArrayList<>();
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// Set<Long> keys = monitorUnitMap.keySet();
|
|
|
|
|
|
|
|
// for(Long key:keys){
|
|
|
|
|
|
|
|
// Integer value = monitorUnitMap.get(key);
|
|
|
|
|
|
|
|
// System.out.println(key+"\t"+value);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
List<HwMonitorUnitVo> list = hwMonitorUnitMapper.selectMonitorPercentage();
|
|
|
|
List<HwMonitorUnitVo> list = hwMonitorUnitMapper.selectMonitorPercentage();
|
|
|
|
List<HwMonitorUnitVo> hwScenes = hwMonitorUnitMapper.selectSceneNameById();
|
|
|
|
List<HwMonitorUnitVo> hwScenes = hwMonitorUnitMapper.selectSceneNameById();
|
|
|
|
list.stream().forEach(l -> {
|
|
|
|
int count = hwScenes.size();
|
|
|
|
for (int i = 0; i < hwScenes.size(); i++) {
|
|
|
|
if (list.size()<=hwScenes.size()) {
|
|
|
|
if (l.getSceneId().equals(hwScenes.get(i).getSceneId())) {
|
|
|
|
count = list.size();
|
|
|
|
l.setSceneName(hwScenes.get(i).getSceneName());
|
|
|
|
}
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
|
|
|
for (int j = 0;j<count;j++){
|
|
|
|
|
|
|
|
if (list.get(i).getSceneId().equals(hwScenes.get(i).getSceneId())){
|
|
|
|
|
|
|
|
list.get(i).setSceneName(hwScenes.get(i).getSceneName());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Integer value = 0;
|
|
|
|
Integer value = 0;
|
|
|
|
//
|
|
|
|
//
|
|
|
|
Integer sums = 0;
|
|
|
|
Integer sums = 0;
|
|
|
|
// if (list.size() > 5) {
|
|
|
|
if (list.size()>5){
|
|
|
|
// for (int i = 4; i < list.size(); i++) {//这是剩下的总数
|
|
|
|
for (int i = 4; i < list.size(); i++){
|
|
|
|
// if (list.get(i).sum == null) {
|
|
|
|
if (list.get(i).sum==null){
|
|
|
|
// list.get(i).sum = 0;
|
|
|
|
list.get(i).sum = 0;
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// value = value + list.get(i).sum;
|
|
|
|
value = value+list.get(i).sum;
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
for (int i = 0; i < list.size();i++){
|
|
|
|
for (int i = 0; i < list.size();i++){
|
|
|
|
if (list.get(i).sum==null){
|
|
|
|
if (list.get(i).sum==null){
|
|
|
|
list.get(i).sum = 0;
|
|
|
|
list.get(i).sum = 0;
|
|
|
@ -105,57 +96,66 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
sums = sums+list.get(i).sum;
|
|
|
|
sums = sums+list.get(i).sum;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (int i=0;i<list.size();i++){
|
|
|
|
for (int i=0;i<list.size();i++){
|
|
|
|
HwMonitorUnitVo hwMonitorUnitVo = list.get(i);
|
|
|
|
list.get(i).setPercentage((double) (list.get(i).getSum()/sums));
|
|
|
|
hwMonitorUnitVo.setPercentage(NumberUtils.getPercentage(list.get(i).getSum(), sums));
|
|
|
|
|
|
|
|
Long sceneId = hwMonitorUnitVo.getSceneId();
|
|
|
|
|
|
|
|
HwAlarmInfo queryAlarmInfo = new HwAlarmInfo();
|
|
|
|
|
|
|
|
queryAlarmInfo.setSceneId(sceneId);
|
|
|
|
|
|
|
|
List<HwAlarmInfo> alarmInfos = hwAlarmInfoMapper.selectHwAlarmInfoList(queryAlarmInfo);
|
|
|
|
|
|
|
|
Integer alarmInfoSize = alarmInfos == null ? 0 : alarmInfos.size();
|
|
|
|
|
|
|
|
hwMonitorUnitVo.setErr(alarmInfoSize);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
HwMonitorUnitVo hwMonitorUnitVo = new HwMonitorUnitVo();
|
|
|
|
|
|
|
|
hwMonitorUnitVo.setSceneName("其他");
|
|
|
|
|
|
|
|
hwMonitorUnitVo.setSum(value);
|
|
|
|
|
|
|
|
|
|
|
|
// HwMonitorUnitVo hwMonitorUnitVo = new HwMonitorUnitVo();
|
|
|
|
if (list.size()>5){
|
|
|
|
// hwMonitorUnitVo.setSceneName("其他");
|
|
|
|
list.add(5,hwMonitorUnitVo);
|
|
|
|
// hwMonitorUnitVo.setSum(value);
|
|
|
|
return list.subList(0,5);
|
|
|
|
|
|
|
|
}
|
|
|
|
// if (list.size() > 5) {
|
|
|
|
else {
|
|
|
|
// list.add(5, hwMonitorUnitVo);
|
|
|
|
|
|
|
|
// return list.subList(0, 5);
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// return list;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
return list;
|
|
|
|
return list;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取总的设备数量与监控单元数量
|
|
|
|
//获取总的设备数量与监控单元数量
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public AllNumsVo selectAllNums(Long sceneId) {
|
|
|
|
public AllNumsVo selectAllNums() {
|
|
|
|
//监控单元
|
|
|
|
//监控单元
|
|
|
|
Integer monitor = hwMonitorUnitMapper.selectSubSetNums(sceneId) == null ? 0
|
|
|
|
String monitor = hwMonitorUnitMapper.selectSubSetNums();
|
|
|
|
: hwMonitorUnitMapper.selectSubSetNums(sceneId);
|
|
|
|
String integer = hwMonitorUnitMapper.selectDeviceNums();
|
|
|
|
Integer integer = hwMonitorUnitMapper.selectDeviceNums(sceneId) == null ? 0
|
|
|
|
System.out.println(monitor+" dsaas "+integer);
|
|
|
|
: hwMonitorUnitMapper.selectDeviceNums(sceneId);
|
|
|
|
Integer monitor1 = 0;
|
|
|
|
|
|
|
|
Integer monitor2 = 0;
|
|
|
|
|
|
|
|
|
|
|
|
AllNumsVo vo = new AllNumsVo();
|
|
|
|
AllNumsVo vo = new AllNumsVo();
|
|
|
|
vo.setSubSum(monitor);
|
|
|
|
if (monitor == null){
|
|
|
|
vo.setSum(integer);
|
|
|
|
monitor1 = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
monitor1 = Integer.valueOf(monitor);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (integer == null){
|
|
|
|
|
|
|
|
monitor2 = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
monitor2 = Integer.valueOf(integer);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
vo.setSubSum(monitor1);
|
|
|
|
|
|
|
|
vo.setSum(monitor2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return vo;
|
|
|
|
return vo;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// @Override
|
|
|
|
|
|
|
|
// public List<AllNumsVo> selectSenceAllNums() {
|
|
|
|
@Override
|
|
|
|
// List<AllNumsVo> allNumsVos = hwMonitorUnitMapper.selectAllNums();
|
|
|
|
public List<AllNumsVo> selectSenceAllNums() {
|
|
|
|
// List<AllNumsVo> allNums = hwMonitorUnitMapper.selectsum();
|
|
|
|
List<AllNumsVo> allNumsVos = hwMonitorUnitMapper.selectAllNums();
|
|
|
|
// for (int i = 0; i < allNums.size(); i++) {
|
|
|
|
List<AllNumsVo> allNums = hwMonitorUnitMapper.selectsum();
|
|
|
|
// for (int j = 0; j < allNums.size(); j++) {
|
|
|
|
for (int i=0;i< allNums.size();i++){
|
|
|
|
// if (allNums.get(i).getSceneId().equals(allNumsVos.get(i).getSceneId())) {
|
|
|
|
for (int j=0;j< allNums.size();j++){
|
|
|
|
// allNums.get(i).setSubSum(allNumsVos.get(i).getSubSum());
|
|
|
|
if (allNums.get(i).getSceneId().equals(allNumsVos.get(i).getSceneId())){
|
|
|
|
// }
|
|
|
|
allNums.get(i).setSubSum(allNumsVos.get(i).getSubSum());
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// return allNums;
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
return allNums;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<HwMonitorUnit> selectLimitSubMonitorUnit() {
|
|
|
|
public List<HwMonitorUnit> selectLimitSubMonitorUnit() {
|
|
|
@ -165,8 +165,8 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<AlarmStatsVo> selectAlarmStats(Long sceneId) {
|
|
|
|
public List<AlarmStatsVo> selectAlarmStats() {
|
|
|
|
return hwMonitorUnitMapper.selectAlarmStats(sceneId);
|
|
|
|
return hwMonitorUnitMapper.selectAlarmStats();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -177,22 +177,35 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
* @return 监控单元
|
|
|
|
* @return 监控单元
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<HwMonitorUnit> selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit) {
|
|
|
|
public List<HwMonitorUnit> selectHwMonitorUnitList(HwMonitorUnit hwMonitorUnit)
|
|
|
|
|
|
|
|
{
|
|
|
|
return hwMonitorUnitMapper.selectHwMonitorUnitList(hwMonitorUnit);
|
|
|
|
return hwMonitorUnitMapper.selectHwMonitorUnitList(hwMonitorUnit);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public SubDeviceSumVo selectSubDeviceSum(Long sceneId) {
|
|
|
|
public SubDeviceSumVo selectSubDeviceSum(Long sceneId) {
|
|
|
|
AllNumsVo numsVo = selectAllNums(sceneId);
|
|
|
|
int SubSum = hwMonitorUnitMapper.selectSubDeviceSum(sceneId);
|
|
|
|
int onlineDeviceNum = hwDeviceMapper.getOnlineDeviceNum(sceneId);
|
|
|
|
List<HwDevice> hwDevices = hwDeviceMapper.selectDeviceNum(sceneId);
|
|
|
|
|
|
|
|
int onlineDevice = 0;
|
|
|
|
|
|
|
|
for (int i = 0;i<hwDevices.size();i++){
|
|
|
|
|
|
|
|
if (hwDevices.get(i).getActiveStatus().equals("1")&&hwDevices.get(i).getDeviceStatus().equals("1")){
|
|
|
|
|
|
|
|
onlineDevice = onlineDevice+1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
SubDeviceSumVo subDeviceSumVo = new SubDeviceSumVo();
|
|
|
|
SubDeviceSumVo subDeviceSumVo = new SubDeviceSumVo();
|
|
|
|
subDeviceSumVo.setSubSum(numsVo.getSubSum());//监控单元数量
|
|
|
|
subDeviceSumVo.setSubSum(String.valueOf(SubSum));
|
|
|
|
subDeviceSumVo.setDeviceNum(numsVo.getSum());//设备数量
|
|
|
|
subDeviceSumVo.setDeviceNum(String.valueOf(hwDevices.size()));
|
|
|
|
subDeviceSumVo.setOnlineDeviceNum(onlineDeviceNum);//在线设备数量
|
|
|
|
subDeviceSumVo.setOnlineDeviceNum(String.valueOf(onlineDevice));
|
|
|
|
return subDeviceSumVo;
|
|
|
|
return subDeviceSumVo;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//todo 电子围栏
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public Integer selectElectronicNum(Long sceneId) {
|
|
|
|
|
|
|
|
List<Long> longs = hwMonitorUnitMapper.selectEleInScene(sceneId);
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -200,6 +213,72 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
return hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(monitorUnitId);
|
|
|
|
return hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(monitorUnitId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
// 加一个begintime参数,endtime参数 stream时间戳 从开始时间0点开始,结束时间23.59.59结束
|
|
|
|
|
|
|
|
public Map<Object, Integer> selectTdengine(String beginTime, String endTime, Long sceneId) {
|
|
|
|
|
|
|
|
DeviceStatus queryDeviceStatus = new DeviceStatus();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> params = queryDeviceStatus.getParams();
|
|
|
|
|
|
|
|
DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);
|
|
|
|
|
|
|
|
System.out.println(ofPattern);
|
|
|
|
|
|
|
|
LocalDate parse = LocalDate.parse(beginTime, ofPattern);
|
|
|
|
|
|
|
|
long begintime = parse.atStartOfDay().toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DateTimeFormatter ofPattern1 = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);
|
|
|
|
|
|
|
|
LocalDate parse1 = LocalDate.parse(endTime, ofPattern);
|
|
|
|
|
|
|
|
long endtime = LocalDateTime.of(parse1, LocalTime.MAX).toInstant(ZoneOffset.of("+8")).toEpochMilli();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
params.put("beginTime",begintime);
|
|
|
|
|
|
|
|
params.put("endTime", endtime);
|
|
|
|
|
|
|
|
queryDeviceStatus.setParams(params);
|
|
|
|
|
|
|
|
if (sceneId != null) {
|
|
|
|
|
|
|
|
queryDeviceStatus.setSceneId(sceneId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int sum = 0;
|
|
|
|
|
|
|
|
int values[] = new int[10];
|
|
|
|
|
|
|
|
Map<Object,Integer> valuesMap = new HashMap<>();
|
|
|
|
|
|
|
|
//todo 使用id(以解决)
|
|
|
|
|
|
|
|
//map key时间戳,value List<DeviceStatus> 对象
|
|
|
|
|
|
|
|
R<?> r = remoteTdEgineService.getOnlineDevicesGroupByDay(queryDeviceStatus);
|
|
|
|
|
|
|
|
Map<Long, List<DeviceStatus>> deviceStatusMap = (Map<Long, List<DeviceStatus>>) r.getData();
|
|
|
|
|
|
|
|
List<DeviceStatus> list = (List<DeviceStatus>) remoteTdEgineService.getOnlineDevicesGroupByDay(queryDeviceStatus);
|
|
|
|
|
|
|
|
Set<Long> longs = deviceStatusMap.keySet();
|
|
|
|
|
|
|
|
for (Object key:longs){
|
|
|
|
|
|
|
|
List<DeviceStatus> deviceStatuses = deviceStatusMap.get(key);
|
|
|
|
|
|
|
|
for (int i=0;i<deviceStatuses.size();i++){
|
|
|
|
|
|
|
|
if (deviceStatuses.get(i).getDeviceType()==1){
|
|
|
|
|
|
|
|
sum=sum+hwMonitorUnitMapper.selectReleatedDeviceIdNums(list.get(i).getDeviceId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
sum = sum+1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
valuesMap.put(key,sum);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return valuesMap;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//设备类型==网关 根据releated_device_id = 网关设备设备id查询个数
|
|
|
|
|
|
|
|
//网关子设备数+非网关设备数(getDeviceType()!=1)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public R<Map<String, Map<String, Object>>> selectLatestDataByTags(Long monitorUnitId) {
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
R<Map<String, Map<String, Object>>> latestDataByTags = new R<Map<String,Map<String, Object>>>();
|
|
|
|
|
|
|
|
List<HwDevice> hwDevices = hwDeviceMapper.selectDeviceByMonitorId(monitorUnitId);
|
|
|
|
|
|
|
|
TdSelectDto tdSelectDto = new TdSelectDto();
|
|
|
|
|
|
|
|
for (int i = 0; i < hwDevices.size(); i++){
|
|
|
|
|
|
|
|
tdSelectDto.setDatabaseName(TdEngineConstants.PLATFORM_DB_NAME);
|
|
|
|
|
|
|
|
tdSelectDto.setTableName(TdEngineConstants.getDeviceDataTableName(hwDevices.get(i).getDeviceId()));
|
|
|
|
|
|
|
|
tdSelectDto.setTagsName(hwDevices.get(i).getDeviceCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
latestDataByTags = remoteTdEgineService.getLatestDataByTags(tdSelectDto);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return latestDataByTags;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//todo SysDeptServiceImpl类中的递归方法recursionFn(以实现)
|
|
|
|
//todo SysDeptServiceImpl类中的递归方法recursionFn(以实现)
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<HwMonitorUnit> selectTreeList(List<HwMonitorUnit> hwMonitorUnits) {
|
|
|
|
public List<HwMonitorUnit> selectTreeList(List<HwMonitorUnit> hwMonitorUnits) {
|
|
|
@ -218,31 +297,35 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return treeList;
|
|
|
|
return treeList;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void recursionFn(List<HwMonitorUnit> list, HwMonitorUnit t)
|
|
|
|
private void recursionFn(List<HwMonitorUnit> list, HwMonitorUnit t) {
|
|
|
|
{
|
|
|
|
// 得到子节点列表
|
|
|
|
// 得到子节点列表
|
|
|
|
List<HwMonitorUnit> childList = getChildList(list, t);
|
|
|
|
List<HwMonitorUnit> childList = getChildList(list, t);
|
|
|
|
t.setChild(childList);
|
|
|
|
t.setChild(childList);
|
|
|
|
for (HwMonitorUnit tChild : childList) {
|
|
|
|
for (HwMonitorUnit tChild : childList)
|
|
|
|
if (hasChild(list, tChild)) {
|
|
|
|
{
|
|
|
|
|
|
|
|
if (hasChild(list, tChild))
|
|
|
|
|
|
|
|
{
|
|
|
|
recursionFn(list, tChild);
|
|
|
|
recursionFn(list, tChild);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private List<HwMonitorUnit> getChildList(List<HwMonitorUnit> list, HwMonitorUnit t)
|
|
|
|
private List<HwMonitorUnit> getChildList(List<HwMonitorUnit> list, HwMonitorUnit t) {
|
|
|
|
{
|
|
|
|
List<HwMonitorUnit> tlist = new ArrayList<HwMonitorUnit>();
|
|
|
|
List<HwMonitorUnit> tlist = new ArrayList<HwMonitorUnit>();
|
|
|
|
Iterator<HwMonitorUnit> it = list.iterator();
|
|
|
|
Iterator<HwMonitorUnit> it = list.iterator();
|
|
|
|
while (it.hasNext()) {
|
|
|
|
while (it.hasNext())
|
|
|
|
|
|
|
|
{
|
|
|
|
HwMonitorUnit n = (HwMonitorUnit) it.next();
|
|
|
|
HwMonitorUnit n = (HwMonitorUnit) it.next();
|
|
|
|
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getMonitorUnitId().longValue()) {
|
|
|
|
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getMonitorUnitId().longValue())
|
|
|
|
|
|
|
|
{
|
|
|
|
tlist.add(n);
|
|
|
|
tlist.add(n);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return tlist;
|
|
|
|
return tlist;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private boolean hasChild(List<HwMonitorUnit> list, HwMonitorUnit t)
|
|
|
|
private boolean hasChild(List<HwMonitorUnit> list, HwMonitorUnit t) {
|
|
|
|
{
|
|
|
|
return getChildList(list, t).size() > 0 ? true : false;
|
|
|
|
return getChildList(list, t).size() > 0 ? true : false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -253,10 +336,33 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
* @return 结果
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit) {
|
|
|
|
public int insertHwMonitorUnit(HwMonitorUnit hwMonitorUnit)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
//少一个离线报警规则 todo
|
|
|
|
|
|
|
|
//根据父级监控单元id查询是否关联了设备,若关联则不能添加
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
|
|
|
hwMonitorUnitMapper.selectDeviceRelevancyMontiorUnit(hwMonitorUnit.getParentId())==0
|
|
|
|
|
|
|
|
&& hwMonitorUnitMapper.selectElectronicFenceRelevancyMonitorUnit(hwMonitorUnit.getParentId())==0
|
|
|
|
|
|
|
|
){ //如果是无父级的监控单元,后台赋null,前端赋null会报错
|
|
|
|
|
|
|
|
if (hwMonitorUnit.getParentId()==0){
|
|
|
|
|
|
|
|
hwMonitorUnit.setParentId(null);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//如果该监控单元拥有父级监控单元,则场景继承其父级监控单元
|
|
|
|
|
|
|
|
else if (hwMonitorUnit.getParentId()!=0&&hwMonitorUnit.getParentId()!=null){
|
|
|
|
|
|
|
|
hwMonitorUnit.setSceneId(
|
|
|
|
|
|
|
|
hwMonitorUnitMapper.selectHwMonitorUnitByMonitorUnitId(
|
|
|
|
|
|
|
|
hwMonitorUnit.getParentId()).getSceneId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
|
|
|
|
|
SysUser sysUser = loginUser.getSysUser();
|
|
|
|
|
|
|
|
hwMonitorUnit.setTenantId(sysUser.getTenantId());
|
|
|
|
|
|
|
|
|
|
|
|
hwMonitorUnit.setCreateTime(DateUtils.getNowDate());
|
|
|
|
hwMonitorUnit.setCreateTime(DateUtils.getNowDate());
|
|
|
|
return hwMonitorUnitMapper.insertHwMonitorUnit(hwMonitorUnit);
|
|
|
|
return hwMonitorUnitMapper.insertHwMonitorUnit(hwMonitorUnit);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 修改监控单元
|
|
|
|
* 修改监控单元
|
|
|
@ -265,7 +371,8 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
* @return 结果
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit) {
|
|
|
|
public int updateHwMonitorUnit(HwMonitorUnit hwMonitorUnit)
|
|
|
|
|
|
|
|
{
|
|
|
|
hwMonitorUnit.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
hwMonitorUnit.setUpdateTime(DateUtils.getNowDate());
|
|
|
|
return hwMonitorUnitMapper.updateHwMonitorUnit(hwMonitorUnit);
|
|
|
|
return hwMonitorUnitMapper.updateHwMonitorUnit(hwMonitorUnit);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -277,7 +384,18 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
* @return 结果
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds) {
|
|
|
|
public int deleteHwMonitorUnitByMonitorUnitIds(Long[] monitorUnitIds)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
//先查询是否有子集,如果有返回error 如果没有则逻辑删除
|
|
|
|
|
|
|
|
for (Long monitorUnitId : monitorUnitIds){
|
|
|
|
|
|
|
|
if (hwMonitorUnitMapper.selectIsParent(monitorUnitId)!=0){
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else{
|
|
|
|
|
|
|
|
hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitId(monitorUnitId);
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds);
|
|
|
|
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitIds(monitorUnitIds);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -288,93 +406,38 @@ public class HwMonitorUnitServiceImpl implements IHwMonitorUnitService {
|
|
|
|
* @return 结果
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId) {
|
|
|
|
public int deleteHwMonitorUnitByMonitorUnitId(Long monitorUnitId)
|
|
|
|
|
|
|
|
{
|
|
|
|
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitId(monitorUnitId);
|
|
|
|
return hwMonitorUnitMapper.deleteHwMonitorUnitByMonitorUnitId(monitorUnitId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 查询监控单元树结构信息
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param hwMonitorUnit 监控单元信息
|
|
|
|
|
|
|
|
* @return 监控单元树信息集合
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@DataScope(tenantAlias = "hmu")
|
|
|
|
public int getMonitorIsRelevancy(Long monitorUnitId) {
|
|
|
|
public List<TreeSelectVo> selectMonitorTreeList(HwMonitorUnit hwMonitorUnit) {
|
|
|
|
if (hwMonitorUnitMapper.selectDeviceRelevancyMontiorUnit(monitorUnitId)==0
|
|
|
|
List<HwMonitorUnit> hwMonitorUnits = this.selectHwMonitorUnitList(hwMonitorUnit);
|
|
|
|
&& hwMonitorUnitMapper.selectElectronicFenceRelevancyMonitorUnit(monitorUnitId)==0
|
|
|
|
return buildMonitorUnitTreeSelect(hwMonitorUnits);
|
|
|
|
){
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 构建前端所需要下拉树结构
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param hwMonitorUnits 监控单元列表
|
|
|
|
|
|
|
|
* @return 下拉树结构列表
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<TreeSelectVo> buildMonitorUnitTreeSelect(List<HwMonitorUnit> hwMonitorUnits) {
|
|
|
|
|
|
|
|
List<HwMonitorUnit> monitorUnitTrees = buildMonitorUnitTree(hwMonitorUnits);
|
|
|
|
|
|
|
|
return monitorUnitTrees.stream().map(TreeSelectVo::new).collect(Collectors.toList());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 构建前端所需要树结构
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param hwMonitorUnits 监控单元列表
|
|
|
|
|
|
|
|
* @return 树结构列表
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<HwMonitorUnit> buildMonitorUnitTree(List<HwMonitorUnit> hwMonitorUnits) {
|
|
|
|
|
|
|
|
List<HwMonitorUnit> returnList = new ArrayList<HwMonitorUnit>();
|
|
|
|
|
|
|
|
List<Long> tempList = hwMonitorUnits.stream().map(HwMonitorUnit::getMonitorUnitId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
for (HwMonitorUnit monitorUnit : hwMonitorUnits) {
|
|
|
|
|
|
|
|
// 如果是顶级节点, 遍历该父节点的所有子节点
|
|
|
|
|
|
|
|
if (!tempList.contains(monitorUnit.getParentId())) {
|
|
|
|
|
|
|
|
recursionFn1(hwMonitorUnits, monitorUnit);
|
|
|
|
|
|
|
|
returnList.add(monitorUnit);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (returnList.isEmpty()) {
|
|
|
|
|
|
|
|
returnList = hwMonitorUnits;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return returnList;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 递归列表
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private void recursionFn1(List<HwMonitorUnit> list, HwMonitorUnit t) {
|
|
|
|
|
|
|
|
// 得到子节点列表
|
|
|
|
|
|
|
|
List<HwMonitorUnit> childList = getChildList1(list, t);
|
|
|
|
|
|
|
|
t.setChildren(childList);
|
|
|
|
|
|
|
|
for (HwMonitorUnit tChild : childList) {
|
|
|
|
|
|
|
|
if (hasChild1(list, tChild)) {
|
|
|
|
|
|
|
|
recursionFn1(list, tChild);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
//remoteTdEngineSevice.getOnlineDevicesGroupByDay方法获取
|
|
|
|
* 得到子节点列表
|
|
|
|
// 参数实例:
|
|
|
|
*/
|
|
|
|
// // params.put("beginTime", beginTime);
|
|
|
|
private List<HwMonitorUnit> getChildList1(List<HwMonitorUnit> list, HwMonitorUnit t) {
|
|
|
|
//// params.put("endTime", endTime);
|
|
|
|
List<HwMonitorUnit> tlist = new ArrayList<HwMonitorUnit>();
|
|
|
|
//// queryDeviceStatus.setParams(params);
|
|
|
|
Iterator<HwMonitorUnit> it = list.iterator();
|
|
|
|
//// if (sceneId != null) {
|
|
|
|
while (it.hasNext()) {
|
|
|
|
//// queryDeviceStatus.setSceneId(sceneId);
|
|
|
|
HwMonitorUnit n = (HwMonitorUnit) it.next();
|
|
|
|
//// }
|
|
|
|
if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getMonitorUnitId().longValue()) {
|
|
|
|
//
|
|
|
|
tlist.add(n);
|
|
|
|
// 这是IDEA参数传的参数Content-Type: application/json
|
|
|
|
}
|
|
|
|
// {
|
|
|
|
}
|
|
|
|
// "params": { "beginTime":1666666666666,"endTime":1766666666666 }
|
|
|
|
return tlist;
|
|
|
|
//
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
/**
|
|
|
|
// 如果在IDEA测试可以{
|
|
|
|
* 判断是否有子节点
|
|
|
|
// "params": {"databaseName":"db_scene_1","superTableName":"st_ds_1",
|
|
|
|
*/
|
|
|
|
// "beginTime":1666666666666,"endTime":1766666666666 }
|
|
|
|
private boolean hasChild1(List<HwMonitorUnit> list, HwMonitorUnit t) {
|
|
|
|
// }
|
|
|
|
return getChildList1(list, t).size() > 0 ? true : false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|