<?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.UserMapper">
	
	    <sql id="commonPagingHeader"  >
	      SELECT R1.* FROM (
	    </sql>
	    
	    <sql id="commonPagingFooter"  >
	      ) R1 LIMIT #{pgtl.startNo}, #{pgtl.listPerPage}
	    </sql>   
	    	
		<!-- 해당 부분의 id는 MapperClass의 함수 이름과 유사하여야 합니다. -->
		
		<select id="selectListCount"  resultType="int">
			select 
				count(id) as count
			from t_user where 1=1 
			<if test="id != null and id != '' "> and id = #{id}</if>
			<if test="roleCode != null and roleCode != '-1' "> and roleCode = #{roleCode}</if>
			<if test="statusCode != null and statusCode != '' "> and statusCode = #{statusCode}</if>
		</select>
				
		<select id="selectList"  resultType="com.elt.ems.vo.UserVo">
	      <if test="pgtl != null">
	        <include refid="commonPagingHeader" /> 
	      </if>
			select 
				*
			from t_user where 1=1 
			<if test="id != null and id != '' "> and id = #{id}</if>
			<if test="roleCode != null and roleCode != '-1' "> and roleCode = #{roleCode}</if>
			<if test="statusCode != null and statusCode != '' "> and statusCode = #{statusCode}</if>
			order by createDatetime desc
			
	      <if test="pgtl != null">
	        <include refid="commonPagingFooter" />
	      </if>			
		</select>
		
		<select id="selectActiveUser"  resultType="com.elt.ems.vo.UserVo" parameterType="String">
			select 
				*
			from t_user where id = #{id} and statusCode = '01'
		</select>
	
		
		<select id="selectPlantMappingList"  resultType="com.elt.ems.vo.UserPlantMappingVo" parameterType="String">
			select m.*, p.name as plantName
			from 
			t_user_plant_mapping m, t_plant p 
			where m.plantSeq = p.seq and p.plantStatus = '01'
			and m.userId=#{id}
		</select>	
		
		<select id="selectPlantActiveList"  resultType="com.elt.ems.vo.UserPlantMappingVo" parameterType="String">
			select 
				p.seq as plantSeq, p.name as plantName
			from t_plant p, t_pms m
			where p.seq = m.plantSeq and p.plantStatus = '01' and m.pmsStatus = '01'	 
			order by p.seq desc
		</select> 
    
	    			
		<update id="update"  parameterType="com.elt.ems.vo.UserVo">
			update t_user set 
				name = #{name},
				<if test="password != null and password != '' ">password = #{password}, </if>
				statusCode = #{statusCode},
				roleCode = #{roleCode},
				updateDatetime = now()
			where id = #{id}
		</update>	
		
		
		
		<insert id="insert"  parameterType="com.elt.ems.vo.UserVo">
			insert into t_user (
				id, name, password, statusCode, roleCode, createDateTime, updateDatetime
			) values (
				#{id},
				#{name},
				#{password},
				#{statusCode},
				#{roleCode},
				now(),
				now()
			)
		</insert>			
		
	</mapper>