|
|
|
|
@ -128,6 +128,17 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
return buildMonitorInfoTreeSelect(baseMonitorInfos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询看板计量设备信息下拉树结构
|
|
|
|
|
* */
|
|
|
|
|
@Override
|
|
|
|
|
public List<TreeSelects> MonitorInfoTreeList(EmsBaseMonitorInfo baseMonitorInfo) {
|
|
|
|
|
List<EmsBaseMonitorInfo> baseMonitorInfos = selectEmsBaseMonitorInfoList(baseMonitorInfo);
|
|
|
|
|
return MonitorInfoTreeSelect(baseMonitorInfos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建前端所需要下拉树结构
|
|
|
|
|
*
|
|
|
|
|
@ -142,13 +153,27 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建前端所需要树结构
|
|
|
|
|
* 构建看板所需要下拉树结构
|
|
|
|
|
*
|
|
|
|
|
* @param
|
|
|
|
|
* @return 下拉树结构列表
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<TreeSelects> MonitorInfoTreeSelect(List<EmsBaseMonitorInfo> baseMonitorInfos)
|
|
|
|
|
{
|
|
|
|
|
List<EmsBaseMonitorInfo> deptTrees = MonitorInfoTree(baseMonitorInfos);
|
|
|
|
|
return deptTrees.stream().map(TreeSelects::new).collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建看板所需要树结构
|
|
|
|
|
*
|
|
|
|
|
* @param
|
|
|
|
|
* @return 树结构列表
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<EmsBaseMonitorInfo> buildMonitorInfoTree(List<EmsBaseMonitorInfo> baseMonitorInfos) {
|
|
|
|
|
public List<EmsBaseMonitorInfo> MonitorInfoTree(List<EmsBaseMonitorInfo> baseMonitorInfos) {
|
|
|
|
|
// 数据量阈值,低于此值使用单线程,高于此值使用多线程
|
|
|
|
|
final int THRESHOLD = 100;
|
|
|
|
|
|
|
|
|
|
@ -216,7 +241,7 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
|
|
|
|
|
// 6. 为顶级节点设置子节点
|
|
|
|
|
for (EmsBaseMonitorInfo root : rootNodes) {
|
|
|
|
|
setChildren(root, parentChildMap);
|
|
|
|
|
NewSetChildren(root, parentChildMap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return rootNodes.isEmpty() ? baseMonitorInfos : rootNodes;
|
|
|
|
|
@ -293,12 +318,12 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
/**
|
|
|
|
|
* 为节点设置子节点(优化的递归实现)
|
|
|
|
|
*/
|
|
|
|
|
private void setChildren(EmsBaseMonitorInfo node, Map<Long, List<EmsBaseMonitorInfo>> parentChildMap) {
|
|
|
|
|
private void NewSetChildren(EmsBaseMonitorInfo node, Map<Long, List<EmsBaseMonitorInfo>> parentChildMap) {
|
|
|
|
|
List<EmsBaseMonitorInfo> children = parentChildMap.get(node.getObjId());
|
|
|
|
|
if (children != null) {
|
|
|
|
|
node.setChildren(children);
|
|
|
|
|
for (EmsBaseMonitorInfo child : children) {
|
|
|
|
|
setChildren(child, parentChildMap);
|
|
|
|
|
NewSetChildren(child, parentChildMap);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -310,7 +335,7 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
* @param
|
|
|
|
|
* @return 树结构列表
|
|
|
|
|
*/
|
|
|
|
|
/* @Override
|
|
|
|
|
@Override
|
|
|
|
|
public List<EmsBaseMonitorInfo> buildMonitorInfoTree(List<EmsBaseMonitorInfo> baseMonitorInfos) {
|
|
|
|
|
|
|
|
|
|
// 创建一个Map来存储温度数据,键为监控ID,值为TWTempertureData对象
|
|
|
|
|
@ -326,33 +351,6 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
monitorCodes.add(monitorCode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 如果设备编号列表不为空
|
|
|
|
|
if (CollectionUtils.isNotEmpty(monitorCodes)) {
|
|
|
|
|
// 根据设备编号列表查询最新的温度数据
|
|
|
|
|
List<TWTempertureData> tempDatas = tWTempertureDataMapper.selectLastTWTempertureDataByMonitorCodes(monitorCodes);
|
|
|
|
|
// 遍历查询到的温度数据
|
|
|
|
|
for (TWTempertureData tempData : tempDatas) {
|
|
|
|
|
// 如果温度数据和温度值不为空
|
|
|
|
|
if (!ObjectUtils.isEmpty(tempData) && tempData.getTempreture() != null) {
|
|
|
|
|
// 将温度数据存入Map中,键为监控ID,值为温度数据对象
|
|
|
|
|
tempDataMap.put(tempData.getMonitorId(), tempData);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 再次遍历设备列表
|
|
|
|
|
for (EmsBaseMonitorInfo baseMonitorInfo : baseMonitorInfos) {
|
|
|
|
|
// 如果设备不为空且监控类型为1L
|
|
|
|
|
if (!ObjectUtils.isEmpty(baseMonitorInfo) && baseMonitorInfo.getMonitorType() == 1L) {
|
|
|
|
|
// 根据设备ID从Map中获取对应的温度数据
|
|
|
|
|
TWTempertureData tempData = tempDataMap.get(baseMonitorInfo.getMonitorCode());
|
|
|
|
|
// 如果温度数据不为空
|
|
|
|
|
if (!ObjectUtils.isEmpty(tempData)) {
|
|
|
|
|
// 设置设备的温度值
|
|
|
|
|
baseMonitorInfo.setTemperature(tempData.getTempreture());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<EmsBaseMonitorInfo> returnList = new ArrayList<>();
|
|
|
|
|
List<Long> tempList = baseMonitorInfos.stream().map(EmsBaseMonitorInfo::getObjId).collect(Collectors.toList());
|
|
|
|
|
@ -371,9 +369,9 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
}
|
|
|
|
|
return returnList;
|
|
|
|
|
}
|
|
|
|
|
*//**
|
|
|
|
|
/**
|
|
|
|
|
* 递归列表
|
|
|
|
|
*//*
|
|
|
|
|
*/
|
|
|
|
|
private void recursionFn(List<EmsBaseMonitorInfo> list, EmsBaseMonitorInfo t)
|
|
|
|
|
{
|
|
|
|
|
// 得到子节点列表
|
|
|
|
|
@ -386,7 +384,7 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
recursionFn(list, tChild);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|