dev #2
@ -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<AmmeterStatisListVo> dataList = ieEmsStatsReportService.getAmmeterDataResult(requestVo);
|
||||
return getDataTable(dataList);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<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;
|
||||
@Autowired
|
||||
private EmsDailyChargeDataMapper emsDailyChargeDataMapper;
|
||||
@Autowired
|
||||
private EmsDailyEnergyDataMapper emsDailyEnergyDataMapper;
|
||||
|
||||
// 电量指标
|
||||
@Override
|
||||
@ -252,35 +254,43 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
||||
// 电表报表
|
||||
@Override
|
||||
public List<AmmeterStatisListVo> getAmmeterDataResult(StatisAmmeterDateRequest requestVo){
|
||||
List<AmmeterStatisListVo> dataList = new ArrayList();
|
||||
// 时间不传默认当天
|
||||
if (requestVo.getDateTime() == null) {
|
||||
String now = DateUtils.getDate();
|
||||
requestVo.setDateTime(DateUtils.dateTime(DateUtils.YYYY_MM_DD, now));
|
||||
List<AmmeterStatisListVo> 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("汇总");
|
||||
|
||||
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);
|
||||
BigDecimal activePower = ammeterStatisListVo.getActiveTotalKwh();
|
||||
BigDecimal reactivePower = ammeterStatisListVo.getReActiveTotalKwh();
|
||||
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);
|
||||
|
||||
// 处理汇总数据
|
||||
dealWithAmmeterTotalDate(ammeterStatisListVo,totalVo);
|
||||
//dealWithAmmeterTotalDate(ammeterStatisListVo,totalVo);
|
||||
}
|
||||
|
||||
// 处理汇总的效率
|
||||
BigDecimal totalActive = totalVo.getActiveTotalKwh();
|
||||
/*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;
|
||||
}
|
||||
|
||||
|
||||
@ -178,4 +178,27 @@
|
||||
calc_time = #{calcTime},
|
||||
update_time = NOW();
|
||||
</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>
|
||||
Reference in New Issue
Block a user