pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java
@@ -2,12 +2,16 @@ 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 * @date 2025-02-20 15:33 * @LastEditTime 2025-02-20 15:33 * @date 2025-02-25 14:59 * @LastEditTime 2025-02-25 14:59 * @Description */ @@ -31,4 +35,18 @@ * @return */ int publishIrrigatePlan(Long planId); /** * 根据指定的条件获取计划数量 * @param params * @return */ Long getIrrigatePlanCount(Map<?, ?> params); /** * 根据指定的条件获取计划列表 * @param params * @return */ List<VoIrrigatePlan> getIrrigatePlans(Map<?, ?> params); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIrrigatePlan.java
@@ -30,54 +30,59 @@ public static final long serialVersionUID = 202502201543001L; /** * 主键 */ * 主键 */ @JSONField(serializeUsing= ObjectWriterImplToString.class) @TableId(type = IdType.INPUT) private Long id; /** * 项目ID */ * 项目ID */ private Long projectId; /** * 计划名称 */ * 计划名称 */ @NotBlank(message = "计划名称不能为空") private String planName; /** * 计划启动模式;1-手动启动,2-自动启动 */ * 计划启动模式;1-手动启动,2-自动启动 */ @NotNull(message = "计划启动模式不能为空") private Byte startupMode; /** * 灌溉开始时间;精确到分 */ * 灌溉开始时间;精确到分 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date planStartTime; /** * 灌溉结束时间;精确到分 */ * 灌溉结束时间;精确到分 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date planStopTime; /** * 计划状态;1-草稿,2-已发布 */ * 灌溉时长;分钟 */ private Integer duration; /** * 计划状态;1-草稿,2-已发布 */ private Byte planState; /** * 执行状态;1-未执行,2-执行中,3-已暂停,4-已终止,5-已完成 */ * 执行状态;1-未执行,2-执行中,3-已暂停,4-已终止,5-已完成 */ private Byte executingState; /** * 逻辑删除标识;未删除为0,已删除为删除时间 */ * 逻辑删除标识;未删除为0,已删除为删除时间 */ private Long deleted; } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoIrrigatePlan.java
New file @@ -0,0 +1,71 @@ 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", "duration", "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; /** * 灌溉时长 */ private Integer duration; /** * 计划状态;1-草稿,2-已发布 */ private String planState; /** * 计划执行状态;1-未执行,2-执行中,3-已暂停,4-已终止,5-已完成 */ private String executingState; } pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
@@ -10,14 +10,15 @@ <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, plan_state, executing_state, deleted 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--> @@ -35,12 +36,12 @@ <!--@mbg.generated--> insert into ir_irrigate_plan (id, project_id, plan_name, startup_mode, plan_start_time, plan_stop_time, plan_state, executing_state, deleted ) 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}, #{planState,jdbcType=TINYINT}, #{executingState,jdbcType=TINYINT}, #{deleted,jdbcType=BIGINT} ) #{duration,jdbcType=INTEGER}, #{planState,jdbcType=TINYINT}, #{executingState,jdbcType=TINYINT}, #{deleted,jdbcType=BIGINT}) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan"> <!--@mbg.generated--> @@ -63,6 +64,9 @@ </if> <if test="planStopTime != null"> plan_stop_time, </if> <if test="duration != null"> duration, </if> <if test="planState != null"> plan_state, @@ -92,6 +96,9 @@ </if> <if test="planStopTime != null"> #{planStopTime,jdbcType=TIMESTAMP}, </if> <if test="duration != null"> #{duration,jdbcType=INTEGER}, </if> <if test="planState != null"> #{planState,jdbcType=TINYINT}, @@ -123,6 +130,9 @@ <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> @@ -143,6 +153,7 @@ 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} @@ -153,4 +164,94 @@ <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> pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateHistoryMapper.xml
@@ -350,12 +350,12 @@ where id = #{id,jdbcType=BIGINT} </update> <!--根据指定条件获取记录总数--> <select id="getRecordCount" resultType="java.lang.Long"> select count(*) from rm_alarm_state_history rash Left join pr_intake pint on rash.intake_id = pint.id <where> <if test="alarmState == 1"> <select id="getRecordCount" resultType="java.lang.Long"> select count(*) from rm_alarm_state_history rash Left join pr_intake pint on rash.intake_id = pint.id <where> <if test="alarmState == 1"> and ( alarm_remain_water = 1 or alarm0_water_remain = 1 @@ -373,123 +373,122 @@ or alarm_battery_volt = 1 or alarm_valve = 1 ) </if> <if test="alarmState == 0"> and ( alarm_remain_water = 0 and alarm0_water_remain = 0 and alarm_exceed_year = 0 and alarm_water_meter_fault = 0 and alarm_loss = 0 and alarm_water_meter_break = 0 and alarm_ele_meter_fault = 0 and alarm0_money_remain = 0 and alarm_inner_door = 0 and alarm_outer_door = 0 and alarm_ele_miss = 0 and alarm_ele_exceed = 0 and alarm_ele_low_volt = 0 and alarm_battery_volt = 0 and alarm_valve = 0 ) </if> <if test="valveState != null"> and rash.valve_state = #{valveState,jdbcType=TINYINT} </if> <if test="intakeId != null and intakeId != '' "> and rash.intake_id = #{intakeId} </if> <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> <if test="endDt != null"> and rash.dt <= #{endDt,jdbcType=TIMESTAMP} </if> </where> </select> <!--根据指定条件获取记录--> <select id="getControllerAlarmStateHistory" resultType="com.dy.pipIrrGlobal.voRm.VoControllerAlarmState"> select CAST(rash.controller_id AS char)AS controllerId, CAST(rash.intake_id AS char)AS intakeId, pint.name as intakeName, rash.rtu_addr as rtuAddr, rash.dt as dt, rash.valve_state as valveState, rash.alarm_remain_water as alarmRemainWater, rash.alarm0_water_remain as alarm0WaterRemain, rash.alarm_exceed_year as alarmExceedYear, rash.alarm_water_meter_fault as alarmWaterMeterFault, rash.alarm_loss as alarmLoss, rash.alarm_water_meter_break as alarmWaterMeterBreak, rash.alarm_ele_meter_fault as alarmEleMeterFault, rash.alarm0_money_remain as alarm0MoneyRemain, rash.alarm_inner_door as alarmInnerDoor, rash.alarm_outer_door as alarmOuterDoor, rash.alarm_ele_miss as alarmEleMiss, rash.alarm_ele_exceed as alarmEleExceed, rash.alarm_ele_low_volt as alarmEleLowVolt, rash.state_ic_enable as stateIcEnable, rash.alarm_battery_volt as alarmBatteryVolt, rash.alarm_valve as alarmValve, rash.power_type as powerType from rm_alarm_state_history rash Left join pr_intake pint on rash.intake_id = pint.id <where> <if test="alarmState == 1"> and ( alarm_remain_water = 1 or alarm0_water_remain = 1 or alarm_exceed_year = 1 or alarm_water_meter_fault = 1 or alarm_loss = 1 or alarm_water_meter_break = 1 or alarm_ele_meter_fault = 1 or alarm0_money_remain = 1 or alarm_inner_door = 1 or alarm_outer_door = 1 or alarm_ele_miss = 1 or alarm_ele_exceed = 1 or alarm_ele_low_volt = 1 or alarm_battery_volt = 1 or alarm_valve = 1 ) </if> <if test="alarmState == 0"> and ( alarm_remain_water = 0 and alarm0_water_remain = 0 and alarm_exceed_year = 0 and alarm_water_meter_fault = 0 and alarm_loss = 0 and alarm_water_meter_break = 0 and alarm_ele_meter_fault = 0 and alarm0_money_remain = 0 and alarm_inner_door = 0 and alarm_outer_door = 0 and alarm_ele_miss = 0 and alarm_ele_exceed = 0 and alarm_ele_low_volt = 0 and alarm_battery_volt = 0 and alarm_valve = 0 ) alarm_remain_water = 0 and alarm0_water_remain = 0 and alarm_exceed_year = 0 and alarm_water_meter_fault = 0 and alarm_loss = 0 and alarm_water_meter_break = 0 and alarm_ele_meter_fault = 0 and alarm0_money_remain = 0 and alarm_inner_door = 0 and alarm_outer_door = 0 and alarm_ele_miss = 0 and alarm_ele_exceed = 0 and alarm_ele_low_volt = 0 and alarm_battery_volt = 0 and alarm_valve = 0 ) </if> <if test="valveState != null"> and rash.valve_state = #{valveState,jdbcType=TINYINT} </if> <if test="intakeId != null and intakeId != '' "> <if test="intakeId != null and intakeId != ''"> and rash.intake_id = #{intakeId} </if> <if test="intakeName != null and intakeName != '' "> and pint.name like CONCAT('%',#{intakeName,jdbcType=VARCHAR},'%') <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 rash.dt >= #{startDt,jdbcType=TIMESTAMP} </if> <if test="endDt != null"> <if test="endDt != null and endDt != ''"> and rash.dt <= #{endDt,jdbcType=TIMESTAMP} </if> </where> </select> <!--根据指定条件获取记录--> <select id="getControllerAlarmStateHistory" resultType="com.dy.pipIrrGlobal.voRm.VoControllerAlarmState"> select CAST(rash.controller_id AS char) AS controllerId, CAST(rash.intake_id AS char) AS intakeId, pint.name as intakeName, rash.rtu_addr as rtuAddr, rash.dt as dt, rash.valve_state as valveState, rash.alarm_remain_water as alarmRemainWater, rash.alarm0_water_remain as alarm0WaterRemain, rash.alarm_exceed_year as alarmExceedYear, rash.alarm_water_meter_fault as alarmWaterMeterFault, rash.alarm_loss as alarmLoss, rash.alarm_water_meter_break as alarmWaterMeterBreak, rash.alarm_ele_meter_fault as alarmEleMeterFault, rash.alarm0_money_remain as alarm0MoneyRemain, rash.alarm_inner_door as alarmInnerDoor, rash.alarm_outer_door as alarmOuterDoor, rash.alarm_ele_miss as alarmEleMiss, rash.alarm_ele_exceed as alarmEleExceed, rash.alarm_ele_low_volt as alarmEleLowVolt, rash.state_ic_enable as stateIcEnable, rash.alarm_battery_volt as alarmBatteryVolt, rash.alarm_valve as alarmValve, rash.power_type as powerType from rm_alarm_state_history rash Left join pr_intake pint on rash.intake_id = pint.id <where> <if test="alarmState == 1"> and ( alarm_remain_water = 1 or alarm0_water_remain = 1 or alarm_exceed_year = 1 or alarm_water_meter_fault = 1 or alarm_loss = 1 or alarm_water_meter_break = 1 or alarm_ele_meter_fault = 1 or alarm0_money_remain = 1 or alarm_inner_door = 1 or alarm_outer_door = 1 or alarm_ele_miss = 1 or alarm_ele_exceed = 1 or alarm_ele_low_volt = 1 or alarm_battery_volt = 1 or alarm_valve = 1 ) </if> <if test="alarmState == 0"> and ( alarm_remain_water = 0 and alarm0_water_remain = 0 and alarm_exceed_year = 0 and alarm_water_meter_fault = 0 and alarm_loss = 0 and alarm_water_meter_break = 0 and alarm_ele_meter_fault = 0 and alarm0_money_remain = 0 and alarm_inner_door = 0 and alarm_outer_door = 0 and alarm_ele_miss = 0 and alarm_ele_exceed = 0 and alarm_ele_low_volt = 0 and alarm_battery_volt = 0 and alarm_valve = 0 ) </if> <if test="valveState != null"> and rash.valve_state = #{valveState,jdbcType=TINYINT} </if> <if test="intakeId != null and intakeId != ''"> and rash.intake_id = #{intakeId} </if> <if test="intakeName != null and intakeName != ''"> and pint.name like CONCAT('%', #{intakeName,jdbcType=VARCHAR}, '%') </if> <if test="startDt != null and startDt != ''"> and rash.dt >= #{startDt,jdbcType=TIMESTAMP} </if> <if test="endDt != null and endDt != ''"> and rash.dt <= #{endDt,jdbcType=TIMESTAMP} </if> </where> pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmAlarmStateLastMapper.xml
@@ -396,10 +396,10 @@ <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> @@ -480,10 +480,10 @@ <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> pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
@@ -2,25 +2,25 @@ import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan; import com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule; import com.dy.pipIrrGlobal.pojoIr.IrOpeningSchedule; import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate; import com.dy.pipIrrGlobal.voIr.VoIrrigatePlan; import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule; import com.dy.pipIrrWechat.irrigatePlan.dto.IrrigatePlan; import com.dy.pipIrrWechat.irrigatePlan.dto.IrrigateSchedule; import com.dy.pipIrrWechat.irrigatePlan.dto.PlanSimple; import com.dy.pipIrrWechat.irrigatePlan.enums.OperateTypeENUM; import com.dy.pipIrrWechat.irrigatePlan.qo.QoIrrigatePlan; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; @@ -171,4 +171,20 @@ } return BaseResponseUtils.buildSuccess(); } /** * 获取灌溉计划列表 * @param vo * @return */ @GetMapping(path = "/getIrrigatePlans") public BaseResponse<QueryResultVo<List<VoIrrigatePlan>>> getIrrigatePlans(QoIrrigatePlan vo) { try { QueryResultVo<List<VoIrrigatePlan>> res = irrigatePlanSv.getIrrigatePlans(vo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取轮灌组记录异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } } pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
@@ -1,16 +1,21 @@ package com.dy.pipIrrWechat.irrigatePlan; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoIr.*; import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan; import com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule; import com.dy.pipIrrGlobal.pojoIr.IrOpeningSchedule; import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate; import com.dy.pipIrrGlobal.voIr.VoIrrigatePlan; import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule; import com.dy.pipIrrWechat.irrigatePlan.qo.QoIrrigatePlan; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** * @author ZhuBaoMin @@ -51,6 +56,25 @@ } /** * 根据指定的条件获取计划列表 * @param queryVo * @return */ public QueryResultVo<List<VoIrrigatePlan>> getIrrigatePlans(QoIrrigatePlan queryVo) { Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); Long itemTotal = irrigatePlanMapper.getIrrigatePlanCount(params); QueryResultVo<List<VoIrrigatePlan>> rsVo = new QueryResultVo<>(); rsVo.pageSize = queryVo.pageSize; rsVo.pageCurr = queryVo.pageCurr; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = irrigatePlanMapper.getIrrigatePlans(params); return rsVo; } /** * 发布指定的灌溉计划 * @param planId * @return pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/qo/QoIrrigatePlan.java
New file @@ -0,0 +1,42 @@ package com.dy.pipIrrWechat.irrigatePlan.qo; import com.dy.common.webUtil.QueryConditionVo; import lombok.Data; import lombok.EqualsAndHashCode; /** * @author ZhuBaoMin * @date 2025-02-25 15:42 * @LastEditTime 2025-02-25 15:42 * @Description 灌溉计划查询对象 */ @Data @EqualsAndHashCode(callSuper = false) public class QoIrrigatePlan extends QueryConditionVo { /** * 项目名称 */ private String projectName; /** * 计划名称 */ private String planName; /** * 计划启动模式;1-手动启动,2-自动启动 */ private Byte startupMode; /** * 计划状态;1-草稿,2-已发布 */ private Byte planState; /** * 执行状态;1-未执行,2-执行中,3-已暂停,4-已终止,5-已完成 */ private Byte executingState; }