From c7c8554e2b9809bc90ac4a43fdaa39dfe16f4ab0 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 09 五月 2025 14:09:32 +0800
Subject: [PATCH] “远程测控”功能返回数据中增加protocol和protocolVersion属性,以备前端做多协议兼容。

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml |  138 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 136 insertions(+), 2 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
index 497b2be..2837fc5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
@@ -303,6 +303,15 @@
     ORDER BY plan.plan_state DESC
   </select>
 
+  <!--鑾峰彇宸插畬鎴愮殑璁″垝鏁伴噺-->
+  <select id="getCompletedPlansCount" resultType="java.lang.Long">
+    SELECT
+        COUNT(*) AS recordCount
+    FROM ir_irrigate_plan plan
+    INNER JOIN ir_project pro ON pro.id = plan.project_id
+    WHERE plan.deleted = 0 AND ((plan.plan_state = 2 AND NOW() &gt;= plan.plan_stop_time) OR (plan.executing_state = 3))
+  </select>
+
   <!--鑾峰彇宸插畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢�-->
   <select id="getCompletedPlans" resultType="com.dy.pipIrrGlobal.voIr.VoPlans">
     SELECT
@@ -316,8 +325,14 @@
       IF(plan.executing_state = 3, 5, 4) AS planState
     FROM ir_irrigate_plan plan
         INNER JOIN ir_project pro ON pro.id = plan.project_id
-    WHERE plan.deleted = 0 AND ((plan.plan_state = 2 AND NOW() &gt;= plan.plan_stop_time) OR (plan.executing_state = 3))
-    ORDER BY plan.plan_state DESC
+        INNER JOIN ir_plan_operate po ON po.plan_id = plan.id
+    WHERE plan.deleted = 0 AND ((plan.plan_state = 2 AND NOW() &gt;= plan.plan_stop_time) OR (plan.executing_state = 3)) AND po.operate_type = 1
+    ORDER BY po.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>
 
   <!--鏍规嵁璁″垝ID鑾峰彇寰呯粓姝㈣鍒掔殑缁撴潫鏃堕棿锛氭湭鍒犻櫎銆佹湭缁堟銆佸凡鍙戝竷銆佸綋鍓嶆椂闂村皬浜庤鍒掔粨鏉熸椂闂�-->
@@ -337,4 +352,123 @@
 
   </select>
 
+  <!--鏍规嵁璁″垝ID鑾峰彇璁″垝璇︽儏锛屽寘鎷鍒掑悕绉帮紝椤圭洰鍚嶏紝璁″垝寮�濮嬫椂闂达紝璁″垝缁撴潫鏃堕棿锛岃鍒掕鎯呴〉浣跨敤-->
+  <select id="getPlanDetails" resultType="com.dy.pipIrrGlobal.voIr.VoPlanDetails">
+    SELECT
+      plan.plan_name AS planName,
+      pro.project_name AS projectName,
+      IF(plan.executing_state = 3, '5',
+         IF(NOW() &lt; plan.plan_start_time,'2',
+            IF(NOW() &lt; plan.plan_stop_time, '3', '4'))) AS state,
+      plan.plan_start_time AS planStartTime,
+      plan.plan_stop_time AS planStopTime,
+      NULL AS groupDetails,
+      NULL AS failureCount
+    FROM ir_irrigate_plan plan
+        INNER JOIN ir_project pro ON pro.id = plan.project_id
+    WHERE plan.id = #{planId}
+    AND plan.deleted = 0
+  </select>
+
+  <!--鏍规嵁璁″垝ID鑾峰彇宸茬粓姝㈣鍒掔殑璇︽儏锛岀粨鏉熸椂闂翠负瀹為檯缁堟鏃堕棿-->
+  <select id="getPlanDetails_terminate" resultType="com.dy.pipIrrGlobal.voIr.VoPlanDetails">
+    SELECT
+        plan.plan_name AS planName,
+        pro.project_name AS projectName,
+<!--        IF(#{terminateTime} &lt; plan.plan_start_time, 6,-->
+<!--          IF(#{terminateTime} &lt; plan.plan_stop_time, 5, 4)) AS state,-->
+        IF(plan.executing_state = 3, 5,
+            IF(NOW() &lt; plan_start_time, 2,
+                IF(NOW() &lt; plan_stop_time, 3, 4)
+            )
+        ) AS state,
+        plan.plan_start_time AS planStartTime,
+        plan.plan_stop_time AS planStopTime,
+        #{terminateTime} AS realStopTime,
+        NULL AS groupDetails,
+        NULL AS failureCount
+    FROM ir_irrigate_plan plan
+      INNER JOIN ir_project pro ON pro.id = plan.project_id
+    WHERE plan.id = #{planId}
+    AND plan.deleted = 0
+  </select>
+
+  <!--鏍规嵁璁″垝ID鑾峰彇璁″垝鐘舵�侊紝鐢ㄤ簬鍒ゆ柇鏄惁鍙互鍒犻櫎璁″垝-->
+  <select id="getPlanState" resultType="java.lang.Integer">
+    SELECT
+      plan_state
+    FROM ir_irrigate_plan
+    WHERE id = #{planId}
+    AND deleted = 0
+  </select>
+
+  <!--鍒ゆ柇褰撳墠椤圭洰鏄惁瀛樺湪宸插彂甯冦�佹湭缁堟銆佹湭鍒犻櫎銆佹湭瀹屾垚鐨勮鍒掞紝鍙戝竷璁″垝鍓嶅垽鏂娇鐢�-->
+  <select id="hasPlan_CurrentProject" resultType="java.lang.Integer">
+    SELECT
+      COUNT(*) AS recordCount
+    FROM ir_irrigate_plan
+    WHERE project_id = (SELECT project_id FROM ir_irrigate_plan WHERE id = #{planId})
+      AND id != #{planId}
+      AND plan_state = 2
+      AND executing_state != 3
+      AND deleted = 0
+      AND NOW() &lt; plan_stop_time
+  </select>
+
+  <!--鍒ゆ柇褰撳墠璁″垝鍖呭惈鐨勮疆鐏岀粍鏄惁涓庡叾浠栭」鐩笅璁″垝鍖呭惈鐨勮疆鐏岀粍鏈変氦闆嗭紝涓斿叾浠栭」鐩殑璁″垝鐘舵�佷负宸插彂甯冦�佹湭缁堟銆佹湭鍒犻櫎銆佹湭瀹屾垚锛屽彂甯冭鍒掑墠鍒ゆ柇浣跨敤-->
+  <select id="hasPlan_OtherProject" resultType="java.lang.Integer">
+    SELECT EXISTS(
+        SELECT sche.group_id
+        FROM ir_irrigate_plan plan
+            INNER JOIN ir_plan_schedule ps ON ps.plan_id = plan.id
+            INNER JOIN ir_irrigate_schedule sche ON sche.id = ps.schedule_id
+        WHERE plan.project_id != (SELECT project_id FROM ir_irrigate_plan WHERE id = #{planId})
+            AND plan_state = 2
+            AND executing_state != 3
+            AND deleted = 0
+            AND NOW() &lt; plan_stop_time
+
+        INTERSECT
+
+        SELECT sche.group_id
+        FROM ir_irrigate_schedule sche
+            INNER JOIN ir_plan_schedule ps ON schedule_id = sche.id
+        WHERE ps.plan_id = #{planId}
+        LIMIT 1
+    ) AS has_intersection
+  </select>
+
+  <!--鍒ゆ柇褰撳墠璁″垝涓庢渶杩戠粓姝㈢殑璁″垝鐨勮疆鐏岀粍鏄惁鏈夐噸鍙� -->
+  <select id="hasPlanOverlapWithTerminated" resultType="java.lang.Integer">
+    SELECT COUNT(1) 
+    FROM (
+        SELECT sche1.group_id
+        FROM ir_plan_schedule ps1
+        INNER JOIN ir_irrigate_schedule sche1 ON ps1.schedule_id = sche1.id
+        WHERE ps1.plan_id = #{planId}
+    ) AS current_groups
+    INNER JOIN (
+        SELECT sche2.group_id
+        FROM ir_plan_schedule ps2
+        INNER JOIN ir_irrigate_schedule sche2 ON ps2.schedule_id = sche2.id
+        WHERE ps2.plan_id = #{terminatedPlanId}
+    ) AS terminated_groups
+    ON current_groups.group_id = terminated_groups.group_id
+    LIMIT 1
+  </select>
+
+  <!--鏍规嵁璁″垝ID鑾峰彇璁″垝鏈�鏂扮姸鎬�-->
+  <select id="getPlanLatestState" resultType="java.lang.Integer">
+    SELECT
+        IF(plan_state = 1, 1,
+            IF(executing_state = 3, 5,
+                IF(NOW() &lt; plan_start_time, 2,
+                  IF(NOW() &lt; plan_stop_time, 3, 4)
+                )
+            )
+    ) AS planState
+    FROM ir_irrigate_plan
+    WHERE deleted = 0 AND id = #{planId}
+  </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0