zhubaomin
2025-02-25 842237345ac469b02e9add8f9fd8bae5d4f7cdac
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
@@ -148,4 +148,99 @@
      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>