<?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.PmsDataMapper">
	
	    <select id="selectListCount"  parameterType="com.elt.ems.vo.PmsDataVo" resultType="integer">
	
	       select count(d.seq) as count 
	       from t_pmsdata_${realtimeYear} d
	       where 1=1  
	       <if test="plantSeq > 0"> and p.plantSeq = #{plantSeq}</if>     
	    </select>
	    		
	    <select id="selectList"  parameterType="com.elt.ems.vo.PmsDataVo" resultType="com.elt.ems.vo.PmsDataVo">
	
	       select * 
	       from t_pmsdata_${realtimeYear} d
	       where 1=1 
	       <if test="plantSeq > 0"> and d.plantSeq = #{plantSeq}</if>
	       <if test="inputDate != null"> and d.inputDate = #{inputDate}</if>
	       order by plantSeq desc, inputDate desc, inputHour desc, inputMinute desc
	  
	    </select>
	    
	    <select id="selectPlantPmsDataList"  parameterType="com.elt.ems.vo.PmsDataVo" resultType="com.elt.ems.vo.PmsDataVo">
	
			select 
				p.seq as plantSeq, p.plantName, p.plantStatus, p.supplyPower, p.pmsStatus, p.pcsMaker, p.pcsQuantity, 
			    d.seq, d.pcsIdx, d.timetableSeq, d.inputDate, d.inputHour, d.inputMinute,
			    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,
			    d.createDatetime, d.count
			from (
				select p.seq, p.name as plantName, p.plantStatus, p.supplyPower, pm.pmsStatus, pm.pcsMaker, pm.pcsQuantity
				from t_plant p, t_pms pm
				where p.seq = pm.plantSeq
				<if test="plantStatus != null"> and p.plantStatus = #{plantStatus}</if>
				<if test="pmsStatus != null"> and pm.pmsStatus = #{pmsStatus}</if>		
				<if test="plantName != null and plantName != '' "> and p.name like concat('%', #{plantName}, '%')</if>		
			) p left join (
			
				select  
					d.*, d2.count
				from t_pmsdata_${realtimeYear} d, 
				(
					select plantseq, max(timetableSeq) as timetableSeq, count(seq) as count
					from t_pmsdata_${realtimeYear} d
					where pcsIdx=1 
					<if test="inputDate != null"> and d.inputDate = #{inputDate}</if> 
					group by d.plantseq
				) d2
				where d.plantSeq = d2.plantSeq
				and d.timetableSeq = d2.timetableSeq 
				<if test="pcsIdx >= 0 ">and d.pcsIdx=#{pcsIdx} </if>
				<if test="pcsIdx == -1 ">and d.pcsIdx &gt; 0 </if>				 
			) d
			on p.seq = d.plantSeq
			order by p.seq desc
	    </select>
    
	    
	    <select id="getFaultBscList"  parameterType="com.elt.ems.vo.PmsDataVo" resultType="com.elt.ems.vo.PmsDataVo">
			select 
				p.name as plantName, d.* 
			from t_pmsdata_${realtimeYear} d, t_plant p
			where d.plantSeq = p.seq and d.inputDate=#{inputDate} and d.pcsIdx > 0 and ( d.data25  &gt; 0 or d.data62  &gt; 0 or d.data63  &gt; 0 or d.data64  &gt; 0)  
				and d.timetableSeq = (select currSeq from t_sequence where seq=10)   
			order by p.seq asc, d.pcsIdx asc	               
	    </select>
	    
	    <select id="getFaultPcsList"  parameterType="com.elt.ems.vo.PmsDataVo" resultType="com.elt.ems.vo.PmsDataVo">
			select 
				p.name as plantName, d.* 
			from t_pmsdata_${realtimeYear} d, t_plant p
			where d.plantSeq = p.seq and d.inputDate=#{inputDate} and d.pcsIdx > 0 and ( d.data28 &gt; 0 or d.data29 &gt; 0 or d.data69 &gt; 0 or d.data70 &gt; 0) 
				and d.timetableSeq = (select currSeq from t_sequence where seq=10)  
			order by p.seq asc, d.pcsIdx asc	 
	    </select> 	    	    
	    
    						
		
	</mapper>