<?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">
	 
	<!-- 해당 부분의 namespace는 project package + Mapper Package + Mapper Interface 이름입니다. -->
	<mapper namespace="com.elt.ems.mapper.KescoMapper">

		<!-- 해당 부분의 id는 MapperClass의 함수 이름과 유사하여야 합니다. -->
	    <sql id="commonPagingHeader"  >
	      SELECT R1.* FROM (
	    </sql>
	    
	    <sql id="commonPagingFooter"  >
	      ) R1 LIMIT #{pgtl.startNo}, #{pgtl.listPerPage}
	    </sql>    
	     		
	    <select id="selectListCount"  parameterType="com.elt.ems.vo.KescoDataVo" resultType="integer">
	
			select count(k.seq) as count 
			from t_kesco_data k, t_plant p
			where k.plantSeq = p.seq
			and sendStatus = #{sendStatus}
			and k.inputDate &gt;= #{str1} and k.inputDate &lt;= #{str2}
			<if test="inputHour != null and inputHour != '' "> and k.inputHour = #{inputHour}</if>
			<if test="plantName != null and plantName != '' "> and p.name like concat('%', #{plantName}, '%')</if>
			<if test="plantSeq > 0"> and p.seq = #{plantSeq}</if>
			<if test="sendStatus != null and sendStatus != '' "> and k.sendStatus = #{sendStatus} </if>
			
	    </select>
	    		
	    <select id="selectList"  parameterType="com.elt.ems.vo.KescoDataVo" resultType="com.elt.ems.vo.KescoDataVo">
	
	      <if test="pgtl != null">
	        <include refid="commonPagingHeader" /> 
	      </if>
	
			select p.name as plantName, k.*
			from t_kesco_data k, t_plant p
			where k.plantSeq = p.seq
			and sendStatus = #{sendStatus}
			and k.inputDate &gt;= #{str1} and k.inputDate &lt;= #{str2}
			<if test="inputHour != null"> and k.inputHour = #{inputHour}</if>
			<if test="plantName != null and plantName != '' "> and p.name like concat('%', #{plantName}, '%')</if>
			<if test="plantSeq > 0"> and p.seq = #{plantSeq}</if>			
			<if test="sendStatus != null and sendStatus != '' "> and k.sendStatus = #{sendStatus} </if>
			order by k.inputDate desc, k.inputHour desc, k.plantSeq asc	
			
	      <if test="pgtl != null">
	        <include refid="commonPagingFooter" />
	      </if>
	      
	    </select>
	    

	    <select id="selectListKescoData"  parameterType="com.elt.ems.vo.KescoDataVo" resultType="com.elt.ems.vo.KescoDataVo">
			select 
			k.*,
			d.seq as pmsdataSeq, d.pcsIdx, d.inputDate, d.inputHour,
		    d.chargePower, d.dischargePower, d.pvPower,
			d.data1, d.data2, d.data3, d.data4, d.data5, d.data6, d.data7, d.data8, d.data9, d.data10,
			d.data11, d.data12, d.data13, d.data14, d.data15, d.data16, d.data17, d.data18, d.data19, d.data20,
			d.data21, d.data22, d.data23, d.data24, d.data25, d.data26, d.data27, d.data28, d.data29, d.data30,
			d.data31, d.data32, d.data33,
			d.data51, d.data52, d.data53, d.data54, d.data55, d.data56, d.data57, d.data58, d.data59, d.data60, 
			d.data61, d.data62, d.data63, d.data64, d.data65, d.data66, d.data67, d.data68, d.data69, d.data70
			from (
				select k.*, m.pcsMaker, m.batteryMaker, p.name as plantName from t_kesco_data k, t_pms m, t_plant p 
			    where k.inputDate=#{inputDate} and k.inputHour=#{inputHour} and k.plantSeq = p.seq and m.plantSeq = p.seq    
			) k left join t_pmsdata_statistic_hour d
			on k.plantSeq = d.plantSeq and k.pmsdataSeq = d.seq and d.pcsIdx=0 and d.inputDate=#{inputDate} and d.inputHour=#{inputHour} <if test="plantSeq > 0"> and d.plantSeq = #{plantSeq}</if>
			where k.inputDate = #{inputDate} and k.inputHour=#{inputHour} <if test="plantSeq > 0"> and k.plantSeq = #{plantSeq}</if>
			order by d.inputDate desc, d.inputHour desc, k.createDatetime desc
			
	    </select>
	    
	    <select id="selectListTimetable"  parameterType="com.elt.ems.vo.TimetableKescoVo" resultType="com.elt.ems.vo.TimetableKescoVo">
	
	      <if test="pgtl != null">
	        <include refid="commonPagingHeader" /> 
	      </if>
	
			select *
			from t_timetable_kesco k
			where k.inputDate = #{inputDate} 
			order by k.inputDate desc, k.inputHour desc	
			
	      <if test="pgtl != null">
	        <include refid="commonPagingFooter" />
	      </if>
	      
	    </select>	    
	    						
		
	</mapper>