From a7485c9f9b16ece4f12f0b3f6d6a8c90370f5ae4 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期三, 09 四月 2025 16:08:30 +0800
Subject: [PATCH] 灌溉计划详情信息增加取水口命令发布失败数量

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrIntakeOperateMapper.java                |    7 +++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java                         |    8 +++++++-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml                                |    3 ++-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml                               |    8 ++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java |   31 +++++++++----------------------
 5 files changed, 33 insertions(+), 24 deletions(-)

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 d700110..c79dda6 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
@@ -66,4 +66,11 @@
      * @return
      */
     List<VoIntakeResult> getIntakeResult(@Param("planId") Long planId, @Param("groupId") Long groupId);
+
+    /**
+     * 鏍规嵁璁″垝ID鑾峰彇鍙栨按鍙e懡浠ゅ彂甯冨け璐ユ暟閲忥紝鐏屾簤璁″垝璇︽儏椤典娇鐢�
+     * @param planId
+     * @return
+     */
+    Integer getFailureCount(Long planId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java
index c95c72b..fafbffa 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoPlanDetails.java
@@ -15,7 +15,7 @@
  */
 
 @Data
-@JsonPropertyOrder({"planName", "projectName", "state", "planStartTime", "planStopTime", "groups"})
+@JsonPropertyOrder({"planName", "projectName", "state", "planStartTime", "planStopTime", "failureCount", "groups"})
 public class VoPlanDetails {
     private static final long serialVersionUID = 202504091125001L;
 
@@ -47,7 +47,13 @@
     private Date planStopTime;
 
     /**
+     * 鍛戒护鍙戝竷澶辫触鏁伴噺
+     */
+    private Integer failureCount;
+
+    /**
      * 杞亴缁勫垪琛�
      */
     private List<VoGroupResult> groups;
+
 }
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 44de0f1..e953e95 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIntakeOperateMapper.xml
@@ -189,4 +189,12 @@
         inner JOIN ir_group_intake gi ON gi.intake_id = io.intake_id
     WHERE io.plan_id = #{planId} AND gi.group_id = #{groupId};
   </select>
+
+  <!--鏍规嵁璁″垝ID鑾峰彇鍙栨按鍙e懡浠ゅ彂甯冨け璐ユ暟閲忥紝鐏屾簤璁″垝璇︽儏椤典娇鐢�-->
+  <select id="getFailureCount" resultType="java.lang.Integer">
+    SELECT
+      COUNT(1) AS failureCount
+    FROM ir_intake_operate
+    WHERE operate_type = 1 AND command_result != 1 AND plan_id = #{planId}
+  </select>
 </mapper>
\ No newline at end of file
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 b87e5ce..63e9a5e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrIrrigatePlanMapper.xml
@@ -347,7 +347,8 @@
             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 groupDetails,
+      NULL AS failureCount
     FROM ir_irrigate_plan plan
         INNER JOIN ir_project pro ON pro.id = plan.project_id
     WHERE plan.id = #{planId}
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 8c0e998..b29d8cc 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
@@ -19,10 +19,7 @@
 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;
+import java.util.*;
 
 /**
  * @author ZhuBaoMin
@@ -333,12 +330,18 @@
      * @return
      */
     public VoPlanDetails getPublishResults(Long planId) {
+        VoPlanDetails planDetails = irrigatePlanMapper.getPlanDetails(planId);
+        if(planDetails == null){
+            return null;
+        }
+
+        Integer failureCount = Optional.ofNullable(irIntakeOperateMapper.getFailureCount(planId)).orElse(0);
+        planDetails.setFailureCount(failureCount);
+
         List<VoGroupResult> groupResults = irIrrigateGroupMapper.getGroupResult(planId);
         if(groupResults == null || groupResults.size() == 0){
             return null;
         }
-
-        VoPlanDetails planDetails = irrigatePlanMapper.getPlanDetails(planId);
 
         for (VoGroupResult groupResult : groupResults) {
             List<VoIntakeResult> intakeResults = irIntakeOperateMapper.getIntakeResult(planId, groupResult.getGroupId());
@@ -349,22 +352,6 @@
 
         planDetails.setGroups(groupResults);
         return planDetails;
-
-
-        //JSONArray array_groupResult = (JSONArray) JSON.toJSON(groupResults);
-        //for(int i = 0; i < array_groupResult.size(); i++){
-        //    JSONObject job_groupResult = array_groupResult.getJSONObject(i);
-        //    Long groupId = job_groupResult.getLong("groupId");
-        //
-        //    List<VoIntakeResult> intakeResults = irIntakeOperateMapper.getIntakeResult(planId, groupId);
-        //    if(intakeResults != null) {
-        //        JSONArray array_intakeResult = (JSONArray) JSON.toJSON(intakeResults);
-        //        job_groupResult.put("publishResult", array_intakeResult);
-        //    }
-        //}
-        //
-        //List<VoGroupResult> publishResults = array_groupResult.toJavaList(VoGroupResult.class);
-        //return publishResults;
 
     }
 }

--
Gitblit v1.8.0