zhubaomin
2025-03-26 4c78c3a6fc3fe5fbbcabc85465612a799d98587d
获取未完成计划列表、获取已完成计划列表
4个文件已修改
1个文件已添加
171 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlans.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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() &lt; plan_start_time, '未执行',
            IF(NOW() &gt;= plan_start_time AND NOW() &lt; plan_stop_time, '执行中', '已完成')
        )
      ) AS planState
    FROM ir_irrigate_plan plan
    WHERE deleted = 0 AND (plan_state = 1 OR NOW() &lt; 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() &lt; plan_start_time, '未执行',
            IF(NOW() &gt;= plan_start_time AND NOW() &lt; plan_stop_time, '执行中', '已完成')
        )
      ) AS planState
    FROM ir_irrigate_plan plan
    WHERE deleted = 0 AND (plan_state = 2 AND NOW() &gt;= 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