diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataDetailInfo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataDetailInfo.java index 6dfdff3..797ef63 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataDetailInfo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataDetailInfo.java @@ -4,7 +4,7 @@ import java.math.BigDecimal; import java.util.Date; /** - * 总表详细数据 + * 电表详细数据 */ public class AmmeterDataDetailInfo { diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataVo.java index 5993239..119f4ab 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataVo.java @@ -10,6 +10,9 @@ import java.util.List; */ public class AmmeterDataVo { + /** 电表名称 */ + private String deviceName; + /** 通信状态 */ private String emsCommunicationStatus; @@ -19,6 +22,14 @@ public class AmmeterDataVo { private List ammeterDataDetailInfos; + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + public String getEmsCommunicationStatus() { return emsCommunicationStatus; } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java index 7c1d4e6..b96b482 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsAmmeterDataMapper.java @@ -3,6 +3,7 @@ package com.xzzn.ems.mapper; import java.util.List; import com.xzzn.ems.domain.EmsAmmeterData; import com.xzzn.ems.domain.vo.AmmeterDataDetailInfo; +import org.apache.ibatis.annotations.Param; /** * 总数据Mapper接口 @@ -65,5 +66,5 @@ public interface EmsAmmeterDataMapper * @param siteId * @return */ - public List getAmmeterDetailInfo(String siteId); + public List getAmmeterDetailInfo(@Param("siteId")String siteId,@Param("deviceId") String deviceId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java index a565438..d9f8a91 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDevicesSettingMapper.java @@ -74,11 +74,10 @@ public interface EmsDevicesSettingMapper * @return */ public List> getAllClusterInfoByStackId(String stackDeviceId); - /** - * 获取设备通信状态 - * @param deviceId + * 获取该设备下的所有电表 + * @param siteId * @return */ - public Map getDeviceStatus(String deviceId); + public List getAllBatteryDeviceBySiteId(String siteId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java index 51aefae..9bcd459 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java @@ -3,6 +3,7 @@ package com.xzzn.ems.service.impl; import com.xzzn.common.utils.StringUtils; import com.xzzn.ems.domain.EmsBatteryData; import com.xzzn.ems.domain.EmsCoolingData; +import com.xzzn.ems.domain.EmsDevicesSetting; import com.xzzn.ems.domain.vo.*; import com.xzzn.ems.mapper.*; import com.xzzn.ems.service.ISingleSiteService; @@ -255,20 +256,26 @@ public class SingleSiteServiceImpl implements ISingleSiteService { @Override public List getAmmeterDataList(String siteId) { List ammeterDataVos = new ArrayList<>(); - AmmeterDataVo ammeterDataVo = new AmmeterDataVo(); + if (!StringUtils.isEmpty(siteId)) { - List ammeterDataDetailInfos = emsAmmeterDataMapper.getAmmeterDetailInfo(siteId); - ammeterDataVo.setAmmeterDataDetailInfos(ammeterDataDetailInfos); - if (!CollectionUtils.isEmpty(ammeterDataDetailInfos)) { - // 获取通信状态 - String deviceId = ammeterDataDetailInfos.get(0).getDeviceId(); - Map map = emsDevicesSettingMapper.getDeviceStatus(deviceId); - ammeterDataVo.setEmsCommunicationStatus(map.get("communication_status").toString()); - // 数据更新时间 - ammeterDataVo.setDataUpdateTime(ammeterDataDetailInfos.get(0).getUpdateTime()); + // 先获取所有电表设备 + List devicesList = emsDevicesSettingMapper.getAllBatteryDeviceBySiteId(siteId); + if (!CollectionUtils.isEmpty(devicesList)) { + for (EmsDevicesSetting devicesSetting : devicesList) { + AmmeterDataVo ammeterDataVo = new AmmeterDataVo(); + ammeterDataVo.setDeviceName(devicesSetting.getDeviceName()); + ammeterDataVo.setEmsCommunicationStatus(devicesSetting.getCommunicationStatus()); + String deviceId = devicesSetting.getDeviceId(); + // 获取类别数据 + List ammeterDataDetailInfos = emsAmmeterDataMapper.getAmmeterDetailInfo(siteId,deviceId); + ammeterDataVo.setAmmeterDataDetailInfos(ammeterDataDetailInfos); + // 数据更新时间 + ammeterDataVo.setDataUpdateTime(ammeterDataDetailInfos.get(0).getUpdateTime()); + + ammeterDataVos.add(ammeterDataVo); + } } } - ammeterDataVos.add(ammeterDataVo); return ammeterDataVos; } diff --git a/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml index 1d57f80..81f17fc 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml @@ -114,23 +114,23 @@ - SELECT t.category as category, t.total_kwh as totalKwh, t.sharp_kwh as sharpKwh, t.flat_kwh as flatKwh, t.peak_kwh as peakKwh, - t.valley_kwh as valleyKwh, t.device_id as deviceId, + t.valley_kwh as valleyKwh, Max(t.data_update_time) as updateTime FROM ems_ammeter_data t INNER JOIN ( SELECT p.site_id, p.device_id,p.category,MAX(p.data_update_time) AS max_update_time FROM ems_ammeter_data p - WHERE p.site_id = #{siteId} + WHERE p.site_id = #{siteId} and p.device_id = #{deviceId} GROUP BY p.site_id,p.device_id,p.category ) latest on t.device_id = latest.device_id and t.data_update_time = latest.max_update_time - WHERE t.site_id = #{siteId} + WHERE t.site_id = #{siteId} and t.device_id = #{deviceId} group by t.category,t.total_kwh,t.sharp_kwh,t.flat_kwh,t.peak_kwh,t.valley_kwh,t.device_id order by updateTime desc diff --git a/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml index 0df74f0..a74b748 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsDevicesSettingMapper.xml @@ -151,9 +151,11 @@ where device_id in (select distinct eb.device_id from ems_battery_cluster eb where eb.stack_device_id = #{stackDeviceId}) - + select distinct e.device_id as deviceId, + t.device_name as deviceName, + t.communication_status as communicationStatus + from ems_devices_setting t INNER JOIN ems_ammeter_data e on t.site_id = e.site_id and t.device_id = e.device_id + where t.site_id = #{siteId} \ No newline at end of file