diff --git a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/controller/EmsBaseMonitorInfoController.java b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/controller/EmsBaseMonitorInfoController.java index 61e02a5..2251f28 100644 --- a/ruoyi-ems/src/main/java/com/ruoyi/ems/base/controller/EmsBaseMonitorInfoController.java +++ b/ruoyi-ems/src/main/java/com/ruoyi/ems/base/controller/EmsBaseMonitorInfoController.java @@ -38,7 +38,7 @@ public class EmsBaseMonitorInfoController extends BaseController /** * 查询计量设备信息列表 */ - @PreAuthorize("@ss.hasPermi('ems/base:baseMonitorInfo:list')") + @GetMapping("/list") public AjaxResult list(EmsBaseMonitorInfo emsBaseMonitorInfo) { 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..459f051 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,10 @@ public interface TWTempertureDataMapper * @return */ public List selectLastTWTempertureDataList(TWTempertureData tWTempertureData); + + public TWTempertureData selectLastTWTempertureDataByMonitorCode(String monitorId); + + public List selectLastTWTempertureDataByMonitorCodes(List monitorCodes); + + public List selectLastTWTempertureData(TWTempertureData tWTempertureData); } diff --git a/ruoyi-ems/src/main/java/com/ruoyi/ems/record/service/impl/TWTempertureDataServiceImpl.java b/ruoyi-ems/src/main/java/com/ruoyi/ems/record/service/impl/TWTempertureDataServiceImpl.java index 6465f8a..baed0f2 100644 --- a/ruoyi-ems/src/main/java/com/ruoyi/ems/record/service/impl/TWTempertureDataServiceImpl.java +++ b/ruoyi-ems/src/main/java/com/ruoyi/ems/record/service/impl/TWTempertureDataServiceImpl.java @@ -134,8 +134,8 @@ public class TWTempertureDataServiceImpl implements ITWTempertureDataService @Override public List selectLastTWTempertureData(TWTempertureData tWTempertureData) { try { - // 从数据库中查询温度数据列表 - List twlist = tWTempertureDataMapper.selectTWTempertureDataList(tWTempertureData); + // 从数据库中查询数据列表 + List twlist = tWTempertureDataMapper.selectLastTWTempertureData(tWTempertureData); if (twlist == null || twlist.isEmpty()) { // 如果查询结果为空或列表为空,返回一个空列表 return Collections.emptyList(); 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..449e4a9 100644 --- a/ruoyi-ems/src/main/resources/mapper/ems/record/TWTempertureDataMapper.xml +++ b/ruoyi-ems/src/main/resources/mapper/ems/record/TWTempertureDataMapper.xml @@ -79,7 +79,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and twtd.pm10 = #{pm10} and twtd.standby = #{standby} - order by twtd.recodeTime desc @@ -184,14 +183,72 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index a45e4d6..3791a9c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -123,8 +123,20 @@ public class SecurityConfig .antMatchers("/record/recordBusbarAlarm/recordBusbarAlarmCount").permitAll() .antMatchers("/ems/record/recordIOTInstant/selectLastTWTempertureData").permitAll() .antMatchers("/record/recordBusbarTemp/boardTempList").permitAll() + .antMatchers("/ems/base/baseMonitorInfo/list").permitAll() + .antMatchers("/ems/base/baseMonitorInfo/monitorInfoTree").permitAll() + .antMatchers("/ems/base/baseMonitorInfo/monitorInfo").permitAll() + .antMatchers("/ems/base/baseMonitorInfo/**").permitAll() + .antMatchers("/ems/record/recordIOTInstant/selectLastTWTempertureData").permitAll() + .antMatchers("/ems/base/baseMonitorInfo/list").permitAll() + .antMatchers("/ems/base/baseMonitorInfo/monitorInfo/**").permitAll() + .antMatchers("/record/recordBusbarAlarm/recordBusbarAlarmList").permitAll() + // 允许匿名访问 看板 下所有页面 .antMatchers("/board/**").permitAll() + .antMatchers("/board/index2").permitAll() + .antMatchers("/board/index1").permitAll() + .antMatchers("/board/index").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); 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 + diff --git a/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarAlarmController.java b/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarAlarmController.java index 6e23278..6b4057f 100644 --- a/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarAlarmController.java +++ b/ruoyi-module/src/main/java/com/ruoyi/record/controller/RecordBusbarAlarmController.java @@ -110,7 +110,6 @@ public class RecordBusbarAlarmController extends BaseController * @param recordBusbarAlarm 需要查询的故巡检报警记录信息。 * @return 返回包含所有符合条件的巡检报警记录的列表,如果没有找到任何记录,则返回空列表。 */ - @PreAuthorize("@ss.hasPermi('record:recordBusbarAlarm:list')") @PostMapping("/recordBusbarAlarmList") public AjaxResult recordBusbarAlarmList(RecordBusbarAlarm recordBusbarAlarm) { diff --git a/ruoyi-ui/src/views/base/baseAlarmInfo/index.vue b/ruoyi-ui/src/views/base/baseAlarmInfo/index.vue index bddd219..710583e 100644 --- a/ruoyi-ui/src/views/base/baseAlarmInfo/index.vue +++ b/ruoyi-ui/src/views/base/baseAlarmInfo/index.vue @@ -35,14 +35,14 @@ /> - + - + 搜索 重置 diff --git a/ruoyi-ui/src/views/board/index2.vue b/ruoyi-ui/src/views/board/index2.vue index 30758d9..6b6c2ac 100644 --- a/ruoyi-ui/src/views/board/index2.vue +++ b/ruoyi-ui/src/views/board/index2.vue @@ -178,10 +178,10 @@ export default { }) selectLastTWTempertureData().then(e=>{ this.data2 = { - num1:e?.tempreture || 0, - num2:e?.humidity || 0, - num3:e?.illuminance || 0, - num4:e?.noise || 0, + num1:e[0]?.tempreture || 0, + num2:e[0]?.humidity || 0, + num3:e[0]?.illuminance || 0, + num4:e[0]?.noise || 0, } }) boardTempList().then(e=>{