| | |
| | | |
| | | 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 |