pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java
@@ -3,10 +3,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan; import com.dy.pipIrrGlobal.voIr.VoPlanSimple; import com.dy.pipIrrGlobal.voIr.VoPlans; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; /** * @author ZhuBaoMin @@ -62,4 +64,16 @@ * @return */ Integer updatePlanTimes(@Param("planStartTime") Date planStartTime, @Param("planStopTime") Date planEndTime, @Param("planId") Long planId); /** * 获取未完成的计划列表,小程序计划列表页使用 * @return */ List<VoPlans> getNotCompletePlans(); /** * 获取已完成的计划列表,小程序计划列表页使用 * @return */ List<VoPlans> getCompletedPlans(); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlans.java
New file @@ -0,0 +1,61 @@ package com.dy.pipIrrGlobal.voIr; import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.writer.ObjectWriterImplToString; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import lombok.Data; import java.util.Date; /** * @author ZhuBaoMin * @date 2025-03-26 15:54 * @LastEditTime 2025-03-26 15:54 * @Description 灌溉计划信息对象视图,小程序计划列表页使用 */ @Data @JsonPropertyOrder({"planId", "planName", "startupMode", "planStartTime", "planStopTime", "duration", "planState"}) public class VoPlans { public static final long serialVersionUID = 202503261555001L; /** * 计划ID */ @JSONField(serializeUsing= ObjectWriterImplToString.class) private Long planId; /** * 计划名称 */ private String planName; /** * 计划启动方式 */ private Integer startupMode; /** * 计划启动时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm") private Date planStartTime; /** * 计划停止时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm") private Date planStopTime; /** * 灌溉持续时间 */ private Integer duration; /** * 计划状态:草稿、未执行、执行中、已完成 */ private String planState; } pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
@@ -267,4 +267,42 @@ WHERE id = #{planId} </update> <!--获取未完成的计划列表,小程序计划列表页使用--> <select id="getNotCompletePlans" resultType="com.dy.pipIrrGlobal.voIr.VoPlans"> SELECT id AS planId, plan_name AS planName, startup_mode AS startupMode, plan_start_time AS planStartTime, plan_stop_time AS planStopTime, duration, IF(plan_state = 1,'草稿', IF(NOW() < plan_start_time, '未执行', IF(NOW() >= plan_start_time AND NOW() < plan_stop_time, '执行中', '已完成') ) ) AS planState FROM ir_irrigate_plan plan WHERE deleted = 0 AND (plan_state = 1 OR NOW() < plan_stop_time) ORDER BY plan_state DESC </select> <!--获取已完成的计划列表,小程序计划列表页使用--> <select id="getCompletedPlans" resultType="com.dy.pipIrrGlobal.voIr.VoPlans"> SELECT id AS planId, plan_name AS planName, startup_mode AS startupMode, plan_start_time AS planStartTime, plan_stop_time AS planStopTime, duration, IF(plan_state = 1,'草稿', IF(NOW() < plan_start_time, '未执行', IF(NOW() >= plan_start_time AND NOW() < plan_stop_time, '执行中', '已完成') ) ) AS planState FROM ir_irrigate_plan plan WHERE deleted = 0 AND (plan_state = 2 AND NOW() >= plan_stop_time) ORDER BY plan_state DESC </select> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
@@ -2,9 +2,13 @@ import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pipIrrGlobal.pojoIr.*; import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan; import com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule; import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate; import com.dy.pipIrrGlobal.pojoIr.IrPlanSchedule; import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule; import com.dy.pipIrrGlobal.voIr.VoPlanSimple; import com.dy.pipIrrGlobal.voIr.VoPlans; import com.dy.pipIrrWechat.command.CommandSv; import com.dy.pipIrrWechat.command.dto.AutomaticClose; import com.dy.pipIrrWechat.irrigatePlan.dto.IrrigatePlan; @@ -17,10 +21,7 @@ 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.time.LocalDateTime; import java.time.ZoneId; @@ -141,6 +142,36 @@ } /** * 获取未完成的计划列表,小程序计划列表页使用 * @return */ @GetMapping(path = "/getNotCompletePlans") public BaseResponse<List<VoPlans>> getNotCompletePlans() { try { List<VoPlans> res = irrigatePlanSv.getNotCompletePlans(); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取未完的计划异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 获取已完成的计划列表,小程序计划列表页使用 * @return */ @GetMapping(path = "/getCompletedPlans") public BaseResponse<List<VoPlans>> getCompletedPlans() { try { List<VoPlans> res = irrigatePlanSv.getCompletedPlans(); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取项目记录异常", e); return BaseResponseUtils.buildException(e.getMessage()); } } /** * 发布灌溉计划 * 1. 修改灌溉计划状态为发布状态 * 2. 添加灌溉计划操作记录 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
@@ -7,6 +7,7 @@ import com.dy.pipIrrGlobal.pojoIr.IrPlanSchedule; import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule; import com.dy.pipIrrGlobal.voIr.VoPlanSimple; import com.dy.pipIrrGlobal.voIr.VoPlans; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -59,6 +60,22 @@ } /** * 获取未完成的计划列表,小程序计划列表页使用 * @return */ public List<VoPlans> getNotCompletePlans() { return irrigatePlanMapper.getNotCompletePlans(); } /** * 获取已完成的计划列表,小程序计划列表页使用 * @return */ public List<VoPlans> getCompletedPlans() { return irrigatePlanMapper.getCompletedPlans(); } /** * 根据指定的计划ID获取启动模式 * @param planId * @return