电表逻辑修改
This commit is contained in:
@ -4,7 +4,7 @@ import java.math.BigDecimal;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总表详细数据
|
* 电表详细数据
|
||||||
*/
|
*/
|
||||||
public class AmmeterDataDetailInfo
|
public class AmmeterDataDetailInfo
|
||||||
{
|
{
|
||||||
|
@ -10,6 +10,9 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class AmmeterDataVo {
|
public class AmmeterDataVo {
|
||||||
|
|
||||||
|
/** 电表名称 */
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
/** 通信状态 */
|
/** 通信状态 */
|
||||||
private String emsCommunicationStatus;
|
private String emsCommunicationStatus;
|
||||||
|
|
||||||
@ -19,6 +22,14 @@ public class AmmeterDataVo {
|
|||||||
|
|
||||||
private List<AmmeterDataDetailInfo> ammeterDataDetailInfos;
|
private List<AmmeterDataDetailInfo> ammeterDataDetailInfos;
|
||||||
|
|
||||||
|
public String getDeviceName() {
|
||||||
|
return deviceName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceName(String deviceName) {
|
||||||
|
this.deviceName = deviceName;
|
||||||
|
}
|
||||||
|
|
||||||
public String getEmsCommunicationStatus() {
|
public String getEmsCommunicationStatus() {
|
||||||
return emsCommunicationStatus;
|
return emsCommunicationStatus;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package com.xzzn.ems.mapper;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.xzzn.ems.domain.EmsAmmeterData;
|
import com.xzzn.ems.domain.EmsAmmeterData;
|
||||||
import com.xzzn.ems.domain.vo.AmmeterDataDetailInfo;
|
import com.xzzn.ems.domain.vo.AmmeterDataDetailInfo;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总数据Mapper接口
|
* 总数据Mapper接口
|
||||||
@ -65,5 +66,5 @@ public interface EmsAmmeterDataMapper
|
|||||||
* @param siteId
|
* @param siteId
|
||||||
* @return
|
* @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
|
* @return
|
||||||
*/
|
*/
|
||||||
public List<Map<String, Object>> getAllClusterInfoByStackId(String stackDeviceId);
|
public List<Map<String, Object>> getAllClusterInfoByStackId(String stackDeviceId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取设备通信状态
|
* 获取该设备下的所有电表
|
||||||
* @param deviceId
|
* @param siteId
|
||||||
* @return
|
* @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.common.utils.StringUtils;
|
||||||
import com.xzzn.ems.domain.EmsBatteryData;
|
import com.xzzn.ems.domain.EmsBatteryData;
|
||||||
import com.xzzn.ems.domain.EmsCoolingData;
|
import com.xzzn.ems.domain.EmsCoolingData;
|
||||||
|
import com.xzzn.ems.domain.EmsDevicesSetting;
|
||||||
import com.xzzn.ems.domain.vo.*;
|
import com.xzzn.ems.domain.vo.*;
|
||||||
import com.xzzn.ems.mapper.*;
|
import com.xzzn.ems.mapper.*;
|
||||||
import com.xzzn.ems.service.ISingleSiteService;
|
import com.xzzn.ems.service.ISingleSiteService;
|
||||||
@ -255,20 +256,26 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
@Override
|
@Override
|
||||||
public List<AmmeterDataVo> getAmmeterDataList(String siteId) {
|
public List<AmmeterDataVo> getAmmeterDataList(String siteId) {
|
||||||
List<AmmeterDataVo> ammeterDataVos = new ArrayList<>();
|
List<AmmeterDataVo> ammeterDataVos = new ArrayList<>();
|
||||||
AmmeterDataVo ammeterDataVo = new AmmeterDataVo();
|
|
||||||
if (!StringUtils.isEmpty(siteId)) {
|
if (!StringUtils.isEmpty(siteId)) {
|
||||||
List<AmmeterDataDetailInfo> ammeterDataDetailInfos = emsAmmeterDataMapper.getAmmeterDetailInfo(siteId);
|
// 先获取所有电表设备
|
||||||
ammeterDataVo.setAmmeterDataDetailInfos(ammeterDataDetailInfos);
|
List<EmsDevicesSetting> devicesList = emsDevicesSettingMapper.getAllBatteryDeviceBySiteId(siteId);
|
||||||
if (!CollectionUtils.isEmpty(ammeterDataDetailInfos)) {
|
if (!CollectionUtils.isEmpty(devicesList)) {
|
||||||
// 获取通信状态
|
for (EmsDevicesSetting devicesSetting : devicesList) {
|
||||||
String deviceId = ammeterDataDetailInfos.get(0).getDeviceId();
|
AmmeterDataVo ammeterDataVo = new AmmeterDataVo();
|
||||||
Map<String,Object> map = emsDevicesSettingMapper.getDeviceStatus(deviceId);
|
ammeterDataVo.setDeviceName(devicesSetting.getDeviceName());
|
||||||
ammeterDataVo.setEmsCommunicationStatus(map.get("communication_status").toString());
|
ammeterDataVo.setEmsCommunicationStatus(devicesSetting.getCommunicationStatus());
|
||||||
// 数据更新时间
|
String deviceId = devicesSetting.getDeviceId();
|
||||||
ammeterDataVo.setDataUpdateTime(ammeterDataDetailInfos.get(0).getUpdateTime());
|
// 获取类别数据
|
||||||
|
List<AmmeterDataDetailInfo> ammeterDataDetailInfos = emsAmmeterDataMapper.getAmmeterDetailInfo(siteId,deviceId);
|
||||||
|
ammeterDataVo.setAmmeterDataDetailInfos(ammeterDataDetailInfos);
|
||||||
|
// 数据更新时间
|
||||||
|
ammeterDataVo.setDataUpdateTime(ammeterDataDetailInfos.get(0).getUpdateTime());
|
||||||
|
|
||||||
|
ammeterDataVos.add(ammeterDataVo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ammeterDataVos.add(ammeterDataVo);
|
|
||||||
return ammeterDataVos;
|
return ammeterDataVos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,23 +114,23 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</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,
|
SELECT t.category as category,
|
||||||
t.total_kwh as totalKwh,
|
t.total_kwh as totalKwh,
|
||||||
t.sharp_kwh as sharpKwh,
|
t.sharp_kwh as sharpKwh,
|
||||||
t.flat_kwh as flatKwh,
|
t.flat_kwh as flatKwh,
|
||||||
t.peak_kwh as peakKwh,
|
t.peak_kwh as peakKwh,
|
||||||
t.valley_kwh as valleyKwh,
|
|
||||||
t.device_id as deviceId,
|
t.device_id as deviceId,
|
||||||
|
t.valley_kwh as valleyKwh,
|
||||||
Max(t.data_update_time) as updateTime
|
Max(t.data_update_time) as updateTime
|
||||||
FROM ems_ammeter_data t
|
FROM ems_ammeter_data t
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT p.site_id, p.device_id,p.category,MAX(p.data_update_time) AS max_update_time
|
SELECT p.site_id, p.device_id,p.category,MAX(p.data_update_time) AS max_update_time
|
||||||
FROM ems_ammeter_data p
|
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
|
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
|
) 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
|
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
|
order by updateTime desc
|
||||||
</select>
|
</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})
|
where device_id in (select distinct eb.device_id from ems_battery_cluster eb where eb.stack_device_id = #{stackDeviceId})
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getDeviceStatus" parameterType="String" resultType="java.util.Map">
|
<select id="getAllBatteryDeviceBySiteId" parameterType="String" resultType="com.xzzn.ems.domain.EmsDevicesSetting">
|
||||||
select device_id as id,communication_status
|
select distinct e.device_id as deviceId,
|
||||||
from ems_devices_setting
|
t.device_name as deviceName,
|
||||||
where device_id = #{deviceId}
|
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>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Reference in New Issue
Block a user