<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.base.system.task.dao.ibatis.TaskDaoImpl">
    
	<!-- 字段和属性映射 -->
	<resultMap type="TaskEntity" id="TaskEntity-Map">
		<result property="id" column="id" />
		<result property="name" column="name" />
		<result property="taskKey" column="taskKey" />
		<result property="status" column="status" />
		<result property="excuteService" column="excuteService" />
		<result property="excuteParam" column="excuteParam" />
		<result property="excuteHost" column="excuteHost" />
		<result property="excuteStrategy" column="excuteStrategy" />
		<result property="excuteDate" column="excuteDate" />
		<result property="excuteTime" column="excuteTime" />
		<result property="remark" column="remark" />
		<result property="lastExcuteHost" column="lastExcuteHost" />
		<result property="lastExcuteTime" column="lastExcuteTime" />
		<result property="interimExcuteStatus" column="interimExcuteStatus" />
		<result property="createTime" column="createTime" />
		<result property="createUserId" column="createUserId" />
		<result property="createUserName" column="createUserName" />
	</resultMap>
	
	
	
	<!-- 表所有列 -->
	<sql id="_columns">
		<trim suffixOverrides="," suffix="">
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
				a.id as id,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('name') or colPickMode == 1 and data.containsKey('name')))">
				a.name as name,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('taskKey') or colPickMode == 1 and data.containsKey('taskKey')))">
				a.taskKey as taskKey,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('status') or colPickMode == 1 and data.containsKey('status')))">
				a.status as status,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('excuteService') or colPickMode == 1 and data.containsKey('excuteService')))">
				a.excuteService as excuteService,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('excuteParam') or colPickMode == 1 and data.containsKey('excuteParam')))">
				a.excuteParam as excuteParam,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('excuteHost') or colPickMode == 1 and data.containsKey('excuteHost')))">
				a.excuteHost as excuteHost,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('excuteStrategy') or colPickMode == 1 and data.containsKey('excuteStrategy')))">
				a.excuteStrategy as excuteStrategy,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('excuteDate') or colPickMode == 1 and data.containsKey('excuteDate')))">
				a.excuteDate as excuteDate,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('excuteTime') or colPickMode == 1 and data.containsKey('excuteTime')))">
				a.excuteTime as excuteTime,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('remark') or colPickMode == 1 and data.containsKey('remark')))">
				a.remark as remark,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('lastExcuteHost') or colPickMode == 1 and data.containsKey('lastExcuteHost')))">
				a.lastExcuteHost as lastExcuteHost,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('lastExcuteTime') or colPickMode == 1 and data.containsKey('lastExcuteTime')))">
				a.lastExcuteTime as lastExcuteTime,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('interimExcuteStatus') or colPickMode == 1 and data.containsKey('interimExcuteStatus')))">
				a.interimExcuteStatus as interimExcuteStatus,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
				a.createTime as createTime,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
				a.createUserId as createUserId,
			</if>
			<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
				a.createUserName as createUserName,
			</if>
		</trim>
	</sql>
	<!-- 新增 -->
	<insert id="insert" parameterType="TaskEntity" useGeneratedKeys="true" keyProperty="id">
		insert into mortals_xhx_task 
		(name,taskKey,status,excuteService,excuteParam,
			excuteHost,excuteStrategy,excuteDate,excuteTime,remark,
			lastExcuteHost,lastExcuteTime,interimExcuteStatus,createTime,createUserId,
			createUserName
		)VALUES(#{name},#{taskKey},#{status},#{excuteService},#{excuteParam},
			#{excuteHost},#{excuteStrategy},#{excuteDate},#{excuteTime},#{remark},
			#{lastExcuteHost},#{lastExcuteTime},#{interimExcuteStatus},#{createTime},#{createUserId},
			#{createUserName})
	</insert>
	<!-- 批量新增 -->
	<insert id="insertBatch" parameterType="paramDto">
		insert into mortals_xhx_task 
		(name,taskKey,status,excuteService,excuteParam,
			excuteHost,excuteStrategy,excuteDate,excuteTime,remark,
			lastExcuteHost,lastExcuteTime,interimExcuteStatus,createTime,createUserId,
			createUserName
		)
		VALUES
		<foreach collection="data.dataList" item="item" index="index" separator="," >  
		(#{item.name},#{item.taskKey},#{item.status},#{item.excuteService},#{item.excuteParam},
			#{item.excuteHost},#{item.excuteStrategy},#{item.excuteDate},#{item.excuteTime},#{item.remark},
			#{item.lastExcuteHost},#{item.lastExcuteTime},#{item.interimExcuteStatus},#{item.createTime},#{item.createUserId},
			#{item.createUserName})
		</foreach>
	</insert>
	<!-- 根据ParamDto更新 -->
	<update id="update" parameterType="paramDto">
		update mortals_xhx_task as a
		   set
		   <trim suffixOverrides="," suffix="">
				<if test="(colPickMode==0 and data.containsKey('name')) or (colPickMode==1 and !data.containsKey('name'))">
					a.name=#{data.name},
				</if>
				<if test="(colPickMode==0 and data.containsKey('taskKey')) or (colPickMode==1 and !data.containsKey('taskKey'))">
					a.taskKey=#{data.taskKey},
				</if>
				<if test="(colPickMode==0 and data.containsKey('status')) or (colPickMode==1 and !data.containsKey('status'))">
					a.status=#{data.status},
				</if>
				<if test="(colPickMode==0 and data.containsKey('statusIncrement')) or (colPickMode==1 and !data.containsKey('statusIncrement'))">
					a.status=ifnull(a.status,0) + #{data.statusIncrement},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteService')) or (colPickMode==1 and !data.containsKey('excuteService'))">
					a.excuteService=#{data.excuteService},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteParam')) or (colPickMode==1 and !data.containsKey('excuteParam'))">
					a.excuteParam=#{data.excuteParam},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteHost')) or (colPickMode==1 and !data.containsKey('excuteHost'))">
					a.excuteHost=#{data.excuteHost},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteStrategy')) or (colPickMode==1 and !data.containsKey('excuteStrategy'))">
					a.excuteStrategy=#{data.excuteStrategy},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteStrategyIncrement')) or (colPickMode==1 and !data.containsKey('excuteStrategyIncrement'))">
					a.excuteStrategy=ifnull(a.excuteStrategy,0) + #{data.excuteStrategyIncrement},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteDate')) or (colPickMode==1 and !data.containsKey('excuteDate'))">
					a.excuteDate=#{data.excuteDate},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteDateIncrement')) or (colPickMode==1 and !data.containsKey('excuteDateIncrement'))">
					a.excuteDate=ifnull(a.excuteDate,0) + #{data.excuteDateIncrement},
				</if>
				<if test="(colPickMode==0 and data.containsKey('excuteTime')) or (colPickMode==1 and !data.containsKey('excuteTime'))">
					a.excuteTime=#{data.excuteTime},
				</if>
				<if test="(colPickMode==0 and data.containsKey('remark')) or (colPickMode==1 and !data.containsKey('remark'))">
					a.remark=#{data.remark},
				</if>
				<if test="(colPickMode==0 and data.containsKey('lastExcuteHost')) or (colPickMode==1 and !data.containsKey('lastExcuteHost'))">
					a.lastExcuteHost=#{data.lastExcuteHost},
				</if>
				<if test="(colPickMode==0 and data.containsKey('lastExcuteTime')) or (colPickMode==1 and !data.containsKey('lastExcuteTime'))">
					a.lastExcuteTime=#{data.lastExcuteTime},
				</if>
				<if test="(colPickMode==0 and data.containsKey('interimExcuteStatus')) or (colPickMode==1 and !data.containsKey('interimExcuteStatus'))">
					a.interimExcuteStatus=#{data.interimExcuteStatus},
				</if>
				<if test="(colPickMode==0 and data.containsKey('interimExcuteStatusIncrement')) or (colPickMode==1 and !data.containsKey('interimExcuteStatusIncrement'))">
					a.interimExcuteStatus=ifnull(a.interimExcuteStatus,0) + #{data.interimExcuteStatusIncrement},
				</if>
				<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
					a.createTime=#{data.createTime},
				</if>
				<if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
					a.createUserId=#{data.createUserId},
				</if>
				<if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
					a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
				</if>
				<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
					a.createUserName=#{data.createUserName},
				</if>
		    </trim>
		   <trim suffixOverrides="where" suffix="">
			    where
			    <trim prefixOverrides="and" prefix="">
					<include refid="_condition_"/>
			   	</trim>
			</trim>
	</update>

	<!-- 根据主健查询 -->
	<select id="getByKey" parameterType="paramDto" resultMap="TaskEntity-Map">
		select <include refid="_columns"/>
		from mortals_xhx_task as a
	   where a.id=#{condition.id}
	</select>
	<!-- 根据主健删除 -->
	<delete id="deleteByKey" parameterType="paramDto">
		delete a.* from mortals_xhx_task as a where a.id=#{condition.id}
	</delete>
	<!-- 根据主健删除一批,针对单一主健有效 -->
	<delete id="deleteByKeys">
		delete from mortals_xhx_task where id in
		<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
			#{item}
		</foreach>
	</delete>
	<!-- 根据paramDto删除一批 -->
	<delete id="deleteByMap" parameterType="paramDto">
		delete a.* from mortals_xhx_task as a
		<trim suffixOverrides="where" suffix="">
			 where 
			<trim prefixOverrides="and" prefix="">
				<include refid="_condition_"/>
			</trim>
		</trim>
	</delete>
	<!-- 获取列表 -->
	<select id="getList" parameterType="paramDto" resultMap="TaskEntity-Map">
		select <include refid="_columns"/>
		  from mortals_xhx_task as a
		 <trim suffixOverrides="where" suffix="">
			 where 
			 <trim prefixOverrides="and" prefix="">
			 	<include refid="_condition_"/>
			 </trim>
		 </trim>
		 <include refid="_orderCols_"/>
	</select>
	<!-- 获取 -->
	<select id="getListCount" parameterType="paramDto" resultType="int">
		select count(1)
		  from mortals_xhx_task as a
		 <trim suffixOverrides="where" suffix="">
			 where 
			 <trim prefixOverrides="and" prefix="">
				<include refid="_condition_"/>
			</trim>
		</trim>
	</select>
	
	<!-- 条件映射 -->
	<sql id="_condition_">
		<if test="condition != null and !condition.isEmpty()">
				<if test="condition.containsKey('id')">
					<if test="condition.id != null">
						and a.id=#{condition.id}
					</if>
				</if>
				<if test="condition.containsKey('id')">
					<if test="condition.id != null ">
						and a.id = #{condition.id}
					</if>
					<if test="condition.id == null">
						and a.id is null
					</if>
				</if>
				<if test="condition.containsKey('idList')">
					 and a.id in 
					<foreach collection="condition.idList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('idStart') and condition.idStart != null">
					<![CDATA[ and a.id >= #{condition.idStart} ]]>
				</if>
				<if test="condition.containsKey('idEnd') and condition.idEnd != null">
					<![CDATA[ and a.id <= #{condition.idEnd} ]]>
				</if>
				<if test="condition.containsKey('name')">
					<if test="condition.name != null and condition.name != ''">
						and a.name like #{condition.name}
					</if>
					<if test="condition.name == null">
						and a.name is null
					</if>
				</if>
				<if test="condition.containsKey('nameList')">
					 and a.name in 
					<foreach collection="condition.nameList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('taskKey')">
					<if test="condition.taskKey != null and condition.taskKey != ''">
						and a.taskKey like #{condition.taskKey}
					</if>
					<if test="condition.taskKey == null">
						and a.taskKey is null
					</if>
				</if>
				<if test="condition.containsKey('taskKeyList')">
					 and a.taskKey in 
					<foreach collection="condition.taskKeyList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('status')">
					<if test="condition.status != null ">
						and a.status = #{condition.status}
					</if>
					<if test="condition.status == null">
						and a.status is null
					</if>
				</if>
				<if test="condition.containsKey('statusList')">
					 and a.status in 
					<foreach collection="condition.statusList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('statusStart') and condition.statusStart != null">
					<![CDATA[ and a.status >= #{condition.statusStart} ]]>
				</if>
				<if test="condition.containsKey('statusEnd') and condition.statusEnd != null">
					<![CDATA[ and a.status <= #{condition.statusEnd} ]]>
				</if>
				<if test="condition.containsKey('excuteService')">
					<if test="condition.excuteService != null and condition.excuteService != ''">
						and a.excuteService like #{condition.excuteService}
					</if>
					<if test="condition.excuteService == null">
						and a.excuteService is null
					</if>
				</if>
				<if test="condition.containsKey('excuteServiceList')">
					 and a.excuteService in 
					<foreach collection="condition.excuteServiceList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('excuteParam')">
					<if test="condition.excuteParam != null and condition.excuteParam != ''">
						and a.excuteParam like #{condition.excuteParam}
					</if>
					<if test="condition.excuteParam == null">
						and a.excuteParam is null
					</if>
				</if>
				<if test="condition.containsKey('excuteParamList')">
					 and a.excuteParam in 
					<foreach collection="condition.excuteParamList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('excuteHost')">
					<if test="condition.excuteHost != null and condition.excuteHost != ''">
						and a.excuteHost like #{condition.excuteHost}
					</if>
					<if test="condition.excuteHost == null">
						and a.excuteHost is null
					</if>
				</if>
				<if test="condition.containsKey('excuteHostList')">
					 and a.excuteHost in 
					<foreach collection="condition.excuteHostList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('excuteStrategy')">
					<if test="condition.excuteStrategy != null ">
						and a.excuteStrategy = #{condition.excuteStrategy}
					</if>
					<if test="condition.excuteStrategy == null">
						and a.excuteStrategy is null
					</if>
				</if>
				<if test="condition.containsKey('excuteStrategyList')">
					 and a.excuteStrategy in 
					<foreach collection="condition.excuteStrategyList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('excuteStrategyStart') and condition.excuteStrategyStart != null">
					<![CDATA[ and a.excuteStrategy >= #{condition.excuteStrategyStart} ]]>
				</if>
				<if test="condition.containsKey('excuteStrategyEnd') and condition.excuteStrategyEnd != null">
					<![CDATA[ and a.excuteStrategy <= #{condition.excuteStrategyEnd} ]]>
				</if>
				<if test="condition.containsKey('excuteDate')">
					<if test="condition.excuteDate != null ">
						and a.excuteDate = #{condition.excuteDate}
					</if>
					<if test="condition.excuteDate == null">
						and a.excuteDate is null
					</if>
				</if>
				<if test="condition.containsKey('excuteDateList')">
					 and a.excuteDate in 
					<foreach collection="condition.excuteDateList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('excuteDateStart') and condition.excuteDateStart != null">
					<![CDATA[ and a.excuteDate >= #{condition.excuteDateStart} ]]>
				</if>
				<if test="condition.containsKey('excuteDateEnd') and condition.excuteDateEnd != null">
					<![CDATA[ and a.excuteDate <= #{condition.excuteDateEnd} ]]>
				</if>
				<if test="condition.containsKey('excuteTime')">
					<if test="condition.excuteTime != null and condition.excuteTime != ''">
						and a.excuteTime like #{condition.excuteTime}
					</if>
					<if test="condition.excuteTime == null">
						and a.excuteTime is null
					</if>
				</if>
				<if test="condition.containsKey('excuteTimeList')">
					 and a.excuteTime in 
					<foreach collection="condition.excuteTimeList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('remark')">
					<if test="condition.remark != null and condition.remark != ''">
						and a.remark like #{condition.remark}
					</if>
					<if test="condition.remark == null">
						and a.remark is null
					</if>
				</if>
				<if test="condition.containsKey('remarkList')">
					 and a.remark in 
					<foreach collection="condition.remarkList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('lastExcuteHost')">
					<if test="condition.lastExcuteHost != null and condition.lastExcuteHost != ''">
						and a.lastExcuteHost like #{condition.lastExcuteHost}
					</if>
					<if test="condition.lastExcuteHost == null">
						and a.lastExcuteHost is null
					</if>
				</if>
				<if test="condition.containsKey('lastExcuteHostList')">
					 and a.lastExcuteHost in 
					<foreach collection="condition.lastExcuteHostList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('lastExcuteTime')">
					<if test="condition.lastExcuteTime != null ">
						and a.lastExcuteTime = #{condition.lastExcuteTime}
					</if>
					<if test="condition.lastExcuteTime == null">
						and a.lastExcuteTime is null
					</if>
				</if>
				<if test="condition.containsKey('lastExcuteTimeStart') and condition.lastExcuteTimeStart != null and condition.lastExcuteTimeStart!=''">
					<![CDATA[ and a.lastExcuteTime >= STR_TO_DATE(left(concat(#{condition.lastExcuteTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') ]]>
				</if>
				<if test="condition.containsKey('lastExcuteTimeEnd') and condition.lastExcuteTimeEnd != null and condition.lastExcuteTimeEnd!=''">
					<![CDATA[ and a.lastExcuteTime <= STR_TO_DATE(left(concat(#{condition.lastExcuteTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') ]]>
				</if>
				<if test="condition.containsKey('interimExcuteStatus')">
					<if test="condition.interimExcuteStatus != null ">
						and a.interimExcuteStatus = #{condition.interimExcuteStatus}
					</if>
					<if test="condition.interimExcuteStatus == null">
						and a.interimExcuteStatus is null
					</if>
				</if>
				<if test="condition.containsKey('interimExcuteStatusList')">
					 and a.interimExcuteStatus in 
					<foreach collection="condition.interimExcuteStatusList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('interimExcuteStatusStart') and condition.interimExcuteStatusStart != null">
					<![CDATA[ and a.interimExcuteStatus >= #{condition.interimExcuteStatusStart} ]]>
				</if>
				<if test="condition.containsKey('interimExcuteStatusEnd') and condition.interimExcuteStatusEnd != null">
					<![CDATA[ and a.interimExcuteStatus <= #{condition.interimExcuteStatusEnd} ]]>
				</if>
				<if test="condition.containsKey('createTime')">
					<if test="condition.createTime != null ">
						and a.createTime = #{condition.createTime}
					</if>
					<if test="condition.createTime == null">
						and a.createTime is null
					</if>
				</if>
				<if test="condition.containsKey('createTimeStart') and condition.createTimeStart != null and condition.createTimeStart!=''">
					<![CDATA[ and a.createTime >= STR_TO_DATE(left(concat(#{condition.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s') ]]>
				</if>
				<if test="condition.containsKey('createTimeEnd') and condition.createTimeEnd != null and condition.createTimeEnd!=''">
					<![CDATA[ and a.createTime <= STR_TO_DATE(left(concat(#{condition.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') ]]>
				</if>
				<if test="condition.containsKey('createUserId')">
					<if test="condition.createUserId != null ">
						and a.createUserId = #{condition.createUserId}
					</if>
					<if test="condition.createUserId == null">
						and a.createUserId is null
					</if>
				</if>
				<if test="condition.containsKey('createUserIdList')">
					 and a.createUserId in 
					<foreach collection="condition.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
				<if test="condition.containsKey('createUserIdStart') and condition.createUserIdStart != null">
					<![CDATA[ and a.createUserId >= #{condition.createUserIdStart} ]]>
				</if>
				<if test="condition.containsKey('createUserIdEnd') and condition.createUserIdEnd != null">
					<![CDATA[ and a.createUserId <= #{condition.createUserIdEnd} ]]>
				</if>
				<if test="condition.containsKey('createUserName')">
					<if test="condition.createUserName != null and condition.createUserName != ''">
						and a.createUserName like #{condition.createUserName}
					</if>
					<if test="condition.createUserName == null">
						and a.createUserName is null
					</if>
				</if>
				<if test="condition.containsKey('createUserNameList')">
					 and a.createUserName in 
					<foreach collection="condition.createUserNameList" open="(" close=")" index="index" item="item" separator=",">
						#{item}
					</foreach>
				</if>
		</if>
	</sql>
	<sql id="_orderCols_">
		<if test="orderColList != null and !orderColList.isEmpty()">
	        order by
	        <trim suffixOverrides=","  suffix="">
				<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
						${item.colName} ${item.sortKind}
				</foreach>
			</trim>
		</if>
		<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
			order by
			<trim suffixOverrides=","  suffix="">
				<if test="orderCol.containsKey('id')">
					a.id
					<if test="orderCol.id!= null">
						${orderCol.id}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('name')">
					a.name
					<if test="orderCol.name!= null">
						${orderCol.name}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('taskKey')">
					a.taskKey
					<if test="orderCol.taskKey!= null">
						${orderCol.taskKey}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('status')">
					a.status
					<if test="orderCol.status!= null">
						${orderCol.status}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('excuteService')">
					a.excuteService
					<if test="orderCol.excuteService!= null">
						${orderCol.excuteService}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('excuteParam')">
					a.excuteParam
					<if test="orderCol.excuteParam!= null">
						${orderCol.excuteParam}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('excuteHost')">
					a.excuteHost
					<if test="orderCol.excuteHost!= null">
						${orderCol.excuteHost}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('excuteStrategy')">
					a.excuteStrategy
					<if test="orderCol.excuteStrategy!= null">
						${orderCol.excuteStrategy}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('excuteDate')">
					a.excuteDate
					<if test="orderCol.excuteDate!= null">
						${orderCol.excuteDate}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('excuteTime')">
					a.excuteTime
					<if test="orderCol.excuteTime!= null">
						${orderCol.excuteTime}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('remark')">
					a.remark
					<if test="orderCol.remark!= null">
						${orderCol.remark}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('lastExcuteHost')">
					a.lastExcuteHost
					<if test="orderCol.lastExcuteHost!= null">
						${orderCol.lastExcuteHost}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('lastExcuteTime')">
					a.lastExcuteTime
					<if test="orderCol.lastExcuteTime!= null">
						${orderCol.lastExcuteTime}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('interimExcuteStatus')">
					a.interimExcuteStatus
					<if test="orderCol.interimExcuteStatus!= null">
						${orderCol.interimExcuteStatus}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('createTime')">
					a.createTime
					<if test="orderCol.createTime!= null">
						${orderCol.createTime}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('createUserId')">
					a.createUserId
					<if test="orderCol.createUserId!= null">
						${orderCol.createUserId}
					</if>
					,
				</if>
				<if test="orderCol.containsKey('createUserName')">
					a.createUserName
					<if test="orderCol.createUserName!= null">
						${orderCol.createUserName}
					</if>
					,
				</if>
			</trim>
		</if>
	</sql>
	<sql id="_group_by_">
		<if test="groupList != null and !groupList.isEmpty()">
			GROUP BY
			<trim suffixOverrides=","  suffix="">
				<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
						${item}
				</foreach>
			</trim>
		</if>
	</sql>
</mapper>