电量指标-时间筛选数据

This commit is contained in:
2025-07-05 23:24:13 +08:00
parent f42e8549b1
commit 6a5504434d
10 changed files with 225 additions and 101 deletions

View File

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

View File

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

View File

@ -9,6 +9,11 @@ import java.util.List;
*/
public class ElectricDataInfoVo {
/**
* 显示时间单位
*/
private String unit;
/**
* 总充电量
*/
@ -29,6 +34,14 @@ public class ElectricDataInfoVo {
*/
private List<SiteMonitorDataVo> sevenDayDisChargeStats;
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public BigDecimal getTotalChargedCap() {
return totalChargedCap;
}

View File

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

View File

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

View File

@ -100,8 +100,48 @@ public interface EmsPcsDataMapper
/**
* 根据时间按天获取充放电量
* @param requestVo
* @param siteId
* @param startDate
* @param endDate
* @return
*/
public List<SiteMonitorDataVo> getPcsDataByDate(DateSearchRequest requestVo);
public List<SiteMonitorDataVo> getPcsDataByDay(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
/**
* 根据时间按月获取充放电量
* @param siteId
* @param startDate
* @param endDate
* @return
*/
public List<SiteMonitorDataVo> getPcsDataByMonth(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
/**
* 根据时间按小时获取充放电量
* @param siteId
* @param startDate
* @param endDate
* @return
*/
public List<SiteMonitorDataVo> getPcsDataByHour(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
/**
* 获取实时运行-储能功率
* @param siteId
* @param startDate
* @param endDate
* @return
*/
public List<EnergyStoragePowVo> getStoragePowerList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
/**
* 获取实时运行-pcs平均温度
* @param siteId
* @param startDate
* @param endDate
* @return
*/
public List<PCSAveTempVo> getPcsAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
public List<BatteryAveSOCVo> getAveSocList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
public List<BatteryAveTempVo> getBatteryAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
}

View File

@ -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<SiteMonitorDataVo> dataList = emsPcsDataMapper.getPcsDataByDate(requestVo);
List<SiteMonitorDataVo> 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);

View File

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

View File

@ -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<EnergyStoragePowVo> energyStoragePowList = emsPcsDataMapper.getStoragePowerList(siteId, yesterday, today);
siteMonitorRuningInfoVo.setEnergyStoragePowList(energyStoragePowList);
//pcs平均温度list
List<PCSAveTempVo> pcsAveTempVos = emsPcsDataMapper.getPcsAveTempList(siteId, yesterday, today);
siteMonitorRuningInfoVo.setPcsAveTempList(pcsAveTempVos);
//电池平均soclist
List<BatteryAveSOCVo> batteryAveSOCList = emsPcsDataMapper.getAveSocList(siteId, yesterday, today);
siteMonitorRuningInfoVo.setBatteryAveSOCList(batteryAveSOCList);
//电池平均温度list
List<BatteryAveTempVo> batteryAveTempList = emsPcsDataMapper.getBatteryAveTempList(siteId, yesterday, today);
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
}
return siteMonitorRuningInfoVo;
}