0918优化-单站监控-电表数据修改

This commit is contained in:
2025-09-24 14:12:37 +08:00
parent f7515b221b
commit 9874d6b1ea
5 changed files with 69 additions and 57 deletions

View File

@ -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相功率");

View File

@ -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;
} }

View File

@ -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() {

View File

@ -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")));

View File

@ -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);
} }