From c5d7b0a8968e54a3a9c7714ff949026f989de620 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 02 四月 2025 15:14:11 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIntakeOperateMapper.java                        |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java                                 |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateScheduleMapper.java                     |    7 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java                        |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateScheduleMapper.xml                                    |    9 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java   |  175 +++++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIntakeOperate.java                             |   10 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupDetail.java                                 |   32 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java                   |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java               |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml                                       |   41 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml                                       |   80 +++++-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java                                 |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java         |    9 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupIntakeMapper.xml                                         |    5 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml                                             |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java                   |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/IrrigateGroup.java |   46 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java       |   33 ++-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupIntakeMapper.java                          |    7 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/qo/QoGroup.java        |   21 +
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java     |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java |  121 +++++++++++
 23 files changed, 580 insertions(+), 52 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
index d73733d..646d9be 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
+++ b/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);
                 }
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupIntakeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupIntakeMapper.java
index 319236e..7977b7a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupIntakeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupIntakeMapper.java
@@ -33,4 +33,11 @@
      * @return
      */
     List<Long> getIntakeIdsByGroupId(Long groupId);
+
+    /**
+     * 鏍规嵁缁処D鍒犻櫎鍙栨按鍙e叧鑱�
+     * @param groupId
+     * @return
+     */
+    Integer deleteByGroupId(Long groupId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIntakeOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIntakeOperateMapper.java
index 2241e34..f0b4201 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIntakeOperateMapper.java
+++ b/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
  */
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
index eaa0a00..9ee8d84 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateGroupMapper.java
+++ b/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);
+
+    /**
+     * 鏍规嵁杞亴缁処D鑾峰彇杞亴缁勮鎯�
+     * @param groupId
+     * @return
+     */
+    VoGroupDetail getGroupDetail(Long groupId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateScheduleMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateScheduleMapper.java
index 3c5e6e5..a1b5b24 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIrrigateScheduleMapper.java
+++ b/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);
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIntakeOperate.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIntakeOperate.java
index d3d39a0..3c63490 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrIntakeOperate.java
+++ b/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涓嶈兘涓虹┖")
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupDetail.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupDetail.java
new file mode 100644
index 0000000..1b1c6e0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupDetail.java
@@ -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;
+
+    /**
+     * 鍙栨按鍙e垪琛�
+     */
+    private String intakes;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java
index 19a1c83..d8c1232 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoGroupSimple.java
@@ -25,12 +25,12 @@
     private Long groupId;
 
     /**
-     * 杞亴缁勭紪鐮�
+     * 杞亴缁勫悕绉�
      */
     private String groupCode;
 
     /**
-     * 鐏屾簤鍗曞厓鏁伴噺
+     * 鍙栨按鍙f暟閲�
      */
     private Integer intakeCount;
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupIntakeMapper.xml
index 57000ab..e017190 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupIntakeMapper.xml
@@ -85,4 +85,9 @@
     FROM ir_group_intake
     WHERE group_id = #{groupId}
   </select>
+
+  <!--鏍规嵁缁処D鍒犻櫎鍙栨按鍙e叧鑱�-->
+  <delete id="deleteByGroupId">
+    DELETE FROM ir_group_intake WHERE group_id = #{groupId}
+  </delete>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml
index a578e97..ab8bc1a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml
+++ b/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},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
index 5a23b4d..ae82b5c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateGroupMapper.xml
+++ b/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>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateScheduleMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateScheduleMapper.xml
index 982fe2f..8f87ab3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigateScheduleMapper.xml
+++ b/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>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
index 304156e..eb9c488 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
+++ b/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>
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
index aaed9d3..89c086e 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
@@ -9,9 +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;
@@ -442,4 +446,121 @@
         }
         return BaseResponseUtils.buildSuccess(true);
     }
+
+    /**
+     * 鏂板杞亴缁勶紝鏂颁唬鐮�
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "addIrrigateGroup", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> addIrrigateGroup(@RequestBody @Valid IrrigateGroup po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        Map map_result = irrigateGroupSv.addIrrigateGroup(po);
+        if(map_result.get("success").equals(false)) {
+            return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
+        }
+        return BaseResponseUtils.buildSuccess() ;
+    }
+
+    /**
+     * 鍒犻櫎杞亴缁勶紝鏂颁唬鐮�
+     * @param groupId
+     * @return
+     */
+    @PostMapping(path = "deleteIrrigateGroup")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> deleteIrrigateGroup(@RequestParam(required = false) Long groupId) {
+        if(groupId == null) {
+            return BaseResponseUtils.buildErrorMsg("杞亴缁処D涓嶈兘涓虹┖");
+        }
+
+        Map map_result = irrigateGroupSv.deleteGroup(groupId);
+        if(map_result.get("success").equals(false)) {
+            return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
+        }
+        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("杞亴缁処D涓嶈兘涓虹┖");
+        }
+
+        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("杞亴缁処D涓嶈兘涓虹┖");
+        }
+
+        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")) ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
index 90cb545..1419aa1 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
@@ -2,19 +2,26 @@
 
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoIr.IrGroupClientMapper;
+import com.dy.pipIrrGlobal.daoIr.IrGroupIntakeMapper;
 import com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper;
 import com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper;
 import com.dy.pipIrrGlobal.pojoIr.IrGroupClient;
+import com.dy.pipIrrGlobal.pojoIr.IrGroupIntake;
 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;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -29,11 +36,15 @@
 public class IrrigateGroupSv {
     @Autowired
     private IrIrrigateGroupMapper irIrrigateGroupMapper;
+
     @Autowired
     private IrGroupUnitMapper irGroupUnitMapper;
 
     @Autowired
     private IrGroupClientMapper irGroupClientMapper;
+
+    @Autowired
+    private IrGroupIntakeMapper irGroupIntakeMapper;
 
     /**
      * 鍒涘缓杞亴缁�
@@ -168,4 +179,168 @@
     public Integer deleteGroupClient (Long id) {
         return irGroupClientMapper.deleteByPrimaryKey(id);
     }
+
+    /**
+     * 鍒涘缓杞亴缁�
+     * @param po
+     * @return
+     */
+    public Map addIrrigateGroup(IrrigateGroup po) {
+        IrIrrigateGroup irrigateGroup = new IrIrrigateGroup();
+        irrigateGroup.setGroupCode(po.getGroupCode());
+        irrigateGroup.setDefaultDuration(po.getDefaultDuration());
+        irrigateGroup.setOperator(po.getOperator());
+        irrigateGroup.setOperateTime(new Date());
+        irrigateGroup.setDeleted((byte) 0);
+        irIrrigateGroupMapper.insertSelective(irrigateGroup);
+        Long groupId = irrigateGroup.getId();
+        if(groupId == null) {
+            Map map = new HashMap<>();
+            map.put("success", false);
+            map.put("msg", "鍒涘缓杞亴缁勫け璐�");
+            map.put("content", null);
+            return map;
+        }
+
+        String[] intakeArr = po.getIntakes().split(",");
+        Integer sort = 1;
+        for(String intekeId : intakeArr) {
+            String trimmed = intekeId.trim();
+            if(trimmed.isEmpty()) {
+                continue;
+            }
+            try {
+                Long intakeIdLong = Long.parseLong(trimmed);
+                IrGroupIntake irGroupIntake = new IrGroupIntake();
+                irGroupIntake.setGroupId(groupId);
+                irGroupIntake.setIntakeId(intakeIdLong);
+                irGroupIntakeMapper.insert(irGroupIntake);
+            } catch (NumberFormatException  e) {
+                Map map = new HashMap<>();
+                map.put("success", false);
+                map.put("msg", "鍙栨按鍙D鏍煎紡閿欒");
+                map.put("content", null);
+                return map;
+            }
+        }
+        Map map = new HashMap<>();
+        map.put("success", true);
+        map.put("msg", "娣诲姞杞亴缁勬垚鍔�");
+        map.put("content", null);
+        return map;
+    }
+
+    /**
+     * 鏍规嵁缁処D鍒犻櫎鍙栨按鍙e叧鑱�
+     * @param groupId
+     * @return
+     */
+    public Map deleteGroup(Long groupId) {
+        try {
+            irGroupIntakeMapper.deleteByGroupId(groupId);
+            irIrrigateGroupMapper.deleteByPrimaryKey(groupId);
+
+            Map map = new HashMap<>();
+            map.put("success", true);
+            map.put("msg", "鐏屾簤椤圭洰鍒犻櫎鎴愬姛");
+            map.put("content", null);
+            return map;
+        } catch (Exception e) {
+            Map map = new HashMap<>();
+            map.put("success", false);
+            map.put("msg", "杞亴缁勫垹闄ゅけ璐�");
+            map.put("content", null);
+            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;
+        }
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/IrrigateGroup.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/IrrigateGroup.java
new file mode 100644
index 0000000..151ef84
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/IrrigateGroup.java
@@ -0,0 +1,46 @@
+package com.dy.pipIrrIrrigate.irrigateGroup.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-03-28 20:26
+ * @LastEditTime 2025-03-28 20:26
+ * @Description 杞亴缁勫疄浣撶被锛屾坊鍔犲強淇敼杞亴缁勪娇鐢�
+ */
+
+@Data
+public class IrrigateGroup {
+    public static final long serialVersionUID = 202503282027001L;
+
+    /**
+     * 杞亴缁処D锛屼慨鏀硅疆鐏岀粍淇℃伅闇�瑕佷紶鍏�
+     */
+    private Long groupId;
+
+    /**
+     * 杞亴缁勫悕
+     */
+    @NotBlank(message = "杞亴缁勫悕涓嶈兘涓虹┖")
+    private String groupCode;
+
+    /**
+     * 杞亴缁勯粯璁ゆ椂闀�
+     */
+    @NotNull(message = "杞亴缁勯粯璁ゆ椂闀夸笉鑳戒负绌�")
+    private Integer defaultDuration;
+
+    /**
+     * 杞亴缁勫叧鑱旂殑 intakeId锛屼互閫楀彿鍒嗛殧
+     */
+    @NotBlank(message = "杞亴缁勫叧鑱旂殑 intakeId 涓嶈兘涓虹┖")
+    private String intakes;
+
+    /**
+     * 鎿嶄綔鍛業D
+     */
+    @NotNull(message = "鎿嶄綔鍛業D涓嶈兘涓虹┖")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/qo/QoGroup.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/qo/QoGroup.java
new file mode 100644
index 0000000..c528d15
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/qo/QoGroup.java
@@ -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;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
index 0e913ac..e2ef915 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
+++ b/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);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java
index 6c44efe..ec737db 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/dto/IrrigateProject.java
@@ -8,7 +8,7 @@
  * @author ZhuBaoMin
  * @date 2025-03-27 15:09
  * @LastEditTime 2025-03-27 15:09
- * @Description 鐏屾簤椤圭洰瀹炰綋绫伙紝娣诲姞椤圭洰浣跨敤
+ * @Description 鐏屾簤椤圭洰瀹炰綋绫伙紝娣诲姞鍙婁慨鏀归」鐩娇鐢�
  */
 
 @Data
@@ -36,5 +36,5 @@
      * 鎿嶄綔鍛業D
      */
     @NotNull(message = "鎿嶄綔鍛業D涓嶈兘涓虹┖")
-    private Long operatorId;
+    private Long operator;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
index 38b60b2..714a413 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
+++ b/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);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
index 2dc85c6..74f1502 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
+++ b/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());
         }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
index e60cbae..59708ae 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanCtrl.java
+++ b/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("缁堟璁″垝鐘舵�佸け璐�");
+    //    }
+    //
+    //
+    //
     //}
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
index 06c4060..0bb1ba1 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java
+++ b/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
      */

--
Gitblit v1.8.0