From 9874d6b1ea502663cec2dd69f08172862990187f Mon Sep 17 00:00:00 2001 From: mashili Date: Wed, 24 Sep 2025 14:12:37 +0800 Subject: [PATCH] =?UTF-8?q?0918=E4=BC=98=E5=8C=96-=E5=8D=95=E7=AB=99?= =?UTF-8?q?=E7=9B=91=E6=8E=A7-=E7=94=B5=E8=A1=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xzzn/common/enums/AmmeterCategory.java | 6 +- .../ems/domain/vo/AmmeterDataResponse.java | 8 +- ...eterLoadDataVo.java => AmmeterDataVo.java} | 6 +- .../impl/DDSDataProcessServiceImpl.java | 4 +- .../service/impl/SingleSiteServiceImpl.java | 102 ++++++++++-------- 5 files changed, 69 insertions(+), 57 deletions(-) rename ems-system/src/main/java/com/xzzn/ems/domain/vo/{AmmeterLoadDataVo.java => AmmeterDataVo.java} (94%) diff --git a/ems-common/src/main/java/com/xzzn/common/enums/AmmeterCategory.java b/ems-common/src/main/java/com/xzzn/common/enums/AmmeterCategory.java index 406c628..47c8bd6 100644 --- a/ems-common/src/main/java/com/xzzn/common/enums/AmmeterCategory.java +++ b/ems-common/src/main/java/com/xzzn/common/enums/AmmeterCategory.java @@ -7,8 +7,10 @@ package com.xzzn.common.enums; */ public enum AmmeterCategory { - CURRENT_COMB_ACTIVE("1", "当前组合有功电能"), - CURRENT_COMB_REACTIVE("2", "当前组合无功电能"), + CURRENT_FORWARD_ACTIVE("1", "当前正向有功电能"), + CURRENT_FORWARD_REACTIVE("2", "当前正向无功电能"), + CURRENT_REVERSE_ACTIVE("3", "当前反向有功电能"), + CURRENT_REVERSE_REACTIVE("4", "当前反向无功电能"), A_POWER("3", "A相功率"), B_POWER("4", "B相功率"), C_POWER("5", "C相功率"); diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataResponse.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataResponse.java index b5f0994..7c1eb87 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataResponse.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataResponse.java @@ -1,23 +1,21 @@ package com.xzzn.ems.domain.vo; -import java.util.List; - /** * 电表数据 */ public class AmmeterDataResponse { /** 总表信息 */ - private AmmeterLoadDataVo ammeterLoadData; + private AmmeterDataVo ammeterLoadData; /** 储能表信息 */ private AmmeterMeteDataVo ammeterMeteData; - public AmmeterLoadDataVo getAmmeterLoadData() { + public AmmeterDataVo getAmmeterLoadData() { return ammeterLoadData; } - public void setAmmeterLoadDataVoList(AmmeterLoadDataVo ammeterLoadData) { + public void setAmmeterLoadDataVoList(AmmeterDataVo ammeterLoadData) { this.ammeterLoadData = ammeterLoadData; } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterLoadDataVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataVo.java similarity index 94% rename from ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterLoadDataVo.java rename to ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataVo.java index 103eebc..54f4b7f 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterLoadDataVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AmmeterDataVo.java @@ -6,9 +6,9 @@ import java.util.Date; import java.util.List; /** - * 电表-总表数据 + * 电表数据 */ -public class AmmeterLoadDataVo { +public class AmmeterDataVo { /** 电表名称 */ private String deviceName; @@ -23,7 +23,7 @@ public class AmmeterLoadDataVo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dataUpdateTime; - /** 总表数据信息 */ + /** 表数据信息 */ private List loadDataDetailInfo; public String getDeviceName() { diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java index 8efb366..ed70cb8 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java @@ -845,13 +845,13 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl dataMete.setCurrentCombReactiveFlat(StringUtils.getBigDecimal(obj.get("DQZHWGPDN"))); 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.setCurrentForwardReactiveHigh(StringUtils.getBigDecimal(obj.get("DQZXWGFDN"))); dataMete.setCurrentForwardReactiveFlat(StringUtils.getBigDecimal(obj.get("DQZXWGPDN"))); 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.setCurrentReverseReactiveHigh(StringUtils.getBigDecimal(obj.get("DQFXWGFDN"))); dataMete.setCurrentReverseReactiveFlat(StringUtils.getBigDecimal(obj.get("DQFXWGPDN"))); 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 f0866e7..bdec05a 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 @@ -450,38 +450,32 @@ public class SingleSiteServiceImpl implements ISingleSiteService { * @return */ @Override - public AmmeterDataResponse getAmmeterDataList(String siteId) { - AmmeterDataResponse ammeterResponse = new AmmeterDataResponse(); + public List getAmmeterDataList(String siteId) { + List ammeterResponse = new ArrayList<>(); - if (!StringUtils.isEmpty(siteId)) { - // 先获取电表设备 - List> ammeterIdList = emsDevicesSettingMapper.getDeviceInfosBySiteIdAndCategory(siteId, DeviceCategory.AMMETER.getCode()); + if (StringUtils.isEmpty(siteId)) { + return ammeterResponse; + } - for (Map ammeterDevice : ammeterIdList) { - String ammeterId = ammeterDevice.get("id").toString(); - // 从redis取总表详细数据 - EmsAmmeterData ammeterData = redisCache.getCacheObject(RedisKeyConstants.AMMETER + siteId + "_" +ammeterId); - // 判断电表类型 - if (AMMETER_DEVICE_LOAD.equals(ammeterId)) { - AmmeterLoadDataVo ammeterLoadDataVo = new AmmeterLoadDataVo(); - ammeterLoadDataVo.setDeviceName(ammeterDevice.get("deviceName").toString()); - ammeterLoadDataVo.setDeviceId(ammeterDevice.get("id").toString()); - ammeterLoadDataVo.setEmsCommunicationStatus(ammeterDevice.get("communicationStatus") == null? "" : - ammeterDevice.get("communicationStatus").toString()); - // 处理总表数据 - dealAmmeterLoadData(ammeterData,ammeterLoadDataVo); - ammeterResponse.setAmmeterLoadDataVoList(ammeterLoadDataVo); - } else if (AMMETER_DEVICE_METE.equals(ammeterId)) { - AmmeterMeteDataVo ammeterMeteDataVo = new AmmeterMeteDataVo(); - ammeterMeteDataVo.setDeviceName(ammeterDevice.get("deviceName").toString()); - ammeterMeteDataVo.setDeviceId(ammeterDevice.get("id").toString()); - ammeterMeteDataVo.setEmsCommunicationStatus(ammeterDevice.get("communicationStatus") == null? "" : - ammeterDevice.get("communicationStatus").toString()); - // 处理储能表数据 - dealAmmeterMeteData(ammeterData,ammeterMeteDataVo); - ammeterResponse.setAmmeterMeteDataVoList(ammeterMeteDataVo); - } - } + // 先获取电表设备 + List> ammeterIdList = emsDevicesSettingMapper.getDeviceInfosBySiteIdAndCategory(siteId, DeviceCategory.AMMETER.getCode()); + if (ammeterIdList == null || ammeterIdList.isEmpty()) { + return ammeterResponse; + } + + for (Map ammeterDevice : ammeterIdList) { + String ammeterId = ammeterDevice.get("id").toString(); + // 从redis取总表详细数据 + EmsAmmeterData ammeterData = redisCache.getCacheObject(RedisKeyConstants.AMMETER + siteId + "_" +ammeterId); + + AmmeterDataVo ammeterLoadDataVo = new AmmeterDataVo(); + ammeterLoadDataVo.setDeviceName(ammeterDevice.get("deviceName").toString()); + ammeterLoadDataVo.setDeviceId(ammeterDevice.get("id").toString()); + ammeterLoadDataVo.setEmsCommunicationStatus(ammeterDevice.get("communicationStatus") == null? "" : + ammeterDevice.get("communicationStatus").toString()); + // 设置表数据 + dealAmmeterLoadData(ammeterData,ammeterLoadDataVo); + ammeterResponse.add(ammeterLoadDataVo); } 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) { // 数据更新时间 ammeterDataVo.setDataUpdateTime(ammeterData.getDataUpdateTime()); List loadDataDetailInfos = new ArrayList<>(); // 拼接数据 - // 组合有功 + // 当前正向有功 LoadDataDetailInfo ammeterDataDetailInfo1 = new LoadDataDetailInfo(); - ammeterDataDetailInfo1.setCategory(AmmeterCategory.CURRENT_COMB_ACTIVE.getInfo()); - ammeterDataDetailInfo1.setTotalKwh(ammeterData.getCurrentCombActiveTotal()); - ammeterDataDetailInfo1.setPeakKwh(ammeterData.getCurrentCombActivePeak()); - ammeterDataDetailInfo1.setHighKwh(ammeterData.getCurrentCombActiveHigh()); - ammeterDataDetailInfo1.setFlatKwh(ammeterData.getCurrentCombActiveFlat()); - ammeterDataDetailInfo1.setValleyKwh(ammeterData.getCurrentCombActiveValley()); + ammeterDataDetailInfo1.setCategory(AmmeterCategory.CURRENT_FORWARD_ACTIVE.getInfo()); + ammeterDataDetailInfo1.setTotalKwh(ammeterData.getCurrentForwardActiveTotal()); + ammeterDataDetailInfo1.setPeakKwh(ammeterData.getCurrentForwardActivePeak()); + ammeterDataDetailInfo1.setHighKwh(ammeterData.getCurrentForwardActiveHigh()); + ammeterDataDetailInfo1.setFlatKwh(ammeterData.getCurrentForwardActiveFlat()); + ammeterDataDetailInfo1.setValleyKwh(ammeterData.getCurrentForwardActiveValley()); loadDataDetailInfos.add(ammeterDataDetailInfo1); - // 组合无功 + // 当前正向无功 LoadDataDetailInfo ammeterDataDetailInfo2 = new LoadDataDetailInfo(); - ammeterDataDetailInfo2.setCategory(AmmeterCategory.CURRENT_COMB_REACTIVE.getInfo()); - ammeterDataDetailInfo2.setTotalKwh(ammeterData.getCurrentCombReactiveTotal()); - ammeterDataDetailInfo2.setPeakKwh(ammeterData.getCurrentCombReactivePeak()); - ammeterDataDetailInfo2.setHighKwh(ammeterData.getCurrentCombReactiveHigh()); - ammeterDataDetailInfo2.setFlatKwh(ammeterData.getCurrentCombReactiveFlat()); - ammeterDataDetailInfo2.setValleyKwh(ammeterData.getCurrentCombReactiveValley()); + ammeterDataDetailInfo2.setCategory(AmmeterCategory.CURRENT_FORWARD_REACTIVE.getInfo()); + ammeterDataDetailInfo2.setTotalKwh(ammeterData.getCurrentForwardReactiveTotal()); + ammeterDataDetailInfo2.setPeakKwh(ammeterData.getCurrentForwardReactivePeak()); + ammeterDataDetailInfo2.setHighKwh(ammeterData.getCurrentForwardReactiveHigh()); + ammeterDataDetailInfo2.setFlatKwh(ammeterData.getCurrentForwardReactiveFlat()); + ammeterDataDetailInfo2.setValleyKwh(ammeterData.getCurrentForwardReactiveValley()); 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); }