pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigatePlanMapper.java
@@ -10,8 +10,8 @@ /** * @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 */ 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
@@ -17,7 +17,7 @@ */ @Data @JsonPropertyOrder({"planId", "projectName", "planName", "startupMode", "startTime", "stopTime", "planState", "executingState"}) @JsonPropertyOrder({"planId", "projectName", "planName", "startupMode", "startTime", "stopTime", "duration", "planState", "executingState"}) public class VoIrrigatePlan implements BaseEntity { public static final long serialVersionUID = 202502241652001L; @@ -55,12 +55,17 @@ 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} @@ -158,7 +169,7 @@ <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 INNER JOIN ir_project pro ON pro.id = plan.project_id <where> AND plan.deleted = 0 AND pro.deleted = 0 @@ -187,32 +198,32 @@ <!--根据指定的条件获取计划列表--> <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, 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 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 INNER JOIN ir_project pro ON pro.id = plan.project_id <where> AND plan.deleted = 0 AND pro.deleted = 0 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 @@ -50,9 +55,24 @@ return po.getId(); } //public List<VoIrrigatePlan> getIrrigatePlans(Map<?, ?> params { // return irrigatePlanMapper.getIrrigatePlans(params); //} /** * 根据指定的条件获取计划列表 * @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; } /** * 发布指定的灌溉计划 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; }