统计报表-电池堆曲线
This commit is contained in:
@ -288,4 +288,93 @@
|
||||
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>
|
||||
|
||||
<sql id="statisCommonFilter">
|
||||
WHERE p.site_id = #{siteId}
|
||||
and p.device_id = #{deviceId}
|
||||
<if test="startDate != null">
|
||||
AND p.update_time >= DATE(#{startDate})
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
AND p.update_time < DATE(#{endDate})
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
<sql id="dataTypeChooseFilter">
|
||||
<choose>
|
||||
<when test="dataType == 1">
|
||||
t.operating_temp AS temp
|
||||
</when>
|
||||
<when test="dataType == 2">
|
||||
t.stack_voltage as voltage
|
||||
</when>
|
||||
<when test="dataType == 3">
|
||||
t.stack_current as current
|
||||
</when>
|
||||
<when test="dataType == 4">
|
||||
t.stack_soc as soc
|
||||
</when>
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
<sql id="groupChooseFilter">
|
||||
<choose>
|
||||
<when test="dataType == 1">
|
||||
,temp
|
||||
</when>
|
||||
<when test="dataType == 2">
|
||||
,voltage
|
||||
</when>
|
||||
<when test="dataType == 3">
|
||||
,current
|
||||
</when>
|
||||
<when test="dataType == 4">
|
||||
,soc
|
||||
</when>
|
||||
</choose>
|
||||
</sql>
|
||||
<select id="getStackDataByHour" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.StackStatisListVo">
|
||||
select latest.dateHour as statisDate,
|
||||
<include refid="dataTypeChooseFilter"/>
|
||||
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.update_time, '%H')+1 AS dateHour,MAX(p.update_time) as max_update_time
|
||||
FROM ems_battery_stack p
|
||||
<include refid="statisCommonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,dateHour
|
||||
) latest inner join ems_battery_stack t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.update_time
|
||||
group by statisDate
|
||||
<include refid="groupChooseFilter"/>
|
||||
order by statisDate desc
|
||||
</select>
|
||||
|
||||
<select id="getStackDataByDay" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.StackStatisListVo">
|
||||
select latest.dateDay as statisDate,
|
||||
<include refid="dataTypeChooseFilter"/>
|
||||
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.update_time, '%Y-%m-%d') AS dateDay,MAX(p.update_time) as max_update_time
|
||||
FROM ems_battery_stack p
|
||||
<include refid="statisCommonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,dateDay
|
||||
) latest inner join ems_battery_stack t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.update_time
|
||||
group by statisDate
|
||||
<include refid="groupChooseFilter"/>
|
||||
order by statisDate desc
|
||||
</select>
|
||||
|
||||
<select id="getStackDataByMonth" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.StackStatisListVo">
|
||||
select latest.dateMonth as statisDate,
|
||||
<include refid="dataTypeChooseFilter"/>
|
||||
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.update_time, '%Y-%m') AS dateMonth,MAX(p.update_time) as max_update_time
|
||||
FROM ems_battery_stack p
|
||||
<include refid="statisCommonFilter"/>
|
||||
GROUP BY p.site_id,p.device_id,dateMonth
|
||||
) latest inner join ems_battery_stack t ON latest.site_id = t.site_id
|
||||
AND latest.device_id = t.device_id
|
||||
AND latest.max_update_time = t.update_time
|
||||
group by statisDate
|
||||
<include refid="groupChooseFilter"/>
|
||||
order by statisDate desc
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user