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 906c261..230b980 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 @@ -4,10 +4,7 @@ import com.xzzn.common.core.controller.BaseController; import com.xzzn.common.core.domain.AjaxResult; import com.xzzn.common.core.page.TableDataInfo; import com.xzzn.common.utils.StringUtils; -import com.xzzn.ems.domain.vo.ClusterStatisListVo; -import com.xzzn.ems.domain.vo.DateSearchRequest; -import com.xzzn.ems.domain.vo.StatisAmmeterDateRequest; -import com.xzzn.ems.domain.vo.StatisClusterDateRequest; +import com.xzzn.ems.domain.vo.*; import com.xzzn.ems.service.IEmsStatsReportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -114,13 +111,11 @@ public class EmsStatisticalReportController extends BaseController * 概率统计-电表报表 */ @GetMapping("/getAmmeterData") - public AjaxResult getAmmeterData(StatisAmmeterDateRequest requestVo) + public TableDataInfo getAmmeterData(StatisAmmeterDateRequest requestVo) { - if (!StringUtils.isEmpty(requestVo.getDeviceId())) { - return success(ieEmsStatsReportService.getAmmeterDataResult(requestVo)); - } else { - return error("缺少必传项"); - } + startPage(); + List dataList = ieEmsStatsReportService.getAmmeterDataResult(requestVo); + return getDataTable(dataList); } /** diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/StatisAmmeterDateRequest.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/StatisAmmeterDateRequest.java index 6ff5897..9b83def 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/StatisAmmeterDateRequest.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/StatisAmmeterDateRequest.java @@ -1,32 +1,30 @@ package com.xzzn.ems.domain.vo; -import com.fasterxml.jackson.annotation.JsonFormat; - -import java.util.Date; - /** * 报表统计-电表报表入参 * */ public class StatisAmmeterDateRequest { - /** - * 筛选时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd") - private Date dateTime; - + private String startTime; + private String endTime; private String siteId; - private String deviceId; - - public Date getDateTime() { - return dateTime; + public String getStartTime() { + return startTime; } - public void setDateTime(Date dateTime) { - this.dateTime = dateTime; + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; } public String getSiteId() { @@ -36,12 +34,4 @@ public class StatisAmmeterDateRequest { public void setSiteId(String siteId) { this.siteId = siteId; } - - public String getDeviceId() { - return deviceId; - } - - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; - } } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDailyEnergyDataMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDailyEnergyDataMapper.java index 2316e16..047ac45 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDailyEnergyDataMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsDailyEnergyDataMapper.java @@ -2,6 +2,7 @@ package com.xzzn.ems.mapper; import java.util.List; import com.xzzn.ems.domain.EmsDailyEnergyData; +import com.xzzn.ems.domain.vo.AmmeterStatisListVo; import org.apache.ibatis.annotations.Param; /** @@ -64,4 +65,6 @@ public interface EmsDailyEnergyDataMapper public EmsDailyEnergyData getDataByDate(@Param("siteId")String siteId,@Param("today") String today); // 插入或更新每日尖峰平谷差值 public void insertOrUpdateData(EmsDailyEnergyData energyData); + // 电表报表 + public List getDataBySiteId(@Param("siteId")String siteId, @Param("startTime")String startTime, @Param("endTime")String endTime); } 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 4acb413..03dd35d 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 @@ -41,6 +41,8 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService private EmsBatteryDataDayMapper emsBatteryDataDayMapper; @Autowired private EmsDailyChargeDataMapper emsDailyChargeDataMapper; + @Autowired + private EmsDailyEnergyDataMapper emsDailyEnergyDataMapper; // 电量指标 @Override @@ -252,35 +254,43 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService // 电表报表 @Override public List getAmmeterDataResult(StatisAmmeterDateRequest requestVo){ - List dataList = new ArrayList(); - // 时间不传默认当天 - if (requestVo.getDateTime() == null) { - String now = DateUtils.getDate(); - requestVo.setDateTime(DateUtils.dateTime(DateUtils.YYYY_MM_DD, now)); + List dataList = emsDailyEnergyDataMapper.getDataBySiteId(requestVo.getSiteId(),requestVo.getStartTime(),requestVo.getEndTime()); + if (dataList == null || dataList.size()==0){ + return null; } - dataList = emsAmmeterDataMapper.getLoadDataByHour(requestVo); - if (dataList.size()>0){ - AmmeterStatisListVo totalVo = new AmmeterStatisListVo(); - totalVo.setDataTime("汇总"); - for (AmmeterStatisListVo ammeterStatisListVo : dataList) { - BigDecimal effect = new BigDecimal(0); - BigDecimal activePower = ammeterStatisListVo.getActiveTotalKwh(); - BigDecimal reactivePower = ammeterStatisListVo.getReActiveTotalKwh(); - if ( activePower != null && reactivePower !=null - && activePower.compareTo(BigDecimal.ZERO) > 0 - && reactivePower.compareTo(BigDecimal.ZERO) > 0){ - effect = reactivePower.divide(activePower, 2, RoundingMode.HALF_UP) - .multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); - } - // 每小时的效率 - ammeterStatisListVo.setEffect(effect); - // 处理汇总数据 - dealWithAmmeterTotalDate(ammeterStatisListVo,totalVo); + BigDecimal activePower = new BigDecimal(0); + BigDecimal reactivePower = new BigDecimal(0); + /*AmmeterStatisListVo totalVo = new AmmeterStatisListVo(); + totalVo.setDataTime("汇总");*/ + for (AmmeterStatisListVo ammeterStatisListVo : dataList) { + BigDecimal effect = new BigDecimal(0); + activePower = (ammeterStatisListVo.getActivePeakKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getActivePeakKwh()) + .add((ammeterStatisListVo.getActiveHighKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getActiveHighKwh())) + .add((ammeterStatisListVo.getActiveFlatKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getActiveFlatKwh())) + .add((ammeterStatisListVo.getActiveValleyKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getActiveValleyKwh())); + reactivePower = (ammeterStatisListVo.getReActivePeakKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getReActivePeakKwh()) + .add((ammeterStatisListVo.getReActiveHighKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getReActiveHighKwh())) + .add((ammeterStatisListVo.getReActiveFlatKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getReActiveFlatKwh())) + .add((ammeterStatisListVo.getReActiveValleyKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getReActiveValleyKwh())); + + ammeterStatisListVo.setActiveTotalKwh(activePower); + ammeterStatisListVo.setReActiveTotalKwh(reactivePower); + if ( activePower != null && reactivePower !=null + && activePower.compareTo(BigDecimal.ZERO) > 0 + && reactivePower.compareTo(BigDecimal.ZERO) > 0){ + effect = reactivePower.divide(activePower, 2, RoundingMode.HALF_UP) + .multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); } + // 每天的效率 + ammeterStatisListVo.setEffect(effect); - // 处理汇总的效率 - BigDecimal totalActive = totalVo.getActiveTotalKwh(); + // 处理汇总数据 + //dealWithAmmeterTotalDate(ammeterStatisListVo,totalVo); + } + + // 处理汇总的效率 + /*BigDecimal totalActive = totalVo.getActiveTotalKwh(); BigDecimal totalReactive = totalVo.getReActiveTotalKwh(); if ( totalActive != null && totalReactive !=null && totalActive.compareTo(BigDecimal.ZERO) > 0 @@ -290,8 +300,8 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService .multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP); totalVo.setEffect(totalEffect); } - dataList.add(totalVo); - } + dataList.add(totalVo);*/ + return dataList; } diff --git a/ems-system/src/main/resources/mapper/ems/EmsDailyEnergyDataMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsDailyEnergyDataMapper.xml index 7aba570..cee2e05 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsDailyEnergyDataMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsDailyEnergyDataMapper.xml @@ -178,4 +178,27 @@ calc_time = #{calcTime}, update_time = NOW(); + + \ No newline at end of file