| <?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"> | 
| <mapper namespace="com.dy.pipIrrGlobal.daoIr.IrIrrigatePlanMapper"> | 
|   <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> | 
|     <!--@mbg.generated--> | 
|     <!--@Table ir_irrigate_plan--> | 
|     <id column="id" jdbcType="BIGINT" property="id" /> | 
|     <result column="project_id" jdbcType="BIGINT" property="projectId" /> | 
|     <result column="plan_name" jdbcType="VARCHAR" property="planName" /> | 
|     <result column="startup_mode" jdbcType="TINYINT" property="startupMode" /> | 
|     <result column="plan_start_time" jdbcType="TIMESTAMP" property="planStartTime" /> | 
|     <result column="plan_stop_time" jdbcType="TIMESTAMP" property="planStopTime" /> | 
|     <result column="duration" jdbcType="INTEGER" property="duration" /> | 
|     <result column="plan_state" jdbcType="TINYINT" property="planState" /> | 
|     <result column="executing_state" jdbcType="TINYINT" property="executingState" /> | 
|     <result column="deleted" jdbcType="BIGINT" property="deleted" /> | 
|   </resultMap> | 
|   <sql id="Base_Column_List"> | 
|     <!--@mbg.generated--> | 
|     id, project_id, plan_name, startup_mode, plan_start_time, plan_stop_time, duration,  | 
|     plan_state, executing_state, deleted | 
|   </sql> | 
|   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|     <!--@mbg.generated--> | 
|     select  | 
|     <include refid="Base_Column_List" /> | 
|     from ir_irrigate_plan | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </select> | 
|   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
|     <!--@mbg.generated--> | 
|     delete from ir_irrigate_plan | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </delete> | 
|   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> | 
|     <!--@mbg.generated--> | 
|     insert into ir_irrigate_plan (id, project_id, plan_name,  | 
|       startup_mode, plan_start_time, plan_stop_time,  | 
|       duration, plan_state, executing_state,  | 
|       deleted) | 
|     values (#{id,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{planName,jdbcType=VARCHAR},  | 
|       #{startupMode,jdbcType=TINYINT}, #{planStartTime,jdbcType=TIMESTAMP}, #{planStopTime,jdbcType=TIMESTAMP},  | 
|       #{duration,jdbcType=INTEGER}, #{planState,jdbcType=TINYINT}, #{executingState,jdbcType=TINYINT},  | 
|       #{deleted,jdbcType=BIGINT}) | 
|   </insert> | 
|   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> | 
|     <!--@mbg.generated--> | 
|     insert into ir_irrigate_plan | 
|     <trim prefix="(" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         id, | 
|       </if> | 
|       <if test="projectId != null"> | 
|         project_id, | 
|       </if> | 
|       <if test="planName != null"> | 
|         plan_name, | 
|       </if> | 
|       <if test="startupMode != null"> | 
|         startup_mode, | 
|       </if> | 
|       <if test="planStartTime != null"> | 
|         plan_start_time, | 
|       </if> | 
|       <if test="planStopTime != null"> | 
|         plan_stop_time, | 
|       </if> | 
|       <if test="duration != null"> | 
|         duration, | 
|       </if> | 
|       <if test="planState != null"> | 
|         plan_state, | 
|       </if> | 
|       <if test="executingState != null"> | 
|         executing_state, | 
|       </if> | 
|       <if test="deleted != null"> | 
|         deleted, | 
|       </if> | 
|     </trim> | 
|     <trim prefix="values (" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         #{id,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="projectId != null"> | 
|         #{projectId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="planName != null"> | 
|         #{planName,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="startupMode != null"> | 
|         #{startupMode,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="planStartTime != null"> | 
|         #{planStartTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="planStopTime != null"> | 
|         #{planStopTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="duration != null"> | 
|         #{duration,jdbcType=INTEGER}, | 
|       </if> | 
|       <if test="planState != null"> | 
|         #{planState,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="executingState != null"> | 
|         #{executingState,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="deleted != null"> | 
|         #{deleted,jdbcType=BIGINT}, | 
|       </if> | 
|     </trim> | 
|   </insert> | 
|   <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> | 
|     <!--@mbg.generated--> | 
|     update ir_irrigate_plan | 
|     <set> | 
|       <if test="projectId != null"> | 
|         project_id = #{projectId,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="planName != null"> | 
|         plan_name = #{planName,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="startupMode != null"> | 
|         startup_mode = #{startupMode,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="planStartTime != null"> | 
|         plan_start_time = #{planStartTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="planStopTime != null"> | 
|         plan_stop_time = #{planStopTime,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="duration != null"> | 
|         duration = #{duration,jdbcType=INTEGER}, | 
|       </if> | 
|       <if test="planState != null"> | 
|         plan_state = #{planState,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="executingState != null"> | 
|         executing_state = #{executingState,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="deleted != null"> | 
|         deleted = #{deleted,jdbcType=BIGINT}, | 
|       </if> | 
|     </set> | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> | 
|     <!--@mbg.generated--> | 
|     update ir_irrigate_plan | 
|     set project_id = #{projectId,jdbcType=BIGINT}, | 
|       plan_name = #{planName,jdbcType=VARCHAR}, | 
|       startup_mode = #{startupMode,jdbcType=TINYINT}, | 
|       plan_start_time = #{planStartTime,jdbcType=TIMESTAMP}, | 
|       plan_stop_time = #{planStopTime,jdbcType=TIMESTAMP}, | 
|       duration = #{duration,jdbcType=INTEGER}, | 
|       plan_state = #{planState,jdbcType=TINYINT}, | 
|       executing_state = #{executingState,jdbcType=TINYINT}, | 
|       deleted = #{deleted,jdbcType=BIGINT} | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   | 
|   <!--发布指定的灌溉计划--> | 
|   <update id="publishIrrigatePlan"> | 
|     UPDATE ir_irrigate_plan SET plan_state = 2 WHERE id = #{planId} | 
|   </update> | 
|   | 
|   <!--根据指定的条件获取计划数量--> | 
|   <select id="getIrrigatePlanCount" resultType="java.lang.Long"> | 
|     SELECT COUNT(*) | 
|     FROM ir_irrigate_plan plan | 
|     INNER JOIN ir_project pro ON pro.id = plan.project_id | 
|     <where> | 
|       AND plan.deleted = 0 | 
|       AND pro.deleted = 0 | 
|       <if test="projectName != null and projectName != ''"> | 
|         AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') | 
|       </if> | 
|   | 
|       <if test="planName != null and planName != ''"> | 
|         AND plan.plan_name LIKE CONCAT('%', #{planName}, '%') | 
|       </if> | 
|   | 
|       <if test="startupMode != null"> | 
|         AND plan.startup_mode = #{startupMode} | 
|       </if> | 
|   | 
|       <if test="planState != null"> | 
|         AND plan.plan_state = #{planState} | 
|       </if> | 
|   | 
|       <if test="executingState != null"> | 
|         AND plan.executing_state = #{executingState} | 
|       </if> | 
|     </where> | 
|   </select> | 
|   | 
|   <!--根据指定的条件获取计划列表--> | 
|   <select id="getIrrigatePlans" resultType="com.dy.pipIrrGlobal.voIr.VoIrrigatePlan"> | 
|     SELECT | 
|     plan.id AS planId, | 
|     pro.project_name AS projectName, | 
|     plan.plan_name AS planName, | 
|     CASE plan.startup_mode | 
|     WHEN 1 THEN '手动启动' | 
|     WHEN 2 THEN '自动启动' | 
|     END AS startupMode, | 
|     plan.plan_start_time AS startTime, | 
|     plan.plan_stop_time AS stopTime, | 
|     CASE plan.plan_state | 
|     WHEN 1 THEN '草稿' | 
|     WHEN 2 THEN '已发布' | 
|     END AS planState, | 
|   | 
|     CASE plan.executing_state | 
|     WHEN 1 THEN | 
|     '未执行' | 
|     WHEN 2 THEN | 
|     '执行中' | 
|     WHEN 3 THEN | 
|     '已暂停' | 
|     WHEN 4 THEN | 
|     '已终止' | 
|     END AS executingState | 
|     FROM ir_irrigate_plan plan | 
|     INNER JOIN ir_project pro ON pro.id = plan.project_id | 
|     <where> | 
|       AND plan.deleted = 0 | 
|       AND pro.deleted = 0 | 
|       <if test="projectName != null and projectName != ''"> | 
|         AND pro.project_name LIKE CONCAT('%', #{projectName}, '%') | 
|       </if> | 
|   | 
|       <if test="planName != null and planName != ''"> | 
|         AND plan.plan_name LIKE CONCAT('%', #{planName}, '%') | 
|       </if> | 
|   | 
|       <if test="startupMode != null"> | 
|         AND plan.startup_mode = #{startupMode} | 
|       </if> | 
|   | 
|       <if test="planState != null"> | 
|         AND plan.plan_state = #{planState} | 
|       </if> | 
|   | 
|       <if test="executingState != null"> | 
|         AND plan.executing_state = #{executingState} | 
|       </if> | 
|     </where> | 
|     ORDER BY plan.plan_state DESC, plan.plan_start_time | 
|     <trim prefix="limit "> | 
|       <if test="start != null and count != null"> | 
|         #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} | 
|       </if> | 
|     </trim> | 
|   </select> | 
| </mapper> |