From 8fd2f45e18baac500611940b89654149446d3e2e Mon Sep 17 00:00:00 2001 From: mashili Date: Tue, 29 Jul 2025 15:58:26 +0800 Subject: [PATCH] =?UTF-8?q?DDS=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/RedisKeyConstants.java | 10 + .../com/xzzn/ems/domain/EmsAmmeterData.java | 887 +++++++++++++++++- .../xzzn/ems/domain/EmsBatteryCluster.java | 332 +------ .../com/xzzn/ems/domain/EmsBatteryData.java | 17 +- .../com/xzzn/ems/domain/EmsBatteryGroup.java | 164 ++++ .../java/com/xzzn/ems/domain/EmsDhData.java | 104 ++ .../ems/mapper/EmsBatteryGroupMapper.java | 64 ++ .../com/xzzn/ems/mapper/EmsDhDataMapper.java | 61 ++ .../impl/DDSDataProcessServiceImpl.java | 556 +++++++---- .../mapper/ems/EmsAmmeterDataMapper.xml | 297 +++++- .../mapper/ems/EmsBatteryClusterMapper.xml | 112 +-- .../mapper/ems/EmsBatteryDataMapper.xml | 11 +- .../mapper/ems/EmsBatteryGroupMapper.xml | 148 +++ .../resources/mapper/ems/EmsDhDataMapper.xml | 91 ++ 14 files changed, 2246 insertions(+), 608 deletions(-) create mode 100644 ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryGroup.java create mode 100644 ems-system/src/main/java/com/xzzn/ems/domain/EmsDhData.java create mode 100644 ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryGroupMapper.java create mode 100644 ems-system/src/main/java/com/xzzn/ems/mapper/EmsDhDataMapper.java create mode 100644 ems-system/src/main/resources/mapper/ems/EmsBatteryGroupMapper.xml create mode 100644 ems-system/src/main/resources/mapper/ems/EmsDhDataMapper.xml diff --git a/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java b/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java index 986830b..0e3b343 100644 --- a/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java +++ b/ems-common/src/main/java/com/xzzn/common/constant/RedisKeyConstants.java @@ -36,4 +36,14 @@ public class RedisKeyConstants * 电表数据 redis key */ public static final String AMMETER = "AMMETER_"; + + /** + * 动环数据 redis key + */ + public static final String DH = "DH_"; + + /** + * 电池组 redis key + */ + public static final String GROUP = "GROUP_"; } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsAmmeterData.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsAmmeterData.java index beacd93..d62e835 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/EmsAmmeterData.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsAmmeterData.java @@ -12,7 +12,7 @@ import com.xzzn.common.annotation.Excel; * 总数据对象 ems_ammeter_data * * @author xzzn - * @date 2025-07-27 + * @date 2025-07-29 */ public class EmsAmmeterData extends BaseEntity { @@ -418,6 +418,242 @@ public class EmsAmmeterData extends BaseEntity @Excel(name = "平均电流") private BigDecimal avgCurrent; + /** 总正向有功电能2 */ + @Excel(name = "总正向有功电能2") + private BigDecimal totalForwardActiveTwo; + + /** 总尖正向有功电能 */ + @Excel(name = "总尖正向有功电能") + private BigDecimal totalPeakForwardActive; + + /** 总峰正向有功电能 */ + @Excel(name = "总峰正向有功电能") + private BigDecimal totalHighForwardActive; + + /** 总平正向有功电能 */ + @Excel(name = "总平正向有功电能") + private BigDecimal totalFlatForwardActive; + + /** 总谷正向有功电能 */ + @Excel(name = "总谷正向有功电能") + private BigDecimal totalValleyForwardActive; + + /** 总反向有功电能2 */ + @Excel(name = "总反向有功电能2") + private BigDecimal totalReverseActiveTwo; + + /** 总尖反向有功电能 */ + @Excel(name = "总尖反向有功电能") + private BigDecimal totalPeakReverseActive; + + /** 总峰反向有功电能 */ + @Excel(name = "总峰反向有功电能") + private BigDecimal totalHighReverseActive; + + /** 总平反向有功电能 */ + @Excel(name = "总平反向有功电能") + private BigDecimal totalFlatReverseActive; + + /** 总谷反向有功电能 */ + @Excel(name = "总谷反向有功电能") + private BigDecimal totalValleyReverseActive; + + /** 断线检测指示 */ + @Excel(name = "断线检测指示") + private String disconnectDetectionIndication; + + /** 额定一次电流值 */ + @Excel(name = "额定一次电流值") + private BigDecimal ratedPrimaryCurrentValue; + + /** 开关量输入输出状态 */ + @Excel(name = "开关量输入输出状态") + private String switchInputOutputStatus; + + /** 报警状态 */ + @Excel(name = "报警状态") + private String alarmStatus; + + /** 当前总电压百分比 */ + @Excel(name = "当前总电压百分比") + private BigDecimal currentTotalVoltagePercent; + + /** 电压直流含量百分比 */ + @Excel(name = "电压直流含量百分比") + private BigDecimal voltageContentPercent; + + /** 电压交流含量百分比 */ + @Excel(name = "电压交流含量百分比") + private BigDecimal voltageAcPercent; + + /** 当前总电流百分比 */ + @Excel(name = "当前总电流百分比") + private BigDecimal currentTotalCurrentPercent; + + /** 电流直流含量百分比 */ + @Excel(name = "电流直流含量百分比") + private BigDecimal currentContentPercent; + + /** 电流交流含量百分比 */ + @Excel(name = "电流交流含量百分比") + private BigDecimal currentAcPercent; + + /** 当前总功率百分比 */ + @Excel(name = "当前总功率百分比") + private BigDecimal currentTotalPowerPercent; + + /** 功率直流含量百分比 */ + @Excel(name = "功率直流含量百分比") + private BigDecimal powerContentPercent; + + /** 功率交流含量百分比 */ + @Excel(name = "功率交流含量百分比") + private BigDecimal powerAcPercent; + + /** 日期时间设置(年月) */ + @Excel(name = "日期时间设置", readConverterExp = "年=月") + private String dataSettingYearMonth; + + /** 日期时间设置(日时) */ + @Excel(name = "日期时间设置", readConverterExp = "日=时") + private String dataSettingDayHour; + + /** 日期时间设置(分秒) */ + @Excel(name = "日期时间设置", readConverterExp = "分=秒") + private String dataSettingMinutesSeconds; + + /** 当前抄表日(高)、当前费率(低) */ + @Excel(name = "当前抄表日", readConverterExp = "高=") + private BigDecimal currentRate; + + /** 软件版本号 */ + @Excel(name = "软件版本号") + private String versionNumber; + + /** 电压 */ + @Excel(name = "电压") + private BigDecimal voltage; + + /** 电流 */ + @Excel(name = "电流") + private BigDecimal current; + + /** 功率 */ + @Excel(name = "功率") + private BigDecimal power; + + /** 内部温度 */ + @Excel(name = "内部温度") + private BigDecimal internalTemp; + + /** 总正向有功电能1 */ + @Excel(name = "总正向有功电能1") + private BigDecimal totalForwardActiveOne; + + /** 总反向有功电能1 */ + @Excel(name = "总反向有功电能1") + private BigDecimal totalReverseActiveOne; + + /** 正向无功最大需量 */ + @Excel(name = "正向无功最大需量") + private BigDecimal forwardReactiveMaxDemand; + + /** 反向无功最大需量 */ + @Excel(name = "反向无功最大需量") + private BigDecimal reverseReactiveMaxDemand; + + /** A 相正向有功电能 */ + @Excel(name = "A 相正向有功电能") + private BigDecimal aForwardActiveEnergy; + + /** B 相正向有功电能 */ + @Excel(name = "B 相正向有功电能") + private BigDecimal bForwardActiveEnergy; + + /** C 相正向有功电能 */ + @Excel(name = "C 相正向有功电能") + private BigDecimal cForwardActiveEnergy; + + /** DIDO 状态、失压状态 */ + @Excel(name = "DIDO 状态、失压状态") + private String didoStatus; + + /** 运行状态 1(高 8 位)/运行状态 2(低 8 位) */ + @Excel(name = "运行状态 1", readConverterExp = "高=,8=,位=") + private String runningStatus; + + /** 零序电流 */ + @Excel(name = "零序电流") + private BigDecimal zeroSeqCurrent; + + /** 电压不平衡度 */ + @Excel(name = "电压不平衡度") + private BigDecimal voltageUnbalanceDegree; + + /** 电流不平衡度 */ + @Excel(name = "电流不平衡度") + private BigDecimal currentUnbalanceDegree; + + /** 当日反向有功最大需量 */ + @Excel(name = "当日反向有功最大需量") + private BigDecimal dailyReverseAcMaxDemand; + + /** 当日正向无功最大需量 */ + @Excel(name = "当日正向无功最大需量") + private BigDecimal dailyForwardReacMaxDemand; + + /** 当日反向无功最大需量 */ + @Excel(name = "当日反向无功最大需量") + private BigDecimal dailyReverseReacMaxDemand; + + /** 上 1 日正向有功最大需量 */ + @Excel(name = "上 1 日正向有功最大需量") + private BigDecimal preDayForwardAcMaxDemand; + + /** 上 1 日反向有功最大需量 */ + @Excel(name = "上 1 日反向有功最大需量") + private BigDecimal preDayReverseAcMaxDemand; + + /** 上 1 日正向无功最大需量 */ + @Excel(name = "上 1 日正向无功最大需量") + private BigDecimal preDayForwardReacMaxDemand; + + /** 上 1 日反向无功最大需量 */ + @Excel(name = "上 1 日反向无功最大需量") + private BigDecimal preDayReverseReacMaxDemand; + + /** 上 2 日正向有功最大需量 */ + @Excel(name = "上 2 日正向有功最大需量") + private BigDecimal pre2dForwardAcMaxDemand; + + /** 上 2 日反向有功最大需量 */ + @Excel(name = "上 2 日反向有功最大需量") + private BigDecimal pre2dReverseAcMaxDemand; + + /** 上 2 日正向无功最大需量 */ + @Excel(name = "上 2 日正向无功最大需量") + private BigDecimal pre2dForwardReacMaxDemand; + + /** 上 2 日反向无功最大需量 */ + @Excel(name = "上 2 日反向无功最大需量") + private BigDecimal pre2dReverseReacMaxDemand; + + /** 当前正向有功需量 */ + @Excel(name = "当前正向有功需量") + private BigDecimal currentForwardAcDemand; + + /** 当前反向有功需量 */ + @Excel(name = "当前反向有功需量") + private BigDecimal currentReverseAcDemand; + + /** 当前正向无功需量 */ + @Excel(name = "当前正向无功需量") + private BigDecimal currentForwardReacDemand; + + /** 当前反向无功需量 */ + @Excel(name = "当前反向无功需量") + private BigDecimal currentReverseReacDemand; + public void setId(Long id) { this.id = id; @@ -1418,6 +1654,596 @@ public class EmsAmmeterData extends BaseEntity return avgCurrent; } + public void setTotalForwardActiveTwo(BigDecimal totalForwardActiveTwo) + { + this.totalForwardActiveTwo = totalForwardActiveTwo; + } + + public BigDecimal getTotalForwardActiveTwo() + { + return totalForwardActiveTwo; + } + + public void setTotalPeakForwardActive(BigDecimal totalPeakForwardActive) + { + this.totalPeakForwardActive = totalPeakForwardActive; + } + + public BigDecimal getTotalPeakForwardActive() + { + return totalPeakForwardActive; + } + + public void setTotalHighForwardActive(BigDecimal totalHighForwardActive) + { + this.totalHighForwardActive = totalHighForwardActive; + } + + public BigDecimal getTotalHighForwardActive() + { + return totalHighForwardActive; + } + + public void setTotalFlatForwardActive(BigDecimal totalFlatForwardActive) + { + this.totalFlatForwardActive = totalFlatForwardActive; + } + + public BigDecimal getTotalFlatForwardActive() + { + return totalFlatForwardActive; + } + + public void setTotalValleyForwardActive(BigDecimal totalValleyForwardActive) + { + this.totalValleyForwardActive = totalValleyForwardActive; + } + + public BigDecimal getTotalValleyForwardActive() + { + return totalValleyForwardActive; + } + + public void setTotalReverseActiveTwo(BigDecimal totalReverseActiveTwo) + { + this.totalReverseActiveTwo = totalReverseActiveTwo; + } + + public BigDecimal getTotalReverseActiveTwo() + { + return totalReverseActiveTwo; + } + + public void setTotalPeakReverseActive(BigDecimal totalPeakReverseActive) + { + this.totalPeakReverseActive = totalPeakReverseActive; + } + + public BigDecimal getTotalPeakReverseActive() + { + return totalPeakReverseActive; + } + + public void setTotalHighReverseActive(BigDecimal totalHighReverseActive) + { + this.totalHighReverseActive = totalHighReverseActive; + } + + public BigDecimal getTotalHighReverseActive() + { + return totalHighReverseActive; + } + + public void setTotalFlatReverseActive(BigDecimal totalFlatReverseActive) + { + this.totalFlatReverseActive = totalFlatReverseActive; + } + + public BigDecimal getTotalFlatReverseActive() + { + return totalFlatReverseActive; + } + + public void setTotalValleyReverseActive(BigDecimal totalValleyReverseActive) + { + this.totalValleyReverseActive = totalValleyReverseActive; + } + + public BigDecimal getTotalValleyReverseActive() + { + return totalValleyReverseActive; + } + + public void setDisconnectDetectionIndication(String disconnectDetectionIndication) + { + this.disconnectDetectionIndication = disconnectDetectionIndication; + } + + public String getDisconnectDetectionIndication() + { + return disconnectDetectionIndication; + } + + public void setRatedPrimaryCurrentValue(BigDecimal ratedPrimaryCurrentValue) + { + this.ratedPrimaryCurrentValue = ratedPrimaryCurrentValue; + } + + public BigDecimal getRatedPrimaryCurrentValue() + { + return ratedPrimaryCurrentValue; + } + + public void setSwitchInputOutputStatus(String switchInputOutputStatus) + { + this.switchInputOutputStatus = switchInputOutputStatus; + } + + public String getSwitchInputOutputStatus() + { + return switchInputOutputStatus; + } + + public void setAlarmStatus(String alarmStatus) + { + this.alarmStatus = alarmStatus; + } + + public String getAlarmStatus() + { + return alarmStatus; + } + + public void setCurrentTotalVoltagePercent(BigDecimal currentTotalVoltagePercent) + { + this.currentTotalVoltagePercent = currentTotalVoltagePercent; + } + + public BigDecimal getCurrentTotalVoltagePercent() + { + return currentTotalVoltagePercent; + } + + public void setVoltageContentPercent(BigDecimal voltageContentPercent) + { + this.voltageContentPercent = voltageContentPercent; + } + + public BigDecimal getVoltageContentPercent() + { + return voltageContentPercent; + } + + public void setVoltageAcPercent(BigDecimal voltageAcPercent) + { + this.voltageAcPercent = voltageAcPercent; + } + + public BigDecimal getVoltageAcPercent() + { + return voltageAcPercent; + } + + public void setCurrentTotalCurrentPercent(BigDecimal currentTotalCurrentPercent) + { + this.currentTotalCurrentPercent = currentTotalCurrentPercent; + } + + public BigDecimal getCurrentTotalCurrentPercent() + { + return currentTotalCurrentPercent; + } + + public void setCurrentContentPercent(BigDecimal currentContentPercent) + { + this.currentContentPercent = currentContentPercent; + } + + public BigDecimal getCurrentContentPercent() + { + return currentContentPercent; + } + + public void setCurrentAcPercent(BigDecimal currentAcPercent) + { + this.currentAcPercent = currentAcPercent; + } + + public BigDecimal getCurrentAcPercent() + { + return currentAcPercent; + } + + public void setCurrentTotalPowerPercent(BigDecimal currentTotalPowerPercent) + { + this.currentTotalPowerPercent = currentTotalPowerPercent; + } + + public BigDecimal getCurrentTotalPowerPercent() + { + return currentTotalPowerPercent; + } + + public void setPowerContentPercent(BigDecimal powerContentPercent) + { + this.powerContentPercent = powerContentPercent; + } + + public BigDecimal getPowerContentPercent() + { + return powerContentPercent; + } + + public void setPowerAcPercent(BigDecimal powerAcPercent) + { + this.powerAcPercent = powerAcPercent; + } + + public BigDecimal getPowerAcPercent() + { + return powerAcPercent; + } + + public void setDataSettingYearMonth(String dataSettingYearMonth) + { + this.dataSettingYearMonth = dataSettingYearMonth; + } + + public String getDataSettingYearMonth() + { + return dataSettingYearMonth; + } + + public void setDataSettingDayHour(String dataSettingDayHour) + { + this.dataSettingDayHour = dataSettingDayHour; + } + + public String getDataSettingDayHour() + { + return dataSettingDayHour; + } + + public void setDataSettingMinutesSeconds(String dataSettingMinutesSeconds) + { + this.dataSettingMinutesSeconds = dataSettingMinutesSeconds; + } + + public String getDataSettingMinutesSeconds() + { + return dataSettingMinutesSeconds; + } + + public void setCurrentRate(BigDecimal currentRate) + { + this.currentRate = currentRate; + } + + public BigDecimal getCurrentRate() + { + return currentRate; + } + + public void setVersionNumber(String versionNumber) + { + this.versionNumber = versionNumber; + } + + public String getVersionNumber() + { + return versionNumber; + } + + public void setVoltage(BigDecimal voltage) + { + this.voltage = voltage; + } + + public BigDecimal getVoltage() + { + return voltage; + } + + public void setCurrent(BigDecimal current) + { + this.current = current; + } + + public BigDecimal getCurrent() + { + return current; + } + + public void setPower(BigDecimal power) + { + this.power = power; + } + + public BigDecimal getPower() + { + return power; + } + + public void setInternalTemp(BigDecimal internalTemp) + { + this.internalTemp = internalTemp; + } + + public BigDecimal getInternalTemp() + { + return internalTemp; + } + + public void setTotalForwardActiveOne(BigDecimal totalForwardActiveOne) + { + this.totalForwardActiveOne = totalForwardActiveOne; + } + + public BigDecimal getTotalForwardActiveOne() + { + return totalForwardActiveOne; + } + + public void setTotalReverseActiveOne(BigDecimal totalReverseActiveOne) + { + this.totalReverseActiveOne = totalReverseActiveOne; + } + + public BigDecimal getTotalReverseActiveOne() + { + return totalReverseActiveOne; + } + + public void setForwardReactiveMaxDemand(BigDecimal forwardReactiveMaxDemand) + { + this.forwardReactiveMaxDemand = forwardReactiveMaxDemand; + } + + public BigDecimal getForwardReactiveMaxDemand() + { + return forwardReactiveMaxDemand; + } + + public void setReverseReactiveMaxDemand(BigDecimal reverseReactiveMaxDemand) + { + this.reverseReactiveMaxDemand = reverseReactiveMaxDemand; + } + + public BigDecimal getReverseReactiveMaxDemand() + { + return reverseReactiveMaxDemand; + } + + public void setaForwardActiveEnergy(BigDecimal aForwardActiveEnergy) + { + this.aForwardActiveEnergy = aForwardActiveEnergy; + } + + public BigDecimal getaForwardActiveEnergy() + { + return aForwardActiveEnergy; + } + + public void setbForwardActiveEnergy(BigDecimal bForwardActiveEnergy) + { + this.bForwardActiveEnergy = bForwardActiveEnergy; + } + + public BigDecimal getbForwardActiveEnergy() + { + return bForwardActiveEnergy; + } + + public void setcForwardActiveEnergy(BigDecimal cForwardActiveEnergy) + { + this.cForwardActiveEnergy = cForwardActiveEnergy; + } + + public BigDecimal getcForwardActiveEnergy() + { + return cForwardActiveEnergy; + } + + public void setDidoStatus(String didoStatus) + { + this.didoStatus = didoStatus; + } + + public String getDidoStatus() + { + return didoStatus; + } + + public void setRunningStatus(String runningStatus) + { + this.runningStatus = runningStatus; + } + + public String getRunningStatus() + { + return runningStatus; + } + + public void setZeroSeqCurrent(BigDecimal zeroSeqCurrent) + { + this.zeroSeqCurrent = zeroSeqCurrent; + } + + public BigDecimal getZeroSeqCurrent() + { + return zeroSeqCurrent; + } + + public void setVoltageUnbalanceDegree(BigDecimal voltageUnbalanceDegree) + { + this.voltageUnbalanceDegree = voltageUnbalanceDegree; + } + + public BigDecimal getVoltageUnbalanceDegree() + { + return voltageUnbalanceDegree; + } + + public void setCurrentUnbalanceDegree(BigDecimal currentUnbalanceDegree) + { + this.currentUnbalanceDegree = currentUnbalanceDegree; + } + + public BigDecimal getCurrentUnbalanceDegree() + { + return currentUnbalanceDegree; + } + + public void setDailyReverseAcMaxDemand(BigDecimal dailyReverseAcMaxDemand) + { + this.dailyReverseAcMaxDemand = dailyReverseAcMaxDemand; + } + + public BigDecimal getDailyReverseAcMaxDemand() + { + return dailyReverseAcMaxDemand; + } + + public void setDailyForwardReacMaxDemand(BigDecimal dailyForwardReacMaxDemand) + { + this.dailyForwardReacMaxDemand = dailyForwardReacMaxDemand; + } + + public BigDecimal getDailyForwardReacMaxDemand() + { + return dailyForwardReacMaxDemand; + } + + public void setDailyReverseReacMaxDemand(BigDecimal dailyReverseReacMaxDemand) + { + this.dailyReverseReacMaxDemand = dailyReverseReacMaxDemand; + } + + public BigDecimal getDailyReverseReacMaxDemand() + { + return dailyReverseReacMaxDemand; + } + + public void setPreDayForwardAcMaxDemand(BigDecimal preDayForwardAcMaxDemand) + { + this.preDayForwardAcMaxDemand = preDayForwardAcMaxDemand; + } + + public BigDecimal getPreDayForwardAcMaxDemand() + { + return preDayForwardAcMaxDemand; + } + + public void setPreDayReverseAcMaxDemand(BigDecimal preDayReverseAcMaxDemand) + { + this.preDayReverseAcMaxDemand = preDayReverseAcMaxDemand; + } + + public BigDecimal getPreDayReverseAcMaxDemand() + { + return preDayReverseAcMaxDemand; + } + + public void setPreDayForwardReacMaxDemand(BigDecimal preDayForwardReacMaxDemand) + { + this.preDayForwardReacMaxDemand = preDayForwardReacMaxDemand; + } + + public BigDecimal getPreDayForwardReacMaxDemand() + { + return preDayForwardReacMaxDemand; + } + + public void setPreDayReverseReacMaxDemand(BigDecimal preDayReverseReacMaxDemand) + { + this.preDayReverseReacMaxDemand = preDayReverseReacMaxDemand; + } + + public BigDecimal getPreDayReverseReacMaxDemand() + { + return preDayReverseReacMaxDemand; + } + + public void setPre2dForwardAcMaxDemand(BigDecimal pre2dForwardAcMaxDemand) + { + this.pre2dForwardAcMaxDemand = pre2dForwardAcMaxDemand; + } + + public BigDecimal getPre2dForwardAcMaxDemand() + { + return pre2dForwardAcMaxDemand; + } + + public void setPre2dReverseAcMaxDemand(BigDecimal pre2dReverseAcMaxDemand) + { + this.pre2dReverseAcMaxDemand = pre2dReverseAcMaxDemand; + } + + public BigDecimal getPre2dReverseAcMaxDemand() + { + return pre2dReverseAcMaxDemand; + } + + public void setPre2dForwardReacMaxDemand(BigDecimal pre2dForwardReacMaxDemand) + { + this.pre2dForwardReacMaxDemand = pre2dForwardReacMaxDemand; + } + + public BigDecimal getPre2dForwardReacMaxDemand() + { + return pre2dForwardReacMaxDemand; + } + + public void setPre2dReverseReacMaxDemand(BigDecimal pre2dReverseReacMaxDemand) + { + this.pre2dReverseReacMaxDemand = pre2dReverseReacMaxDemand; + } + + public BigDecimal getPre2dReverseReacMaxDemand() + { + return pre2dReverseReacMaxDemand; + } + + public void setCurrentForwardAcDemand(BigDecimal currentForwardAcDemand) + { + this.currentForwardAcDemand = currentForwardAcDemand; + } + + public BigDecimal getCurrentForwardAcDemand() + { + return currentForwardAcDemand; + } + + public void setCurrentReverseAcDemand(BigDecimal currentReverseAcDemand) + { + this.currentReverseAcDemand = currentReverseAcDemand; + } + + public BigDecimal getCurrentReverseAcDemand() + { + return currentReverseAcDemand; + } + + public void setCurrentForwardReacDemand(BigDecimal currentForwardReacDemand) + { + this.currentForwardReacDemand = currentForwardReacDemand; + } + + public BigDecimal getCurrentForwardReacDemand() + { + return currentForwardReacDemand; + } + + public void setCurrentReverseReacDemand(BigDecimal currentReverseReacDemand) + { + this.currentReverseReacDemand = currentReverseReacDemand; + } + + public BigDecimal getCurrentReverseReacDemand() + { + return currentReverseReacDemand; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -1526,6 +2352,65 @@ public class EmsAmmeterData extends BaseEntity .append("currentPercent", getCurrentPercent()) .append("voltagePercent", getVoltagePercent()) .append("avgCurrent", getAvgCurrent()) + .append("totalForwardActiveTwo", getTotalForwardActiveTwo()) + .append("totalPeakForwardActive", getTotalPeakForwardActive()) + .append("totalHighForwardActive", getTotalHighForwardActive()) + .append("totalFlatForwardActive", getTotalFlatForwardActive()) + .append("totalValleyForwardActive", getTotalValleyForwardActive()) + .append("totalReverseActiveTwo", getTotalReverseActiveTwo()) + .append("totalPeakReverseActive", getTotalPeakReverseActive()) + .append("totalHighReverseActive", getTotalHighReverseActive()) + .append("totalFlatReverseActive", getTotalFlatReverseActive()) + .append("totalValleyReverseActive", getTotalValleyReverseActive()) + .append("disconnectDetectionIndication", getDisconnectDetectionIndication()) + .append("ratedPrimaryCurrentValue", getRatedPrimaryCurrentValue()) + .append("switchInputOutputStatus", getSwitchInputOutputStatus()) + .append("alarmStatus", getAlarmStatus()) + .append("currentTotalVoltagePercent", getCurrentTotalVoltagePercent()) + .append("voltageContentPercent", getVoltageContentPercent()) + .append("voltageAcPercent", getVoltageAcPercent()) + .append("currentTotalCurrentPercent", getCurrentTotalCurrentPercent()) + .append("currentContentPercent", getCurrentContentPercent()) + .append("currentAcPercent", getCurrentAcPercent()) + .append("currentTotalPowerPercent", getCurrentTotalPowerPercent()) + .append("powerContentPercent", getPowerContentPercent()) + .append("powerAcPercent", getPowerAcPercent()) + .append("dataSettingYearMonth", getDataSettingYearMonth()) + .append("dataSettingDayHour", getDataSettingDayHour()) + .append("dataSettingMinutesSeconds", getDataSettingMinutesSeconds()) + .append("currentRate", getCurrentRate()) + .append("versionNumber", getVersionNumber()) + .append("voltage", getVoltage()) + .append("current", getCurrent()) + .append("power", getPower()) + .append("internalTemp", getInternalTemp()) + .append("totalForwardActiveOne", getTotalForwardActiveOne()) + .append("totalReverseActiveOne", getTotalReverseActiveOne()) + .append("forwardReactiveMaxDemand", getForwardReactiveMaxDemand()) + .append("reverseReactiveMaxDemand", getReverseReactiveMaxDemand()) + .append("aForwardActiveEnergy", getaForwardActiveEnergy()) + .append("bForwardActiveEnergy", getbForwardActiveEnergy()) + .append("cForwardActiveEnergy", getcForwardActiveEnergy()) + .append("didoStatus", getDidoStatus()) + .append("runningStatus", getRunningStatus()) + .append("zeroSeqCurrent", getZeroSeqCurrent()) + .append("voltageUnbalanceDegree", getVoltageUnbalanceDegree()) + .append("currentUnbalanceDegree", getCurrentUnbalanceDegree()) + .append("dailyReverseAcMaxDemand", getDailyReverseAcMaxDemand()) + .append("dailyForwardReacMaxDemand", getDailyForwardReacMaxDemand()) + .append("dailyReverseReacMaxDemand", getDailyReverseReacMaxDemand()) + .append("preDayForwardAcMaxDemand", getPreDayForwardAcMaxDemand()) + .append("preDayReverseAcMaxDemand", getPreDayReverseAcMaxDemand()) + .append("preDayForwardReacMaxDemand", getPreDayForwardReacMaxDemand()) + .append("preDayReverseReacMaxDemand", getPreDayReverseReacMaxDemand()) + .append("pre2dForwardAcMaxDemand", getPre2dForwardAcMaxDemand()) + .append("pre2dReverseAcMaxDemand", getPre2dReverseAcMaxDemand()) + .append("pre2dForwardReacMaxDemand", getPre2dForwardReacMaxDemand()) + .append("pre2dReverseReacMaxDemand", getPre2dReverseReacMaxDemand()) + .append("currentForwardAcDemand", getCurrentForwardAcDemand()) + .append("currentReverseAcDemand", getCurrentReverseAcDemand()) + .append("currentForwardReacDemand", getCurrentForwardReacDemand()) + .append("currentReverseReacDemand", getCurrentReverseReacDemand()) .toString(); } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryCluster.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryCluster.java index de570e5..bc74ed7 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryCluster.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryCluster.java @@ -11,7 +11,7 @@ import com.xzzn.common.annotation.Excel; * 电池簇数据对象 ems_battery_cluster * * @author xzzn - * @date 2025-07-27 + * @date 2025-07-29 */ public class EmsBatteryCluster extends BaseEntity { @@ -212,94 +212,6 @@ public class EmsBatteryCluster extends BaseEntity @Excel(name = "单次累计放电电量") private BigDecimal totalDischargeEnergy; - /** 断线检测指示 */ - @Excel(name = "断线检测指示") - private String disconnectDetectionIndication; - - /** 电压变比 */ - @Excel(name = "电压变比") - private BigDecimal voltageTransforRatio; - - /** 额定一次电流值 */ - @Excel(name = "额定一次电流值") - private BigDecimal ratedPrimaryCurrentValue; - - /** 开关量输入输出状态 */ - @Excel(name = "开关量输入输出状态") - private String switchInputOutputStatus; - - /** 报警状态 */ - @Excel(name = "报警状态") - private String alarmStatus; - - /** 当前总电压百分比 */ - @Excel(name = "当前总电压百分比") - private BigDecimal currentTotalVoltagePercent; - - /** 电压直流含量百分比 */ - @Excel(name = "电压直流含量百分比") - private BigDecimal voltageContentPercent; - - /** 电压交流含量百分比 */ - @Excel(name = "电压交流含量百分比") - private BigDecimal voltageAcPercent; - - /** 当前总电流百分比 */ - @Excel(name = "当前总电流百分比") - private BigDecimal currentTotalCurrentPercent; - - /** 电流直流含量百分比 */ - @Excel(name = "电流直流含量百分比") - private BigDecimal currentContentPercent; - - /** 电流交流含量百分比 */ - @Excel(name = "电流交流含量百分比") - private BigDecimal currentAcPercent; - - /** 当前总功率百分比 */ - @Excel(name = "当前总功率百分比") - private BigDecimal currentTotalPowerPercent; - - /** 功率直流含量百分比 */ - @Excel(name = "功率直流含量百分比") - private BigDecimal powerContentPercent; - - /** 功率交流含量百分比 */ - @Excel(name = "功率交流含量百分比") - private BigDecimal powerAcPercent; - - /** 日期时间设置(年月) */ - @Excel(name = "日期时间设置", readConverterExp = "年=月") - private String dataSettingYearMonth; - - /** 日期时间设置(日时) */ - @Excel(name = "日期时间设置", readConverterExp = "日=时") - private String dataSettingDayHour; - - /** 日期时间设置(分秒) */ - @Excel(name = "日期时间设置", readConverterExp = "分=秒") - private String dataSettingMinutesSeconds; - - /** 当前抄表日(高)、当前费率(低) */ - @Excel(name = "当前抄表日", readConverterExp = "高=") - private BigDecimal currentRate; - - /** 软件版本号 */ - @Excel(name = "软件版本号") - private String versionNumber; - - /** 电压 */ - @Excel(name = "电压") - private BigDecimal voltage; - - /** 电流 */ - @Excel(name = "电流") - private BigDecimal current; - - /** 功率 */ - @Excel(name = "功率") - private BigDecimal power; - public void setId(Long id) { this.id = id; @@ -790,226 +702,6 @@ public class EmsBatteryCluster extends BaseEntity return totalDischargeEnergy; } - public void setDisconnectDetectionIndication(String disconnectDetectionIndication) - { - this.disconnectDetectionIndication = disconnectDetectionIndication; - } - - public String getDisconnectDetectionIndication() - { - return disconnectDetectionIndication; - } - - public void setVoltageTransforRatio(BigDecimal voltageTransforRatio) - { - this.voltageTransforRatio = voltageTransforRatio; - } - - public BigDecimal getVoltageTransforRatio() - { - return voltageTransforRatio; - } - - public void setRatedPrimaryCurrentValue(BigDecimal ratedPrimaryCurrentValue) - { - this.ratedPrimaryCurrentValue = ratedPrimaryCurrentValue; - } - - public BigDecimal getRatedPrimaryCurrentValue() - { - return ratedPrimaryCurrentValue; - } - - public void setSwitchInputOutputStatus(String switchInputOutputStatus) - { - this.switchInputOutputStatus = switchInputOutputStatus; - } - - public String getSwitchInputOutputStatus() - { - return switchInputOutputStatus; - } - - public void setAlarmStatus(String alarmStatus) - { - this.alarmStatus = alarmStatus; - } - - public String getAlarmStatus() - { - return alarmStatus; - } - - public void setCurrentTotalVoltagePercent(BigDecimal currentTotalVoltagePercent) - { - this.currentTotalVoltagePercent = currentTotalVoltagePercent; - } - - public BigDecimal getCurrentTotalVoltagePercent() - { - return currentTotalVoltagePercent; - } - - public void setVoltageContentPercent(BigDecimal voltageContentPercent) - { - this.voltageContentPercent = voltageContentPercent; - } - - public BigDecimal getVoltageContentPercent() - { - return voltageContentPercent; - } - - public void setVoltageAcPercent(BigDecimal voltageAcPercent) - { - this.voltageAcPercent = voltageAcPercent; - } - - public BigDecimal getVoltageAcPercent() - { - return voltageAcPercent; - } - - public void setCurrentTotalCurrentPercent(BigDecimal currentTotalCurrentPercent) - { - this.currentTotalCurrentPercent = currentTotalCurrentPercent; - } - - public BigDecimal getCurrentTotalCurrentPercent() - { - return currentTotalCurrentPercent; - } - - public void setCurrentContentPercent(BigDecimal currentContentPercent) - { - this.currentContentPercent = currentContentPercent; - } - - public BigDecimal getCurrentContentPercent() - { - return currentContentPercent; - } - - public void setCurrentAcPercent(BigDecimal currentAcPercent) - { - this.currentAcPercent = currentAcPercent; - } - - public BigDecimal getCurrentAcPercent() - { - return currentAcPercent; - } - - public void setCurrentTotalPowerPercent(BigDecimal currentTotalPowerPercent) - { - this.currentTotalPowerPercent = currentTotalPowerPercent; - } - - public BigDecimal getCurrentTotalPowerPercent() - { - return currentTotalPowerPercent; - } - - public void setPowerContentPercent(BigDecimal powerContentPercent) - { - this.powerContentPercent = powerContentPercent; - } - - public BigDecimal getPowerContentPercent() - { - return powerContentPercent; - } - - public void setPowerAcPercent(BigDecimal powerAcPercent) - { - this.powerAcPercent = powerAcPercent; - } - - public BigDecimal getPowerAcPercent() - { - return powerAcPercent; - } - - public void setDataSettingYearMonth(String dataSettingYearMonth) - { - this.dataSettingYearMonth = dataSettingYearMonth; - } - - public String getDataSettingYearMonth() - { - return dataSettingYearMonth; - } - - public void setDataSettingDayHour(String dataSettingDayHour) - { - this.dataSettingDayHour = dataSettingDayHour; - } - - public String getDataSettingDayHour() - { - return dataSettingDayHour; - } - - public void setDataSettingMinutesSeconds(String dataSettingMinutesSeconds) - { - this.dataSettingMinutesSeconds = dataSettingMinutesSeconds; - } - - public String getDataSettingMinutesSeconds() - { - return dataSettingMinutesSeconds; - } - - public void setCurrentRate(BigDecimal currentRate) - { - this.currentRate = currentRate; - } - - public BigDecimal getCurrentRate() - { - return currentRate; - } - - public void setVersionNumber(String versionNumber) - { - this.versionNumber = versionNumber; - } - - public String getVersionNumber() - { - return versionNumber; - } - - public void setVoltage(BigDecimal voltage) - { - this.voltage = voltage; - } - - public BigDecimal getVoltage() - { - return voltage; - } - - public void setCurrent(BigDecimal current) - { - this.current = current; - } - - public BigDecimal getCurrent() - { - return current; - } - - public void setPower(BigDecimal power) - { - this.power = power; - } - - public BigDecimal getPower() - { - return power; - } - @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -1067,28 +759,6 @@ public class EmsBatteryCluster extends BaseEntity .append("minCellSohId", getMinCellSohId()) .append("totalChargeEnergy", getTotalChargeEnergy()) .append("totalDischargeEnergy", getTotalDischargeEnergy()) - .append("disconnectDetectionIndication", getDisconnectDetectionIndication()) - .append("voltageTransforRatio", getVoltageTransforRatio()) - .append("ratedPrimaryCurrentValue", getRatedPrimaryCurrentValue()) - .append("switchInputOutputStatus", getSwitchInputOutputStatus()) - .append("alarmStatus", getAlarmStatus()) - .append("currentTotalVoltagePercent", getCurrentTotalVoltagePercent()) - .append("voltageContentPercent", getVoltageContentPercent()) - .append("voltageAcPercent", getVoltageAcPercent()) - .append("currentTotalCurrentPercent", getCurrentTotalCurrentPercent()) - .append("currentContentPercent", getCurrentContentPercent()) - .append("currentAcPercent", getCurrentAcPercent()) - .append("currentTotalPowerPercent", getCurrentTotalPowerPercent()) - .append("powerContentPercent", getPowerContentPercent()) - .append("powerAcPercent", getPowerAcPercent()) - .append("dataSettingYearMonth", getDataSettingYearMonth()) - .append("dataSettingDayHour", getDataSettingDayHour()) - .append("dataSettingMinutesSeconds", getDataSettingMinutesSeconds()) - .append("currentRate", getCurrentRate()) - .append("versionNumber", getVersionNumber()) - .append("voltage", getVoltage()) - .append("current", getCurrent()) - .append("power", getPower()) .toString(); } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryData.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryData.java index 799b413..5c9f2f6 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryData.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryData.java @@ -12,7 +12,7 @@ import com.xzzn.common.annotation.Excel; * 单体电池实时数据对象 ems_battery_data * * @author xzzn - * @date 2025-06-29 + * @date 2025-07-29 */ public class EmsBatteryData extends BaseEntity { @@ -66,6 +66,10 @@ public class EmsBatteryData extends BaseEntity @Excel(name = "簇设备id") private String clusterDeviceId; + /** 单体电池内阻 */ + @Excel(name = "单体电池内阻") + private BigDecimal interResistance; + public void setId(Long id) { this.id = id; @@ -186,6 +190,16 @@ public class EmsBatteryData extends BaseEntity return clusterDeviceId; } + public void setInterResistance(BigDecimal interResistance) + { + this.interResistance = interResistance; + } + + public BigDecimal getInterResistance() + { + return interResistance; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -206,6 +220,7 @@ public class EmsBatteryData extends BaseEntity .append("siteId", getSiteId()) .append("deviceId", getDeviceId()) .append("clusterDeviceId", getClusterDeviceId()) + .append("interResistance", getInterResistance()) .toString(); } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryGroup.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryGroup.java new file mode 100644 index 0000000..d01792c --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsBatteryGroup.java @@ -0,0 +1,164 @@ +package com.xzzn.ems.domain; + +import java.math.BigDecimal; + +import com.xzzn.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.xzzn.common.annotation.Excel; + +/** + * 电池组数据对象 ems_battery_group + * + * @author xzzn + * @date 2025-07-29 + */ +public class EmsBatteryGroup extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 电池组状态 */ + @Excel(name = "电池组状态") + private String status; + + /** 电压 (V) */ + @Excel(name = "电压 (V)") + private BigDecimal voltage; + + /** 电流 (A) */ + @Excel(name = "电流 (A)") + private BigDecimal current; + + /** SOC (%) */ + @Excel(name = "SOC (%)") + private BigDecimal soc; + + /** SOH (%) */ + @Excel(name = "SOH (%)") + private BigDecimal soh; + + /** 备电预估时长 */ + @Excel(name = "备电预估时长") + private BigDecimal estimatedBackupDuration; + + /** 站点id */ + @Excel(name = "站点id") + private String siteId; + + /** 设备唯一标识符 */ + @Excel(name = "设备唯一标识符") + private String deviceId; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + public void setVoltage(BigDecimal voltage) + { + this.voltage = voltage; + } + + public BigDecimal getVoltage() + { + return voltage; + } + + public void setCurrent(BigDecimal current) + { + this.current = current; + } + + public BigDecimal getCurrent() + { + return current; + } + + public void setSoc(BigDecimal soc) + { + this.soc = soc; + } + + public BigDecimal getSoc() + { + return soc; + } + + public void setSoh(BigDecimal soh) + { + this.soh = soh; + } + + public BigDecimal getSoh() + { + return soh; + } + + public void setEstimatedBackupDuration(BigDecimal estimatedBackupDuration) + { + this.estimatedBackupDuration = estimatedBackupDuration; + } + + public BigDecimal getEstimatedBackupDuration() + { + return estimatedBackupDuration; + } + + public void setSiteId(String siteId) + { + this.siteId = siteId; + } + + public String getSiteId() + { + return siteId; + } + + public void setDeviceId(String deviceId) + { + this.deviceId = deviceId; + } + + public String getDeviceId() + { + return deviceId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("status", getStatus()) + .append("voltage", getVoltage()) + .append("current", getCurrent()) + .append("soc", getSoc()) + .append("soh", getSoh()) + .append("estimatedBackupDuration", getEstimatedBackupDuration()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("siteId", getSiteId()) + .append("deviceId", getDeviceId()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsDhData.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsDhData.java new file mode 100644 index 0000000..eb2d35c --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsDhData.java @@ -0,0 +1,104 @@ +package com.xzzn.ems.domain; + +import java.math.BigDecimal; + +import com.xzzn.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.xzzn.common.annotation.Excel; + +/** + * 动环数据对象 ems_dh_data + * + * @author xzzn + * @date 2025-07-28 + */ +public class EmsDhData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 湿度 */ + @Excel(name = "湿度") + private BigDecimal humidity; + + /** 温度 */ + @Excel(name = "温度") + private BigDecimal temperature; + + /** 站点id */ + @Excel(name = "站点id") + private String siteId; + + /** 设备唯一标识符 */ + @Excel(name = "设备唯一标识符") + private String deviceId; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setHumidity(BigDecimal humidity) + { + this.humidity = humidity; + } + + public BigDecimal getHumidity() + { + return humidity; + } + + public void setTemperature(BigDecimal temperature) + { + this.temperature = temperature; + } + + public BigDecimal getTemperature() + { + return temperature; + } + + public void setSiteId(String siteId) + { + this.siteId = siteId; + } + + public String getSiteId() + { + return siteId; + } + + public void setDeviceId(String deviceId) + { + this.deviceId = deviceId; + } + + public String getDeviceId() + { + return deviceId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("humidity", getHumidity()) + .append("temperature", getTemperature()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("siteId", getSiteId()) + .append("deviceId", getDeviceId()) + .toString(); + } +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryGroupMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryGroupMapper.java new file mode 100644 index 0000000..ee68bfe --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryGroupMapper.java @@ -0,0 +1,64 @@ +package com.xzzn.ems.mapper; + +import java.util.List; +import com.xzzn.ems.domain.EmsBatteryGroup; + +/** + * 电池组数据Mapper接口 + * + * @author xzzn + * @date 2025-07-29 + */ +public interface EmsBatteryGroupMapper +{ + /** + * 查询电池组数据 + * + * @param id 电池组数据主键 + * @return 电池组数据 + */ + public EmsBatteryGroup selectEmsBatteryGroupById(Long id); + + /** + * 查询电池组数据列表 + * + * @param emsBatteryGroup 电池组数据 + * @return 电池组数据集合 + */ + public List selectEmsBatteryGroupList(EmsBatteryGroup emsBatteryGroup); + + /** + * 新增电池组数据 + * + * @param emsBatteryGroup 电池组数据 + * @return 结果 + */ + public int insertEmsBatteryGroup(EmsBatteryGroup emsBatteryGroup); + + /** + * 修改电池组数据 + * + * @param emsBatteryGroup 电池组数据 + * @return 结果 + */ + public int updateEmsBatteryGroup(EmsBatteryGroup emsBatteryGroup); + + /** + * 删除电池组数据 + * + * @param id 电池组数据主键 + * @return 结果 + */ + public int deleteEmsBatteryGroupById(Long id); + + /** + * 批量删除电池组数据 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmsBatteryGroupByIds(Long[] ids); + + // 批量插入 + void batchInsertGroupData(List emsBatteryGroups); +} diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDhDataMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDhDataMapper.java new file mode 100644 index 0000000..d02b757 --- /dev/null +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDhDataMapper.java @@ -0,0 +1,61 @@ +package com.xzzn.ems.mapper; + +import java.util.List; +import com.xzzn.ems.domain.EmsDhData; + +/** + * 动环数据Mapper接口 + * + * @author xzzn + * @date 2025-07-28 + */ +public interface EmsDhDataMapper +{ + /** + * 查询动环数据 + * + * @param id 动环数据主键 + * @return 动环数据 + */ + public EmsDhData selectEmsDhDataById(Long id); + + /** + * 查询动环数据列表 + * + * @param emsDhData 动环数据 + * @return 动环数据集合 + */ + public List selectEmsDhDataList(EmsDhData emsDhData); + + /** + * 新增动环数据 + * + * @param emsDhData 动环数据 + * @return 结果 + */ + public int insertEmsDhData(EmsDhData emsDhData); + + /** + * 修改动环数据 + * + * @param emsDhData 动环数据 + * @return 结果 + */ + public int updateEmsDhData(EmsDhData emsDhData); + + /** + * 删除动环数据 + * + * @param id 动环数据主键 + * @return 结果 + */ + public int deleteEmsDhDataById(Long id); + + /** + * 批量删除动环数据 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmsDhDataByIds(Long[] ids); +} 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 e5724d4..7aecc73 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 @@ -1,7 +1,6 @@ package com.xzzn.ems.service.impl; import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.TypeReference; import com.xzzn.common.constant.RedisKeyConstants; @@ -17,13 +16,22 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Service public class DDSDataProcessServiceImpl implements IDDSDataProcessService { private static final Log log = LogFactory.getLog(DDSDataProcessServiceImpl.class); private static final String SITE_ID = "021_DDS_01"; + // 正则表达式匹配BMS设备编号和属性 + private static final Pattern PATTERN = Pattern.compile("(BMSD\\d{2})(ZT|SOC|SOH|DL|DY|BDSC)"); + // 匹配DTDC+数字格式的正则(提取序号) + private static final Pattern DTDC_PATTERN = Pattern.compile("DTDC(\\d+)([A-Za-z]*)"); + @Autowired private EmsBatteryClusterMapper emsBatteryClusterMapper; @@ -49,6 +57,10 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService { private EmsAmmeterDataMapper emsAmmeterDataMapper; @Autowired private EmsBatteryDailyLatestServiceImpl emsBatteryDailyLatestServiceImpl; + @Autowired + private EmsDhDataMapper emsDhDataMapper; + @Autowired + private EmsBatteryGroupMapper emsBatteryGroupMapper; @Override public void handleDdsData(String message) { @@ -58,34 +70,74 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService { String jsonData = obj.get("Data").toString(); log.info("deviceId:" + deviceId); + if (StringUtils.isEmpty(jsonData)) { + return; + } if (deviceId.contains("BMSD")) { batteryStackDataProcess(deviceId, jsonData); - - } else if (deviceId.contains("BMSC")) { - batteryClusterDataProcess(deviceId, jsonData); + batteryGroupDataProcess(deviceId, jsonData); batteryDataProcess(deviceId, jsonData); - } else if (deviceId.contains("PCS")) { pcsDataProcess(deviceId, jsonData); pcsBranchDataProcess(deviceId, jsonData); + batteryClusterDataProcess(deviceId, jsonData); } else if (deviceId.contains("LOAD")) { loadDataProcess(deviceId, jsonData); } else if (deviceId.contains("METEGF")) { - log.info("METEGF DATA PROCESS"); meteGFDataProcess(deviceId, jsonData); - } else if (deviceId.contains("METE")) { - log.info("OTHER METE DATA PROCESS"); + } else if (deviceId.equals("METE")) { meteDataProcess(deviceId, jsonData); + } else if (deviceId.contains("METE0")) { + meteBranchDataProcess(deviceId, jsonData); + } else if (deviceId.contains("XF")) { + meteXFProcess(deviceId, jsonData); + } else if (deviceId.contains("DH")) { + meteDHProcess(deviceId, jsonData); } } + private void meteDHProcess(String deviceId, String dataJson) { + //动环 + Map obj = JSON.parseObject(dataJson, new TypeReference>() { + }); + + //DH + EmsDhData dhData = new EmsDhData(); + + dhData.setHumidity(StringUtils.getBigDecimal(obj.get("SD"))); + dhData.setTemperature(StringUtils.getBigDecimal(obj.get("WD"))); + + dhData.setCreateBy("system"); + dhData.setCreateTime(DateUtils.getNowDate()); + dhData.setUpdateBy("system"); + dhData.setUpdateTime(DateUtils.getNowDate()); + dhData.setSiteId(SITE_ID); + dhData.setDeviceId(deviceId); + emsDhDataMapper.insertEmsDhData(dhData); + + redisCache.setCacheObject(RedisKeyConstants.DH + SITE_ID + "_" +deviceId, dhData); + } + + private void meteXFProcess(String deviceId, String dataJson) { + //消防 + Map obj = JSON.parseObject(dataJson, new TypeReference>() { + }); + + // 暂时只更新设备表的设备状态 ZDYBYDCZT-主电源备用电池状态 + // 状态枚举还没有提供 + EmsDevicesSetting emsDevicesSetting = emsDevicesSettingMapper.getDeviceBySiteAndDeviceId(deviceId, SITE_ID); + emsDevicesSetting.setCommunicationStatus(StringUtils.getString(obj.get("ZDYBYDCZT"))); + emsDevicesSetting.setUpdatedAt(DateUtils.getNowDate()); + emsDevicesSettingMapper.updateEmsDevicesSetting(emsDevicesSetting); + } + private void batteryStackDataProcess(String deviceId, String dataJson) { //电池堆 Map obj = JSON.parseObject(dataJson, new TypeReference>() { }); - //BMS 电池簇 + //BMS 电池堆 EmsBatteryStack dataStack = new EmsBatteryStack(); // 其他非 BigDecimal 字段 @@ -133,13 +185,199 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService { redisCache.setCacheObject(RedisKeyConstants.STACK + SITE_ID + "_" +deviceId, dataStack); } + private void batteryGroupDataProcess(String deviceId, String jsonData) { + //电池组 + Map obj = JSON.parseObject(jsonData, new TypeReference>() { + }); + + Map groupMap = new HashMap<>(); + for (Map.Entry entry : obj.entrySet()) { + String key = entry.getKey(); + // 跳过空键 + if (key == null || key.trim().isEmpty()) { + continue; + } + Matcher matcher = PATTERN.matcher(key); + if (matcher.matches()) { + String groupDeviceId = matcher.group(1); + String property = matcher.group(2); + EmsBatteryGroup dataGroup = groupMap.getOrDefault(groupDeviceId, new EmsBatteryGroup()); + dataGroup.setDeviceId(groupDeviceId); + dataGroup.setSiteId(SITE_ID); + dataGroup.setCreateBy("system"); + dataGroup.setCreateTime(DateUtils.getNowDate()); + dataGroup.setUpdateBy("system"); + dataGroup.setUpdateTime(DateUtils.getNowDate()); + + setPropertyValue(dataGroup, property, entry.getValue()); + groupMap.put(groupDeviceId, dataGroup); + } + } + + // 批量插入数据库 + log.info("批量插入"); + if (!CollectionUtils.isEmpty(groupMap)) { + List batteryGroupList = new ArrayList<>(groupMap.values()); + emsBatteryGroupMapper.batchInsertGroupData(batteryGroupList); + redisCache.setCacheObject(RedisKeyConstants.GROUP + SITE_ID + "_" +deviceId, batteryGroupList); + } + + } + //根据属性名设置对应的值 + private static void setPropertyValue(EmsBatteryGroup groupData, String property, Object value) { + BigDecimal numberValue = null; + if (value instanceof Number) { + numberValue = new BigDecimal(value.toString()); + } + + switch (property) { + case "ZT": + if (numberValue != null) { + groupData.setStatus(numberValue.toString()); + } + break; + case "SOC": + groupData.setSoc(numberValue); + break; + case "SOH": + groupData.setSoh(numberValue); + break; + case "DL": + groupData.setCurrent(numberValue); + break; + case "DY": + groupData.setVoltage(numberValue); + break; + case "BDSC": + groupData.setEstimatedBackupDuration(numberValue); + break; + } + } + private void batteryDataProcess(String deviceId, String dataJson) { + //电池组 + Map obj = JSON.parseObject(dataJson, new TypeReference>() { + }); + List dailyList = new ArrayList<>(); + Map dataMap = new HashMap<>(); + for (Map.Entry entry : obj.entrySet()) { + String key = entry.getKey(); + + if (key.startsWith("DTDC")) { + Matcher matcher = DTDC_PATTERN.matcher(key); + if (matcher.matches()) { + String batteryCellId = matcher.group(1); + String property = matcher.group(2); + + EmsBatteryData data = dataMap.getOrDefault(batteryCellId, new EmsBatteryData()); + if (StringUtils.isNotEmpty(batteryCellId)) { + data.setDataTimestamp(DateUtils.getNowDate()); + data.setBatteryPack(deviceId); + data.setBatteryCluster("BMSC01");// 写死 + data.setClusterDeviceId("BMSC01"); + data.setBatteryCellId(batteryCellId); + data.setSiteId(SITE_ID); + data.setDeviceId(batteryCellId); + data.setCreateBy("system"); + data.setCreateTime(DateUtils.getNowDate()); + data.setUpdateBy("system"); + data.setUpdateTime(DateUtils.getNowDate()); + } + // 根据后缀设置对应属性 + setDTDCPropertyValue(data, property, entry.getValue()); + dataMap.put(batteryCellId, data); + + // 每日最新数据 + EmsBatteryDataDailyLatest daily = new EmsBatteryDataDailyLatest(); + BeanUtils.copyProperties(data, daily); + daily.setDateDay(DateUtils.getNowDate()); + dailyList.add(daily); + } + } + + } + if (!CollectionUtils.isEmpty(dataMap)) { + List dataList = new ArrayList<>(dataMap.values()); + emsBatteryDataMapper.insertEmsBatteryDataList(new ArrayList<>(dataList)); + + redisCache.deleteList(RedisKeyConstants.BATTERY + SITE_ID + "_" +deviceId); + redisCache.setCacheList(RedisKeyConstants.BATTERY + SITE_ID + "_" +deviceId, dataList); + } + // 批量处理每日最新数据 + if (dailyList != null && dailyList.size() > 0) { + emsBatteryDailyLatestServiceImpl.batchProcessBatteryData(dailyList); + } + } + + private void setDTDCPropertyValue(EmsBatteryData data, String property, Object value) { + BigDecimal numberValue = null; + if (value instanceof Number) { + numberValue = new BigDecimal(value.toString()); + } + switch (property) { + case "DY": + data.setVoltage(numberValue); + break; + case "WD": + data.setTemperature(numberValue); + break; + case "NZ": + data.setInterResistance(numberValue); + break; + } + } private void batteryClusterDataProcess(String deviceId, String dataJson) { Map obj = JSON.parseObject(dataJson, new TypeReference>() { }); EmsDevicesSetting joken = new EmsDevicesSetting(); + + //BMSC 电池簇 + EmsBatteryCluster data = new EmsBatteryCluster(); + // 其他非 BigDecimal 字段 + data.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值 + data.setPcsCommunicationStatus(CommunicationStatus.OK.getCode()); + data.setEmsCommunicationStatus(CommunicationStatus.OK.getCode()); + data.setCreateBy("system"); + data.setCreateTime(DateUtils.getNowDate()); + data.setUpdateBy("system"); + data.setUpdateTime(DateUtils.getNowDate()); + data.setSiteId(SITE_ID); + // BMSC01 电流电压功率 + deviceId = "BMSC01"; + String stackDeviceId = getDeviceParent(deviceId, SITE_ID); + if (StringUtils.isNotBlank(stackDeviceId)) { + data.setStackDeviceId(stackDeviceId); + } else { + data.setStackDeviceId("1"); + } + data.setDeviceId(deviceId); + data.setClusterVoltage(StringUtils.getBigDecimal(obj.get("BMSC01ZLDY"))); + data.setClusterCurrent(StringUtils.getBigDecimal(obj.get("BMSC01ZLDL"))); + data.setMaxAllowedChargePower(StringUtils.getBigDecimal(obj.get("BMSC01ZLSCGL"))); + emsBatteryClusterMapper.insertEmsBatteryCluster(data); + redisCache.setCacheObject(RedisKeyConstants.CLUSTER + SITE_ID + "_" +deviceId, data); + + // BMSC02 电流电压功率 + deviceId = "BMSC02"; + stackDeviceId = getDeviceParent(deviceId, SITE_ID); + if (StringUtils.isNotBlank(stackDeviceId)) { + data.setStackDeviceId(stackDeviceId); + } else { + data.setStackDeviceId("1"); + } + data.setDeviceId(deviceId); + data.setClusterVoltage(StringUtils.getBigDecimal(obj.get("BMSC02ZLDY"))); + data.setClusterCurrent(StringUtils.getBigDecimal(obj.get("BMSC02ZLDL"))); + data.setMaxAllowedChargePower(StringUtils.getBigDecimal(obj.get("BMSC02ZLSCGL"))); + emsBatteryClusterMapper.insertEmsBatteryCluster(data); + redisCache.setCacheObject(RedisKeyConstants.CLUSTER + SITE_ID + "_" +deviceId, data); + } + + private String getDeviceParent(String deviceId,String siteId) { + EmsDevicesSetting joken = new EmsDevicesSetting(); joken.setDeviceId(deviceId); + joken.setSiteId(siteId); List up = emsDevicesSettingMapper.selectEmsDevicesSettingList(joken); String stackDeviceId = ""; if (up != null && up.size() >0) { @@ -148,18 +386,44 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService { stackDeviceId = "1"; } } - //BMS 电池簇 - EmsBatteryCluster data = new EmsBatteryCluster(); - // 电流电压功率 - data.setClusterVoltage(StringUtils.getBigDecimal(obj.get("ZLDYZ"))); - data.setClusterCurrent(StringUtils.getBigDecimal(obj.get("ZLDLZ"))); - data.setMaxAllowedChargePower(StringUtils.getBigDecimal(obj.get("GLZ"))); - data.setTotalChargeEnergy(StringUtils.getBigDecimal(obj.get("ZZXYGDN1"))); - data.setTotalDischargeEnergy(StringUtils.getBigDecimal(obj.get("ZFXYGDN1"))); + return stackDeviceId; + } - // 特殊字段 + private void meteBranchDataProcess(String deviceId, String dataJson) { + Map obj = JSON.parseObject(dataJson, new TypeReference>() { + }); + //pcs电表数据 + EmsAmmeterData data = new EmsAmmeterData(); + // 更新时间 + data.setDataUpdateTime(new Date()); + + // 当月有功电能 + data.setCurrentForwardActiveTotal(StringUtils.getBigDecimal(obj.get("DQYZZXYGDN"))); + data.setCurrentForwardActivePeak(StringUtils.getBigDecimal(obj.get("DQYJZXYGDN"))); + data.setCurrentForwardActiveHigh(StringUtils.getBigDecimal(obj.get("DQYFZXYGDN"))); + data.setCurrentForwardActiveFlat(StringUtils.getBigDecimal(obj.get("DQYPZXYGDN"))); + data.setCurrentForwardActiveValley(StringUtils.getBigDecimal(obj.get("DQYGZXYGDN"))); + data.setCurrentReverseActiveTotal(StringUtils.getBigDecimal(obj.get("DQYZFXYGDN"))); + data.setCurrentReverseActivePeak(StringUtils.getBigDecimal(obj.get("DQYJFXYGDN"))); + data.setCurrentReverseActiveHigh(StringUtils.getBigDecimal(obj.get("DQYFFXYGDN"))); + data.setCurrentReverseActiveFlat(StringUtils.getBigDecimal(obj.get("DQYPFXYGDN"))); + data.setCurrentReverseActiveValley(StringUtils.getBigDecimal(obj.get("DQYGFXYGDN"))); + + // 总有功电能 + data.setTotalForwardActiveTwo(StringUtils.getBigDecimal(obj.get("ZZXYGDN2"))); + data.setTotalPeakForwardActive(StringUtils.getBigDecimal(obj.get("ZJZXYGDN"))); + data.setTotalHighForwardActive(StringUtils.getBigDecimal(obj.get("ZFZXYGDN"))); + data.setTotalFlatForwardActive(StringUtils.getBigDecimal(obj.get("ZPZXYGDN"))); + data.setTotalValleyForwardActive(StringUtils.getBigDecimal(obj.get("ZGZXYGDN"))); + data.setTotalReverseActiveTwo(StringUtils.getBigDecimal(obj.get("ZFXYGDN2"))); + data.setTotalPeakReverseActive(StringUtils.getBigDecimal(obj.get("ZJFXYGDN"))); + data.setTotalHighReverseActive(StringUtils.getBigDecimal(obj.get("ZFFXYGDN"))); + data.setTotalFlatReverseActive(StringUtils.getBigDecimal(obj.get("ZPFXYGDN"))); + data.setTotalValleyReverseActive(StringUtils.getBigDecimal(obj.get("ZGFXYGDN"))); + + // 其他字段 + data.setVoltagePercent(StringUtils.getBigDecimal(obj.get("DYBB"))); data.setDisconnectDetectionIndication(StringUtils.getString(obj.get("DXJCZS"))); - data.setVoltageTransforRatio(StringUtils.getBigDecimal(obj.get("DYBB"))); data.setRatedPrimaryCurrentValue(StringUtils.getBigDecimal(obj.get("EDYCDLZ"))); data.setSwitchInputOutputStatus(StringUtils.getString(obj.get("KGLSRSCZT"))); data.setAlarmStatus(StringUtils.getString(obj.get("BJZT"))); @@ -180,88 +444,20 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService { data.setVoltage(StringUtils.getBigDecimal(obj.get("DY"))); data.setCurrent(StringUtils.getBigDecimal(obj.get("DL"))); data.setPower(StringUtils.getBigDecimal(obj.get("GL"))); + data.setInternalTemp(StringUtils.getBigDecimal(obj.get("NBWD"))); + data.setTotalForwardActiveOne(StringUtils.getBigDecimal(obj.get("ZZXYGDN1"))); + data.setTotalReverseActiveOne(StringUtils.getBigDecimal(obj.get("ZFXYGDN1"))); - // 其他非 BigDecimal 字段 - data.setBatteryPackTemp(StringUtils.getBigDecimal(obj.get("NBWD"))); - data.setWorkStatus(WorkStatus.NORMAL.getCode()); // 或其他默认值 - data.setPcsCommunicationStatus(CommunicationStatus.OK.getCode()); - data.setEmsCommunicationStatus(CommunicationStatus.OK.getCode()); data.setCreateBy("system"); data.setCreateTime(DateUtils.getNowDate()); data.setUpdateBy("system"); data.setUpdateTime(DateUtils.getNowDate()); data.setSiteId(SITE_ID); data.setDeviceId(deviceId); - if (StringUtils.isNotBlank(stackDeviceId)) { - data.setStackDeviceId(stackDeviceId); - } else { - data.setStackDeviceId("1"); - } - emsBatteryClusterMapper.insertEmsBatteryCluster(data); - - redisCache.setCacheObject(RedisKeyConstants.CLUSTER + SITE_ID + "_" +deviceId, data); - + emsAmmeterDataMapper.insertEmsAmmeterData(data); + redisCache.setCacheObject(RedisKeyConstants.AMMETER + SITE_ID + "_" +deviceId, data); } - private void batteryDataProcess(String deviceId, String dataJson) { - EmsDevicesSetting joken = new EmsDevicesSetting(); - joken.setDeviceId(deviceId); - List up = emsDevicesSettingMapper.selectEmsDevicesSettingList(joken); - String stackDeviceId = ""; - if (up != null && up.size() >0) { - stackDeviceId = up.get(0).getParentId(); - if (stackDeviceId == null || stackDeviceId.isEmpty()) { - stackDeviceId = "1"; - } - } - //单体电池 - Map> records = processData(JSON.parseObject(dataJson, new TypeReference>() {})); - List list = new ArrayList<>(); - List dailyList = new ArrayList<>(); - //单体电池 - for (Map.Entry> record : records.entrySet()) { - String recordId = record.getKey(); - Map fields = record.getValue(); - - EmsBatteryData batteryData = new EmsBatteryData(); - batteryData.setDeviceId(recordId); - batteryData.setBatteryCellId(recordId); - batteryData.setSoc(StringUtils.getBigDecimal(fields.get("DTSOC"))); - batteryData.setSoh(StringUtils.getBigDecimal(fields.get("DTSOH"))); - batteryData.setTemperature(StringUtils.getBigDecimal(fields.get("DTWD"))); - batteryData.setVoltage(StringUtils.getBigDecimal(fields.get("DTDY"))); - - batteryData.setBatteryCluster(deviceId); - batteryData.setBatteryPack(stackDeviceId); - - // 时间戳 - batteryData.setDataTimestamp(new Date()); - - // ID字段 - batteryData.setSiteId(SITE_ID); - batteryData.setClusterDeviceId(deviceId); - - list.add(batteryData); - - // 每日最新数据 - EmsBatteryDataDailyLatest daily = new EmsBatteryDataDailyLatest(); - BeanUtils.copyProperties(batteryData, daily); - daily.setDateDay(DateUtils.getNowDate()); - dailyList.add(daily); - } - if (list.size() > 0 ) { - emsBatteryDataMapper.insertEmsBatteryDataList(list); - - redisCache.deleteList(RedisKeyConstants.BATTERY + SITE_ID + "_" +deviceId); - redisCache.setCacheList(RedisKeyConstants.BATTERY + SITE_ID + "_" +deviceId, list); - } - // 批量处理每日最新数据 - if (dailyList != null && dailyList.size() > 0) { - emsBatteryDailyLatestServiceImpl.batchProcessBatteryData(dailyList); - } - } - - private void pcsDataProcess(String deviceId, String dataJson) { Map obj = JSON.parseObject(dataJson, new TypeReference>() { }); @@ -334,9 +530,6 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService { EmsPcsBranchData data = new EmsPcsBranchData(); data.setDeviceId(deviceId); data.setGridStatus(GridStatus.GRID.getCode()); - data.setDcPower(StringUtils.getBigDecimal(fields.get("BMSC01ZLSCGL"))); - data.setDcVoltage(StringUtils.getBigDecimal(fields.get("BMSC01ZLDY"))); - data.setDcCurrent(StringUtils.getBigDecimal(fields.get("BMSC01ZLDL"))); data.setGridUVoltage(StringUtils.getBigDecimal(fields.get("DWXDYUAB"))); data.setGridVVoltage(StringUtils.getBigDecimal(fields.get("DWXDYUBC"))); @@ -494,86 +687,129 @@ public class DDSDataProcessServiceImpl implements IDDSDataProcessService { Map obj = JSON.parseObject(dataJson, new TypeReference>() { }); - EmsAmmeterData dataLoad = new EmsAmmeterData(); + EmsAmmeterData dataMete = new EmsAmmeterData(); // 更新时间 - dataLoad.setDataUpdateTime(new Date()); + dataMete.setDataUpdateTime(new Date()); // 电压+电流 - dataLoad.setPhaseAVoltage(StringUtils.getBigDecimal(obj.get("AXDY"))); - dataLoad.setPhaseBVoltage(StringUtils.getBigDecimal(obj.get("BXDY"))); - dataLoad.setPhaseCVoltage(StringUtils.getBigDecimal(obj.get("CXDY"))); - dataLoad.setPhaseACurrent(StringUtils.getBigDecimal(obj.get("AXDL"))); - dataLoad.setPhaseBCurrent(StringUtils.getBigDecimal(obj.get("BXDL"))); - dataLoad.setPhaseCCurrent(StringUtils.getBigDecimal(obj.get("CXDL"))); + dataMete.setPhaseAVoltage(StringUtils.getBigDecimal(obj.get("AXDY"))); + dataMete.setPhaseBVoltage(StringUtils.getBigDecimal(obj.get("BXDY"))); + dataMete.setPhaseCVoltage(StringUtils.getBigDecimal(obj.get("CXDY"))); + dataMete.setPhaseACurrent(StringUtils.getBigDecimal(obj.get("AXDL"))); + dataMete.setPhaseBCurrent(StringUtils.getBigDecimal(obj.get("BXDL"))); + dataMete.setPhaseCCurrent(StringUtils.getBigDecimal(obj.get("CXDL"))); - dataLoad.setAbLineVoltage(StringUtils.getBigDecimal(obj.get("ABXDY"))); - dataLoad.setCbLineVoltage(StringUtils.getBigDecimal(obj.get("BCXDY"))); - dataLoad.setAcLineVoltage(StringUtils.getBigDecimal(obj.get("CAXDY"))); + dataMete.setAbLineVoltage(StringUtils.getBigDecimal(obj.get("ABXDY"))); + dataMete.setCbLineVoltage(StringUtils.getBigDecimal(obj.get("BCXDY"))); + dataMete.setAcLineVoltage(StringUtils.getBigDecimal(obj.get("CAXDY"))); // 频率 - dataLoad.setFrequency(StringUtils.getBigDecimal(obj.get("DWPL"))); + dataMete.setFrequency(StringUtils.getBigDecimal(obj.get("DWPL"))); // 功率 - dataLoad.setPhaseAActivePower(StringUtils.getBigDecimal(obj.get("AXYGGL"))); - dataLoad.setPhaseBActivePower(StringUtils.getBigDecimal(obj.get("BXYGGL"))); - dataLoad.setPhaseCActivePower(StringUtils.getBigDecimal(obj.get("CXYGGL"))); - dataLoad.setTotalActivePower(StringUtils.getBigDecimal(obj.get("ZYGGL"))); - dataLoad.setPhaseAReactivePower(StringUtils.getBigDecimal(obj.get("AXWGGL"))); - dataLoad.setPhaseBReactivePower(StringUtils.getBigDecimal(obj.get("BXWGGL"))); - dataLoad.setPhaseCReactivePower(StringUtils.getBigDecimal(obj.get("CXWGGL"))); - dataLoad.setTotalReactivePower(StringUtils.getBigDecimal(obj.get("ZWGGL"))); + dataMete.setPhaseAActivePower(StringUtils.getBigDecimal(obj.get("AXYGGL"))); + dataMete.setPhaseBActivePower(StringUtils.getBigDecimal(obj.get("BXYGGL"))); + dataMete.setPhaseCActivePower(StringUtils.getBigDecimal(obj.get("CXYGGL"))); + dataMete.setTotalActivePower(StringUtils.getBigDecimal(obj.get("ZYGGL"))); + dataMete.setPhaseAReactivePower(StringUtils.getBigDecimal(obj.get("AXWGGL"))); + dataMete.setPhaseBReactivePower(StringUtils.getBigDecimal(obj.get("BXWGGL"))); + dataMete.setPhaseCReactivePower(StringUtils.getBigDecimal(obj.get("CXWGGL"))); + dataMete.setTotalReactivePower(StringUtils.getBigDecimal(obj.get("ZWGGL"))); + dataMete.setPhaseAApparentPower(StringUtils.getBigDecimal(obj.get("AXSZGL"))); + dataMete.setPhaseBApparentPower(StringUtils.getBigDecimal(obj.get("BXSZGL"))); + dataMete.setPhaseCApparentPower(StringUtils.getBigDecimal(obj.get("CXSZGL"))); + dataMete.setTotalApparentPower(StringUtils.getBigDecimal(obj.get("ZSZGL"))); + dataMete.setPhaseAPowerFactor(StringUtils.getBigDecimal(obj.get("AXGLYS"))); + dataMete.setPhaseBPowerFactor(StringUtils.getBigDecimal(obj.get("BXGLYS"))); + dataMete.setPhaseCPowerFactor(StringUtils.getBigDecimal(obj.get("CXGLYS"))); + dataMete.setTotalPowerFactor(StringUtils.getBigDecimal(obj.get("ZGLYS"))); - dataLoad.setTotalApparentPower(StringUtils.getBigDecimal(obj.get("ZSZGL"))); - dataLoad.setTotalPowerFactor(StringUtils.getBigDecimal(obj.get("ZGLYS"))); + // 电能设置-组合有功 + dataMete.setCurrentCombActiveTotal(StringUtils.getBigDecimal(obj.get("DQZHYGZDN"))); + dataMete.setCurrentCombActivePeak(StringUtils.getBigDecimal(obj.get("DQZHYGJDN"))); + dataMete.setCurrentCombActiveHigh(StringUtils.getBigDecimal(obj.get("DQZHYGFDN"))); + dataMete.setCurrentCombActiveFlat(StringUtils.getBigDecimal(obj.get("DQZHYGPDN"))); + dataMete.setCurrentCombActiveValley(StringUtils.getBigDecimal(obj.get("DQZHYGGDN"))); + // 电能设置-正向有功 + dataMete.setCurrentForwardActiveTotal(StringUtils.getBigDecimal(obj.get("DQZXYGZDN"))); + dataMete.setCurrentForwardActivePeak(StringUtils.getBigDecimal(obj.get("DQZXYGJDN"))); + dataMete.setCurrentForwardActiveHigh(StringUtils.getBigDecimal(obj.get("DQZXYGFDN"))); + dataMete.setCurrentForwardActiveFlat(StringUtils.getBigDecimal(obj.get("DQZXYGPDN"))); + dataMete.setCurrentForwardActiveValley(StringUtils.getBigDecimal(obj.get("DQZXYGGDN"))); + // 电能设置-反向有功 + dataMete.setCurrentReverseActiveTotal(StringUtils.getBigDecimal(obj.get("DQFXYGZDN"))); + dataMete.setCurrentReverseActivePeak(StringUtils.getBigDecimal(obj.get("DQFXYGJDN"))); + dataMete.setCurrentReverseActiveHigh(StringUtils.getBigDecimal(obj.get("DQFXYGFDN"))); + dataMete.setCurrentReverseActiveFlat(StringUtils.getBigDecimal(obj.get("DQFXYGPDN"))); + dataMete.setCurrentReverseActiveValley(StringUtils.getBigDecimal(obj.get("DQFXYGGDN"))); + // 电能设置-组合无功 + dataMete.setCurrentCombReactiveTotal(StringUtils.getBigDecimal(obj.get("DQZHWGZDN"))); + dataMete.setCurrentCombReactivePeak(StringUtils.getBigDecimal(obj.get("DQZHWGJDN"))); + dataMete.setCurrentCombReactiveHigh(StringUtils.getBigDecimal(obj.get("DQZHWGFDN"))); + dataMete.setCurrentCombReactiveFlat(StringUtils.getBigDecimal(obj.get("DQZHWGPDN"))); + dataMete.setCurrentCombReactiveValley(StringUtils.getBigDecimal(obj.get("DQZHWGGDN"))); + // 电能设置-正向无功 + dataMete.setCurrentForwardReactiveTotal(StringUtils.getBigDecimal(obj.get("DQZXWGZDN"))); + 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.setCurrentReverseReactivePeak(StringUtils.getBigDecimal(obj.get("DQFXWGJDN"))); + dataMete.setCurrentReverseReactiveHigh(StringUtils.getBigDecimal(obj.get("DQFXWGFDN"))); + dataMete.setCurrentReverseReactiveFlat(StringUtils.getBigDecimal(obj.get("DQFXWGPDN"))); + dataMete.setCurrentReverseReactiveValley(StringUtils.getBigDecimal(obj.get("DQFXWGGDN"))); + // abc相 + dataMete.setaForwardActiveEnergy(StringUtils.getBigDecimal(obj.get("AXZXYGDN"))); + dataMete.setbForwardActiveEnergy(StringUtils.getBigDecimal(obj.get("BXZXYGDN"))); + dataMete.setcForwardActiveEnergy(StringUtils.getBigDecimal(obj.get("CXZXYGDN"))); - // 二次相关数据 - dataLoad.setSecondaryAbLineVoltage(StringUtils.getBigDecimal(obj.get("ECABXDY"))); - dataLoad.setSecondaryAPhaseCurrent(StringUtils.getBigDecimal(obj.get("ECAXDL"))); - dataLoad.setSecondaryAPhaseVoltage(StringUtils.getBigDecimal(obj.get("ECAXDY"))); - dataLoad.setSecondaryAPowerFactor(StringUtils.getBigDecimal(obj.get("ECAXGLYS"))); - dataLoad.setSecondaryAApparentPower(StringUtils.getBigDecimal(obj.get("ECAXSZGL"))); - dataLoad.setSecondaryAReactivePower(StringUtils.getBigDecimal(obj.get("ECAXWGGL"))); - dataLoad.setSecondaryAActivePower(StringUtils.getBigDecimal(obj.get("ECAXYGGL"))); - dataLoad.setSecondaryBcLineVoltage(StringUtils.getBigDecimal(obj.get("ECBCXDY"))); - dataLoad.setSecondaryBPhaseCurrent(StringUtils.getBigDecimal(obj.get("ECBXDL"))); - dataLoad.setSecondaryBPhaseVoltage(StringUtils.getBigDecimal(obj.get("ECBXDY"))); - dataLoad.setSecondaryBPowerFactor(StringUtils.getBigDecimal(obj.get("ECBXGLYS"))); - dataLoad.setSecondaryBApparentPower(StringUtils.getBigDecimal(obj.get("ECBXSZGL"))); - dataLoad.setSecondaryBReactivePower(StringUtils.getBigDecimal(obj.get("ECBXWGGL"))); - dataLoad.setSecondaryBActivePower(StringUtils.getBigDecimal(obj.get("ECBXYGGL"))); - dataLoad.setSecondaryCaLineVoltage(StringUtils.getBigDecimal(obj.get("ECCAXDY"))); - dataLoad.setSecondaryCPhaseCurrent(StringUtils.getBigDecimal(obj.get("ECCXDL"))); - dataLoad.setSecondaryCPhaseVoltage(StringUtils.getBigDecimal(obj.get("ECCXDY"))); - dataLoad.setSecondaryCPowerFactor(StringUtils.getBigDecimal(obj.get("ECCXGLYS"))); - dataLoad.setSecondaryCApparentPower(StringUtils.getBigDecimal(obj.get("ECCXSZGL"))); - dataLoad.setSecondaryCReactivePower(StringUtils.getBigDecimal(obj.get("ECCXWGGL"))); - dataLoad.setSecondaryCActivePower(StringUtils.getBigDecimal(obj.get("ECCXYGGL"))); - dataLoad.setSecondaryGridFrequency(StringUtils.getBigDecimal(obj.get("ECDWPL"))); - dataLoad.setSecondaryReverseReactiveEnergy(StringUtils.getBigDecimal(obj.get("ECFXWGDN"))); - dataLoad.setSecondaryNegativeActiveEnergy(StringUtils.getBigDecimal(obj.get("ECFXYGDN"))); - dataLoad.setSecondaryTotalPowerFactor(StringUtils.getBigDecimal(obj.get("ECZGLYS"))); - dataLoad.setSecondaryTotalApparentPower(StringUtils.getBigDecimal(obj.get("ECZSZFL"))); - dataLoad.setSecondaryTotalReactivePower(StringUtils.getBigDecimal(obj.get("ECZWGGL"))); - dataLoad.setSecondaryPositiveReactiveEnergy(StringUtils.getBigDecimal(obj.get("ECZXWGDN"))); - dataLoad.setSecondaryPositiveActiveEnergy(StringUtils.getBigDecimal(obj.get("ECZXYGDN"))); - dataLoad.setSecondaryTotalActivePower(StringUtils.getBigDecimal(obj.get("ECZYGGL"))); + // 变比 + dataMete.setCurrentPercent(StringUtils.getBigDecimal(obj.get("DLBBCT"))); + dataMete.setVoltagePercent(StringUtils.getBigDecimal(obj.get("DYBBPT"))); // 需量 - dataLoad.setReverseReactiveEnergyEqMinus(StringUtils.getBigDecimal(obj.get("FXWGDN"))); - dataLoad.setReverseActiveEnergyEpMinus(StringUtils.getBigDecimal(obj.get("FXYGDN"))); - dataLoad.setPositiveReactiveEnergyEqPlus(StringUtils.getBigDecimal(obj.get("ZXWGDN"))); - dataLoad.setPositiveActiveEnergyEpPlus(StringUtils.getBigDecimal(obj.get("ZXYGDN"))); + dataMete.setForwardAcMaxDemand(StringUtils.getBigDecimal(obj.get("ZXYGZDXL"))); + dataMete.setReverseAcMaxDemand(StringUtils.getBigDecimal(obj.get("FXYGZDXL"))); + dataMete.setDailyForwardMaxDemand(StringUtils.getBigDecimal(obj.get("DRZXYGZDXL"))); + dataMete.setForwardReactiveMaxDemand(StringUtils.getBigDecimal(obj.get("ZXWGZDXL"))); + dataMete.setReverseReactiveMaxDemand(StringUtils.getBigDecimal(obj.get("FXWGZDXL"))); + dataMete.setDailyReverseAcMaxDemand(StringUtils.getBigDecimal(obj.get("DRFXYGZDXL"))); + dataMete.setDailyForwardReacMaxDemand(StringUtils.getBigDecimal(obj.get("DRZXWGZDXL"))); + dataMete.setDailyReverseReacMaxDemand(StringUtils.getBigDecimal(obj.get("DRFXWGZDXL"))); - dataLoad.setCreateBy("system"); - dataLoad.setCreateTime(DateUtils.getNowDate()); - dataLoad.setUpdateBy("system"); - dataLoad.setUpdateTime(DateUtils.getNowDate()); - dataLoad.setSiteId(SITE_ID); - dataLoad.setDeviceId(deviceId); + dataMete.setPreDayForwardAcMaxDemand(StringUtils.getBigDecimal(obj.get("S1RZXYGZDXL"))); + dataMete.setPreDayReverseAcMaxDemand(StringUtils.getBigDecimal(obj.get("S1RFXYGZDXL"))); + dataMete.setPreDayForwardReacMaxDemand(StringUtils.getBigDecimal(obj.get("S1RZXWGZDX"))); + dataMete.setPreDayReverseReacMaxDemand(StringUtils.getBigDecimal(obj.get("S1RFXWGZDX"))); + dataMete.setPre2dForwardAcMaxDemand(StringUtils.getBigDecimal(obj.get("S2RZXYGZDXL"))); + dataMete.setPre2dReverseAcMaxDemand(StringUtils.getBigDecimal(obj.get("S2RFXYGZDXL"))); + dataMete.setPre2dForwardReacMaxDemand(StringUtils.getBigDecimal(obj.get("S2RZXWGZDXL"))); + dataMete.setPre2dReverseReacMaxDemand(StringUtils.getBigDecimal(obj.get("S2RFXWGZDXL"))); - emsAmmeterDataMapper.insertEmsAmmeterData(dataLoad); + dataMete.setCurrentForwardAcDemand(StringUtils.getBigDecimal(obj.get("DQZXYGXL"))); + dataMete.setCurrentReverseAcDemand(StringUtils.getBigDecimal(obj.get("DQFXYGXL"))); + dataMete.setCurrentForwardReacDemand(StringUtils.getBigDecimal(obj.get("DQZXWGXL"))); + dataMete.setCurrentReverseReacDemand(StringUtils.getBigDecimal(obj.get("DQFXWGXL"))); - redisCache.setCacheObject(RedisKeyConstants.AMMETER + SITE_ID + "_" +deviceId, dataLoad); + // 其他字段 + dataMete.setDidoStatus(StringUtils.getString(obj.get("DIDOZTSYZT"))); + dataMete.setRunningStatus(StringUtils.getString(obj.get("YXZT"))); + dataMete.setZeroSeqCurrent(StringUtils.getBigDecimal(obj.get("LXDL"))); + dataMete.setVoltageUnbalanceDegree(StringUtils.getBigDecimal(obj.get("DYBPHD"))); + dataMete.setCurrentUnbalanceDegree(StringUtils.getBigDecimal(obj.get("DLBPHD"))); + + dataMete.setCreateBy("system"); + dataMete.setCreateTime(DateUtils.getNowDate()); + dataMete.setUpdateBy("system"); + dataMete.setUpdateTime(DateUtils.getNowDate()); + dataMete.setSiteId(SITE_ID); + dataMete.setDeviceId(deviceId); + + emsAmmeterDataMapper.insertEmsAmmeterData(dataMete); + + redisCache.setCacheObject(RedisKeyConstants.AMMETER + SITE_ID + "_" +deviceId, dataMete); } // 数据分组处理 private static Map> processData(Map rawData) { diff --git a/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml index ec1fdfc..914c099 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsAmmeterDataMapper.xml @@ -110,10 +110,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - select id, data_update_time, current_comb_active_total, current_comb_active_peak, current_comb_active_high, current_comb_active_flat, current_comb_active_valley, current_forward_active_total, current_forward_active_peak, current_forward_active_high, current_forward_active_flat, current_forward_active_valley, current_reverse_active_total, current_reverse_active_peak, current_reverse_active_high, current_reverse_active_flat, current_reverse_active_valley, current_comb_reactive_total, current_comb_reactive_peak, current_comb_reactive_high, current_comb_reactive_flat, current_comb_reactive_valley, current_forward_reactive_total, current_forward_reactive_peak, current_forward_reactive_high, current_forward_reactive_flat, current_forward_reactive_valley, current_reverse_reactive_total, current_reverse_reactive_peak, current_reverse_reactive_high, current_reverse_reactive_flat, current_reverse_reactive_valley, phase_a_voltage, phase_b_voltage, phase_c_voltage, phase_a_current, phase_b_current, phase_c_current, frequency, ab_line_voltage, cb_line_voltage, ac_line_voltage, forward_ac_max_demand, reverse_ac_max_demand, phase_a_active_power, phase_b_active_power, phase_c_active_power, total_active_power, phase_a_reactive_power, phase_b_reactive_power, phase_c_reactive_power, total_reactive_power, phase_a_apparent_power, phase_b_apparent_power, phase_c_apparent_power, total_apparent_power, phase_a_power_factor, phase_b_power_factor, phase_c_power_factor, total_power_factor, daily_forward_max_demand, site_id, device_id, create_by, create_time, update_by, update_time, remark, secondary_ab_line_voltage, secondary_a_phase_current, secondary_a_phase_voltage, secondary_a_power_factor, secondary_a_apparent_power, secondary_a_reactive_power, secondary_a_active_power, secondary_bc_line_voltage, secondary_b_phase_current, secondary_b_phase_voltage, secondary_b_power_factor, secondary_b_apparent_power, secondary_b_reactive_power, secondary_b_active_power, secondary_ca_line_voltage, secondary_c_phase_current, secondary_c_phase_voltage, secondary_c_power_factor, secondary_c_apparent_power, secondary_c_reactive_power, secondary_c_active_power, secondary_grid_frequency, secondary_reverse_reactive_energy, secondary_negative_active_energy, secondary_total_power_factor, secondary_total_apparent_power, secondary_total_reactive_power, secondary_positive_reactive_energy, secondary_positive_active_energy, secondary_total_active_power, reverse_reactive_energy_eq_minus, reverse_active_energy_ep_minus, positive_reactive_energy_eq_plus, positive_active_energy_ep_plus, current_percent, voltage_percent, avg_current from ems_ammeter_data + select id, data_update_time, current_comb_active_total, current_comb_active_peak, current_comb_active_high, current_comb_active_flat, current_comb_active_valley, current_forward_active_total, current_forward_active_peak, current_forward_active_high, current_forward_active_flat, current_forward_active_valley, current_reverse_active_total, current_reverse_active_peak, current_reverse_active_high, current_reverse_active_flat, current_reverse_active_valley, current_comb_reactive_total, current_comb_reactive_peak, current_comb_reactive_high, current_comb_reactive_flat, current_comb_reactive_valley, current_forward_reactive_total, current_forward_reactive_peak, current_forward_reactive_high, current_forward_reactive_flat, current_forward_reactive_valley, current_reverse_reactive_total, current_reverse_reactive_peak, current_reverse_reactive_high, current_reverse_reactive_flat, current_reverse_reactive_valley, phase_a_voltage, phase_b_voltage, phase_c_voltage, phase_a_current, phase_b_current, phase_c_current, frequency, ab_line_voltage, cb_line_voltage, ac_line_voltage, forward_ac_max_demand, reverse_ac_max_demand, phase_a_active_power, phase_b_active_power, phase_c_active_power, total_active_power, phase_a_reactive_power, phase_b_reactive_power, phase_c_reactive_power, total_reactive_power, phase_a_apparent_power, phase_b_apparent_power, phase_c_apparent_power, total_apparent_power, phase_a_power_factor, phase_b_power_factor, phase_c_power_factor, total_power_factor, daily_forward_max_demand, site_id, device_id, create_by, create_time, update_by, update_time, remark, secondary_ab_line_voltage, secondary_a_phase_current, secondary_a_phase_voltage, secondary_a_power_factor, secondary_a_apparent_power, secondary_a_reactive_power, secondary_a_active_power, secondary_bc_line_voltage, secondary_b_phase_current, secondary_b_phase_voltage, secondary_b_power_factor, secondary_b_apparent_power, secondary_b_reactive_power, secondary_b_active_power, secondary_ca_line_voltage, secondary_c_phase_current, secondary_c_phase_voltage, secondary_c_power_factor, secondary_c_apparent_power, secondary_c_reactive_power, secondary_c_active_power, secondary_grid_frequency, secondary_reverse_reactive_energy, secondary_negative_active_energy, secondary_total_power_factor, secondary_total_apparent_power, secondary_total_reactive_power, secondary_positive_reactive_energy, secondary_positive_active_energy, secondary_total_active_power, reverse_reactive_energy_eq_minus, reverse_active_energy_ep_minus, positive_reactive_energy_eq_plus, positive_active_energy_ep_plus, current_percent, voltage_percent, avg_current, total_forward_active_two, total_peak_forward_active, total_high_forward_active, total_flat_forward_active, total_valley_forward_active, total_reverse_active_two, total_peak_reverse_active, total_high_reverse_active, total_flat_reverse_active, total_valley_reverse_active, disconnect_detection_indication, rated_primary_current_value, switch_input_output_status, alarm_status, current_total_voltage_percent, voltage_content_percent, voltage_ac_percent, current_total_current_percent, current_content_percent, current_ac_percent, current_total_power_percent, power_content_percent, power_ac_percent, data_setting_year_month, data_setting_day_hour, data_setting_minutes_seconds, current_rate, version_number, voltage, current, power, internal_temp, total_forward_active_one, total_reverse_active_one, forward_reactive_max_demand, reverse_reactive_max_demand, a_forward_active_energy, b_forward_active_energy, c_forward_active_energy, dido_status, running_status, zero_seq_current, voltage_unbalance_degree, current_unbalance_degree, daily_reverse_ac_max_demand, daily_forward_reac_max_demand, daily_reverse_reac_max_demand, pre_day_forward_ac_max_demand, pre_day_reverse_ac_max_demand, pre_day_forward_reac_max_demand, pre_day_reverse_reac_max_demand, pre_2d_forward_ac_max_demand, pre_2d_reverse_ac_max_demand, pre_2d_forward_reac_max_demand, pre_2d_reverse_reac_max_demand, current_forward_ac_demand, current_reverse_ac_demand, current_forward_reac_demand, current_reverse_reac_demand from ems_ammeter_data @@ -333,6 +451,65 @@ current_percent, voltage_percent, avg_current, + total_forward_active_two, + total_peak_forward_active, + total_high_forward_active, + total_flat_forward_active, + total_valley_forward_active, + total_reverse_active_two, + total_peak_reverse_active, + total_high_reverse_active, + total_flat_reverse_active, + total_valley_reverse_active, + disconnect_detection_indication, + rated_primary_current_value, + switch_input_output_status, + alarm_status, + current_total_voltage_percent, + voltage_content_percent, + voltage_ac_percent, + current_total_current_percent, + current_content_percent, + current_ac_percent, + current_total_power_percent, + power_content_percent, + power_ac_percent, + data_setting_year_month, + data_setting_day_hour, + data_setting_minutes_seconds, + current_rate, + version_number, + voltage, + current, + power, + internal_temp, + total_forward_active_one, + total_reverse_active_one, + forward_reactive_max_demand, + reverse_reactive_max_demand, + a_forward_active_energy, + b_forward_active_energy, + c_forward_active_energy, + dido_status, + running_status, + zero_seq_current, + voltage_unbalance_degree, + current_unbalance_degree, + daily_reverse_ac_max_demand, + daily_forward_reac_max_demand, + daily_reverse_reac_max_demand, + pre_day_forward_ac_max_demand, + pre_day_reverse_ac_max_demand, + pre_day_forward_reac_max_demand, + pre_day_reverse_reac_max_demand, + pre_2d_forward_ac_max_demand, + pre_2d_reverse_ac_max_demand, + pre_2d_forward_reac_max_demand, + pre_2d_reverse_reac_max_demand, + current_forward_ac_demand, + current_reverse_ac_demand, + current_forward_reac_demand, + current_reverse_reac_demand, #{dataUpdateTime}, @@ -439,6 +616,65 @@ #{currentPercent}, #{voltagePercent}, #{avgCurrent}, + #{totalForwardActiveTwo}, + #{totalPeakForwardActive}, + #{totalHighForwardActive}, + #{totalFlatForwardActive}, + #{totalValleyForwardActive}, + #{totalReverseActiveTwo}, + #{totalPeakReverseActive}, + #{totalHighReverseActive}, + #{totalFlatReverseActive}, + #{totalValleyReverseActive}, + #{disconnectDetectionIndication}, + #{ratedPrimaryCurrentValue}, + #{switchInputOutputStatus}, + #{alarmStatus}, + #{currentTotalVoltagePercent}, + #{voltageContentPercent}, + #{voltageAcPercent}, + #{currentTotalCurrentPercent}, + #{currentContentPercent}, + #{currentAcPercent}, + #{currentTotalPowerPercent}, + #{powerContentPercent}, + #{powerAcPercent}, + #{dataSettingYearMonth}, + #{dataSettingDayHour}, + #{dataSettingMinutesSeconds}, + #{currentRate}, + #{versionNumber}, + #{voltage}, + #{current}, + #{power}, + #{internalTemp}, + #{totalForwardActiveOne}, + #{totalReverseActiveOne}, + #{forwardReactiveMaxDemand}, + #{reverseReactiveMaxDemand}, + #{aForwardActiveEnergy}, + #{bForwardActiveEnergy}, + #{cForwardActiveEnergy}, + #{didoStatus}, + #{runningStatus}, + #{zeroSeqCurrent}, + #{voltageUnbalanceDegree}, + #{currentUnbalanceDegree}, + #{dailyReverseAcMaxDemand}, + #{dailyForwardReacMaxDemand}, + #{dailyReverseReacMaxDemand}, + #{preDayForwardAcMaxDemand}, + #{preDayReverseAcMaxDemand}, + #{preDayForwardReacMaxDemand}, + #{preDayReverseReacMaxDemand}, + #{pre2dForwardAcMaxDemand}, + #{pre2dReverseAcMaxDemand}, + #{pre2dForwardReacMaxDemand}, + #{pre2dReverseReacMaxDemand}, + #{currentForwardAcDemand}, + #{currentReverseAcDemand}, + #{currentForwardReacDemand}, + #{currentReverseReacDemand}, @@ -549,6 +785,65 @@ current_percent = #{currentPercent}, voltage_percent = #{voltagePercent}, avg_current = #{avgCurrent}, + total_forward_active_two = #{totalForwardActiveTwo}, + total_peak_forward_active = #{totalPeakForwardActive}, + total_high_forward_active = #{totalHighForwardActive}, + total_flat_forward_active = #{totalFlatForwardActive}, + total_valley_forward_active = #{totalValleyForwardActive}, + total_reverse_active_two = #{totalReverseActiveTwo}, + total_peak_reverse_active = #{totalPeakReverseActive}, + total_high_reverse_active = #{totalHighReverseActive}, + total_flat_reverse_active = #{totalFlatReverseActive}, + total_valley_reverse_active = #{totalValleyReverseActive}, + disconnect_detection_indication = #{disconnectDetectionIndication}, + rated_primary_current_value = #{ratedPrimaryCurrentValue}, + switch_input_output_status = #{switchInputOutputStatus}, + alarm_status = #{alarmStatus}, + current_total_voltage_percent = #{currentTotalVoltagePercent}, + voltage_content_percent = #{voltageContentPercent}, + voltage_ac_percent = #{voltageAcPercent}, + current_total_current_percent = #{currentTotalCurrentPercent}, + current_content_percent = #{currentContentPercent}, + current_ac_percent = #{currentAcPercent}, + current_total_power_percent = #{currentTotalPowerPercent}, + power_content_percent = #{powerContentPercent}, + power_ac_percent = #{powerAcPercent}, + data_setting_year_month = #{dataSettingYearMonth}, + data_setting_day_hour = #{dataSettingDayHour}, + data_setting_minutes_seconds = #{dataSettingMinutesSeconds}, + current_rate = #{currentRate}, + version_number = #{versionNumber}, + voltage = #{voltage}, + current = #{current}, + power = #{power}, + internal_temp = #{internalTemp}, + total_forward_active_one = #{totalForwardActiveOne}, + total_reverse_active_one = #{totalReverseActiveOne}, + forward_reactive_max_demand = #{forwardReactiveMaxDemand}, + reverse_reactive_max_demand = #{reverseReactiveMaxDemand}, + a_forward_active_energy = #{aForwardActiveEnergy}, + b_forward_active_energy = #{bForwardActiveEnergy}, + c_forward_active_energy = #{cForwardActiveEnergy}, + dido_status = #{didoStatus}, + running_status = #{runningStatus}, + zero_seq_current = #{zeroSeqCurrent}, + voltage_unbalance_degree = #{voltageUnbalanceDegree}, + current_unbalance_degree = #{currentUnbalanceDegree}, + daily_reverse_ac_max_demand = #{dailyReverseAcMaxDemand}, + daily_forward_reac_max_demand = #{dailyForwardReacMaxDemand}, + daily_reverse_reac_max_demand = #{dailyReverseReacMaxDemand}, + pre_day_forward_ac_max_demand = #{preDayForwardAcMaxDemand}, + pre_day_reverse_ac_max_demand = #{preDayReverseAcMaxDemand}, + pre_day_forward_reac_max_demand = #{preDayForwardReacMaxDemand}, + pre_day_reverse_reac_max_demand = #{preDayReverseReacMaxDemand}, + pre_2d_forward_ac_max_demand = #{pre2dForwardAcMaxDemand}, + pre_2d_reverse_ac_max_demand = #{pre2dReverseAcMaxDemand}, + pre_2d_forward_reac_max_demand = #{pre2dForwardReacMaxDemand}, + pre_2d_reverse_reac_max_demand = #{pre2dReverseReacMaxDemand}, + current_forward_ac_demand = #{currentForwardAcDemand}, + current_reverse_ac_demand = #{currentReverseAcDemand}, + current_forward_reac_demand = #{currentForwardReacDemand}, + current_reverse_reac_demand = #{currentReverseReacDemand}, where id = #{id} diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml index 3522724..55be7aa 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml @@ -59,32 +59,10 @@ - - - - - - - - - - - - - - - - - - - - - - - select id, work_status, pcs_communication_status, ems_communication_status, cluster_voltage, chargeable_capacity, total_charged_capacity, cluster_current, dischargeable_capacity, total_discharged_capacity, soh, average_temperature, insulation_resistance, current_soc, create_by, create_time, update_by, update_time, remark, site_id, device_id, stack_device_id, max_allowed_charge_power, max_allowed_discharge_power, max_allowed_charge_voltage, max_allowed_discharge_voltage, max_allowed_charge_current, max_allowed_discharge_current, battery_pack_voltage, battery_pack_current, battery_pack_temp, battery_pack_soc, battery_pack_soh, battery_pack_insulation_resistance, avg_cell_voltage, avg_cell_temp, max_cell_voltage, max_cell_voltage_id, min_cell_voltage, min_cell_voltage_id, max_cell_temp, max_cell_temp_id, min_cell_temp, min_cell_temp_id, max_cell_soc, max_cell_soc_id, min_cell_soc, min_cell_soc_id, max_cell_soh, max_cell_soh_id, min_cell_soh, min_cell_soh_id, total_charge_energy, total_discharge_energy, disconnect_detection_indication, voltage_transfor_ratio, rated_primary_current_value, switch_input_output_status, alarm_status, current_total_voltage_percent, voltage_content_percent, voltage_ac_percent, current_total_current_percent, current_content_percent, current_ac_percent, current_total_power_percent, power_content_percent, power_ac_percent, data_setting_year_month, data_setting_day_hour, data_setting_minutes_seconds, current_rate, version_number, voltage, current, power from ems_battery_cluster + select id, work_status, pcs_communication_status, ems_communication_status, cluster_voltage, chargeable_capacity, total_charged_capacity, cluster_current, dischargeable_capacity, total_discharged_capacity, soh, average_temperature, insulation_resistance, current_soc, create_by, create_time, update_by, update_time, remark, site_id, device_id, stack_device_id, max_allowed_charge_power, max_allowed_discharge_power, max_allowed_charge_voltage, max_allowed_discharge_voltage, max_allowed_charge_current, max_allowed_discharge_current, battery_pack_voltage, battery_pack_current, battery_pack_temp, battery_pack_soc, battery_pack_soh, battery_pack_insulation_resistance, avg_cell_voltage, avg_cell_temp, max_cell_voltage, max_cell_voltage_id, min_cell_voltage, min_cell_voltage_id, max_cell_temp, max_cell_temp_id, min_cell_temp, min_cell_temp_id, max_cell_soc, max_cell_soc_id, min_cell_soc, min_cell_soc_id, max_cell_soh, max_cell_soh_id, min_cell_soh, min_cell_soh_id, total_charge_energy, total_discharge_energy from ems_battery_cluster @@ -224,28 +180,6 @@ min_cell_soh_id, total_charge_energy, total_discharge_energy, - disconnect_detection_indication, - voltage_transfor_ratio, - rated_primary_current_value, - switch_input_output_status, - alarm_status, - current_total_voltage_percent, - voltage_content_percent, - voltage_ac_percent, - current_total_current_percent, - current_content_percent, - current_ac_percent, - current_total_power_percent, - power_content_percent, - power_ac_percent, - data_setting_year_month, - data_setting_day_hour, - data_setting_minutes_seconds, - current_rate, - version_number, - voltage, - current, - power, #{workStatus}, @@ -301,28 +235,6 @@ #{minCellSohId}, #{totalChargeEnergy}, #{totalDischargeEnergy}, - #{disconnectDetectionIndication}, - #{voltageTransforRatio}, - #{ratedPrimaryCurrentValue}, - #{switchInputOutputStatus}, - #{alarmStatus}, - #{currentTotalVoltagePercent}, - #{voltageContentPercent}, - #{voltageAcPercent}, - #{currentTotalCurrentPercent}, - #{currentContentPercent}, - #{currentAcPercent}, - #{currentTotalPowerPercent}, - #{powerContentPercent}, - #{powerAcPercent}, - #{dataSettingYearMonth}, - #{dataSettingDayHour}, - #{dataSettingMinutesSeconds}, - #{currentRate}, - #{versionNumber}, - #{voltage}, - #{current}, - #{power}, @@ -382,28 +294,6 @@ min_cell_soh_id = #{minCellSohId}, total_charge_energy = #{totalChargeEnergy}, total_discharge_energy = #{totalDischargeEnergy}, - disconnect_detection_indication = #{disconnectDetectionIndication}, - voltage_transfor_ratio = #{voltageTransforRatio}, - rated_primary_current_value = #{ratedPrimaryCurrentValue}, - switch_input_output_status = #{switchInputOutputStatus}, - alarm_status = #{alarmStatus}, - current_total_voltage_percent = #{currentTotalVoltagePercent}, - voltage_content_percent = #{voltageContentPercent}, - voltage_ac_percent = #{voltageAcPercent}, - current_total_current_percent = #{currentTotalCurrentPercent}, - current_content_percent = #{currentContentPercent}, - current_ac_percent = #{currentAcPercent}, - current_total_power_percent = #{currentTotalPowerPercent}, - power_content_percent = #{powerContentPercent}, - power_ac_percent = #{powerAcPercent}, - data_setting_year_month = #{dataSettingYearMonth}, - data_setting_day_hour = #{dataSettingDayHour}, - data_setting_minutes_seconds = #{dataSettingMinutesSeconds}, - current_rate = #{currentRate}, - version_number = #{versionNumber}, - voltage = #{voltage}, - current = #{current}, - power = #{power}, where id = #{id} diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryDataMapper.xml index 3760a95..5776165 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryDataMapper.xml @@ -22,10 +22,11 @@ + - select id, battery_pack, battery_cluster, battery_cell_id, voltage, temperature, soc, soh, data_timestamp, create_by, create_time, update_by, update_time, remark, site_id, device_id, cluster_device_id from ems_battery_data + select id, battery_pack, battery_cluster, battery_cell_id, voltage, temperature, soc, soh, data_timestamp, create_by, create_time, update_by, update_time, remark, site_id, device_id, cluster_device_id, inter_resistance from ems_battery_data @@ -69,6 +71,7 @@ site_id, device_id, cluster_device_id, + inter_resistance, #{batteryPack}, @@ -87,6 +90,7 @@ #{siteId}, #{deviceId}, #{clusterDeviceId}, + #{interResistance}, @@ -109,6 +113,7 @@ site_id = #{siteId}, device_id = #{deviceId}, cluster_device_id = #{clusterDeviceId}, + inter_resistance = #{interResistance}, where id = #{id} @@ -202,14 +207,14 @@ battery_pack, battery_cluster, battery_cell_id, voltage, temperature, soc, soh, data_timestamp, create_by, create_time, update_by, update_time, - remark, site_id, device_id, cluster_device_id + remark, site_id, device_id, cluster_device_id, inter_resistance ) VALUES ( #{item.batteryPack}, #{item.batteryCluster}, #{item.batteryCellId}, #{item.voltage}, #{item.temperature}, #{item.soc}, #{item.soh}, #{item.dataTimestamp}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, - #{item.remark}, #{item.siteId}, #{item.deviceId}, #{item.clusterDeviceId} + #{item.remark}, #{item.siteId}, #{item.deviceId}, #{item.clusterDeviceId},#{item.interResistance} ) diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryGroupMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryGroupMapper.xml new file mode 100644 index 0000000..2a18355 --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryGroupMapper.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + select id, status, voltage, current, soc, soh, estimated_backup_duration, create_by, create_time, update_by, update_time, remark, site_id, device_id from ems_battery_group + + + + + + + + insert into ems_battery_group + + status, + voltage, + current, + soc, + soh, + estimated_backup_duration, + create_by, + create_time, + update_by, + update_time, + remark, + site_id, + device_id, + + + #{status}, + #{voltage}, + #{current}, + #{soc}, + #{soh}, + #{estimatedBackupDuration}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{siteId}, + #{deviceId}, + + + + + update ems_battery_group + + status = #{status}, + voltage = #{voltage}, + current = #{current}, + soc = #{soc}, + soh = #{soh}, + estimated_backup_duration = #{estimatedBackupDuration}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + site_id = #{siteId}, + device_id = #{deviceId}, + + where id = #{id} + + + + delete from ems_battery_group where id = #{id} + + + + delete from ems_battery_group where id in + + #{id} + + + + + INSERT INTO ems_battery_group ( + status, + voltage, + current, + soc, + soh, + estimated_backup_duration, + create_by, + create_time, + update_by, + update_time, + remark, + site_id, + device_id + ) VALUES + + + ( + #{item.status}, + #{item.voltage}, + #{item.current}, + #{item.soc}, + #{item.soh}, + #{item.estimatedBackupDuration}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime}, + #{item.remark}, + #{item.siteId}, + #{item.deviceId} + ) + + + + \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsDhDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsDhDataMapper.xml new file mode 100644 index 0000000..8844d1c --- /dev/null +++ b/ems-system/src/main/resources/mapper/ems/EmsDhDataMapper.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + select id, humidity, temperature, create_by, create_time, update_by, update_time, remark, site_id, device_id from ems_dh_data + + + + + + + + insert into ems_dh_data + + humidity, + temperature, + create_by, + create_time, + update_by, + update_time, + remark, + site_id, + device_id, + + + #{humidity}, + #{temperature}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{siteId}, + #{deviceId}, + + + + + update ems_dh_data + + humidity = #{humidity}, + temperature = #{temperature}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + site_id = #{siteId}, + device_id = #{deviceId}, + + where id = #{id} + + + + delete from ems_dh_data where id = #{id} + + + + delete from ems_dh_data where id in + + #{id} + + + \ No newline at end of file