0918优化-单站监控-电表数据修改
This commit is contained in:
@ -7,8 +7,10 @@ package com.xzzn.common.enums;
|
|||||||
*/
|
*/
|
||||||
public enum AmmeterCategory
|
public enum AmmeterCategory
|
||||||
{
|
{
|
||||||
CURRENT_COMB_ACTIVE("1", "当前组合有功电能"),
|
CURRENT_FORWARD_ACTIVE("1", "当前正向有功电能"),
|
||||||
CURRENT_COMB_REACTIVE("2", "当前组合无功电能"),
|
CURRENT_FORWARD_REACTIVE("2", "当前正向无功电能"),
|
||||||
|
CURRENT_REVERSE_ACTIVE("3", "当前反向有功电能"),
|
||||||
|
CURRENT_REVERSE_REACTIVE("4", "当前反向无功电能"),
|
||||||
A_POWER("3", "A相功率"),
|
A_POWER("3", "A相功率"),
|
||||||
B_POWER("4", "B相功率"),
|
B_POWER("4", "B相功率"),
|
||||||
C_POWER("5", "C相功率");
|
C_POWER("5", "C相功率");
|
||||||
|
|||||||
@ -1,23 +1,21 @@
|
|||||||
package com.xzzn.ems.domain.vo;
|
package com.xzzn.ems.domain.vo;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电表数据
|
* 电表数据
|
||||||
*/
|
*/
|
||||||
public class AmmeterDataResponse {
|
public class AmmeterDataResponse {
|
||||||
|
|
||||||
/** 总表信息 */
|
/** 总表信息 */
|
||||||
private AmmeterLoadDataVo ammeterLoadData;
|
private AmmeterDataVo ammeterLoadData;
|
||||||
|
|
||||||
/** 储能表信息 */
|
/** 储能表信息 */
|
||||||
private AmmeterMeteDataVo ammeterMeteData;
|
private AmmeterMeteDataVo ammeterMeteData;
|
||||||
|
|
||||||
public AmmeterLoadDataVo getAmmeterLoadData() {
|
public AmmeterDataVo getAmmeterLoadData() {
|
||||||
return ammeterLoadData;
|
return ammeterLoadData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAmmeterLoadDataVoList(AmmeterLoadDataVo ammeterLoadData) {
|
public void setAmmeterLoadDataVoList(AmmeterDataVo ammeterLoadData) {
|
||||||
this.ammeterLoadData = ammeterLoadData;
|
this.ammeterLoadData = ammeterLoadData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,9 +6,9 @@ import java.util.Date;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电表-总表数据
|
* 电表数据
|
||||||
*/
|
*/
|
||||||
public class AmmeterLoadDataVo {
|
public class AmmeterDataVo {
|
||||||
|
|
||||||
/** 电表名称 */
|
/** 电表名称 */
|
||||||
private String deviceName;
|
private String deviceName;
|
||||||
@ -23,7 +23,7 @@ public class AmmeterLoadDataVo {
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date dataUpdateTime;
|
private Date dataUpdateTime;
|
||||||
|
|
||||||
/** 总表数据信息 */
|
/** 表数据信息 */
|
||||||
private List<LoadDataDetailInfo> loadDataDetailInfo;
|
private List<LoadDataDetailInfo> loadDataDetailInfo;
|
||||||
|
|
||||||
public String getDeviceName() {
|
public String getDeviceName() {
|
||||||
@ -845,13 +845,13 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl
|
|||||||
dataMete.setCurrentCombReactiveFlat(StringUtils.getBigDecimal(obj.get("DQZHWGPDN")));
|
dataMete.setCurrentCombReactiveFlat(StringUtils.getBigDecimal(obj.get("DQZHWGPDN")));
|
||||||
dataMete.setCurrentCombReactiveValley(StringUtils.getBigDecimal(obj.get("DQZHWGGDN")));
|
dataMete.setCurrentCombReactiveValley(StringUtils.getBigDecimal(obj.get("DQZHWGGDN")));
|
||||||
// 电能设置-正向无功
|
// 电能设置-正向无功
|
||||||
dataMete.setCurrentForwardReactiveTotal(StringUtils.getBigDecimal(obj.get("DQZXWGZDN")));
|
dataMete.setCurrentForwardReactiveTotal(StringUtils.getBigDecimal(obj.get("DQZXZWGDN")));
|
||||||
dataMete.setCurrentForwardReactivePeak(StringUtils.getBigDecimal(obj.get("DQZXWGJDN")));
|
dataMete.setCurrentForwardReactivePeak(StringUtils.getBigDecimal(obj.get("DQZXWGJDN")));
|
||||||
dataMete.setCurrentForwardReactiveHigh(StringUtils.getBigDecimal(obj.get("DQZXWGFDN")));
|
dataMete.setCurrentForwardReactiveHigh(StringUtils.getBigDecimal(obj.get("DQZXWGFDN")));
|
||||||
dataMete.setCurrentForwardReactiveFlat(StringUtils.getBigDecimal(obj.get("DQZXWGPDN")));
|
dataMete.setCurrentForwardReactiveFlat(StringUtils.getBigDecimal(obj.get("DQZXWGPDN")));
|
||||||
dataMete.setCurrentForwardReactiveValley(StringUtils.getBigDecimal(obj.get("DQZXWGGDN")));
|
dataMete.setCurrentForwardReactiveValley(StringUtils.getBigDecimal(obj.get("DQZXWGGDN")));
|
||||||
// 电能设置-反向无功
|
// 电能设置-反向无功
|
||||||
dataMete.setCurrentReverseReactiveTotal(StringUtils.getBigDecimal(obj.get("DQFXWGZDN")));
|
dataMete.setCurrentReverseReactiveTotal(StringUtils.getBigDecimal(obj.get("DQFXZWGDN")));
|
||||||
dataMete.setCurrentReverseReactivePeak(StringUtils.getBigDecimal(obj.get("DQFXWGJDN")));
|
dataMete.setCurrentReverseReactivePeak(StringUtils.getBigDecimal(obj.get("DQFXWGJDN")));
|
||||||
dataMete.setCurrentReverseReactiveHigh(StringUtils.getBigDecimal(obj.get("DQFXWGFDN")));
|
dataMete.setCurrentReverseReactiveHigh(StringUtils.getBigDecimal(obj.get("DQFXWGFDN")));
|
||||||
dataMete.setCurrentReverseReactiveFlat(StringUtils.getBigDecimal(obj.get("DQFXWGPDN")));
|
dataMete.setCurrentReverseReactiveFlat(StringUtils.getBigDecimal(obj.get("DQFXWGPDN")));
|
||||||
|
|||||||
@ -450,38 +450,32 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AmmeterDataResponse getAmmeterDataList(String siteId) {
|
public List<AmmeterDataVo> getAmmeterDataList(String siteId) {
|
||||||
AmmeterDataResponse ammeterResponse = new AmmeterDataResponse();
|
List<AmmeterDataVo> ammeterResponse = new ArrayList<>();
|
||||||
|
|
||||||
if (!StringUtils.isEmpty(siteId)) {
|
if (StringUtils.isEmpty(siteId)) {
|
||||||
// 先获取电表设备
|
return ammeterResponse;
|
||||||
List<Map<String, Object>> ammeterIdList = emsDevicesSettingMapper.getDeviceInfosBySiteIdAndCategory(siteId, DeviceCategory.AMMETER.getCode());
|
}
|
||||||
|
|
||||||
for (Map<String, Object> ammeterDevice : ammeterIdList) {
|
// 先获取电表设备
|
||||||
String ammeterId = ammeterDevice.get("id").toString();
|
List<Map<String, Object>> ammeterIdList = emsDevicesSettingMapper.getDeviceInfosBySiteIdAndCategory(siteId, DeviceCategory.AMMETER.getCode());
|
||||||
// 从redis取总表详细数据
|
if (ammeterIdList == null || ammeterIdList.isEmpty()) {
|
||||||
EmsAmmeterData ammeterData = redisCache.getCacheObject(RedisKeyConstants.AMMETER + siteId + "_" +ammeterId);
|
return ammeterResponse;
|
||||||
// 判断电表类型
|
}
|
||||||
if (AMMETER_DEVICE_LOAD.equals(ammeterId)) {
|
|
||||||
AmmeterLoadDataVo ammeterLoadDataVo = new AmmeterLoadDataVo();
|
for (Map<String, Object> ammeterDevice : ammeterIdList) {
|
||||||
ammeterLoadDataVo.setDeviceName(ammeterDevice.get("deviceName").toString());
|
String ammeterId = ammeterDevice.get("id").toString();
|
||||||
ammeterLoadDataVo.setDeviceId(ammeterDevice.get("id").toString());
|
// 从redis取总表详细数据
|
||||||
ammeterLoadDataVo.setEmsCommunicationStatus(ammeterDevice.get("communicationStatus") == null? "" :
|
EmsAmmeterData ammeterData = redisCache.getCacheObject(RedisKeyConstants.AMMETER + siteId + "_" +ammeterId);
|
||||||
ammeterDevice.get("communicationStatus").toString());
|
|
||||||
// 处理总表数据
|
AmmeterDataVo ammeterLoadDataVo = new AmmeterDataVo();
|
||||||
dealAmmeterLoadData(ammeterData,ammeterLoadDataVo);
|
ammeterLoadDataVo.setDeviceName(ammeterDevice.get("deviceName").toString());
|
||||||
ammeterResponse.setAmmeterLoadDataVoList(ammeterLoadDataVo);
|
ammeterLoadDataVo.setDeviceId(ammeterDevice.get("id").toString());
|
||||||
} else if (AMMETER_DEVICE_METE.equals(ammeterId)) {
|
ammeterLoadDataVo.setEmsCommunicationStatus(ammeterDevice.get("communicationStatus") == null? "" :
|
||||||
AmmeterMeteDataVo ammeterMeteDataVo = new AmmeterMeteDataVo();
|
ammeterDevice.get("communicationStatus").toString());
|
||||||
ammeterMeteDataVo.setDeviceName(ammeterDevice.get("deviceName").toString());
|
// 设置表数据
|
||||||
ammeterMeteDataVo.setDeviceId(ammeterDevice.get("id").toString());
|
dealAmmeterLoadData(ammeterData,ammeterLoadDataVo);
|
||||||
ammeterMeteDataVo.setEmsCommunicationStatus(ammeterDevice.get("communicationStatus") == null? "" :
|
ammeterResponse.add(ammeterLoadDataVo);
|
||||||
ammeterDevice.get("communicationStatus").toString());
|
|
||||||
// 处理储能表数据
|
|
||||||
dealAmmeterMeteData(ammeterData,ammeterMeteDataVo);
|
|
||||||
ammeterResponse.setAmmeterMeteDataVoList(ammeterMeteDataVo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return ammeterResponse;
|
return ammeterResponse;
|
||||||
}
|
}
|
||||||
@ -515,31 +509,49 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dealAmmeterLoadData(EmsAmmeterData ammeterData, AmmeterLoadDataVo ammeterDataVo) {
|
private void dealAmmeterLoadData(EmsAmmeterData ammeterData, AmmeterDataVo ammeterDataVo) {
|
||||||
if (ammeterData != null) {
|
if (ammeterData != null) {
|
||||||
// 数据更新时间
|
// 数据更新时间
|
||||||
ammeterDataVo.setDataUpdateTime(ammeterData.getDataUpdateTime());
|
ammeterDataVo.setDataUpdateTime(ammeterData.getDataUpdateTime());
|
||||||
|
|
||||||
List<LoadDataDetailInfo> loadDataDetailInfos = new ArrayList<>();
|
List<LoadDataDetailInfo> loadDataDetailInfos = new ArrayList<>();
|
||||||
// 拼接数据
|
// 拼接数据
|
||||||
// 组合有功
|
// 当前正向有功
|
||||||
LoadDataDetailInfo ammeterDataDetailInfo1 = new LoadDataDetailInfo();
|
LoadDataDetailInfo ammeterDataDetailInfo1 = new LoadDataDetailInfo();
|
||||||
ammeterDataDetailInfo1.setCategory(AmmeterCategory.CURRENT_COMB_ACTIVE.getInfo());
|
ammeterDataDetailInfo1.setCategory(AmmeterCategory.CURRENT_FORWARD_ACTIVE.getInfo());
|
||||||
ammeterDataDetailInfo1.setTotalKwh(ammeterData.getCurrentCombActiveTotal());
|
ammeterDataDetailInfo1.setTotalKwh(ammeterData.getCurrentForwardActiveTotal());
|
||||||
ammeterDataDetailInfo1.setPeakKwh(ammeterData.getCurrentCombActivePeak());
|
ammeterDataDetailInfo1.setPeakKwh(ammeterData.getCurrentForwardActivePeak());
|
||||||
ammeterDataDetailInfo1.setHighKwh(ammeterData.getCurrentCombActiveHigh());
|
ammeterDataDetailInfo1.setHighKwh(ammeterData.getCurrentForwardActiveHigh());
|
||||||
ammeterDataDetailInfo1.setFlatKwh(ammeterData.getCurrentCombActiveFlat());
|
ammeterDataDetailInfo1.setFlatKwh(ammeterData.getCurrentForwardActiveFlat());
|
||||||
ammeterDataDetailInfo1.setValleyKwh(ammeterData.getCurrentCombActiveValley());
|
ammeterDataDetailInfo1.setValleyKwh(ammeterData.getCurrentForwardActiveValley());
|
||||||
loadDataDetailInfos.add(ammeterDataDetailInfo1);
|
loadDataDetailInfos.add(ammeterDataDetailInfo1);
|
||||||
// 组合无功
|
// 当前正向无功
|
||||||
LoadDataDetailInfo ammeterDataDetailInfo2 = new LoadDataDetailInfo();
|
LoadDataDetailInfo ammeterDataDetailInfo2 = new LoadDataDetailInfo();
|
||||||
ammeterDataDetailInfo2.setCategory(AmmeterCategory.CURRENT_COMB_REACTIVE.getInfo());
|
ammeterDataDetailInfo2.setCategory(AmmeterCategory.CURRENT_FORWARD_REACTIVE.getInfo());
|
||||||
ammeterDataDetailInfo2.setTotalKwh(ammeterData.getCurrentCombReactiveTotal());
|
ammeterDataDetailInfo2.setTotalKwh(ammeterData.getCurrentForwardReactiveTotal());
|
||||||
ammeterDataDetailInfo2.setPeakKwh(ammeterData.getCurrentCombReactivePeak());
|
ammeterDataDetailInfo2.setPeakKwh(ammeterData.getCurrentForwardReactivePeak());
|
||||||
ammeterDataDetailInfo2.setHighKwh(ammeterData.getCurrentCombReactiveHigh());
|
ammeterDataDetailInfo2.setHighKwh(ammeterData.getCurrentForwardReactiveHigh());
|
||||||
ammeterDataDetailInfo2.setFlatKwh(ammeterData.getCurrentCombReactiveFlat());
|
ammeterDataDetailInfo2.setFlatKwh(ammeterData.getCurrentForwardReactiveFlat());
|
||||||
ammeterDataDetailInfo2.setValleyKwh(ammeterData.getCurrentCombReactiveValley());
|
ammeterDataDetailInfo2.setValleyKwh(ammeterData.getCurrentForwardReactiveValley());
|
||||||
loadDataDetailInfos.add(ammeterDataDetailInfo2);
|
loadDataDetailInfos.add(ammeterDataDetailInfo2);
|
||||||
|
// 当前反向有功
|
||||||
|
LoadDataDetailInfo ammeterDataDetailInfo3 = new LoadDataDetailInfo();
|
||||||
|
ammeterDataDetailInfo3.setCategory(AmmeterCategory.CURRENT_REVERSE_ACTIVE.getInfo());
|
||||||
|
ammeterDataDetailInfo3.setTotalKwh(ammeterData.getCurrentReverseActiveTotal());
|
||||||
|
ammeterDataDetailInfo3.setPeakKwh(ammeterData.getCurrentReverseActivePeak());
|
||||||
|
ammeterDataDetailInfo3.setHighKwh(ammeterData.getCurrentReverseActiveHigh());
|
||||||
|
ammeterDataDetailInfo3.setFlatKwh(ammeterData.getCurrentReverseActiveFlat());
|
||||||
|
ammeterDataDetailInfo3.setValleyKwh(ammeterData.getCurrentReverseActiveValley());
|
||||||
|
loadDataDetailInfos.add(ammeterDataDetailInfo3);
|
||||||
|
// 当前反向无功
|
||||||
|
LoadDataDetailInfo ammeterDataDetailInfo4 = new LoadDataDetailInfo();
|
||||||
|
ammeterDataDetailInfo4.setCategory(AmmeterCategory.CURRENT_REVERSE_REACTIVE.getInfo());
|
||||||
|
ammeterDataDetailInfo4.setTotalKwh(ammeterData.getCurrentReverseReactiveTotal());
|
||||||
|
ammeterDataDetailInfo4.setPeakKwh(ammeterData.getCurrentReverseReactivePeak());
|
||||||
|
ammeterDataDetailInfo4.setHighKwh(ammeterData.getCurrentReverseReactiveHigh());
|
||||||
|
ammeterDataDetailInfo4.setFlatKwh(ammeterData.getCurrentReverseReactiveFlat());
|
||||||
|
ammeterDataDetailInfo4.setValleyKwh(ammeterData.getCurrentReverseReactiveValley());
|
||||||
|
loadDataDetailInfos.add(ammeterDataDetailInfo4);
|
||||||
|
|
||||||
ammeterDataVo.setLoadDataDetailInfo(loadDataDetailInfos);
|
ammeterDataVo.setLoadDataDetailInfo(loadDataDetailInfos);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user