feat(ems): 新增看板计量设备信息下拉树结构功能

- 在后端新增 boardMonitorInfoTree 接口,用于获取看板计量设备信息下拉树结构
- 在前端新增 boardMonitorInfoTree API 调用,用于请求看板计量设备信息下拉树结构数据
- 修改前端看板页面,使用新的 boardMonitorInfoTree 方法获取数据
-优化后端服务实现,增加 MonitorInfoTreeList 和 MonitorInfoTreeSelect 方法
IOT
zch 7 months ago
parent 2fc382585c
commit e064749d76

@ -55,6 +55,20 @@ public class EmsBaseMonitorInfoController extends BaseController
return success(list);
}
/**
*
* */
@PostMapping("/boardMonitorInfoTree")
public AjaxResult boardMonitorInfoTree(@RequestBody EmsBaseMonitorInfo baseMonitorInfo) {
List<TreeSelects> list = emsBaseMonitorInfoService.MonitorInfoTreeList(baseMonitorInfo);
return success(list);
}
/**
*
*/

@ -71,6 +71,11 @@ public interface IEmsBaseMonitorInfoService
* */
List<TreeSelects> selectBaseMonitorInfoTreeList(EmsBaseMonitorInfo baseMonitorInfo);
/**
*
* */
List<TreeSelects> MonitorInfoTreeList(EmsBaseMonitorInfo baseMonitorInfo);
/**
*
*
@ -93,4 +98,21 @@ public interface IEmsBaseMonitorInfoService
* @return
*/
public int getMonitorCountByEnergyType(String energyType);
/**
*
*
* @param
* @return
*/
public List<TreeSelects> MonitorInfoTreeSelect(List<EmsBaseMonitorInfo> baseMonitorInfos);
/**
*
*
* @param
* @return
*/
public List<EmsBaseMonitorInfo> MonitorInfoTree(List<EmsBaseMonitorInfo> baseMonitorInfos);
}

@ -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);
}
}
}*/
}
/**

@ -28,3 +28,13 @@ export function monitorInfoTree(query) {
})
}
// 查询看板计量设备信息下拉树结构
export function boardMonitorInfoTree(data) {
return request({
url: '/ems/base/baseMonitorInfo/boardMonitorInfoTree',
method: 'post',
data: data
})
}

@ -52,6 +52,17 @@ export function getMonitorInfoTree(data) {
})
}
// 查询看板计量设备信息下拉树结构
export function boardMonitorInfoTree(data) {
return request({
url: '/ems/base/baseMonitorInfo/boardMonitorInfoTree',
method: 'post',
data: data
})
}
//获取指定能源类型的设备数量。
export function getMonitorCountByEnergyType(energyType) {
return request({

@ -37,7 +37,7 @@
<script>
import {monitorInfoTree} from "@/api/board/index1";
import {boardMonitorInfoTree} from "@/api/board/index1";
export default {
data() {
@ -56,7 +56,7 @@ export default {
},
methods: {
getData() {
monitorInfoTree({monitorType: 1}).then(e => {
boardMonitorInfoTree({monitorType: 1}).then(e => {
this.list = e.data
})
},

Loading…
Cancel
Save