<?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> 
 | 
  
 | 
  <!--根据指定的计划ID获取启动模式--> 
 | 
  <select id="getStartupMode" resultType="java.lang.Byte"> 
 | 
    SELECT 
 | 
        startup_mode AS startupMode 
 | 
    FROM ir_irrigate_plan 
 | 
    WHERE id = #{planId} 
 | 
  </select> 
 | 
  
 | 
  <!--根据指定的计划ID获取已发布的灌溉计划数量--> 
 | 
  <select id="getPublishedCount" resultType="java.lang.Integer"> 
 | 
    SELECT COUNT(*) 
 | 
    FROM ir_irrigate_plan plan 
 | 
    WHERE plan.id = #{planId} 
 | 
      AND plan.plan_state = 2 
 | 
      AND plan.deleted = 0 
 | 
  </select> 
 | 
  
 | 
  <!--发布指定的灌溉计划--> 
 | 
  <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, 
 | 
        plan.duration AS duration, 
 | 
        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> 
 |