优化sql
This commit is contained in:
@ -11,6 +11,7 @@ public class EnergyStoragePowVo {
|
|||||||
/**
|
/**
|
||||||
* 显示日期
|
* 显示日期
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private Date createDate;
|
private Date createDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -83,4 +83,6 @@ public interface EmsBatteryStackMapper
|
|||||||
public List<StackStatisListVo> getStackDataByDay(DateSearchRequest requestVo);
|
public List<StackStatisListVo> getStackDataByDay(DateSearchRequest requestVo);
|
||||||
|
|
||||||
public List<StackStatisListVo> getStackDataByMonth(DateSearchRequest requestVo);
|
public List<StackStatisListVo> getStackDataByMonth(DateSearchRequest requestVo);
|
||||||
|
|
||||||
|
public EmsBatteryStack getSiteSumStackInfo(String siteId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,12 +117,11 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
if (!StringUtils.isEmpty(siteId)) {
|
if (!StringUtils.isEmpty(siteId)) {
|
||||||
// 实时有功功率/实时无功功率/今日充电量/今日放电量
|
// 实时有功功率/实时无功功率/今日充电量/今日放电量
|
||||||
siteMonitorRunningHeadInfoVo = emsPcsDataMapper.getSiteRunningHeadInfo(siteId);
|
siteMonitorRunningHeadInfoVo = emsPcsDataMapper.getSiteRunningHeadInfo(siteId);
|
||||||
// 电池簇SOC
|
// 电池堆SOC + 电池堆SOH
|
||||||
// 电池堆SOH
|
EmsBatteryStack emsBatteryStack = emsBatteryStackMapper.getSiteSumStackInfo(siteId);
|
||||||
EmsBatteryData emsBatteryData = emsBatteryDataMapper.getBatteryDataBySiteId(siteId);
|
if (emsBatteryStack != null) {
|
||||||
if (emsBatteryData != null) {
|
siteMonitorRunningHeadInfoVo.setSoc(emsBatteryStack.getStackSoc());
|
||||||
siteMonitorRunningHeadInfoVo.setSoc(emsBatteryData.getSoc());
|
siteMonitorRunningHeadInfoVo.setSoh(emsBatteryStack.getStackSoh());
|
||||||
siteMonitorRunningHeadInfoVo.setSoh(emsBatteryData.getSoh());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,8 +134,9 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
|
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
|
||||||
if (!StringUtils.isEmpty(siteId)) {
|
if (!StringUtils.isEmpty(siteId)) {
|
||||||
// 时间暂定今日+昨日
|
// 时间暂定今日+昨日
|
||||||
Date today = new Date();
|
Date today = DateUtils.getNowDate();
|
||||||
Date yesterday = DateUtils.addDays(today, -1);
|
Date yesterday = DateUtils.addDays(today, -1);
|
||||||
|
|
||||||
//储能功率list
|
//储能功率list
|
||||||
List<EnergyStoragePowVo> energyStoragePowList = emsPcsDataMapper.getStoragePowerList(siteId, yesterday, today);
|
List<EnergyStoragePowVo> energyStoragePowList = emsPcsDataMapper.getStoragePowerList(siteId, yesterday, today);
|
||||||
siteMonitorRuningInfoVo.setEnergyStoragePowList(energyStoragePowList);
|
siteMonitorRuningInfoVo.setEnergyStoragePowList(energyStoragePowList);
|
||||||
|
|||||||
@ -328,30 +328,26 @@
|
|||||||
|
|
||||||
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
||||||
select t.site_id,
|
select t.site_id,
|
||||||
t.battery_pack_soc as batterySOC,
|
avg(t.battery_pack_soc) as batterySOC,
|
||||||
t.create_time as createDate
|
DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00') AS createDate
|
||||||
from ems_battery_cluster t
|
from ems_battery_cluster t
|
||||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
where t.site_id = #{siteId}
|
||||||
from ems_battery_cluster
|
AND t.create_time >= Date(#{startDate})
|
||||||
where site_id = #{siteId}
|
AND t.create_time <= #{endDate}
|
||||||
AND create_time >= #{startDate}
|
GROUP BY t.site_id,DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00')
|
||||||
AND create_time <= #{endDate}
|
order by createDate
|
||||||
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>
|
||||||
|
|
||||||
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
||||||
select t.site_id,
|
select t.site_id,
|
||||||
t.avg_cell_temp as batteryTemp,
|
avg(t.avg_cell_temp) as batteryTemp,
|
||||||
t.create_time as createDate
|
DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00') AS createDate
|
||||||
from ems_battery_cluster t
|
from ems_battery_cluster t
|
||||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
where t.site_id = '021_FXX_01'
|
||||||
from ems_battery_cluster
|
AND t.create_time >= Date(#{startDate})
|
||||||
where site_id = #{siteId}
|
AND t.create_time <= #{endDate}
|
||||||
AND create_time >= #{startDate}
|
GROUP BY t.site_id,DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00')
|
||||||
AND create_time <= #{endDate}
|
order by createDate
|
||||||
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>
|
||||||
|
|
||||||
<select id="getClusterDataByHour" resultType="com.xzzn.ems.domain.vo.ClusterStatisListVo">
|
<select id="getClusterDataByHour" resultType="com.xzzn.ems.domain.vo.ClusterStatisListVo">
|
||||||
|
|||||||
@ -277,16 +277,14 @@
|
|||||||
|
|
||||||
<select id="getStackAveTempList" resultType="com.xzzn.ems.domain.vo.StackAveTempVo">
|
<select id="getStackAveTempList" resultType="com.xzzn.ems.domain.vo.StackAveTempVo">
|
||||||
select t.site_id,
|
select t.site_id,
|
||||||
t.operating_temp as temp,
|
avg(t.operating_temp) as temp,
|
||||||
t.create_time as createDate
|
DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00') AS createDate
|
||||||
from ems_battery_stack t
|
from ems_battery_stack t
|
||||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
where t.site_id = #{siteId}
|
||||||
from ems_battery_stack
|
AND t.create_time >= Date(#{startDate})
|
||||||
where site_id = #{siteId}
|
AND t.create_time <= #{endDate}
|
||||||
AND create_time >= Date(#{startDate})
|
GROUP BY t.site_id,createDate
|
||||||
AND create_time <= #{endDate}
|
order by createDate
|
||||||
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>
|
||||||
|
|
||||||
<sql id="statisCommonFilter">
|
<sql id="statisCommonFilter">
|
||||||
@ -358,4 +356,19 @@
|
|||||||
AND latest.max_update_time = t.update_time
|
AND latest.max_update_time = t.update_time
|
||||||
order by statisDate desc
|
order by statisDate desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getSiteSumStackInfo" parameterType="String" resultType="com.xzzn.ems.domain.EmsBatteryStack">
|
||||||
|
select SUM(t.stack_soc) as stackSoc,
|
||||||
|
sum(t.stack_soh) as stackSoh
|
||||||
|
from ems_battery_stack t
|
||||||
|
INNER JOIN (
|
||||||
|
select p.site_id,p.device_id,MAX(p.create_time) as max_time
|
||||||
|
from ems_battery_stack p
|
||||||
|
where p.site_id = #{siteId}
|
||||||
|
group by p.site_id, p.device_id
|
||||||
|
) latest on t.site_id = latest.site_id
|
||||||
|
and t.device_id = latest.device_id
|
||||||
|
and t.create_time = latest.max_time
|
||||||
|
where t.site_id = #{siteId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -295,36 +295,43 @@
|
|||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="getPcsDataBySiteId" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
<select id="getPcsDataBySiteId" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||||
select latest.dateDay as ammeterDate,
|
select CONCAT(t.date_month,'-',t.date_day) as ammeterDate,
|
||||||
sum(t.daily_ac_charge_energy) as chargedCap,
|
sum(t.daily_ac_charge_energy) as chargedCap,
|
||||||
sum(t.daily_ac_discharge_energy) as disChargedCap
|
sum(t.daily_ac_discharge_energy) as disChargedCap
|
||||||
from (
|
from ems_pcs_data t
|
||||||
SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%m-%d') as dateDay, MAX(p.data_update_time) AS max_update_time
|
inner join( 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
|
FROM ems_pcs_data p
|
||||||
where p.site_id = #{siteId} and p.create_time >= CURDATE() - INTERVAL #{limitTime} DAY
|
where p.site_id = #{siteId}
|
||||||
GROUP BY p.site_id,p.device_id,dateDay
|
and p.data_update_time >= CURDATE() - INTERVAL #{limitTime} DAY
|
||||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
GROUP BY p.site_id,p.device_id,p.date_month,p.date_day
|
||||||
AND latest.device_id = t.device_id
|
) latest ON t.site_id = latest.site_id
|
||||||
AND latest.max_update_time = t.data_update_time
|
AND t.device_id = latest.device_id
|
||||||
|
AND t.date_month = latest.date_month
|
||||||
|
AND t.date_day = latest.date_day
|
||||||
|
AND t.data_update_time = latest.max_update_time
|
||||||
group by ammeterDate
|
group by ammeterDate
|
||||||
order by ammeterDate desc
|
order by ammeterDate
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getPcsTotalChargeData" resultType="map">
|
<select id="getPcsTotalChargeData" resultType="map">
|
||||||
SELECT
|
SELECT
|
||||||
SUM(t.total_ac_charge_energy) AS totalChargedCap,
|
SUM(p.total_ac_charge_energy) AS totalChargedCap,
|
||||||
SUM(t.total_ac_discharge_energy) AS totalDischargedCap,
|
SUM(p.total_ac_discharge_energy) AS totalDischargedCap,
|
||||||
SUM(t.total_active_power) as gridNrtPower
|
SUM(p.total_active_power) AS gridNrtPower
|
||||||
FROM (
|
FROM ems_pcs_data p
|
||||||
SELECT p.site_id, p.device_id, MAX(p.data_update_time) AS max_update_time
|
INNER JOIN ems_site_setting s ON p.site_id = s.site_id
|
||||||
FROM ems_pcs_data p inner join ems_site_setting s on p.site_id = s.site_id
|
INNER JOIN ( SELECT site_id, device_id, MAX(data_update_time) AS max_update_time
|
||||||
<if test="siteId != null and siteId != ''">
|
FROM ems_pcs_data
|
||||||
where p.site_id = #{siteId}
|
<if test="siteId !=null and siteId !=''">
|
||||||
</if>
|
where site_id = #{siteId}
|
||||||
GROUP BY p.site_id,p.device_id
|
</if>
|
||||||
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
|
GROUP BY site_id, device_id
|
||||||
AND latest.device_id = t.device_id
|
) latest ON p.site_id = latest.site_id
|
||||||
AND latest.max_update_time = t.data_update_time
|
AND p.device_id = latest.device_id
|
||||||
|
AND p.data_update_time = latest.max_update_time
|
||||||
|
<if test="siteId !=null and siteId !=''">
|
||||||
|
where p.site_id = #{siteId}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getSiteRunningHeadInfo" parameterType="String" resultType="com.xzzn.ems.domain.vo.SiteMonitorRunningHeadInfoVo">
|
<select id="getSiteRunningHeadInfo" parameterType="String" resultType="com.xzzn.ems.domain.vo.SiteMonitorRunningHeadInfoVo">
|
||||||
@ -350,8 +357,9 @@
|
|||||||
SUM(t.daily_ac_charge_energy) AS chargeEnergy,
|
SUM(t.daily_ac_charge_energy) AS chargeEnergy,
|
||||||
SUM(t.daily_ac_discharge_energy) AS disChargeEnergy
|
SUM(t.daily_ac_discharge_energy) AS disChargeEnergy
|
||||||
FROM ems_pcs_data t
|
FROM ems_pcs_data t
|
||||||
INNER JOIN ( SELECT site_id, device_id, date_month, date_day, MAX(data_update_time) AS max_update_time
|
INNER JOIN ( SELECT site_id, device_id, date_month, date_day, MAX(data_update_time) AS max_update_time
|
||||||
FROM ems_pcs_data GROUP BY site_id, device_id, date_month, date_day
|
FROM ems_pcs_data
|
||||||
|
GROUP BY site_id, device_id, date_month, date_day
|
||||||
) max_dates ON t.site_id = max_dates.site_id
|
) max_dates ON t.site_id = max_dates.site_id
|
||||||
AND t.device_id = max_dates.device_id
|
AND t.device_id = max_dates.device_id
|
||||||
AND t.date_month = max_dates.date_month
|
AND t.date_month = max_dates.date_month
|
||||||
@ -413,18 +421,16 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getStoragePowerList" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
|
<select id="getStoragePowerList" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
|
||||||
select t.site_id,
|
SELECT t.site_id,
|
||||||
t.total_active_power as pcsTotalActPower,
|
SUM(t.total_active_power) AS pcsTotalActPower,
|
||||||
t.total_reactive_power as pcsTotalReactivePower,
|
SUM(t.total_reactive_power) AS pcsTotalReactivePower,
|
||||||
t.create_time as createDate
|
DATE_FORMAT(t.data_update_time, '%Y-%m-%d %H:%i:00') AS createDate
|
||||||
from ems_pcs_data t
|
FROM ems_pcs_data t
|
||||||
inner join (select site_id,create_time,MIN(device_id) as device_id
|
WHERE t.site_id = #{siteId}
|
||||||
from ems_pcs_data
|
AND t.data_update_time >= Date(#{startDate})
|
||||||
where site_id = #{siteId}
|
AND t.data_update_time <= #{endDate}
|
||||||
AND create_time >= Date(#{startDate})
|
GROUP BY t.site_id, DATE_FORMAT(t.data_update_time, '%Y-%m-%d %H:%i:00')
|
||||||
AND create_time <= #{endDate}
|
ORDER BY createDate
|
||||||
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>
|
||||||
|
|
||||||
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||||
|
|||||||
Reference in New Issue
Block a user