diff --git a/os-ems/src/main/java/com/os/ems/record/mapper/EmsRecordSteamInstantMapper.java b/os-ems/src/main/java/com/os/ems/record/mapper/EmsRecordSteamInstantMapper.java index 6d24066..dd4a23a 100644 --- a/os-ems/src/main/java/com/os/ems/record/mapper/EmsRecordSteamInstantMapper.java +++ b/os-ems/src/main/java/com/os/ems/record/mapper/EmsRecordSteamInstantMapper.java @@ -59,14 +59,6 @@ public interface EmsRecordSteamInstantMapper { */ public int deleteEmsRecordSteamInstantByObjIds(Long[] objIds); - /** - * 查询蒸汽实时最后一条数据列表 - * - * @param emsRecordSteamInstant 蒸汽历史数据 - * @return 蒸汽实时数据 - */ - public List selectEmsRecordLatestSteamInstantList(EmsRecordSteamInstant emsRecordSteamInstant); - /** * 根据时间段查询蒸汽历史数据列表 @@ -76,4 +68,22 @@ public interface EmsRecordSteamInstantMapper { */ public List selectEmsRecordSteamInstantListByTime(EmsRecordSteamInstant emsRecordSteamInstant); + + /** + * 查询每个设备的最新一条记录 + * + * @param emsRecordSteamInstant 蒸汽历史数据 + * @return 蒸汽实时数据 + */ + public List selectEmsRecordLatestSteamInstantList(EmsRecordSteamInstant emsRecordSteamInstant); + + + + /** + * 根据MonitorCode分组查询每个设备的最新一条记录 + * + * @param emsRecordSteamInstant 蒸汽历史数据 + * @return 蒸汽实时数据 + */ + public List selectEmsRecordLatestSteamInstantListByMonitorCode(EmsRecordSteamInstant emsRecordSteamInstant); } diff --git a/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java b/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java index 2a4a4db..d1527ff 100644 --- a/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java +++ b/os-ems/src/main/java/com/os/ems/record/service/impl/EmsRecordSteamInstantServiceImpl.java @@ -1,6 +1,7 @@ package com.os.ems.record.service.impl; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -90,16 +91,36 @@ public class EmsRecordSteamInstantServiceImpl implements IEmsRecordSteamInstantS /** - * 查询蒸汽实时最后一条数据列表 + * 查询蒸汽实时最新一条数据列表 * * @param emsRecordSteamInstant 蒸汽历史数据 * @return 蒸汽实时数据 */ @Override public List selectEmsRecordLatestSteamInstantList(EmsRecordSteamInstant emsRecordSteamInstant){ -/* return emsRecordSteamInstantMapper.selectEmsRecordLatestSteamInstantList(emsRecordSteamInstant);*/ - //只返回第一条数据,subList从索引0开始,只截取1条 - return emsRecordSteamInstantMapper.selectEmsRecordLatestSteamInstantList(emsRecordSteamInstant).subList(0,1); + //获取监控编码 + String monitorCode = emsRecordSteamInstant.getMonitorCode(); + //初始化返回列表 + List emsRecordSteamInstants = new ArrayList<>(); + //判断监控编码是否为空 + if (monitorCode == null){ + //没有选择设备,monitorCode为空的时候,分组查询全部设备的最新一条记录 + List allEmsRecordSteamInstants = emsRecordSteamInstantMapper + .selectEmsRecordLatestSteamInstantList(emsRecordSteamInstant); + //遍历查询结果 + for (EmsRecordSteamInstant recordSteamInstantallEmsRecordSteamInstants : allEmsRecordSteamInstants){ + //如果有设备名称就添加到返回集合中 + if (recordSteamInstantallEmsRecordSteamInstants.getMonitorName() != null){ + emsRecordSteamInstants.add(recordSteamInstantallEmsRecordSteamInstants); + } + } + }else { + //选择了设备,monitorCode不为空的时候,根据monitorCode查询指定设备的最新一条记录 + emsRecordSteamInstants = emsRecordSteamInstantMapper + .selectEmsRecordLatestSteamInstantListByMonitorCode(emsRecordSteamInstant).subList(0, 1); + } + //返回查询结果 + return emsRecordSteamInstants; } diff --git a/os-ems/src/main/resources/mapper/ems/record/EmsRecordSteamInstantMapper.xml b/os-ems/src/main/resources/mapper/ems/record/EmsRecordSteamInstantMapper.xml index be75127..18e7fcd 100644 --- a/os-ems/src/main/resources/mapper/ems/record/EmsRecordSteamInstantMapper.xml +++ b/os-ems/src/main/resources/mapper/ems/record/EmsRecordSteamInstantMapper.xml @@ -66,30 +66,7 @@ where ersi.obj_id = #{objId} - + @@ -176,4 +153,92 @@ order by ersi.record_time desc - \ No newline at end of file + + + + + + + + + + + +