From d1e380d5bc8d6cda7dc26778dd638b3367483ae7 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 11 四月 2025 17:27:30 +0800
Subject: [PATCH] 小程序6种开关阀操作失败时重发一次

---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigatePlan/IrrigatePlanSv.java |  174 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 167 insertions(+), 7 deletions(-)

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 0bb1ba1..abb4064 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
@@ -1,19 +1,29 @@
 package com.dy.pipIrrWechat.irrigatePlan;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryConditionVo;
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoIr.*;
+import com.dy.pipIrrGlobal.daoRm.RmCommandHistoryMapper;
 import com.dy.pipIrrGlobal.pojoIr.IrIrrigatePlan;
 import com.dy.pipIrrGlobal.pojoIr.IrIrrigateSchedule;
 import com.dy.pipIrrGlobal.pojoIr.IrPlanOperate;
 import com.dy.pipIrrGlobal.pojoIr.IrPlanSchedule;
-import com.dy.pipIrrGlobal.voIr.VoIrrigateSchedule;
-import com.dy.pipIrrGlobal.voIr.VoPlanSimple;
-import com.dy.pipIrrGlobal.voIr.VoPlans;
+import com.dy.pipIrrGlobal.voIr.*;
+import com.dy.pipIrrGlobal.voRm.VoIntakeVc;
+import com.dy.pipIrrGlobal.voSe.VoClient;
+import com.dy.pipIrrWechat.irrigatePlan.dto.PlanSimple;
+import com.dy.pipIrrWechat.irrigatePlan.enums.OperateTypeENUM;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author ZhuBaoMin
@@ -49,6 +59,12 @@
     @Autowired
     private IrGroupIntakeMapper irGroupIntakeMapper;
 
+    @Autowired
+    private IrIntakeOperateMapper irIntakeOperateMapper;
+
+    @Autowired
+    private RmCommandHistoryMapper rmdCommandHistoryMapper;
+
     /**
      * 娣诲姞鐏屾簤璁″垝
      * @param po
@@ -57,6 +73,100 @@
     public Long addIrrigatePlan(IrIrrigatePlan po) {
         irrigatePlanMapper.insert(po);
         return po.getId();
+    }
+
+    /**
+     * 鍒犻櫎鐏屾簤璁″垝
+     * @param planSimple
+     * @return
+     */
+    public Map deletePlan(PlanSimple planSimple) {
+        Long planId = planSimple.getPlanId();
+        Long operatorId = planSimple.getOperatorId();
+
+        Integer planState = irrigatePlanMapper.getPlanState(planId);
+        if(planState == null) {
+            Map map = new HashMap<>();
+            map.put("success", false);
+            map.put("msg", "鐏屾簤璁″垝涓嶅瓨鍦�");
+            map.put("content", null);
+            return map;
+        }
+        if(planState != 1) {
+            Map map = new HashMap<>();
+            map.put("success", false);
+            map.put("msg", "鐏屾簤璁″垝闈炶崏绋跨姸鎬侊紝涓嶅厑璁稿垹闄�");
+            map.put("content", null);
+            return map;
+        }
+
+        try {
+            irrigatePlanMapper.deleteByPrimaryKey(planId);
+            // 娣诲姞鐏屾簤璁″垝鎿嶄綔璁板綍
+            IrPlanOperate planOperate  = new IrPlanOperate();
+            planOperate.setPlanId(planId);
+            planOperate.setOperator(operatorId);
+            planOperate.setOperateType(OperateTypeENUM.DELETE.getCode());
+            planOperate.setOperateTime(new Date());
+            addPlanOperate(planOperate);
+
+            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;
+        }
+    }
+
+    /**
+     * 鏍规嵁璁″垝ID鑾峰彇寰呯粓姝㈣鍒掔殑缁撴潫鏃堕棿锛氭湭鍒犻櫎銆佹湭缁堟銆佸凡鍙戝竷銆佸綋鍓嶆椂闂村皬浜庤鍒掔粨鏉熸椂闂�
+     * @param planId
+     * @return
+     */
+    public Date getToTerminatePlan(Long planId) {
+        return irrigatePlanMapper.getToTerminatePlan(planId);
+    }
+
+    /**
+     * 鏍规嵁璁″垝ID鑾峰彇寰呯粓姝㈢殑鍙栨按鍙D锛堝凡鍙戝竷寮�鍙戝懡浠わ紝鏃犺鏄惁鎴愬姛锛�
+     * @param planId
+     * @return
+     */
+    public List<Long> getToTerminateIntakeIds(Long planId) {
+        return irIntakeOperateMapper.getToTerminateIntakeIds(planId);
+    }
+
+    /**
+     * 鏍规嵁璁″垝ID鑾峰彇寰呯粓姝㈢殑鍛戒护ID鍒楄〃
+     * @param planId
+     * @return
+     */
+    public List<Long> getTerminateCommandIds(Long planId) {
+        return irIntakeOperateMapper.getTerminateCommandIds(planId);
+    }
+
+    /**
+     * 鏍规嵁璁″垝ID鑾峰彇寰呯粓姝㈢殑鍙栨按鍙e垪琛紙寮�闃�鎴愬姛鐨勶級
+     * @param planId
+     * @return
+     */
+    public List<VoToTerminateIntakes> getToTerminateIntakes(Long planId) {
+        return irIntakeOperateMapper.getToTerminateIntakes(planId);
+    }
+
+    /**
+     * 鏍规嵁鍛戒护鏃ュ織ID鑾峰彇鍙栨按鍙e強铏氭嫙鍗′俊鎭紝缁堟鐏屾簤璁″垝鏃朵娇鐢紝鐢ㄦ潵鎵ц杩滅▼鍏抽榾
+     * @param commandId
+     * @return
+     */
+    public VoIntakeVc getValveOpen(Long commandId) {
+        return rmdCommandHistoryMapper.getValveOpen(commandId);
     }
 
     /**
@@ -80,8 +190,18 @@
      * 鑾峰彇宸插畬鎴愮殑璁″垝鍒楄〃锛屽皬绋嬪簭璁″垝鍒楄〃椤典娇鐢�
      * @return
      */
-    public List<VoPlans> getCompletedPlans() {
-        return irrigatePlanMapper.getCompletedPlans();
+    public QueryResultVo<List<VoPlans>> getCompletedPlans(QueryConditionVo queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
+
+        Long itemTotal = (long)irrigatePlanMapper.getCompletedPlansCount(params);
+        QueryResultVo<List<VoPlans>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = queryVo.pageSize ;
+        rsVo.pageCurr = queryVo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = irrigatePlanMapper.getCompletedPlans(params);
+
+        return rsVo ;
     }
 
     /**
@@ -130,6 +250,15 @@
     public Long addIrrigateSchedule(IrIrrigateSchedule po) {
         irIrrigateScheduleMapper.insert(po);
         return po.getId();
+    }
+
+    /**
+     * 鏍规嵁璁″垝ID缁堟鐏屾簤娆″簭锛屽皢鐏屾簤娆″簭鐨勫綋鍓嶇姸鎬佹敼涓哄凡缁堟
+     * @param planId
+     * @return
+     */
+    public Integer terminateSchedule(Long planId) {
+        return irIrrigateScheduleMapper.terminateSchedule(planId);
     }
 
     /**
@@ -208,4 +337,35 @@
     public Long getIntakeIdByUnitId(Long unitId) {
         return irIrrigateUnitMapper.getIntakeIdByUnitId(unitId);
     }
+
+    /**
+     * 鏍规嵁璁″垝ID鑾峰彇璁″垝鍙戝竷缁撴灉
+     * @param planId
+     * @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;
+        }
+
+        for (VoGroupResult groupResult : groupResults) {
+            List<VoIntakeResult> intakeResults = irIntakeOperateMapper.getIntakeResult(planId, groupResult.getGroupId());
+            if(intakeResults != null) {
+                groupResult.setPublishResult(intakeResults);
+            }
+        }
+
+        planDetails.setGroups(groupResults);
+        return planDetails;
+
+    }
 }

--
Gitblit v1.8.0