0918优化-电表报表-尖峰平谷日差值显示
This commit is contained in:
@ -4,10 +4,7 @@ import com.xzzn.common.core.controller.BaseController;
|
|||||||
import com.xzzn.common.core.domain.AjaxResult;
|
import com.xzzn.common.core.domain.AjaxResult;
|
||||||
import com.xzzn.common.core.page.TableDataInfo;
|
import com.xzzn.common.core.page.TableDataInfo;
|
||||||
import com.xzzn.common.utils.StringUtils;
|
import com.xzzn.common.utils.StringUtils;
|
||||||
import com.xzzn.ems.domain.vo.ClusterStatisListVo;
|
import com.xzzn.ems.domain.vo.*;
|
||||||
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.service.IEmsStatsReportService;
|
import com.xzzn.ems.service.IEmsStatsReportService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -114,13 +111,11 @@ public class EmsStatisticalReportController extends BaseController
|
|||||||
* 概率统计-电表报表
|
* 概率统计-电表报表
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getAmmeterData")
|
@GetMapping("/getAmmeterData")
|
||||||
public AjaxResult getAmmeterData(StatisAmmeterDateRequest requestVo)
|
public TableDataInfo getAmmeterData(StatisAmmeterDateRequest requestVo)
|
||||||
{
|
{
|
||||||
if (!StringUtils.isEmpty(requestVo.getDeviceId())) {
|
startPage();
|
||||||
return success(ieEmsStatsReportService.getAmmeterDataResult(requestVo));
|
List<AmmeterStatisListVo> dataList = ieEmsStatsReportService.getAmmeterDataResult(requestVo);
|
||||||
} else {
|
return getDataTable(dataList);
|
||||||
return error("缺少必传项");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,32 +1,30 @@
|
|||||||
package com.xzzn.ems.domain.vo;
|
package com.xzzn.ems.domain.vo;
|
||||||
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报表统计-电表报表入参
|
* 报表统计-电表报表入参
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class StatisAmmeterDateRequest {
|
public class StatisAmmeterDateRequest {
|
||||||
|
|
||||||
/**
|
private String startTime;
|
||||||
* 筛选时间
|
private String endTime;
|
||||||
*/
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
|
||||||
private Date dateTime;
|
|
||||||
|
|
||||||
private String siteId;
|
private String siteId;
|
||||||
|
|
||||||
private String deviceId;
|
public String getStartTime() {
|
||||||
|
return startTime;
|
||||||
public Date getDateTime() {
|
|
||||||
return dateTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDateTime(Date dateTime) {
|
public void setStartTime(String startTime) {
|
||||||
this.dateTime = dateTime;
|
this.startTime = startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEndTime() {
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(String endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSiteId() {
|
public String getSiteId() {
|
||||||
@ -36,12 +34,4 @@ public class StatisAmmeterDateRequest {
|
|||||||
public void setSiteId(String siteId) {
|
public void setSiteId(String siteId) {
|
||||||
this.siteId = siteId;
|
this.siteId = siteId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDeviceId() {
|
|
||||||
return deviceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeviceId(String deviceId) {
|
|
||||||
this.deviceId = deviceId;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.xzzn.ems.mapper;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.xzzn.ems.domain.EmsDailyEnergyData;
|
import com.xzzn.ems.domain.EmsDailyEnergyData;
|
||||||
|
import com.xzzn.ems.domain.vo.AmmeterStatisListVo;
|
||||||
import org.apache.ibatis.annotations.Param;
|
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 EmsDailyEnergyData getDataByDate(@Param("siteId")String siteId,@Param("today") String today);
|
||||||
// 插入或更新每日尖峰平谷差值
|
// 插入或更新每日尖峰平谷差值
|
||||||
public void insertOrUpdateData(EmsDailyEnergyData energyData);
|
public void insertOrUpdateData(EmsDailyEnergyData energyData);
|
||||||
|
// 电表报表
|
||||||
|
public List<AmmeterStatisListVo> getDataBySiteId(@Param("siteId")String siteId, @Param("startTime")String startTime, @Param("endTime")String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,6 +41,8 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
|||||||
private EmsBatteryDataDayMapper emsBatteryDataDayMapper;
|
private EmsBatteryDataDayMapper emsBatteryDataDayMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private EmsDailyChargeDataMapper emsDailyChargeDataMapper;
|
private EmsDailyChargeDataMapper emsDailyChargeDataMapper;
|
||||||
|
@Autowired
|
||||||
|
private EmsDailyEnergyDataMapper emsDailyEnergyDataMapper;
|
||||||
|
|
||||||
// 电量指标
|
// 电量指标
|
||||||
@Override
|
@Override
|
||||||
@ -252,35 +254,43 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
|||||||
// 电表报表
|
// 电表报表
|
||||||
@Override
|
@Override
|
||||||
public List<AmmeterStatisListVo> getAmmeterDataResult(StatisAmmeterDateRequest requestVo){
|
public List<AmmeterStatisListVo> getAmmeterDataResult(StatisAmmeterDateRequest requestVo){
|
||||||
List<AmmeterStatisListVo> dataList = new ArrayList();
|
List<AmmeterStatisListVo> dataList = emsDailyEnergyDataMapper.getDataBySiteId(requestVo.getSiteId(),requestVo.getStartTime(),requestVo.getEndTime());
|
||||||
// 时间不传默认当天
|
if (dataList == null || dataList.size()==0){
|
||||||
if (requestVo.getDateTime() == null) {
|
return null;
|
||||||
String now = DateUtils.getDate();
|
|
||||||
requestVo.setDateTime(DateUtils.dateTime(DateUtils.YYYY_MM_DD, now));
|
|
||||||
}
|
}
|
||||||
dataList = emsAmmeterDataMapper.getLoadDataByHour(requestVo);
|
|
||||||
if (dataList.size()>0){
|
BigDecimal activePower = new BigDecimal(0);
|
||||||
AmmeterStatisListVo totalVo = new AmmeterStatisListVo();
|
BigDecimal reactivePower = new BigDecimal(0);
|
||||||
totalVo.setDataTime("汇总");
|
/*AmmeterStatisListVo totalVo = new AmmeterStatisListVo();
|
||||||
|
totalVo.setDataTime("汇总");*/
|
||||||
for (AmmeterStatisListVo ammeterStatisListVo : dataList) {
|
for (AmmeterStatisListVo ammeterStatisListVo : dataList) {
|
||||||
BigDecimal effect = new BigDecimal(0);
|
BigDecimal effect = new BigDecimal(0);
|
||||||
BigDecimal activePower = ammeterStatisListVo.getActiveTotalKwh();
|
activePower = (ammeterStatisListVo.getActivePeakKwh() == null ? BigDecimal.ZERO : ammeterStatisListVo.getActivePeakKwh())
|
||||||
BigDecimal reactivePower = ammeterStatisListVo.getReActiveTotalKwh();
|
.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
|
if ( activePower != null && reactivePower !=null
|
||||||
&& activePower.compareTo(BigDecimal.ZERO) > 0
|
&& activePower.compareTo(BigDecimal.ZERO) > 0
|
||||||
&& reactivePower.compareTo(BigDecimal.ZERO) > 0){
|
&& reactivePower.compareTo(BigDecimal.ZERO) > 0){
|
||||||
effect = reactivePower.divide(activePower, 2, RoundingMode.HALF_UP)
|
effect = reactivePower.divide(activePower, 2, RoundingMode.HALF_UP)
|
||||||
.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
|
.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
// 每小时的效率
|
// 每天的效率
|
||||||
ammeterStatisListVo.setEffect(effect);
|
ammeterStatisListVo.setEffect(effect);
|
||||||
|
|
||||||
// 处理汇总数据
|
// 处理汇总数据
|
||||||
dealWithAmmeterTotalDate(ammeterStatisListVo,totalVo);
|
//dealWithAmmeterTotalDate(ammeterStatisListVo,totalVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理汇总的效率
|
// 处理汇总的效率
|
||||||
BigDecimal totalActive = totalVo.getActiveTotalKwh();
|
/*BigDecimal totalActive = totalVo.getActiveTotalKwh();
|
||||||
BigDecimal totalReactive = totalVo.getReActiveTotalKwh();
|
BigDecimal totalReactive = totalVo.getReActiveTotalKwh();
|
||||||
if ( totalActive != null && totalReactive !=null
|
if ( totalActive != null && totalReactive !=null
|
||||||
&& totalActive.compareTo(BigDecimal.ZERO) > 0
|
&& totalActive.compareTo(BigDecimal.ZERO) > 0
|
||||||
@ -290,8 +300,8 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
|||||||
.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
|
.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP);
|
||||||
totalVo.setEffect(totalEffect);
|
totalVo.setEffect(totalEffect);
|
||||||
}
|
}
|
||||||
dataList.add(totalVo);
|
dataList.add(totalVo);*/
|
||||||
}
|
|
||||||
return dataList;
|
return dataList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -178,4 +178,27 @@
|
|||||||
calc_time = #{calcTime},
|
calc_time = #{calcTime},
|
||||||
update_time = NOW();
|
update_time = NOW();
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<select id="getDataBySiteId" resultType="com.xzzn.ems.domain.vo.AmmeterStatisListVo">
|
||||||
|
select t.data_date as dataTime,
|
||||||
|
t.peak_charge_diff as activePeakKwh,
|
||||||
|
t.peak_discharge_diff as reActivePeakKwh,
|
||||||
|
t.high_charge_diff as activeHighKwh,
|
||||||
|
t.high_discharge_diff as reActiveHighKwh,
|
||||||
|
t.flat_charge_diff as activeFlatKwh,
|
||||||
|
t.flat_discharge_diff as reActiveFlatKwh,
|
||||||
|
t.valley_charge_diff as activeValleyKwh,
|
||||||
|
t.valley_discharge_diff as reActiveValleyKwh
|
||||||
|
from ems_daily_energy_data t
|
||||||
|
where 1=1
|
||||||
|
<if test="siteId != null">
|
||||||
|
and t.site_id = #{siteId}
|
||||||
|
</if>
|
||||||
|
<if test="startTime != null">
|
||||||
|
and t.data_date >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null">
|
||||||
|
and t.data_date >= #{endTime}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user