From a970b2889e53ae397a7cf90c908756ca8adfba45 Mon Sep 17 00:00:00 2001 From: zch Date: Tue, 17 Dec 2024 10:32:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(ems):=20=E4=B8=BA=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=B7=BB=E5=8A=A0=E6=B8=A9=E5=BA=A6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=B1=95=E7=A4=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 EmsBaseMonitorInfo 模型中添加 temperature 字段 - 更新 TreeSelects 模型以支持温度数据 -调整温度数据查询接口 - 新增温度数据查询 SQL - 修改sql中selectIotInstantMinitoringData以recodeTime排序 --- .../ems/base/domain/EmsBaseMonitorInfo.java | 18 ++++++ .../ruoyi/ems/base/domain/TreeSelects.java | 15 +++++ .../impl/EmsBaseMonitorInfoServiceImpl.java | 62 +++++++++++++++++-- .../TWTempertureDataController.java | 8 +-- .../record/mapper/TWTempertureDataMapper.java | 4 ++ .../ems/record/TWTempertureDataMapper.xml | 28 ++++++++- ruoyi-module/pom.xml | 2 +- 7 files changed, 125 insertions(+), 12 deletions(-) diff --git a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/EmsBaseMonitorInfo.java b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/EmsBaseMonitorInfo.java index 889c1dd..19ec8f9 100644 --- a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/EmsBaseMonitorInfo.java +++ b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/EmsBaseMonitorInfo.java @@ -6,6 +6,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.TreeEntity; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -98,6 +99,11 @@ public class EmsBaseMonitorInfo extends BaseEntity private List monitorTypeList; + + private BigDecimal temperature; + + + public List getMonitorTypeList() { return monitorTypeList; } @@ -300,6 +306,17 @@ public class EmsBaseMonitorInfo extends BaseEntity return monitorHierarchy; } + + public BigDecimal getTemperature() { + return temperature; + } + + public void setTemperature(BigDecimal temperature) { + this.temperature = temperature; + } + + + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -323,6 +340,7 @@ public class EmsBaseMonitorInfo extends BaseEntity .append("updateTime", getUpdateTime()) .append("publicShareType", getPublicShareType()) .append("monitorHierarchy", getMonitorHierarchy()) + .append("temperature",getTemperature()) .toString(); } } diff --git a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/TreeSelects.java b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/TreeSelects.java index bd01889..a82d96f 100644 --- a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/TreeSelects.java +++ b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/domain/TreeSelects.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysMenu; import java.io.Serializable; +import java.math.BigDecimal; import java.util.List; import java.util.stream.Collectors; @@ -28,6 +29,10 @@ public class TreeSelects implements Serializable private Long monitorType; + private BigDecimal tempreture; + + + /** 子节点 */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private List children; @@ -50,6 +55,7 @@ public class TreeSelects implements Serializable this.code = baseMonitorInfo.getMonitorCode(); this.children = baseMonitorInfo.getChildren().stream().map(TreeSelects::new).collect(Collectors.toList()); this.monitorType = baseMonitorInfo.getMonitorType(); + this.tempreture = baseMonitorInfo.getTemperature(); } public TreeSelects(EmsBaseWorkUnit baseWorkUnit){ @@ -111,4 +117,13 @@ public class TreeSelects implements Serializable public void setMonitorType(Long monitorType) { this.monitorType = monitorType; } + + + public BigDecimal getTempreture() { + return tempreture; + } + + public void setTempreture(BigDecimal tempreture) { + this.tempreture = tempreture; + } } diff --git a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java index 848f269..1b022fa 100644 --- a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java +++ b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/service/impl/EmsBaseMonitorInfoServiceImpl.java @@ -1,13 +1,20 @@ package com.ruoyi.ems.base.service.impl; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; + +import java.util.function.Function; import java.util.stream.Collectors; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.ems.base.domain.TreeSelects; +import com.ruoyi.ems.record.domain.TWTempertureData; +import com.ruoyi.ems.record.mapper.TWTempertureDataMapper; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.util.ObjectUtils; + + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.ems.base.mapper.EmsBaseMonitorInfoMapper; @@ -26,6 +33,8 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService @Autowired private EmsBaseMonitorInfoMapper emsBaseMonitorInfoMapper; + @Autowired + private TWTempertureDataMapper tWTempertureDataMapper; /** * 查询计量设备信息 * @@ -139,9 +148,50 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService * @return 树结构列表 */ @Override - public List buildMonitorInfoTree(List baseMonitorInfos) - { - List returnList = new ArrayList(); + public List buildMonitorInfoTree(List baseMonitorInfos) { + + // 创建一个Map来存储温度数据,键为监控ID,值为TWTempertureData对象 + Map tempDataMap = new HashMap<>(); + // 创建一个List来存储设备编号 + List monitorCodes = new ArrayList<>(); + // 遍历设备列表 + for (EmsBaseMonitorInfo baseMonitorInfo : baseMonitorInfos) { + // 如果设备不为空且监控类型为1L + if (!ObjectUtils.isEmpty(baseMonitorInfo) && baseMonitorInfo.getMonitorType() == 1L) { + // 获取设备编号并添加到设备编号列表中 + String monitorCode = baseMonitorInfo.getMonitorCode(); + monitorCodes.add(monitorCode); + } + } + // 如果设备编号列表不为空 + if (CollectionUtils.isNotEmpty(monitorCodes)) { + // 根据设备编号列表查询最新的温度数据 + List 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 returnList = new ArrayList<>(); List tempList = baseMonitorInfos.stream().map(EmsBaseMonitorInfo::getObjId).collect(Collectors.toList()); for (EmsBaseMonitorInfo baseMonitorInfo : baseMonitorInfos) { diff --git a/ruoyi-ems/src/main/java/com/ruoyi/ems/record/controller/TWTempertureDataController.java b/ruoyi-ems/src/main/java/com/ruoyi/ems/record/controller/TWTempertureDataController.java index d2b088f..7f519cf 100644 --- a/ruoyi-ems/src/main/java/com/ruoyi/ems/record/controller/TWTempertureDataController.java +++ b/ruoyi-ems/src/main/java/com/ruoyi/ems/record/controller/TWTempertureDataController.java @@ -221,15 +221,15 @@ public class TWTempertureDataController extends BaseController return tWTempertureDataService.selectLastTWTempertureData(tWTempertureData); } - /** +/* *//** * 看板查询物联网实时数据列表 - */ + *//* @PreAuthorize("@ss.hasPermi('ems/record:recordIOTInstant:list')") @PostMapping("/boardTWTempertureDataList") public AjaxResult boardTWTempertureDataList(TWTempertureData tWTempertureData) { - List list = tWTempertureDataService.selectTWTempertureDataList(tWTempertureData); + List list = tWTempertureDataService.selectBoardTWTempertureDataList(tWTempertureData); return success(list); - } + }*/ } diff --git a/ruoyi-ems/src/main/java/com/ruoyi/ems/record/mapper/TWTempertureDataMapper.java b/ruoyi-ems/src/main/java/com/ruoyi/ems/record/mapper/TWTempertureDataMapper.java index 884329d..c532502 100644 --- a/ruoyi-ems/src/main/java/com/ruoyi/ems/record/mapper/TWTempertureDataMapper.java +++ b/ruoyi-ems/src/main/java/com/ruoyi/ems/record/mapper/TWTempertureDataMapper.java @@ -79,4 +79,8 @@ public interface TWTempertureDataMapper * @return */ public List selectLastTWTempertureDataList(TWTempertureData tWTempertureData); + + public TWTempertureData selectLastTWTempertureDataByMonitorCode(String monitorId); + + public List selectLastTWTempertureDataByMonitorCodes(List monitorCodes); } diff --git a/ruoyi-ems/src/main/resources/mapper/ems/record/TWTempertureDataMapper.xml b/ruoyi-ems/src/main/resources/mapper/ems/record/TWTempertureDataMapper.xml index 70cc8cd..09e1bf1 100644 --- a/ruoyi-ems/src/main/resources/mapper/ems/record/TWTempertureDataMapper.xml +++ b/ruoyi-ems/src/main/resources/mapper/ems/record/TWTempertureDataMapper.xml @@ -103,7 +103,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and twtd.monitorId = #{monitorId} - order by twtd.recordTime desc + order by twtd.recodeTime desc @@ -194,4 +194,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where twtd.rownum = 1; + + + + + + + diff --git a/ruoyi-module/pom.xml b/ruoyi-module/pom.xml index 88ff036..1daca63 100644 --- a/ruoyi-module/pom.xml +++ b/ruoyi-module/pom.xml @@ -26,4 +26,4 @@ - \ No newline at end of file +