<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="i2c.biz.batchMng.dao.BatchMngDAO">
 	
 	<resultMap id="batchMngVO"  type="i2c.biz.batchMng.vo.BatchMngVO" /> 	
	 
	 <sql id="searchSql">
	 	<if test="@i2c.cmm.util.StringUtil@isEmpty(batch_mntrng_code) == false">
			AND BATCH_MNTRNG_CODE = #{batch_mntrng_code}
		</if>
		<if test="@i2c.cmm.util.StringUtil@isEmpty(start_dttm) == false and @i2c.cmm.util.StringUtil@isEmpty(end_dttm) == false">		    		      	      
	     <![CDATA[
			AND START_DTTM >= #{start_dttm}
			AND START_DTTM <= #{end_dttm}
		 ]]>
		</if>	
		<if test="@i2c.cmm.util.StringUtil@isEmpty(searchKeyword) == false">
			AND BATCH_MNTRNG_CODE_NM LIKE '%' || #{searchKeyword} || '%'
		</if>	
	 </sql>
	 
	 <select id="countBatchMng"  parameterType="i2c.biz.batchMng.vo.BatchMngVO" resultType="int">
	 /* [i2c.biz.batchMng.dao.batchMngDAO.countBatchMng] 배치 모니터링 리스트 count */
		SELECT COUNT(0) 
		FROM
		(SELECT
			  A.*			
		FROM (
			SELECT 
				    BATCH_MNTRNG_CODE 
				  ,	IFNULL(FN_GET_CODE_NM('BATCH_MNTRNG_CODE',BATCH_MNTRNG_CODE),'부서/사용자') BATCH_MNTRNG_CODE_NM         				  
				  , SUBSTR(START_DT, 0,8) START_DTTM  
	        FROM BATCH_MNTRNG
			) A
		WHERE 1=1			
		<include refid="searchSql"/>
		)
			
	</select>
	
	
	 <select id="listBatchMng"  parameterType="i2c.biz.batchMng.vo.BatchMngVO"  resultMap="batchMngVO">
	 /* [i2c.biz.batchMng.dao.batchMngDAO.listBatchMng] 배치 모니터링 리스트 */
		SELECT * 
		FROM
		(SELECT
			  A.*
			, ROWNUM RNUM
			, COUNT(*) OVER() TOTAL_CNT
			, ROW_NUMBER() OVER(ORDER BY A.START_DT DESC) RN
		FROM (
			SELECT 
				    BATCH_MNTRNG_ID   
				  ,	BATCH_MNTRNG_CODE 
				  ,	IFNULL(FN_GET_CODE_NM('BATCH_MNTRNG_CODE',BATCH_MNTRNG_CODE),'부서/사용자') BATCH_MNTRNG_CODE_NM         
				  ,	BATCH_COUNT               
				  ,	RM                         
				  ,	DECODE(SUCCESS_YN,'Y','성공','실패') SUCCESS_YN       
				  , SUBSTR(START_DT, 0,8) START_DTTM         
				  , SUBSTR(START_DT, 1,4) || '-' || SUBSTR(START_DT, 5,2) || '-' || SUBSTR(START_DT, 7,2) || ' ' || SUBSTR(START_DT, 9,2) || ':' || SUBSTR(START_DT, 11,2) || ':' || SUBSTR(START_DT, 13,2) START_DT
	        	  , SUBSTR(END_DT, 1,4) || '-' || SUBSTR(END_DT, 5,2) || '-' || SUBSTR(END_DT, 7,2) || ' ' || SUBSTR(END_DT, 9,2) || ':' || SUBSTR(END_DT, 11,2) || ':' || SUBSTR(END_DT, 13,2) END_DT
	        FROM BATCH_MNTRNG	     	
			ORDER BY START_DT DESC
			) A
		WHERE 1=1			
		<include refid="searchSql"/>
		)	
		 <![CDATA[
			 WHERE  RNUM  > #{firstIndex}
		       AND  RNUM <= #{firstIndex} + #{recordCountPerPage}
		 ]]>      
		 
			 ORDER BY RN
	  
	 </select>
	
	<insert id="insertBatchMng" parameterType="i2c.biz.batchMng.vo.BatchMngVO">
	/* i2c.biz.batch.dao.BatchDAO.xml insertBatchMng 배치 모니터링 저장 */
	INSERT INTO BATCH_MNTRNG (
			BATCH_MNTRNG_ID   
		  ,	BATCH_MNTRNG_CODE          
		  ,	BATCH_COUNT               
		  ,	RM                         
		  ,	SUCCESS_YN                
		  ,	START_DT                  
		  ,	END_DT)
	VALUES (
			#{batch_mntrng_id}
		  , #{batch_mntrng_code}
		  , #{batch_count}
		  , SUBSTRB(#{rm}, 0, 2000)
		  , #{success_yn}
		  , #{start_dt}
		  , #{end_dt})
	</insert>
	
	
	<select id="listRecvAdmin"  parameterType="i2c.biz.batchMng.vo.BatchMngVO"  resultMap="batchMngVO">
	 /* [i2c.biz.batchMng.dao.batchMngDAO.listRecvAdmin] 배치 에러 메시지 수신자 */
		SELECT 
			  USR_ID
			, USR_NM
			, EMAIL
			, PHN_NUM			
		FROM SNS_USER
		WHERE AUTH_CODE = #{auth_code}
		  AND USE_STOP_YN = 'N'			  
	 </select>
	 
	 <select id="selectBatchCodeNm"  parameterType="i2c.biz.batchMng.vo.BatchMngVO"  resultMap="batchMngVO">
	 /* [i2c.biz.batchMng.dao.batchMngDAO.selectBatchCodeNm] 배치코드명 */
		SELECT 
			IFNULL(FN_GET_CODE_NM('BATCH_TYPE',#{batch_mntrng_code}),'부서/사용자') BATCH_MNTRNG_CODE_NM			
		FROM 
			DUAL		  
	 </select>
	
</mapper>