电表逻辑修改
This commit is contained in:
@ -4,7 +4,7 @@ import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 总表详细数据
|
||||
* 电表详细数据
|
||||
*/
|
||||
public class AmmeterDataDetailInfo
|
||||
{
|
||||
|
@ -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<AmmeterDataDetailInfo> ammeterDataDetailInfos;
|
||||
|
||||
public String getDeviceName() {
|
||||
return deviceName;
|
||||
}
|
||||
|
||||
public void setDeviceName(String deviceName) {
|
||||
this.deviceName = deviceName;
|
||||
}
|
||||
|
||||
public String getEmsCommunicationStatus() {
|
||||
return emsCommunicationStatus;
|
||||
}
|
||||
|
@ -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<AmmeterDataDetailInfo> getAmmeterDetailInfo(String siteId);
|
||||
public List<AmmeterDataDetailInfo> getAmmeterDetailInfo(@Param("siteId")String siteId,@Param("deviceId") String deviceId);
|
||||
}
|
||||
|
@ -74,11 +74,10 @@ public interface EmsDevicesSettingMapper
|
||||
* @return
|
||||
*/
|
||||
public List<Map<String, Object>> getAllClusterInfoByStackId(String stackDeviceId);
|
||||
|
||||
/**
|
||||
* 获取设备通信状态
|
||||
* @param deviceId
|
||||
* 获取该设备下的所有电表
|
||||
* @param siteId
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> getDeviceStatus(String deviceId);
|
||||
public List<EmsDevicesSetting> getAllBatteryDeviceBySiteId(String siteId);
|
||||
}
|
||||
|
@ -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<AmmeterDataVo> getAmmeterDataList(String siteId) {
|
||||
List<AmmeterDataVo> ammeterDataVos = new ArrayList<>();
|
||||
AmmeterDataVo ammeterDataVo = new AmmeterDataVo();
|
||||
|
||||
if (!StringUtils.isEmpty(siteId)) {
|
||||
List<AmmeterDataDetailInfo> ammeterDataDetailInfos = emsAmmeterDataMapper.getAmmeterDetailInfo(siteId);
|
||||
// 先获取所有电表设备
|
||||
List<EmsDevicesSetting> 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<AmmeterDataDetailInfo> ammeterDataDetailInfos = emsAmmeterDataMapper.getAmmeterDetailInfo(siteId,deviceId);
|
||||
ammeterDataVo.setAmmeterDataDetailInfos(ammeterDataDetailInfos);
|
||||
if (!CollectionUtils.isEmpty(ammeterDataDetailInfos)) {
|
||||
// 获取通信状态
|
||||
String deviceId = ammeterDataDetailInfos.get(0).getDeviceId();
|
||||
Map<String,Object> map = emsDevicesSettingMapper.getDeviceStatus(deviceId);
|
||||
ammeterDataVo.setEmsCommunicationStatus(map.get("communication_status").toString());
|
||||
// 数据更新时间
|
||||
ammeterDataVo.setDataUpdateTime(ammeterDataDetailInfos.get(0).getUpdateTime());
|
||||
}
|
||||
}
|
||||
|
||||
ammeterDataVos.add(ammeterDataVo);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ammeterDataVos;
|
||||
}
|
||||
|
||||
|
@ -114,23 +114,23 @@
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="getAmmeterDetailInfo" parameterType="String" resultType="com.xzzn.ems.domain.vo.AmmeterDataDetailInfo">
|
||||
<select id="getAmmeterDetailInfo" resultType="com.xzzn.ems.domain.vo.AmmeterDataDetailInfo">
|
||||
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
|
||||
</select>
|
||||
|
@ -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>
|
||||
|
||||
<select id="getDeviceStatus" parameterType="String" resultType="java.util.Map">
|
||||
select device_id as id,communication_status
|
||||
from ems_devices_setting
|
||||
where device_id = #{deviceId}
|
||||
<select id="getAllBatteryDeviceBySiteId" parameterType="String" resultType="com.xzzn.ems.domain.EmsDevicesSetting">
|
||||
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}
|
||||
</select>
|
||||
</mapper>
|
Reference in New Issue
Block a user