<?xml version="1.0" encoding="UTF-8" ?>
|
<!DOCTYPE mapper
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.zhitan.dataitem.mapper.DataItemMapper">
|
<resultMap type="com.zhitan.dataitem.domain.StagseDataEntry" id="stagseDataEntryResult">
|
<result property="code" column="code"/>
|
<result property="name" column="name"/>
|
<result property="indexId" column="index_id"/>
|
<result property="timeType" column="time_type"/>
|
<result property="unitId" column="unit_id"/>
|
<result property="calcType" column="calc_type"/>
|
<result property="value" column="value"/>
|
<result property="timeCode" column="time_code"/>
|
<result property="dataTime" column="data_time"/>
|
</resultMap>
|
|
<select id="getSettingIndex" parameterType="com.zhitan.dataitem.domain.StagseDataEntry" resultMap="stagseDataEntryResult">
|
|
SELECT
|
ei.index_id,
|
code,
|
NAME,
|
si.time_type,
|
ei.unit_id
|
FROM
|
energy_index ei
|
LEFT JOIN node_index ni ON ei.index_id = ni.index_id
|
LEFT JOIN index_storage si ON si.index_id = ei.index_id
|
WHERE
|
not EXISTS ( SELECT index_id FROM data_item WHERE index_id =ei.index_id and data_time >= #{beginTime} AND data_time <= #{endTime}) AND
|
ni.node_id = #{nodeId}
|
and si.time_type = #{timeType}
|
AND si.calc_type = #{calcType}
|
</select>
|
<select id="getSettingEdit" parameterType="com.zhitan.dataitem.domain.StagseDataEntry" resultMap="stagseDataEntryResult">
|
SELECT
|
ei.index_id,
|
code,
|
NAME,
|
si.time_type,
|
ei.unit_id,
|
di.value,
|
di.data_time
|
FROM
|
energy_index ei
|
LEFT JOIN node_index ni ON ei.index_id = ni.index_id
|
LEFT JOIN index_storage si ON si.index_id = ei.index_id
|
LEFT JOIN data_item di on di.index_id=ei.index_id
|
WHERE
|
ni.node_id = #{nodeId}
|
and si.time_type = #{timeType}
|
AND si.calc_type = #{calcType}
|
AND data_time >= #{beginTime}
|
AND data_time <= #{endTime}
|
</select>
|
<select id="stagseDataByCode" parameterType="com.zhitan.dataitem.domain.StagseDataEntry" resultMap="stagseDataEntryResult">
|
SELECT
|
ei.index_id,
|
code,
|
NAME,
|
ei.unit_id,
|
di.value,
|
di.data_time,
|
di.time_type
|
FROM
|
energy_index ei
|
LEFT JOIN node_index ni ON ei.index_id = ni.index_id
|
LEFT JOIN data_item di on di.index_id=ei.index_id
|
WHERE
|
ni.node_id = #{nodeId}
|
and ei.code IN
|
<foreach item="indexCode" index="index" collection="indexCodes"
|
open="(" separator="," close=")">
|
#{indexCode}
|
</foreach>
|
and di.time_type = #{timeType}
|
AND di.data_time >= #{beginTime}
|
AND di.data_time <= #{endTime}
|
</select>
|
|
<select id="getDataItemTimeRangeInforByIndexIds" resultType="com.zhitan.realtimedata.domain.DataItem">
|
SELECT
|
index_id indexId,
|
data_time dataTime,
|
"value"
|
FROM
|
"data_item"
|
WHERE
|
index_id IN
|
<foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
|
#{indexId}
|
</foreach>
|
AND ( data_time >= #{beginTime} AND data_time < #{endTime} )
|
AND time_type = #{timeType}
|
</select>
|
|
<select id="getDataItemTimeRangeValueByIndexIds" resultType="java.math.BigDecimal">
|
SELECT
|
COALESCE (SUM ( "value" ), 0)
|
FROM
|
"data_item"
|
WHERE
|
index_id IN
|
<foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
|
#{indexId}
|
</foreach>
|
AND ( data_time >= #{beginTime} AND data_time < #{endTime} )
|
AND time_type = #{timeType}
|
</select>
|
|
<select id="getDataItemInforByIndexIds" resultType="com.zhitan.realtimedata.domain.DataItem">
|
SELECT
|
index_id indexId,
|
data_time dataTime,
|
"value"
|
FROM
|
"data_item"
|
WHERE
|
index_id IN
|
<foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
|
#{indexId}
|
</foreach>
|
AND time_code = #{timeCode}
|
</select>
|
|
<select id="getDataItemValueByIndexIds" resultType="java.math.BigDecimal">
|
SELECT
|
COALESCE (SUM ( "value" ), 0)
|
FROM
|
"data_item"
|
WHERE
|
index_id IN
|
<foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
|
#{indexId}
|
</foreach>
|
AND time_code = #{timeCode}
|
</select>
|
<select id="getUpCarbonEmission" resultType="com.zhitan.carbonemission.domain.CarbonEmission">
|
SELECT
|
di.index_id,
|
di.data_time,
|
di.value,
|
ei.energy_id
|
FROM
|
data_item di
|
JOIN energy_index ei ON di.index_id = ei.index_id
|
WHERE
|
ei.energy_id != '' and
|
di.index_id IN ( SELECT index_id FROM node_index WHERE node_id = #{indexId})
|
AND di.data_time BETWEEN #{beginTime} AND #{endTime}
|
AND di.time_type = #{timeType}
|
</select>
|
<select id="getMiddleCarbonEmission" resultType="com.zhitan.carbonemission.domain.CarbonEmission">
|
SELECT
|
di.index_id,
|
di.data_time,
|
CASE
|
WHEN di.time_type = 'MONTH' THEN
|
TO_CHAR( di.create_time, 'MM' )
|
WHEN di.time_type = 'DAY' THEN
|
TO_CHAR( di.create_time, 'DD' )
|
WHEN di.time_type = 'HOUR' THEN
|
TO_CHAR( di.data_time, 'HH' )
|
ELSE TO_CHAR( di.data_time, 'YYMMDD' )
|
END AS dataTimeStr,
|
di.value,
|
ei.energy_id,
|
di.time_type
|
FROM
|
data_item di
|
JOIN energy_index ei ON di.index_id = ei.index_id
|
WHERE
|
di.index_id IN ( SELECT index_id FROM node_index WHERE node_id = #{indexId})
|
<if test="emissionType !='' and emissionType !=null and emissionType =='allType'">
|
AND ei.energy_id != ''
|
</if>
|
<if test="emissionType !='' and emissionType !=null and emissionType !='allType'">
|
AND ei.energy_id = #{emissionType}
|
</if>
|
AND di.data_time BETWEEN #{beginTime} AND #{endTime}
|
AND di.time_type = #{timeType}
|
</select>
|
<select id="getDownCarbonEmission" resultType="com.zhitan.carbonemission.domain.CarbonEmission">
|
SELECT
|
di.index_id,
|
di.data_time,
|
di.value,
|
ei.energy_id,
|
mn.name as nodeName
|
FROM
|
model_node mn
|
LEFT JOIN node_index ni ON mn.node_id = ni.node_id
|
LEFT JOIN data_item di ON di.index_id = ni.index_id
|
LEFT JOIN energy_index ei ON di.index_id = ei.index_id
|
WHERE
|
ei.energy_id != ''
|
AND mn.parent_id = #{indexId}
|
AND di.data_time BETWEEN #{beginTime} AND #{endTime}
|
AND di.time_type = #{timeType}
|
</select>
|
|
<select id="getDataItemHourInforByIndexIds" resultType="com.zhitan.realtimedata.domain.DataItem">
|
SELECT
|
index_id indexId,
|
data_time dataTime,
|
"value"
|
FROM
|
"data_item"
|
WHERE
|
index_id IN
|
<foreach collection="indexIds" item="indexId" open="(" separator="," close=")">
|
#{indexId}
|
</foreach>
|
AND ( begin_time BETWEEN #{beginTime} AND #{endTime} )
|
AND time_type = #{timeType}
|
</select>
|
|
<select id="getDataItemTimeRangeValueByNodeId" resultType="java.math.BigDecimal">
|
SELECT
|
COALESCE (SUM ( "value" ), 0)
|
FROM
|
"data_item" di
|
JOIN energy_index ei ON di.index_id = ei.index_id
|
WHERE
|
di.index_id IN ( SELECT index_id FROM node_index WHERE node_id = #{nodeId})
|
<if test="energyType !='' and energyType !=null and energyType =='allType'">
|
AND ei.energy_id != ''
|
</if>
|
<if test="energyType !='' and energyType !=null and energyType !='allType'">
|
AND ei.energy_id = #{energyType}
|
</if>
|
AND (di.data_time BETWEEN #{beginTime} AND #{endTime})
|
AND di.time_type = #{timeType}
|
</select>
|
<select id="getHomePageConsumptionRanking"
|
resultType="com.zhitan.consumptionanalysis.domain.vo.RankingEnergyData">
|
SELECT
|
A.node_Id,
|
A."name" AS nodeName,
|
A.energy_id AS energyTypeNo,
|
A.index_type AS energyTypeName,
|
A."value" AS energyConsumption
|
FROM
|
(
|
SELECT
|
mn.node_id,
|
mn."name",
|
ei.energy_id,
|
ei.index_type,
|
se.coefficient,
|
(SUM ( di."value" ) * se.coefficient) AS "value"
|
FROM
|
model_node mn
|
LEFT JOIN node_index ni ON ni.node_id = mn.node_id
|
LEFT JOIN data_item di ON di.index_id = ni.index_id
|
LEFT JOIN energy_index ei ON ei.index_id = ni.index_id
|
LEFT JOIN sys_energy se ON se.enersno = ei.energy_id
|
WHERE
|
mn.node_id IN
|
<foreach collection="nodeIds" item="nodeId" open="(" separator="," close=")">
|
#{nodeId}
|
</foreach>
|
AND di.time_type = #{timeType}
|
AND di.begin_time between #{beginTime} AND #{endTime}
|
AND ei.index_type = 'STATISTIC'
|
GROUP BY
|
mn.node_id,
|
mn."name",
|
ei.energy_id,
|
ei.index_type,
|
se.coefficient
|
) A
|
ORDER BY
|
A."value" DESC
|
LIMIT 5
|
</select>
|
</mapper>
|