From 7d1f1836d8f076f1367772adc55020f07be44d6a Mon Sep 17 00:00:00 2001 From: mashili Date: Mon, 7 Jul 2025 22:15:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8-pcs?= =?UTF-8?q?=E6=9B=B2=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ems/EmsSiteMonitorController.java | 6 +- .../ems/EmsStatisticalReportController.java | 15 ++ .../xzzn/ems/domain/vo/DateSearchRequest.java | 20 +++ .../xzzn/ems/domain/vo/ElectricIndexList.java | 2 +- .../domain/vo/SiteMonitorRuningInfoVo.java | 10 +- ...{PCSAveTempVo.java => StackAveTempVo.java} | 14 +- .../ems/mapper/EmsBatteryClusterMapper.java | 15 ++ .../ems/mapper/EmsBatteryStackMapper.java | 10 +- .../com/xzzn/ems/mapper/EmsPcsDataMapper.java | 12 +- .../ems/service/IEmsStatsReportService.java | 7 +- .../xzzn/ems/service/ISingleSiteService.java | 2 +- .../impl/EmsStatsReportServiceImpl.java | 53 +++++- .../service/impl/SingleSiteServiceImpl.java | 12 +- .../mapper/ems/EmsBatteryClusterMapper.xml | 29 ++++ .../mapper/ems/EmsBatteryStackMapper.xml | 14 ++ .../resources/mapper/ems/EmsPcsDataMapper.xml | 164 +++++++++++------- 16 files changed, 282 insertions(+), 103 deletions(-) rename ems-system/src/main/java/com/xzzn/ems/domain/vo/{PCSAveTempVo.java => StackAveTempVo.java} (61%) diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java index b0cc3b7..bbbdd7e 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsSiteMonitorController.java @@ -52,10 +52,10 @@ public class EmsSiteMonitorController extends BaseController{ return success(iSingleSiteService.getRunningGraphStorage(siteId)); } - @GetMapping("/runningGraph/pcsAveTemp") - public AjaxResult getRunningGraphPcsTemp(@RequestParam String siteId) + @GetMapping("/runningGraph/stackAveTemp") + public AjaxResult getRunningGraphStackTemp(@RequestParam String siteId) { - return success(iSingleSiteService.getRunningGraphPcsTemp(siteId)); + return success(iSingleSiteService.getRunningGraphStackTemp(siteId)); } @GetMapping("/runningGraph/batteryAveSoc") diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java index 761484f..ba31ec0 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsStatisticalReportController.java @@ -45,4 +45,19 @@ public class EmsStatisticalReportController extends BaseController } } + /** + * 概率统计-PCS曲线 + */ + @GetMapping("/getPCSData") + public AjaxResult getPCSData(DateSearchRequest requestVo) + { + if (!StringUtils.isEmpty(requestVo.getSiteId()) && + !StringUtils.isEmpty(requestVo.getDeviceId()) && + requestVo.getDataType() != 0) { + return success(ieEmsStatsReportService.getPCSDataResult(requestVo)); + } else { + return error("缺少必传项"); + } + } + } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/DateSearchRequest.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/DateSearchRequest.java index 123d55d..966e6c2 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/DateSearchRequest.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/DateSearchRequest.java @@ -21,6 +21,10 @@ public class DateSearchRequest { private String siteId; + private String deviceId; + + private int dataType; + public Date getStartDate() { return startDate; } @@ -44,4 +48,20 @@ public class DateSearchRequest { public void setSiteId(String siteId) { this.siteId = siteId; } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public int getDataType() { + return dataType; + } + + public void setDataType(int dataType) { + this.dataType = dataType; + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java index bc99c36..78d2df5 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/ElectricIndexList.java @@ -3,7 +3,7 @@ package com.xzzn.ems.domain.vo; import java.math.BigDecimal; /** - * 首页看板数据概览-电量指标 + * 数据统计-电量指标 */ public class ElectricIndexList { /** diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorRuningInfoVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorRuningInfoVo.java index 8b52473..fd2dcd1 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorRuningInfoVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorRuningInfoVo.java @@ -15,7 +15,7 @@ public class SiteMonitorRuningInfoVo { /** * pcs平均温度list */ - private List pcsAveTempList; + private List stackAveTempList; /** * 电池平均soclist @@ -35,12 +35,12 @@ public class SiteMonitorRuningInfoVo { this.energyStoragePowList = energyStoragePowList; } - public List getPcsAveTempList() { - return pcsAveTempList; + public List getStackAveTempList() { + return stackAveTempList; } - public void setPcsAveTempList(List pcsAveTempList) { - this.pcsAveTempList = pcsAveTempList; + public void setStackAveTempList(List stackAveTempList) { + this.stackAveTempList = stackAveTempList; } public List getBatteryAveSOCList() { 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/StackAveTempVo.java similarity index 61% rename from ems-system/src/main/java/com/xzzn/ems/domain/vo/PCSAveTempVo.java rename to ems-system/src/main/java/com/xzzn/ems/domain/vo/StackAveTempVo.java index 1af5cbf..1fe2c2d 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/StackAveTempVo.java @@ -4,10 +4,10 @@ import java.math.BigDecimal; import java.util.Date; /** - * 实时运行-pcs平均温度数据 + * 实时运行-堆平均温度数据 * */ -public class PCSAveTempVo { +public class StackAveTempVo { /** * 数据时间 */ @@ -16,7 +16,7 @@ public class PCSAveTempVo { /** * 实时温度 */ - private BigDecimal pcsTemp; + private BigDecimal temp; public Date getCreateDate() { @@ -27,11 +27,11 @@ public class PCSAveTempVo { this.createDate = createDate; } - public BigDecimal getPcsTemp() { - return pcsTemp; + public BigDecimal getTemp() { + return temp; } - public void setPcsTemp(BigDecimal pcsTemp) { - this.pcsTemp = pcsTemp; + public void setTemp(BigDecimal temp) { + this.temp = temp; } } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java index aa6017e..e641c30 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryClusterMapper.java @@ -1,8 +1,11 @@ package com.xzzn.ems.mapper; +import java.util.Date; import java.util.List; import com.xzzn.ems.domain.EmsBatteryCluster; import com.xzzn.ems.domain.vo.BMSBatteryDataList; +import com.xzzn.ems.domain.vo.BatteryAveSOCVo; +import com.xzzn.ems.domain.vo.BatteryAveTempVo; import org.apache.ibatis.annotations.Param; /** @@ -68,4 +71,16 @@ public interface EmsBatteryClusterMapper * @return */ public List getBmsBatteryData(@Param("siteId")String siteId, @Param("stackDeviceId")String stackDeviceId); + + /** + * 实时运行-平均soc+平均温度 + * @param siteId + * @param startDate + * @param endDate + * @return + */ + 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/mapper/EmsBatteryStackMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java index 7347fc6..be1fe01 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsBatteryStackMapper.java @@ -1,8 +1,10 @@ package com.xzzn.ems.mapper; +import java.util.Date; import java.util.List; import com.xzzn.ems.domain.EmsBatteryStack; -import com.xzzn.ems.domain.vo.BMSOverViewVo; +import com.xzzn.ems.domain.vo.StackAveTempVo; +import org.apache.ibatis.annotations.Param; /** * 电池堆数据Mapper接口 @@ -61,9 +63,11 @@ public interface EmsBatteryStackMapper public int deleteEmsBatteryStackByIds(Long[] ids); /** - * 获取电池堆信息 + * 获取实时运行-堆平均温度 * @param siteId + * @param startDate + * @param endDate * @return */ - public List selectEmsBatteryStackBySiteId(String siteId); + public List getStackAveTempList(@Param("siteId")String siteId, @Param("startDate") Date startDate, @Param("endDate")Date endDate); } 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 f7c704e..0c8fab4 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 @@ -133,15 +133,13 @@ public interface EmsPcsDataMapper public List getStoragePowerList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); /** - * 获取实时运行-pcs平均温度 - * @param siteId - * @param startDate - * @param endDate + * pcs曲线运行数据 + * @param requestVo * @return */ - public List getPcsAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + public List getPcsActivePowerByDay(DateSearchRequest requestVo); - public List getAveSocList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + public List getPcsActivePowerByHour(DateSearchRequest requestVo); - public List getBatteryAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate); + public List getPcsActivePowerByMonth(DateSearchRequest requestVo); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java b/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java index 114bf3b..11ede39 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/IEmsStatsReportService.java @@ -1,7 +1,10 @@ package com.xzzn.ems.service; import com.xzzn.ems.domain.vo.DateSearchRequest; -import com.xzzn.ems.domain.vo.ElectricDataInfoVo;;import java.util.Date; +import com.xzzn.ems.domain.vo.ElectricDataInfoVo; +import com.xzzn.ems.domain.vo.PcsStatisListVo; + +import java.util.List; /** * 统计报表数据Service接口 @@ -13,4 +16,6 @@ public interface IEmsStatsReportService { public ElectricDataInfoVo getElectricDataResult(DateSearchRequest requestVo); + + public List getPCSDataResult(DateSearchRequest requestVo); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java b/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java index a6af0a3..398e12b 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/ISingleSiteService.java @@ -31,7 +31,7 @@ public interface ISingleSiteService public AmmeterDataResponse getAmmeterDataList(String siteId); - public SiteMonitorRuningInfoVo getRunningGraphPcsTemp(String siteId); + public SiteMonitorRuningInfoVo getRunningGraphStackTemp(String siteId); public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(String siteId); 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 2b757d0..6b0aba3 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 @@ -3,6 +3,7 @@ package com.xzzn.ems.service.impl; import com.xzzn.common.utils.DateUtils; import com.xzzn.ems.domain.vo.DateSearchRequest; import com.xzzn.ems.domain.vo.ElectricDataInfoVo; +import com.xzzn.ems.domain.vo.PcsStatisListVo; import com.xzzn.ems.domain.vo.SiteMonitorDataVo; import com.xzzn.ems.mapper.EmsPcsDataMapper; import com.xzzn.ems.service.IEmsStatsReportService; @@ -38,14 +39,10 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService public ElectricDataInfoVo getElectricDataResult(DateSearchRequest requestVo) { ElectricDataInfoVo electricDataInfoVo = new ElectricDataInfoVo(); + // 默认时间处理 + dealRequestTime(requestVo); Date startDate = requestVo.getStartDate(); Date endDate = requestVo.getEndDate(); - if (startDate == null && endDate == null) { - // 如果没有传时间,默认从今天往前7天 - LocalDate sevenDaysAgo = LocalDate.now().minusDays(6); - startDate = DateUtils.toDate(sevenDaysAgo); - endDate = new Date(); - } List dataList = new ArrayList(); // 开始日期和结束日期同一天,展示 0-24 小时数据 @@ -93,4 +90,48 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService } return electricDataInfoVo; } + + @Override + public List getPCSDataResult(DateSearchRequest requestVo) { + List dataList = new ArrayList(); + + // 默认时间-7天 + dealRequestTime(requestVo); + Date startDate = requestVo.getStartDate(); + Date endDate = requestVo.getEndDate(); + + // 开始日期和结束日期同一天,展示 0-24 小时数据 + if (DateUtils.isSameDay(startDate, endDate)){ + endDate = DateUtils.addDays(endDate, 1); + requestVo.setEndDate(endDate); + dataList = emsPcsDataMapper.getPcsActivePowerByHour(requestVo); + } else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 1 + && DateUtils.differentDaysByMillisecond(endDate, startDate) < 30){ + endDate = DateUtils.addDays(endDate, 1); + requestVo.setEndDate(endDate); + // 开始日期-结束日期大于 1 天,小于30 天,按天展示数据 + dataList = emsPcsDataMapper.getPcsActivePowerByDay(requestVo); + } else if (DateUtils.differentDaysByMillisecond(endDate, startDate) >= 30){ + endDate = DateUtils.addDays(endDate, 1); + requestVo.setEndDate(endDate); + // 开始日期-结束日期大于 1 个月,按月展示数据 + dataList = emsPcsDataMapper.getPcsActivePowerByMonth(requestVo); + } + return dataList; + } + + // 统计入参时间处理 + public void dealRequestTime(DateSearchRequest requestVo){ + + Date startDate = requestVo.getStartDate(); + Date endDate = requestVo.getEndDate(); + if (startDate == null && endDate == null) { + // 如果没有传时间,默认从今天往前7天 + LocalDate sevenDaysAgo = LocalDate.now().minusDays(6); + startDate = DateUtils.toDate(sevenDaysAgo); + endDate = new Date(); + requestVo.setStartDate(startDate); + requestVo.setEndDate(endDate); + } + } } 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 13279bf..7771d46 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 @@ -142,17 +142,17 @@ public class SingleSiteServiceImpl implements ISingleSiteService { } return siteMonitorRuningInfoVo; } - // 获取单站监控实时运行-poc平均温度 + // 获取单站监控实时运行-stack平均温度 @Override - public SiteMonitorRuningInfoVo getRunningGraphPcsTemp(String siteId) { + public SiteMonitorRuningInfoVo getRunningGraphStackTemp(String siteId) { SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo(); if (!StringUtils.isEmpty(siteId)) { // 时间暂定今日+昨日 Date today = new Date(); Date yesterday = DateUtils.addDays(today, -1); //pcs平均温度list - List pcsAveTempVos = emsPcsDataMapper.getPcsAveTempList(siteId, yesterday, today); - siteMonitorRuningInfoVo.setPcsAveTempList(pcsAveTempVos); + List stackAveTempVos = emsBatteryStackMapper.getStackAveTempList(siteId, yesterday, today); + siteMonitorRuningInfoVo.setStackAveTempList(stackAveTempVos); } return siteMonitorRuningInfoVo; } @@ -165,7 +165,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService { Date today = new Date(); Date yesterday = DateUtils.addDays(today, -1); //电池平均soclist - List batteryAveSOCList = emsPcsDataMapper.getAveSocList(siteId, yesterday, today); + List batteryAveSOCList = emsBatteryClusterMapper.getAveSocList(siteId, yesterday, today); siteMonitorRuningInfoVo.setBatteryAveSOCList(batteryAveSOCList); } return siteMonitorRuningInfoVo; @@ -179,7 +179,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService { Date today = new Date(); Date yesterday = DateUtils.addDays(today, -1); //电池平均温度list - List batteryAveTempList = emsPcsDataMapper.getBatteryAveTempList(siteId, yesterday, today); + List batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, yesterday, today); siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList); } return siteMonitorRuningInfoVo; diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml index 637a727..d476469 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryClusterMapper.xml @@ -325,4 +325,33 @@ group by t.cluster_voltage,t.cluster_current,t.current_soc,t.site_id,t.device_id,t.max_cell_voltage,t.min_cell_voltage, t.max_cell_temp,t.min_cell_temp + + + + + \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml index c8f23c5..a954f18 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsBatteryStackMapper.xml @@ -274,4 +274,18 @@ #{id} + + \ No newline at end of file diff --git a/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml index a6f1ae8..69b287e 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsPcsDataMapper.xml @@ -387,19 +387,23 @@ order by tmp.device_id + + WHERE p.site_id = #{siteId} + + AND p.data_update_time >= #{startDate} + + + AND p.data_update_time < #{endDate} + + + - - - - - - + + + WHERE p.site_id = #{siteId} + and p.device_id = #{deviceId} + + AND p.data_update_time >= DATE(#{startDate}) + + + AND p.data_update_time < DATE(#{endDate}) + + + + + + + t.total_active_power as activePower + + + t.total_reactive_power as reactivePower + + + t.sys_u_current as uCurrent, + t.sys_v_current as vCurrent, + t.sys_w_current as wCurrent + + + + + + + + ,activePower + + + ,reactivePower + + + ,uCurrent,vCurrent,wCurrent + + + + + + + + \ No newline at end of file