|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.voIr.VoIrrigatePlan; | 
|---|
|  |  |  | import org.apache.ibatis.annotations.Mapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @author ZhuBaoMin | 
|---|
|  |  |  | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | int publishIrrigatePlan(Long planId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定的条件获取计划数量 | 
|---|
|  |  |  | * @param params | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | Long getIrrigatePlanCount(Map<?, ?> params); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定的条件获取计划列表 | 
|---|
|  |  |  | * @param params | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | List<VoIrrigatePlan> getIrrigatePlans(Map<?, ?> params); | 
|---|
|  |  |  | } | 
|---|
| New file | 
|  |  |  | 
|---|
|  |  |  | package com.dy.pipIrrGlobal.voIr; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson2.annotation.JSONField; | 
|---|
|  |  |  | import com.alibaba.fastjson2.writer.ObjectWriterImplToString; | 
|---|
|  |  |  | import com.dy.common.po.BaseEntity; | 
|---|
|  |  |  | import com.fasterxml.jackson.annotation.JsonFormat; | 
|---|
|  |  |  | import com.fasterxml.jackson.annotation.JsonPropertyOrder; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @author ZhuBaoMin | 
|---|
|  |  |  | * @date 2025-02-24 16:51 | 
|---|
|  |  |  | * @LastEditTime 2025-02-24 16:51 | 
|---|
|  |  |  | * @Description 灌溉计划视图对象 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Data | 
|---|
|  |  |  | @JsonPropertyOrder({"planId", "projectName", "planName", "startupMode", "startTime", "stopTime", "planState", "executingState"}) | 
|---|
|  |  |  | public class VoIrrigatePlan implements BaseEntity { | 
|---|
|  |  |  | public static final long serialVersionUID = 202502241652001L; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 计划ID | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @JSONField(serializeUsing= ObjectWriterImplToString.class) | 
|---|
|  |  |  | private Long planId; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 所属项目名称 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String projectName; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 计划名称 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String planName; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 计划启动模式;1-手动启动,2-自动启动 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String startupMode; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 灌溉开始时间;精确到分 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @JsonFormat(pattern = "yyyy-MM-dd HH:mm") | 
|---|
|  |  |  | private Date startTime; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 灌溉结束时间;精确到分 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @JsonFormat(pattern = "yyyy-MM-dd HH:mm") | 
|---|
|  |  |  | private Date stopTime; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 计划状态;1-草稿,2-已发布 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String planState; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 计划执行状态 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String executingState; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="intakeName != null and intakeName != '' "> | 
|---|
|  |  |  | and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="startDt != null"> | 
|---|
|  |  |  | and rash.dt >= #{startDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | <if test="startDt != null and startDt != ''"> | 
|---|
|  |  |  | and rasl.dt >= #{startDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="endDt != null"> | 
|---|
|  |  |  | and rash.dt <= #{endDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | <if test="endDt != null and endDt != ''"> | 
|---|
|  |  |  | and rasl.dt <= #{endDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="intakeName != null and intakeName != '' "> | 
|---|
|  |  |  | and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="startDt != null"> | 
|---|
|  |  |  | and rash.dt >= #{startDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | <if test="startDt != null and startDt != ''"> | 
|---|
|  |  |  | and rasl.dt >= #{startDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="endDt != null"> | 
|---|
|  |  |  | and rash.dt <= #{endDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | <if test="endDt != null and endDt != ''"> | 
|---|
|  |  |  | and rasl.dt <= #{endDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | ORDER BY rash.id DESC | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="intakeName != null and intakeName != '' "> | 
|---|
|  |  |  | and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="startDt != null"> | 
|---|
|  |  |  | <if test="startDt != null and startDt != ''"> | 
|---|
|  |  |  | and rasl.dt >= #{startDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="endDt != null"> | 
|---|
|  |  |  | <if test="endDt != null and endDt != ''"> | 
|---|
|  |  |  | and rasl.dt <= #{endDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="intakeName != null and intakeName != '' "> | 
|---|
|  |  |  | and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="startDt != null"> | 
|---|
|  |  |  | <if test="startDt != null and startDt != ''"> | 
|---|
|  |  |  | and rasl.dt >= #{startDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="endDt != null"> | 
|---|
|  |  |  | <if test="endDt != null and endDt != ''"> | 
|---|
|  |  |  | and rasl.dt <= #{endDt,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | </where> | 
|---|
|  |  |  | 
|---|
|  |  |  | return po.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //public List<VoIrrigatePlan> getIrrigatePlans(Map<?, ?> params { | 
|---|
|  |  |  | //    return irrigatePlanMapper.getIrrigatePlans(params); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 发布指定的灌溉计划 | 
|---|
|  |  |  | * @param planId | 
|---|