18个文件已修改
2个文件已添加
448 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIntakeOperateMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateScheduleMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIntakeOperate.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupDetail.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateScheduleMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/qo/QoGroup.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
@@ -369,7 +369,7 @@
                rmCommandHistory.setResult((byte) 0);
                rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory);
                if(openType == 1 ) {
                if(openType != null && openType == 1 ) {
                    irIntakeOperateMapper.updateByCommandId(comId, (byte)2, "开阀失败");
                }
@@ -401,7 +401,7 @@
                rmCommandHistory.setResult((byte) 1);
                rmCommandHistoryMapper.updateByPrimaryKeySelective(rmCommandHistory);
                if(openType == 1) {
                if(openType != null && openType == 1) {
                    irIntakeOperateMapper.updateByCommandId(comId, (byte)1, null);
                }
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIntakeOperateMapper.java
@@ -7,8 +7,8 @@
/**
 * @author ZhuBaoMin
 * @date 2025-03-25 20:41
 * @LastEditTime 2025-03-25 20:41
 * @date 2025-04-02 10:54
 * @LastEditTime 2025-04-02 10:54
 * @Description
 */
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
import com.dy.pipIrrGlobal.voIr.VoGroup;
import com.dy.pipIrrGlobal.voIr.VoGroupDetail;
import com.dy.pipIrrGlobal.voIr.VoGroupOne;
import com.dy.pipIrrGlobal.voIr.VoGroupSimple;
import org.apache.ibatis.annotations.Mapper;
@@ -65,4 +66,11 @@
     * @return
     */
    List<VoGroupSimple> getSimpleGroups(Map<?, ?> params);
    /**
     * 根据轮灌组ID获取轮灌组详情
     * @param groupId
     * @return
     */
    VoGroupDetail getGroupDetail(Long groupId);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateScheduleMapper.java
@@ -45,4 +45,11 @@
     */
    Integer updateScheduleStartTime(@Param("scheduleId") Long scheduleId, @Param("startTime") Date startTime);
    /**
     * 根据计划ID终止灌溉次序,将灌溉次序的当前状态改为已终止
     * @param planId
     * @return
     */
    Integer terminateSchedule(Long planId);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIntakeOperate.java
@@ -35,6 +35,16 @@
    private Long id;
    /**
     * 计划ID
     */
    private Long planId;
    /**
     * 操作类型;1-发布(计划开阀),2-终止(远程关阀)
     */
    private Byte operateType;
    /**
     * 命令ID
     */
    @NotNull(message = "命令ID不能为空")
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupDetail.java
New file
@@ -0,0 +1,32 @@
package com.dy.pipIrrGlobal.voIr;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Data;
/**
 * @author ZhuBaoMin
 * @date 2025-03-31 17:10
 * @LastEditTime 2025-03-31 17:10
 * @Description 轮灌组详情视图对象
 */
@Data
@JsonPropertyOrder({"groupCode", "defaultDuration", "intakes"})
public class VoGroupDetail {
    public static final long serialVersionUID = 202503311711001L;
    /**
     * 轮灌组编码
     */
    private String groupCode;
    /**
     * 默认灌溉时长
     */
    private Integer defaultDuration;
    /**
     * 取水口列表
     */
    private String intakes;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java
@@ -25,12 +25,12 @@
    private Long groupId;
    /**
     * 轮灌组编码
     * 轮灌组名称
     */
    private String groupCode;
    /**
     * 灌溉单元数量
     * 取水口数量
     */
    private Integer intakeCount;
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml
@@ -5,6 +5,8 @@
    <!--@mbg.generated-->
    <!--@Table ir_intake_operate-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="plan_id" jdbcType="BIGINT" property="planId" />
    <result column="operate_type" jdbcType="TINYINT" property="operateType" />
    <result column="command_id" jdbcType="BIGINT" property="commandId" />
    <result column="intake_id" jdbcType="BIGINT" property="intakeId" />
    <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
@@ -14,7 +16,8 @@
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, command_id, intake_id, start_time, duration, command_result, failure_factors
    id, plan_id, operate_type, command_id, intake_id, start_time, duration, command_result,
    failure_factors
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    <!--@mbg.generated-->
@@ -30,12 +33,14 @@
  </delete>
  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIntakeOperate">
    <!--@mbg.generated-->
    insert into ir_intake_operate (id, command_id, intake_id,
      start_time, duration, command_result,
      failure_factors)
    values (#{id,jdbcType=BIGINT}, #{commandId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT},
      #{startTime,jdbcType=TIMESTAMP}, #{duration,jdbcType=INTEGER}, #{commandResult,jdbcType=TINYINT},
      #{failureFactors,jdbcType=VARCHAR})
    insert into ir_intake_operate (id, plan_id, operate_type,
      command_id, intake_id, start_time,
      duration, command_result, failure_factors
      )
    values (#{id,jdbcType=BIGINT}, #{planId,jdbcType=BIGINT}, #{operateType,jdbcType=TINYINT},
      #{commandId,jdbcType=BIGINT}, #{intakeId,jdbcType=BIGINT}, #{startTime,jdbcType=TIMESTAMP},
      #{duration,jdbcType=INTEGER}, #{commandResult,jdbcType=TINYINT}, #{failureFactors,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIntakeOperate">
    <!--@mbg.generated-->
@@ -43,6 +48,12 @@
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="planId != null">
        plan_id,
      </if>
      <if test="operateType != null">
        operate_type,
      </if>
      <if test="commandId != null">
        command_id,
@@ -66,6 +77,12 @@
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=BIGINT},
      </if>
      <if test="planId != null">
        #{planId,jdbcType=BIGINT},
      </if>
      <if test="operateType != null">
        #{operateType,jdbcType=TINYINT},
      </if>
      <if test="commandId != null">
        #{commandId,jdbcType=BIGINT},
@@ -91,6 +108,12 @@
    <!--@mbg.generated-->
    update ir_intake_operate
    <set>
      <if test="planId != null">
        plan_id = #{planId,jdbcType=BIGINT},
      </if>
      <if test="operateType != null">
        operate_type = #{operateType,jdbcType=TINYINT},
      </if>
      <if test="commandId != null">
        command_id = #{commandId,jdbcType=BIGINT},
      </if>
@@ -115,7 +138,9 @@
  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrIntakeOperate">
    <!--@mbg.generated-->
    update ir_intake_operate
    set command_id = #{commandId,jdbcType=BIGINT},
    set plan_id = #{planId,jdbcType=BIGINT},
      operate_type = #{operateType,jdbcType=TINYINT},
      command_id = #{commandId,jdbcType=BIGINT},
      intake_id = #{intakeId,jdbcType=BIGINT},
      start_time = #{startTime,jdbcType=TIMESTAMP},
      duration = #{duration,jdbcType=INTEGER},
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
@@ -230,16 +230,23 @@
  <!--根据指定条件获取轮灌组记录数-->
  <select id="getSimpleGroupCount" resultType="java.lang.Long">
    SELECT COUNT(*) AS recordCount
<!--    FROM ir_irrigate_group grp-->
<!--        INNER JOIN ir_project_group pg ON pg.group_id = grp.id-->
<!--        INNER JOIN ir_project pro ON pg.project_id = pro.id-->
<!--    <where>-->
<!--      AND grp.deleted = 0-->
<!--      <if test="projectId != null and projectId != ''">-->
<!--        AND pro.id = #{projectId}-->
<!--      </if>-->
<!--      <if test="groupCode != null and groupCode != ''">-->
<!--        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')-->
<!--      </if>-->
<!--    </where>-->
    FROM ir_irrigate_group grp
        INNER JOIN ir_project_group pg ON pg.group_id = grp.id
        INNER JOIN ir_project pro ON pg.project_id = pro.id
    <where>
      AND grp.deleted = 0
      <if test="projectId != null and projectId != ''">
        AND pro.id = #{projectId}
      </if>
      <if test="groupCode != null and groupCode != ''">
        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')
      </if>
@@ -248,31 +255,64 @@
  <!--根据指定条件获取轮灌组列表-->
  <select id="getSimpleGroups" resultType="com.dy.pipIrrGlobal.voIr.VoGroupSimple">
<!--    SELECT-->
<!--      grp.id AS groupId,-->
<!--      grp.group_code AS groupCode,-->
<!--      (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount,-->
<!--      grp.default_duration AS defaultDuration,-->
<!--      pg.sort-->
<!--    FROM ir_irrigate_group grp-->
<!--           INNER JOIN ir_project_group pg ON pg.group_id = grp.id-->
<!--           INNER JOIN ir_project pro ON pg.project_id = pro.id-->
<!--    <where>-->
<!--      AND grp.deleted = 0-->
<!--      <if test="projectId != null and projectId != ''">-->
<!--        AND pro.id = #{projectId}-->
<!--      </if>-->
<!--      <if test="groupCode != null and groupCode != ''">-->
<!--        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')-->
<!--      </if>-->
<!--    </where>-->
<!--    ORDER BY pg.sort-->
    SELECT
      grp.id AS groupId,
      grp.group_code AS groupCode,
      (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount,
      grp.default_duration AS defaultDuration,
      pg.sort
        grp.id AS groupId,
        grp.group_code AS groupCode,
        (SELECT COUNT(*) FROM ir_group_intake WHERE group_id = grp.id) AS intakeCount,
        grp.default_duration AS defaultDuration,
        0 as sort
    FROM ir_irrigate_group grp
           INNER JOIN ir_project_group pg ON pg.group_id = grp.id
           INNER JOIN ir_project pro ON pg.project_id = pro.id
    <where>
      AND grp.deleted = 0
      <if test="projectId != null and projectId != ''">
        AND pro.id = #{projectId}
      </if>
      <if test="groupCode != null and groupCode != ''">
        AND grp.group_code LIKE CONCAT('%', #{groupCode}, '%')
      </if>
    </where>
    ORDER BY pg.sort
    ORDER BY grp.operate_time DESC
    <trim prefix="limit ">
      <if test="start != null and count != null">
        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
      </if>
    </trim>
  </select>
  <select id="getGroupDetail" resultType="com.dy.pipIrrGlobal.voIr.VoGroupDetail">
    SELECT
      groupCode,
      defaultDuration,
      GROUP_CONCAT(intakeId) AS intakes
    FROM
      (
        SELECT
          grp.group_code AS groupCode,
          grp.default_duration AS defaultDuration,
          inta.id AS intakeId
        FROM ir_irrigate_group grp
               INNER JOIN ir_group_intake gi ON gi.group_id = grp.id
               INNER JOIN pr_intake inta ON inta.id = gi.intake_id
        WHERE grp.deleted = 0 AND grp.id = #{groupId}
      ) irrigateGroup
    GROUP BY groupCode,defaultDuration
  </select>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateScheduleMapper.xml
@@ -118,4 +118,13 @@
    WHERE id = #{scheduleId}
  </update>
  <!--根据计划ID终止灌溉次序,将灌溉次序的当前状态改为已终止-->
  <update id="terminateSchedule">
    UPDATE ir_irrigate_schedule sch
      INNER JOIN ir_plan_schedule ps ON ps.schedule_id = sch.id
      INNER JOIN ir_irrigate_plan plan ON ps.plan_id = plan.id
    SET sch.current_state = 2
    WHERE plan.id = #{planId}
  </update>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
@@ -322,7 +322,7 @@
        FROM ir_project pro
               INNER JOIN ir_project_group pg ON pg.project_id = pro.id
               INNER JOIN ir_irrigate_group grp ON grp.id = pg.group_id
        WHERE pro.id = #{projectId}
        WHERE pro.deleted = 0 AND pro.id = #{projectId}
      ) project
    GROUP BY projectName
  </select>
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
@@ -9,10 +9,13 @@
import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
import com.dy.pipIrrGlobal.voIr.VoGroup;
import com.dy.pipIrrGlobal.voIr.VoGroupDetail;
import com.dy.pipIrrGlobal.voIr.VoGroupOne;
import com.dy.pipIrrGlobal.voIr.VoGroupSimple;
import com.dy.pipIrrGlobal.voSe.VoActiveCard;
import com.dy.pipIrrIrrigate.irrigateGroup.dto.GroupClient;
import com.dy.pipIrrIrrigate.irrigateGroup.dto.IrrigateGroup;
import com.dy.pipIrrIrrigate.irrigateGroup.qo.QoGroup;
import com.dy.pipIrrIrrigate.result.IrrigateResultCode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
@@ -485,4 +488,79 @@
        return BaseResponseUtils.buildSuccess() ;
    }
    /**
     * 修改轮灌组,新代码
     * @param po
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "updateIrrigateGroup", consumes = MediaType.APPLICATION_JSON_VALUE)
    @Transactional(rollbackFor = Exception.class)
    @SsoAop()
    public BaseResponse<Boolean> updateIrrigateGroup(@RequestBody @Valid IrrigateGroup po, BindingResult bindingResult){
        if (bindingResult != null && bindingResult.hasErrors()) {
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        if(po.getGroupId() == null) {
            return BaseResponseUtils.buildErrorMsg("轮灌组ID不能为空");
        }
        Map map_result = irrigateGroupSv.updateIrrigateGroup(po);
        if(map_result.get("success").equals(false)) {
            return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
        }
        return BaseResponseUtils.buildSuccess() ;
    }
    /**
     * 获取轮灌组列表,新代码
     * @param qo
     * @return
     */
    @GetMapping(path = "/getSimpleGroups")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoGroupSimple>>> getSimpleGroups(QoGroup qo) {
        try {
            QueryResultVo<List<VoGroupSimple>> res = irrigateGroupSv.getSimpleGroups(qo);
            return BaseResponseUtils.buildSuccess(res);
        } catch (Exception e) {
            log.error("获取项目记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 获取全部轮灌组,新代码
     * @return
     */
    @GetMapping(path = "/getAllGroups")
    @SsoAop()
    public BaseResponse<List<VoGroupSimple>> getAllGroups() {
        try {
            return BaseResponseUtils.buildSuccess(irrigateGroupSv.getAllGroups());
        } catch (Exception e) {
            log.error("获取项目记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 获取轮灌组详情,新代码
     * @param groupId
     * @return
     */
    @GetMapping(path = "getGroupDetail")
    @SsoAop()
    public BaseResponse<VoGroupDetail> getGroupDetail(@RequestParam Long groupId) {
        if(groupId == null) {
            return BaseResponseUtils.buildErrorMsg("轮灌组ID不能为空");
        }
        Map map_result = irrigateGroupSv.getGroupDetail(groupId);
        if(map_result.get("success").equals(false)) {
            return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
        }
        return BaseResponseUtils.buildSuccess(map_result.get("content")) ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
@@ -10,8 +10,11 @@
import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
import com.dy.pipIrrGlobal.voIr.VoGroup;
import com.dy.pipIrrGlobal.voIr.VoGroupDetail;
import com.dy.pipIrrGlobal.voIr.VoGroupOne;
import com.dy.pipIrrGlobal.voIr.VoGroupSimple;
import com.dy.pipIrrIrrigate.irrigateGroup.dto.IrrigateGroup;
import com.dy.pipIrrIrrigate.irrigateGroup.qo.QoGroup;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +36,7 @@
public class IrrigateGroupSv {
    @Autowired
    private IrIrrigateGroupMapper irIrrigateGroupMapper;
    @Autowired
    private IrGroupUnitMapper irGroupUnitMapper;
@@ -249,4 +253,94 @@
            return map;
        }
    }
    /**
     * 修改轮灌组
     * @param po
     * @return
     */
    public Map updateIrrigateGroup(IrrigateGroup po) {
        Long groupId = po.getGroupId();
        Map map_deleteGroup = deleteGroup(groupId);
        if(map_deleteGroup.get("success").equals(false)) {
            Map map = new HashMap<>();
            map.put("success", false);
            map.put("msg", map_deleteGroup.get("msg").toString());
            map.put("content", null);
            return map;
        }
        Map map_addGroup = addIrrigateGroup(po);
        if(map_addGroup.get("success").equals(false)) {
            Map map = new HashMap<>();
            map.put("success", false);
            map.put("msg", map_addGroup.get("msg").toString());
            map.put("content", null);
            return map;
        }
        Map map = new HashMap<>();
        map.put("success", true);
        map.put("msg", "修改轮灌组成功");
        map.put("content", null);
        return map;
    }
    /**
     * 查询轮灌组列表
     * @param queryVo
     * @return
     */
    public QueryResultVo<List<VoGroupSimple>> getSimpleGroups(QoGroup queryVo) {
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params);
        QueryResultVo<List<VoGroupSimple>> rsVo = new QueryResultVo<>();
        rsVo.pageSize = queryVo.pageSize;
        rsVo.pageCurr = queryVo.pageCurr;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = irIrrigateGroupMapper.getSimpleGroups(params);
        return rsVo;
    }
    /**
     * 查询全部轮灌组
     * @return
     */
    public List<VoGroupSimple> getAllGroups() {
        //Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        //Long itemTotal = irIrrigateGroupMapper.getSimpleGroupCount(params);
        //QueryResultVo<List<VoGroupSimple>> rsVo = new QueryResultVo<>();
        //rsVo.pageSize = queryVo.pageSize;
        //rsVo.pageCurr = queryVo.pageCurr;
        //rsVo.calculateAndSet(itemTotal, params);
        //rsVo.obj = irIrrigateGroupMapper.getSimpleGroups(null);
        //return rsVo;
        return irIrrigateGroupMapper.getSimpleGroups(null);
    }
    /**
     * 获取轮灌组详情
     * @param groupId
     * @return
     */
    public Map getGroupDetail(Long groupId) {
        try {
            VoGroupDetail voGroupDetail = irIrrigateGroupMapper.getGroupDetail(groupId);
            Map map = new HashMap<>();
            map.put("success", true);
            map.put("msg", "获取轮灌组详情成功");
            map.put("content", voGroupDetail);
            return map;
        } catch (Exception e) {
            Map map = new HashMap<>();
            map.put("success", false);
            map.put("msg", "获取轮灌组详情失败");
            map.put("content", null);
            return map;
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/qo/QoGroup.java
New file
@@ -0,0 +1,21 @@
package com.dy.pipIrrIrrigate.irrigateGroup.qo;
import com.dy.common.webUtil.QueryConditionVo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * @author ZhuBaoMin
 * @date 2025-03-31 16:02
 * @LastEditTime 2025-03-31 16:02
 * @Description 轮灌组查询对象
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class QoGroup extends QueryConditionVo {
    /**
     * 轮灌组编码
     */
    private String groupCode;
}
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
@@ -80,7 +80,7 @@
    public Map addIrrigateProject(IrrigateProject po) {
        String projectName = po.getProjectName();
        String irrigateGroups = po.getIrrigateGroups();
        Long operatorId = po.getOperatorId();
        Long operatorId = po.getOperator();
        IrProject irProject = new IrProject();
        irProject.setProjectName(projectName);
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java
@@ -36,5 +36,5 @@
     * 操作员ID
     */
    @NotNull(message = "操作员ID不能为空")
    private Long operatorId;
    private Long operator;
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
@@ -250,7 +250,7 @@
     * @param automaticClose
     * @return
     */
    public Map planedOpenTimedClose(AutomaticClose automaticClose, Date startTime, Integer duration) {
    public Map planedOpenTimedClose(AutomaticClose automaticClose, Long planId, Date startTime, Integer duration) {
        Long intakeId = automaticClose.getIntakeId();
        Long vcId = automaticClose.getVcId();
        Date plannedOpenTime = automaticClose.getPlannedOpenTime();
@@ -259,8 +259,10 @@
        Byte openType = automaticClose.getOpenType();
        Long comId = new IDLongGenerator().generate();
        if(openType == 1) {
        if(openType != null && openType == 1) {
            IrIntakeOperate irIntakeOperate = new IrIntakeOperate();
            irIntakeOperate.setPlanId(planId);
            irIntakeOperate.setOperateType((byte)1);
            irIntakeOperate.setCommandId(comId);
            irIntakeOperate.setIntakeId(intakeId);
            irIntakeOperate.setStartTime(startTime);
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -538,7 +538,7 @@
            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        Map map_result = commandSv.planedOpenTimedClose(automaticClose, null,null);
        Map map_result = commandSv.planedOpenTimedClose(automaticClose, null, null,null);
        if(map_result.get("success").equals(false)) {
            return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
        }
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
@@ -273,7 +273,7 @@
                automaticClose.setOperator(operatorId);
                automaticClose.setOpenType(Byte.valueOf("1"));
                commandSv.planedOpenTimedClose(automaticClose, schedule.getStartTime(), schedule.getDuration());
                commandSv.planedOpenTimedClose(automaticClose, planId, schedule.getStartTime(), schedule.getDuration());
            }
        }
@@ -281,18 +281,29 @@
    }
    /**
     * 获取灌溉计划列表
     * @param vo
     * 终止灌溉计划
     * @param planSimple
     * @param bindingResult
     * @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());
    //@PostMapping(path = "terminatePlan", consumes = MediaType.APPLICATION_JSON_VALUE)
    //@Transactional(rollbackFor = Exception.class)
    //public BaseResponse<Boolean> terminatePlan(@RequestBody @Valid PlanSimple planSimple, BindingResult bindingResult){
    //    if(bindingResult != null && bindingResult.hasErrors()){
    //        return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
    //    }
    //
    //    Long planId = planSimple.getPlanId();
    //    Long operatorId = planSimple.getOperatorId();
    //
    //    IrIrrigatePlan iIrrigatePlan = new IrIrrigatePlan();
    //    iIrrigatePlan.setId(planId);
    //    iIrrigatePlan.setExecutingState((byte)3);
    //    if(irrigatePlanSv.updatePlan(iIrrigatePlan) == 0){
    //        return BaseResponseUtils.buildErrorMsg("终止计划状态失败");
    //    }
    //
    //
    //
    //}
}
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
@@ -60,6 +60,15 @@
    }
    /**
     * 修改灌溉计划
     * @param po
     * @return
     */
    public Integer updatePlan(IrIrrigatePlan po) {
        return irrigatePlanMapper.updateByPrimaryKeySelective(po);
    }
    /**
     * 获取未完成的计划列表,小程序计划列表页使用
      * @return
     */