From 6a5504434d5b16aff7cbf24aff48da0e74fcb8e7 Mon Sep 17 00:00:00 2001 From: mashili Date: Sat, 5 Jul 2025 23:24:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E9=87=8F=E6=8C=87=E6=A0=87-=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=AD=9B=E9=80=89=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xzzn/ems/domain/vo/BatteryAveSOCVo.java | 26 ++-- .../xzzn/ems/domain/vo/BatteryAveTempVo.java | 27 ++--- .../ems/domain/vo/ElectricDataInfoVo.java | 13 ++ .../ems/domain/vo/EnergyStoragePowVo.java | 38 ++---- .../com/xzzn/ems/domain/vo/PCSAveTempVo.java | 25 ++-- .../com/xzzn/ems/mapper/EmsPcsDataMapper.java | 44 ++++++- .../impl/EmsStatsReportServiceImpl.java | 25 +++- .../impl/FXXDataProcessServiceImpl.java | 4 +- .../service/impl/SingleSiteServiceImpl.java | 12 ++ .../resources/mapper/ems/EmsPcsDataMapper.xml | 112 +++++++++++++++++- 10 files changed, 225 insertions(+), 101 deletions(-) diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveSOCVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveSOCVo.java index 5c216e3..806491d 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveSOCVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveSOCVo.java @@ -1,6 +1,7 @@ package com.xzzn.ems.domain.vo; import java.math.BigDecimal; +import java.util.Date; /** * 实时运行-电池平均SOC数据 @@ -8,26 +9,21 @@ import java.math.BigDecimal; */ public class BatteryAveSOCVo { /** - * 月份 月+日 + * 数据时间 */ - private String monthDay; + private Date createDate; /** * 实时SOC */ private BigDecimal batterySOC; - /** - * 昨日SOC - */ - private BigDecimal ytdBatterySOC; - - public String getMonthDay() { - return monthDay; + public Date getCreateDate() { + return createDate; } - public void setMonthDay(String monthDay) { - this.monthDay = monthDay; + public void setCreateDate(Date createDate) { + this.createDate = createDate; } public BigDecimal getBatterySOC() { @@ -37,12 +33,4 @@ public class BatteryAveSOCVo { public void setBatterySOC(BigDecimal batterySOC) { this.batterySOC = batterySOC; } - - public BigDecimal getYtdBatterySOC() { - return ytdBatterySOC; - } - - public void setYtdBatterySOC(BigDecimal ytdBatterySOC) { - this.ytdBatterySOC = ytdBatterySOC; - } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveTempVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveTempVo.java index 7b89800..bcab5d4 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveTempVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/BatteryAveTempVo.java @@ -1,6 +1,7 @@ package com.xzzn.ems.domain.vo; import java.math.BigDecimal; +import java.util.Date; /** * 实时运行-电池平均温度数据 @@ -8,27 +9,21 @@ import java.math.BigDecimal; */ public class BatteryAveTempVo { /** - * 月份 月+日 + * 数据时间 */ - private String monthDay; + private Date createDate; /** * 实时温度 */ private BigDecimal batteryTemp; - /** - * 昨日温度 - */ - private BigDecimal batteryYtdTemp; - - - public String getMonthDay() { - return monthDay; + public Date getCreateDate() { + return createDate; } - public void setMonthDay(String monthDay) { - this.monthDay = monthDay; + public void setCreateDate(Date createDate) { + this.createDate = createDate; } public BigDecimal getBatteryTemp() { @@ -38,12 +33,4 @@ public class BatteryAveTempVo { public void setBatteryTemp(BigDecimal batteryTemp) { this.batteryTemp = batteryTemp; } - - public BigDecimal getBatteryYtdTemp() { - return batteryYtdTemp; - } - - public void setBatteryYtdTemp(BigDecimal batteryYtdTemp) { - this.batteryYtdTemp = batteryYtdTemp; - } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricDataInfoVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricDataInfoVo.java index 5827ba6..1743d70 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricDataInfoVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricDataInfoVo.java @@ -9,6 +9,11 @@ import java.util.List; */ public class ElectricDataInfoVo { + /** + * 显示时间单位 + */ + private String unit; + /** * 总充电量 */ @@ -29,6 +34,14 @@ public class ElectricDataInfoVo { */ private List sevenDayDisChargeStats; + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + public BigDecimal getTotalChargedCap() { return totalChargedCap; } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/EnergyStoragePowVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/EnergyStoragePowVo.java index 82d583b..44e5534 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/EnergyStoragePowVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/EnergyStoragePowVo.java @@ -1,6 +1,7 @@ package com.xzzn.ems.domain.vo; import java.math.BigDecimal; +import java.util.Date; /** * 实时运行-储能功率数据 @@ -8,9 +9,9 @@ import java.math.BigDecimal; */ public class EnergyStoragePowVo { /** - * 月份 月+日 + * 显示日期 */ - private String monthDay; + private Date createDate; /** * pcs实时有功功率 @@ -22,22 +23,13 @@ public class EnergyStoragePowVo { */ private BigDecimal pcsTotalReactivePower; - /** - * pcs昨日有功功率 - */ - private BigDecimal pcsYtdActPower; - /** - * pcs昨日无功功率 - */ - private BigDecimal pcsYtdReactivePower; - - public String getMonthDay() { - return monthDay; + public Date getCreateDate() { + return createDate; } - public void setMonthDay(String monthDay) { - this.monthDay = monthDay; + public void setCreateDate(Date createDate) { + this.createDate = createDate; } public BigDecimal getPcsTotalActPower() { @@ -55,20 +47,4 @@ public class EnergyStoragePowVo { public void setPcsTotalReactivePower(BigDecimal pcsTotalReactivePower) { this.pcsTotalReactivePower = pcsTotalReactivePower; } - - public BigDecimal getPcsYtdActPower() { - return pcsYtdActPower; - } - - public void setPcsYtdActPower(BigDecimal pcsYtdActPower) { - this.pcsYtdActPower = pcsYtdActPower; - } - - public BigDecimal getPcsYtdReactivePower() { - return pcsYtdReactivePower; - } - - public void setPcsYtdReactivePower(BigDecimal pcsYtdReactivePower) { - this.pcsYtdReactivePower = pcsYtdReactivePower; - } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java index 7dac945..1af5cbf 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java @@ -1,6 +1,7 @@ package com.xzzn.ems.domain.vo; import java.math.BigDecimal; +import java.util.Date; /** * 实时运行-pcs平均温度数据 @@ -8,26 +9,22 @@ import java.math.BigDecimal; */ public class PCSAveTempVo { /** - * 月份 月+日 + * 数据时间 */ - private String monthDay; + private Date createDate; /** * 实时温度 */ private BigDecimal pcsTemp; - /** - * 昨日同时段温度(到分) - */ - private BigDecimal pcsYtdTemp; - public String getMonthDay() { - return monthDay; + public Date getCreateDate() { + return createDate; } - public void setMonthDay(String monthDay) { - this.monthDay = monthDay; + public void setCreateDate(Date createDate) { + this.createDate = createDate; } public BigDecimal getPcsTemp() { @@ -37,12 +34,4 @@ public class PCSAveTempVo { public void setPcsTemp(BigDecimal pcsTemp) { this.pcsTemp = pcsTemp; } - - public BigDecimal getPcsYtdTemp() { - return pcsYtdTemp; - } - - public void setPcsYtdTemp(BigDecimal pcsYtdTemp) { - this.pcsYtdTemp = pcsYtdTemp; - } } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java index ad02af4..f7c704e 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsPcsDataMapper.java @@ -100,8 +100,48 @@ public interface EmsPcsDataMapper /** * 根据时间按天获取充放电量 - * @param requestVo + * @param siteId + * @param startDate + * @param endDate * @return */ - public List getPcsDataByDate(DateSearchRequest requestVo); + public List getPcsDataByDay(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + /** + * 根据时间按月获取充放电量 + * @param siteId + * @param startDate + * @param endDate + * @return + */ + public List getPcsDataByMonth(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + /** + * 根据时间按小时获取充放电量 + * @param siteId + * @param startDate + * @param endDate + * @return + */ + public List getPcsDataByHour(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + + /** + * 获取实时运行-储能功率 + * @param siteId + * @param startDate + * @param endDate + * @return + */ + public List getStoragePowerList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + + /** + * 获取实时运行-pcs平均温度 + * @param siteId + * @param startDate + * @param endDate + * @return + */ + public List getPcsAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + + public List getAveSocList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + + public List getBatteryAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java index bd59fc7..2b757d0 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsStatsReportServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -43,10 +44,28 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService // 如果没有传时间,默认从今天往前7天 LocalDate sevenDaysAgo = LocalDate.now().minusDays(6); startDate = DateUtils.toDate(sevenDaysAgo); - requestVo.setStartDate(startDate); + endDate = new Date(); } - // 根据时间获取每天的充放电量 - List dataList = emsPcsDataMapper.getPcsDataByDate(requestVo); + + List dataList = new ArrayList(); + // 开始日期和结束日期同一天,展示 0-24 小时数据 + if (DateUtils.isSameDay(startDate, endDate)){ + electricDataInfoVo.setUnit("时"); + endDate = DateUtils.addDays(endDate, 1); + dataList = emsPcsDataMapper.getPcsDataByHour(requestVo.getSiteId(), startDate, endDate); + } else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1 + && DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){ + electricDataInfoVo.setUnit("日"); + endDate = DateUtils.addDays(endDate, 1); + // 开始日期-结束日期大于 1 天,小于30 天,按天展示数据 + dataList = emsPcsDataMapper.getPcsDataByDay(requestVo.getSiteId(), startDate, endDate); + } else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 30){ + electricDataInfoVo.setUnit("月"); + endDate = DateUtils.addDays(endDate, 1); + // 开始日期-结束日期大于 1 个月,按月展示数据 + dataList = emsPcsDataMapper.getPcsDataByMonth(requestVo.getSiteId(), startDate, endDate); + } + // 根据时间获取每天的充放电量 if (!CollectionUtils.isEmpty(dataList)){ // 总充、总放、效率 BigDecimal totalDischarge = new BigDecimal(0); diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java index 4ffb995..87e0733 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java @@ -300,9 +300,9 @@ public class FXXDataProcessServiceImpl implements IFXXDataProcessService { pcsData.setControlMode(ControlModeStatus.REMOTE.getCode()); // 功率与能量类字段 - pcsData.setTotalActivePower(StringUtils.getBigDecimal(obj.get("JLCCDYGGL"))); + pcsData.setTotalActivePower(StringUtils.getBigDecimal(obj.get("YGGL"))); pcsData.setDailyAcChargeEnergy(StringUtils.getBigDecimal(obj.get("RCDL"))); - pcsData.setTotalReactivePower(StringUtils.getBigDecimal(obj.get("JLCRXWGGL"))); + pcsData.setTotalReactivePower(StringUtils.getBigDecimal(obj.get("XTWGGL"))); pcsData.setDailyAcDischargeEnergy(StringUtils.getBigDecimal(obj.get("RFDL"))); pcsData.setTotalApparentPower(StringUtils.getBigDecimal(obj.get("XTSZGL"))); pcsData.setTotalPowerFactor(StringUtils.getBigDecimal(obj.get("GLYS"))); diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java index c5ccee9..0a6fa42 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/SingleSiteServiceImpl.java @@ -4,6 +4,7 @@ import com.xzzn.common.constant.RedisKeyConstants; import com.xzzn.common.core.redis.RedisCache; import com.xzzn.common.enums.AmmeterCategory; import com.xzzn.common.enums.DeviceCategory; +import com.xzzn.common.utils.DateUtils; import com.xzzn.common.utils.StringUtils; import com.xzzn.ems.domain.*; import com.xzzn.ems.domain.vo.*; @@ -132,10 +133,21 @@ public class SingleSiteServiceImpl implements ISingleSiteService { public SiteMonitorRuningInfoVo getRunningGraph(String siteId) { SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo(); if (!StringUtils.isEmpty(siteId)) { + // 时间暂定今日+昨日 + Date today = new Date(); + Date yesterday = DateUtils.addDays(today, -1); //储能功率list + List energyStoragePowList = emsPcsDataMapper.getStoragePowerList(siteId, yesterday, today); + siteMonitorRuningInfoVo.setEnergyStoragePowList(energyStoragePowList); //pcs平均温度list + List pcsAveTempVos = emsPcsDataMapper.getPcsAveTempList(siteId, yesterday, today); + siteMonitorRuningInfoVo.setPcsAveTempList(pcsAveTempVos); //电池平均soclist + List batteryAveSOCList = emsPcsDataMapper.getAveSocList(siteId, yesterday, today); + siteMonitorRuningInfoVo.setBatteryAveSOCList(batteryAveSOCList); //电池平均温度list + List batteryAveTempList = emsPcsDataMapper.getBatteryAveTempList(siteId, yesterday, today); + siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList); } return siteMonitorRuningInfoVo; } diff --git a/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml index 919d039..d73b87a 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml @@ -372,10 +372,10 @@ order by tmp.device_id - select CONCAT(t.date_month,'/',t.date_day) as ammeterDate, - sum(t.daily_ac_charge_energy) as chargedCap, - sum(t.daily_ac_discharge_energy) as disChargedCap + sum(t.total_ac_charge_energy) as chargedCap, + sum(t.total_ac_discharge_energy) as disChargedCap from ( SELECT p.site_id, p.device_id,p.date_month,p.date_day, MAX(p.data_update_time) AS max_update_time FROM ems_pcs_data p where p.site_id = #{siteId} @@ -383,15 +383,115 @@ and p.data_update_time >= #{startDate} - and p.data_update_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY) + and p.data_update_time < #{endDate} - GROUP BY p.site_id,p.device_id,p.date_month,p.date_day + GROUP BY p.site_id,p.device_id,p.date_month,p.date_day ) latest inner join ems_pcs_data t ON latest.site_id = t.site_id AND latest.device_id = t.device_id AND latest.max_update_time = t.data_update_time and latest.date_month = t.date_month and latest.date_day = t.date_day group by ammeterDate - order by ammeterDate desc; + order by ammeterDate desc + + + + + + + + + + + + + \ No newline at end of file