统计报表-pcs曲线
This commit is contained in:
@ -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")
|
||||
|
@ -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("缺少必传项");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ package com.xzzn.ems.domain.vo;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 首页看板数据概览-电量指标
|
||||
* 数据统计-电量指标
|
||||
*/
|
||||
public class ElectricIndexList {
|
||||
/**
|
||||
|
@ -15,7 +15,7 @@ public class SiteMonitorRuningInfoVo {
|
||||
/**
|
||||
* pcs平均温度list
|
||||
*/
|
||||
private List<PCSAveTempVo> pcsAveTempList;
|
||||
private List<StackAveTempVo> stackAveTempList;
|
||||
|
||||
/**
|
||||
* 电池平均soclist
|
||||
@ -35,12 +35,12 @@ public class SiteMonitorRuningInfoVo {
|
||||
this.energyStoragePowList = energyStoragePowList;
|
||||
}
|
||||
|
||||
public List<PCSAveTempVo> getPcsAveTempList() {
|
||||
return pcsAveTempList;
|
||||
public List<StackAveTempVo> getStackAveTempList() {
|
||||
return stackAveTempList;
|
||||
}
|
||||
|
||||
public void setPcsAveTempList(List<PCSAveTempVo> pcsAveTempList) {
|
||||
this.pcsAveTempList = pcsAveTempList;
|
||||
public void setStackAveTempList(List<StackAveTempVo> stackAveTempList) {
|
||||
this.stackAveTempList = stackAveTempList;
|
||||
}
|
||||
|
||||
public List<BatteryAveSOCVo> getBatteryAveSOCList() {
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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<BMSBatteryDataList> getBmsBatteryData(@Param("siteId")String siteId, @Param("stackDeviceId")String stackDeviceId);
|
||||
|
||||
/**
|
||||
* 实时运行-平均soc+平均温度
|
||||
* @param siteId
|
||||
* @param startDate
|
||||
* @param endDate
|
||||
* @return
|
||||
*/
|
||||
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);
|
||||
|
||||
}
|
||||
|
@ -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<BMSOverViewVo> selectEmsBatteryStackBySiteId(String siteId);
|
||||
public List<StackAveTempVo> getStackAveTempList(@Param("siteId")String siteId, @Param("startDate") Date startDate, @Param("endDate")Date endDate);
|
||||
}
|
||||
|
@ -133,15 +133,13 @@ public interface EmsPcsDataMapper
|
||||
public List<EnergyStoragePowVo> 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<PCSAveTempVo> getPcsAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
||||
public List<PcsStatisListVo> getPcsActivePowerByDay(DateSearchRequest requestVo);
|
||||
|
||||
public List<BatteryAveSOCVo> getAveSocList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
||||
public List<PcsStatisListVo> getPcsActivePowerByHour(DateSearchRequest requestVo);
|
||||
|
||||
public List<BatteryAveTempVo> getBatteryAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
||||
public List<PcsStatisListVo> getPcsActivePowerByMonth(DateSearchRequest requestVo);
|
||||
}
|
||||
|
@ -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<PcsStatisListVo> getPCSDataResult(DateSearchRequest requestVo);
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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<SiteMonitorDataVo> dataList = new ArrayList();
|
||||
// 开始日期和结束日期同一天,展示 0-24 小时数据
|
||||
@ -93,4 +90,48 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
|
||||
}
|
||||
return electricDataInfoVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PcsStatisListVo> getPCSDataResult(DateSearchRequest requestVo) {
|
||||
List<PcsStatisListVo> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<PCSAveTempVo> pcsAveTempVos = emsPcsDataMapper.getPcsAveTempList(siteId, yesterday, today);
|
||||
siteMonitorRuningInfoVo.setPcsAveTempList(pcsAveTempVos);
|
||||
List<StackAveTempVo> 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<BatteryAveSOCVo> batteryAveSOCList = emsPcsDataMapper.getAveSocList(siteId, yesterday, today);
|
||||
List<BatteryAveSOCVo> 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<BatteryAveTempVo> batteryAveTempList = emsPcsDataMapper.getBatteryAveTempList(siteId, yesterday, today);
|
||||
List<BatteryAveTempVo> batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, yesterday, today);
|
||||
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
|
||||
}
|
||||
return siteMonitorRuningInfoVo;
|
||||
|
@ -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
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
||||
select t.site_id,
|
||||
t.battery_pack_soc as batterySOC,
|
||||
t.create_time as createDate
|
||||
from ems_battery_cluster t
|
||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
||||
from ems_battery_cluster
|
||||
where site_id = #{siteId}
|
||||
AND create_time >= Date(#{startDate})
|
||||
AND create_time <= #{endDate}
|
||||
GROUP BY site_id,create_time
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
</select>
|
||||
|
||||
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
||||
select t.site_id,
|
||||
t.avg_cell_temp as batteryTemp,
|
||||
t.create_time as createDate
|
||||
from ems_battery_cluster t
|
||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
||||
from ems_battery_cluster
|
||||
where site_id = #{siteId}
|
||||
AND create_time >= Date(#{startDate})
|
||||
AND create_time <= #{endDate}
|
||||
GROUP BY site_id,create_time
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
</select>
|
||||
</mapper>
|
@ -274,4 +274,18 @@
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="getStackAveTempList" resultType="com.xzzn.ems.domain.vo.StackAveTempVo">
|
||||
select t.site_id,
|
||||
t.operating_temp as temp,
|
||||
t.create_time as createDate
|
||||
from ems_battery_stack t
|
||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
||||
from ems_battery_stack
|
||||
where site_id = #{siteId}
|
||||
AND create_time >= Date(#{startDate})
|
||||
AND create_time <= #{endDate}
|
||||
GROUP BY site_id,create_time
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
</select>
|
||||
</mapper>
|
@ -387,19 +387,23 @@
|
||||
order by tmp.device_id
|
||||
</select>
|
||||
|
||||
<sql id="commonFilter">
|
||||
WHERE p.site_id = #{siteId}
|
||||
<if test="startDate != null">
|
||||
AND p.data_update_time >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
AND p.data_update_time < #{endDate}
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<select id="getPcsDataByDay" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||
select DATE(latest.max_update_time) as ammeterDate,
|
||||
sum(t.total_ac_charge_energy) as chargedCap,
|
||||
sum(t.total_ac_discharge_energy) as disChargedCap
|
||||
from ( SELECT p.site_id, p.device_id,p.date_month,p.date_day, MAX(p.data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data p
|
||||
where p.site_id = #{siteId}
|
||||
<if test="startDate != null">
|
||||
and p.data_update_time >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
and p.data_update_time < #{endDate}
|
||||
</if>
|
||||
<include refid="commonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,p.date_month,p.date_day
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
@ -425,61 +429,13 @@
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
</select>
|
||||
|
||||
<select id="getPcsAveTempList" resultType="com.xzzn.ems.domain.vo.PCSAveTempVo">
|
||||
select t.site_id,
|
||||
t.pcs_module_temperature as pcsTemp,
|
||||
t.create_time as createDate
|
||||
from ems_pcs_data t
|
||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
||||
from ems_pcs_data
|
||||
where site_id = #{siteId}
|
||||
AND create_time >= Date(#{startDate})
|
||||
AND create_time <= #{endDate}
|
||||
GROUP BY site_id,create_time
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
</select>
|
||||
|
||||
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
||||
select t.site_id,
|
||||
t.battery_pack_soc as batterySOC,
|
||||
t.create_time as createDate
|
||||
from ems_battery_cluster t
|
||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
||||
from ems_battery_cluster
|
||||
where site_id = #{siteId}
|
||||
AND create_time >= Date(#{startDate})
|
||||
AND create_time <= #{endDate}
|
||||
GROUP BY site_id,create_time
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
</select>
|
||||
|
||||
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
||||
select t.site_id,
|
||||
t.avg_cell_temp as batteryTemp,
|
||||
t.create_time as createDate
|
||||
from ems_battery_cluster t
|
||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
||||
from ems_battery_cluster
|
||||
where site_id = #{siteId}
|
||||
AND create_time >= Date(#{startDate})
|
||||
AND create_time <= #{endDate}
|
||||
GROUP BY site_id,create_time
|
||||
) temp on t.site_id = temp.site_id and t.create_time = temp.create_time and t.device_id = temp.device_id
|
||||
</select>
|
||||
|
||||
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||
select DATE_FORMAT(latest.max_update_time, '%Y-%m') as ammeterDate,
|
||||
sum(t.total_ac_charge_energy) as chargedCap,
|
||||
sum(t.total_ac_discharge_energy) as disChargedCap
|
||||
from ( SELECT p.site_id, p.device_id,p.date_month,MAX(p.data_update_time) AS max_update_time
|
||||
FROM ems_pcs_data p
|
||||
where p.site_id = #{siteId}
|
||||
<if test="startDate != null">
|
||||
and p.data_update_time >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
and p.data_update_time < #{endDate}
|
||||
</if>
|
||||
<include refid="commonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,p.date_month
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
@ -495,13 +451,7 @@
|
||||
sum(t.total_ac_discharge_energy) as disChargedCap
|
||||
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H')+1 AS dateHour,MAX(p.data_update_time) as max_update_time
|
||||
FROM ems_pcs_data p
|
||||
where p.site_id = #{siteId}
|
||||
<if test="startDate != null">
|
||||
and p.data_update_time >= #{startDate}
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
and p.data_update_time < #{endDate}
|
||||
</if>
|
||||
<include refid="commonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,dateHour
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
@ -509,4 +459,92 @@
|
||||
group by ammeterDate
|
||||
order by ammeterDate desc
|
||||
</select>
|
||||
|
||||
<sql id="statisCommonFilter">
|
||||
WHERE p.site_id = #{siteId}
|
||||
and p.device_id = #{deviceId}
|
||||
<if test="startDate != null">
|
||||
AND p.data_update_time >= DATE(#{startDate})
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
AND p.data_update_time < DATE(#{endDate})
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<sql id="dataTypeChooseFilter">
|
||||
<choose>
|
||||
<when test="dataType == 1">
|
||||
t.total_active_power as activePower
|
||||
</when>
|
||||
<when test="dataType == 2">
|
||||
t.total_reactive_power as reactivePower
|
||||
</when>
|
||||
<when test="dataType == 3">
|
||||
t.sys_u_current as uCurrent,
|
||||
t.sys_v_current as vCurrent,
|
||||
t.sys_w_current as wCurrent
|
||||
</when>
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
<sql id="groupChooseFilter">
|
||||
<choose>
|
||||
<when test="dataType == 1">
|
||||
,activePower
|
||||
</when>
|
||||
<when test="dataType == 2">
|
||||
,reactivePower
|
||||
</when>
|
||||
<when test="dataType == 3">
|
||||
,uCurrent,vCurrent,wCurrent
|
||||
</when>
|
||||
</choose>
|
||||
</sql>
|
||||
<select id="getPcsActivePowerByDay" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsStatisListVo">
|
||||
select CONCAT(t.date_month,'/',t.date_day) as statisDate,
|
||||
<include refid="dataTypeChooseFilter"/>
|
||||
from ( SELECT p.site_id, p.device_id,p.date_month, p.date_day,MAX(p.data_update_time) as max_update_time
|
||||
FROM ems_pcs_data p
|
||||
<include refid="statisCommonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,p.date_month,p.date_day
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.data_update_time
|
||||
and latest.date_month = t.date_month
|
||||
and latest.date_day = t.date_day
|
||||
group by statisDate
|
||||
<include refid="groupChooseFilter"/>
|
||||
order by statisDate desc
|
||||
</select>
|
||||
|
||||
<select id="getPcsActivePowerByMonth" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsStatisListVo">
|
||||
select DATE_FORMAT(latest.max_update_time, '%Y-%m') as statisDate,
|
||||
<include refid="dataTypeChooseFilter"/>
|
||||
from ( SELECT p.site_id, p.device_id,p.date_month,MAX(p.data_update_time) as max_update_time
|
||||
FROM ems_pcs_data p
|
||||
<include refid="statisCommonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,p.date_month
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.data_update_time
|
||||
and latest.date_month = t.date_month
|
||||
group by statisDate
|
||||
<include refid="groupChooseFilter"/>
|
||||
order by statisDate desc
|
||||
</select>
|
||||
|
||||
<select id="getPcsActivePowerByHour" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsStatisListVo">
|
||||
select latest.dateHour as statisDate,
|
||||
<include refid="dataTypeChooseFilter"/>
|
||||
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%H')+1 AS dateHour,MAX(p.data_update_time) as max_update_time
|
||||
FROM ems_pcs_data p
|
||||
<include refid="statisCommonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,dateHour
|
||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.data_update_time
|
||||
group by statisDate
|
||||
<include refid="groupChooseFilter"/>
|
||||
order by statisDate desc
|
||||
</select>
|
||||
</mapper>
|
Reference in New Issue
Block a user